C#调用smtp邮件发送几个大坑
1、网易、新浪邮箱新增了一个叫“授权码”的东西,开通smtp服务时,必须开启授权码,并且邮件发送代码中也需要加上授权码,如下代码:
//指定邮箱账号和密码,需要注意的是,这个密码是你在邮箱设置里开启服务的时候给你的那个授权码
SmtpClient smtpclient = new SmtpClient(); …… NetworkCredential networkCredential = new NetworkCredential(sendEmail, sendpwd); smtpclient.Credentials = networkCredential;
2、邮件在本地可以发送成功,但发布到服务器上死活不成功,报操作超时错误,后来发现是腾讯云管理中需要做25端口解封
3、25端口解封之后,发现发邮件发送还是报错,报错信息及解决方法如下:
Transaction failed. The server response was: DT:SPM 163 smtp13,EcCowAA3iPqhtvhdbKQ7ZQ--.22531S2 1576580770,please see http://mail.163.com/help/help_spam_16.htm?ip=148.70.133.22&hostid=smtp13&time=1576580770
出错原因
554是邮件被网易默认为垃圾邮件,肯定是你发的邮件中有广告性信息,如:诚邀、免费注册之类的敏感词。当敏感词的比重达到一定数值时,就会被识别为垃圾邮件拒发。
解决方法
在收件人列表里面加上自己的邮箱