說到發送郵件大家都非常的熟悉,程序員在開發某個功能的時候要考慮的問題也是很多的,但是有時候是會疏漏的,那么.NET發送郵件遇到問題及解決方法,大家了解嗎?跟著錯新技術頻道小編的步伐來學習吧!
.NET后臺代碼利用QQ郵箱服務器發送郵件遇到的問題:"mail from address must be same as authorization user"?
首先,看下我的代碼實現
后臺代碼:
public class EmailHelper { /// <summary> /// 發送郵件 /// </summary> /// <param name="subject">主題</param> /// <param name="body">內容</param> public static void SendEmail(string subject,string body) { var mailFrom = ConfigurationManager.AppSettings["mailFrom"]; var mailTo = ConfigurationManager.AppSettings["mailTo"]; var mailCC = ConfigurationManager.AppSettings["mailCC"]; var smtp = ConfigurationManager.AppSettings["smtp"]; var smtpPort = Convert.ToInt32(ConfigurationManager.AppSettings["smtpPort"]); var emailAccount = ConfigurationManager.AppSettings["emailAccount"]; var emailPassword = ConfigurationManager.AppSettings["emailPassword"]; //郵件內容信息 MailMessage mailMessage = new MailMessage { From = new MailAddress(mailFrom), Subject = subject, Body = body, }; mailMessage.To.Add(mailTo); mailMessage.CC.Add(mailCC); //郵箱服務器配置 SmtpClient smtpClient = new SmtpClient(smtp, smtpPort) { Credentials = new NetworkCredential(emailAccount, emailPassword), EnableSsl = true, }; //發送郵件 smtpClient.Send(mailMessage); } } 配置文件:
<appSettings> <!--發送人、收件人、抄件人--> <add key="mailFrom" value="53xxx1314@qq.com"/> <add key="mailTo" value="89xxxx734@qq.com"/> <add key="mailCC" value="89xxx734@qq.com"/> <!--郵箱服務器主機地址和端口號--> <add key="smtp" value="smtp.qq.com"/> <add key="smtpPort" value="25"/> <!--發送人郵箱賬號密碼--> <add key="emailAccount" value="53xxx1314"/> <!--此密碼非QQ密碼,而是郵箱生成的密碼--> <add key="emailPassword" value="stxxxxxxxxtscbbb"/> </appSettings>
代碼已經搞定,剩下的就是跑起來了
第一次跑起來遇到問題就是開頭所說的"mail from address must be same as authorization user"
具體為什么會這樣呢,我的賬號密碼沒錯啊,看了幾篇博友的文章后確定是QQ郵箱密碼出問題了。但是我用QQ密碼登入郵箱是正常的,然后嘗試開啟POP/SMTP服務,發現了主要問題
QQ郵箱的POP/SMTP 服務沒開啟

操作步驟:
進入QQ郵箱->設置->賬戶->滾動到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務”

如果是沒有開啟,那就開啟它
我沒有開啟,點擊后需要發送短信,配置郵件客戶端
發送短信完畢后,獲得了授權碼,將授權碼替換我在代碼中寫的qq密碼,然后重新跑起來,錯誤消失,主要是未授權問題
注意,授權碼會在QQ密碼或獨立密碼修改后而失效 ,需要重新獲得。

重新運行,沒有問題

問題雖然不是很大,也沒有太多技術含量,但是能節省我們再次遇到這種問題,卻想不起怎么解決的,回顧起來,總比重新重視要節省時間。
以上就是錯新技術頻道小編為大家介紹的.NET發送郵件遇到問題及解決方法,我們想要在學習中達到更好的效果,需要我們不斷的堅持。
新聞熱點
疑難解答
圖片精選