C#发送邮件
今天遇到一个需求需要通过客户端发送邮件,然后开始google各种博文,遇到了一些问题,总了一下,代码如下:
MailMessage mailMessage = new MailMessage();//定义邮件 SmtpClient smtpClient = new SmtpClient();//定义发件客户端 mailMessage.From = new MailAddress("发件人地址");//邮件发送人地址 mailMessage.Subject = "test";//邮件主题 mailMessage.Body = "test";//邮件内容 mailMessage.IsBodyHtml = true;//HTML格式 mailMessage.BodyEncoding = System.Text.Encoding.UTF8;//编码UTF8 mailMessage.Priority = MailPriority.Normal;//邮件发送的优先性为正常 mailMessage.To.Add("发件人地址"); smtpClient.UseDefaultCredentials = false;//使用默认凭据 smtpClient.EnableSsl = false;//启动SSL,即安全发送 smtpClient.Credentials = new NetworkCredential("发件人地址", "密码"); smtpClient.Host = "smtp.xxxxx";//发送连接服务器主机IP smtpClient.Port = 25;//端口号 25,465 smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//传递电子邮件消息,通过网络发送电子邮件到SMTP smtpClient.Send(mailMessage);//确认发送按钮
以上代码测试有效,中间也遇到了问题
1.无法读取的数据传输连接:net_io_connectionclosed
解释:需要将UseDefaultCredentials设置放到登录信息smtpClient.Credentials的前面
smtpClient.UseDefaultCredentials
smtpClient.Credentials = new NetworkCredential("发件人地址", "密码");