記錄一下使用SMTP協議發送郵件 註: 1、授權碼需要去郵箱客戶端里的POP3 /SMTP選項里開通即可獲取授權碼,不需要使用郵箱密碼。使用授權碼即可通過第三方程式調用其郵箱代為發送郵件。開通方法登陸郵箱即可看到,就不再說明(真不清楚也可自行百度一下)。 2、如需使用qq郵箱作為發送端,需要修改郵箱 ...
記錄一下使用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 = 25; System.Net.Mail.MailMessage Message = new System.Net.Mail.MailMessage(); Message.From = new System.Net.Mail.MailAddress("[email protected]"); 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用的別人的郵件伺服器就經常有這種問題,如果是公司內部使用的話建議搭建自己的郵件伺服器。