记录一下使用SMTP协议发送邮件
public void Mail()
{
try
{
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
client.Host = "smtp.163.com"; //使用163的SMTP服务器发送邮件
client.UseDefaultCredentials = true;
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
client.Credentials = new System.Net.NetworkCredential("调用发送邮件的邮箱地址", "授权码");
client.Port = ;
System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage();
Message.From = new System.Net.Mail.MailAddress("moling\_free@163.com");
Message.To.Add("收件人邮箱");
Message.Subject = "标题";
Message.Body = "正文";
Message.SubjectEncoding = System.Text.Encoding.UTF8;
Message.BodyEncoding = System.Text.Encoding.UTF8;
Message.Priority = System.Net.Mail.MailPriority.High;
Message.IsBodyHtml = true;
client.Send(Message);
}
catch(Exception ex){ throw ex;}
注:
1、授权码需要去邮箱客户端里的POP3 /SMTP选项里开通即可获取授权码,不需要使用邮箱密码。使用授权码即可通过第三方程序调用其邮箱代为发送邮件。开通方法登陆邮箱即可看到,就不再说明(真不清楚也可自行百度一下)。
2、如需使用qq邮箱作为发送端,需要修改邮箱服务器为:smtp.qq.com。也需开通授权码的,qq邮箱里有类似的开通方式。
3、可能会发送失败(450、550错误码等),其主要原因是因为邮件服务器的反垃圾策略拦截了。可以检查标题、正文是否有敏感信息,检查发送频率是否过多,可能你的IP被标记了,可能过段时间就好了(可能几分钟,也可能几个小时,甚至一两天,这个看脸。。。)
关于详细的错误码可以参考:https://blog.csdn.net/fakine/article/details/72898413
4、被拦截的话可以在邮箱里设置白名单试试,不过不是都有用,感觉qq\163用的别人的邮件服务器就经常有这种问题,如果是公司内部使用的话建议搭建自己的邮件服务器。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章