本文共 1300 字,大约阅读时间需要 4 分钟。
使用SMTP(简单邮件传输协议)发送邮件一般都是使用25端口,而阿里云服务器为了安全是将25端口封禁的,会出现在本机测试发送邮件功能正常,但是部署到服务器上却发送失败的情况。
解决办法是向阿里云申请解封25端口,或者更换端口,可以使用465或者587端口。
代码如下:
////// 发送邮件/// /// 邮件内容/// 邮件标题///返回结果,成功与否 public static string SendMail(string bodyStr, string title){ SmtpClient smtpClient = new SmtpClient(); smtpClient.EnableSsl = true; smtpClient.UseDefaultCredentials = false; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.Host = "smtp.qq.com"; smtpClient.Port = 587;//改用587端口 smtpClient.Credentials = new System.Net.NetworkCredential("000@qq.com", "abcdefg"); //密码不是QQ密码,是qq账户设置里面的POP3/SMTP服务生成的key MailMessage mailMessage = new MailMessage("000@qq.com", "xxx@xxx.com");//from(发出邮箱)和to(目标邮箱) mailMessage.Subject = title;//邮件标题 mailMessage.Body = bodyStr;//邮件内容 mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码 mailMessage.IsBodyHtml = true;//设置为HTML格式 mailMessage.Priority = MailPriority.High;//优先级 mailMessage.To.Add("xxx@xxx.com"); mailMessage.To.Add("aaa@xxx.com"); mailMessage.To.Add("bbb@xxx.com"); mailMessage.To.Add("ccc@xxx.com");//可以发送给多个人 try { smtpClient.Send(mailMessage); return "发送成功"; } catch (Exception e) { return "发送失败" + e.InnerException.Message; }}
转载地址:http://qtghx.baihongyu.com/