郵件發送大家都已經非常熟悉了,微軟自帶的System.Net.Mail也很好用,那為什么還要說呢?
QQ郵箱的SMTP以前是非SSL,用未加密的25端口,后來發送都改成SSL了,端口為465或587(實測587是連不上的)。網上查到System.Net.Mail支持Explicit SSL,但是不支持Implicit SSL。簡單來說,就是System.Net.Mail不能支持像QQ郵箱這樣的加密的SSL,所以我們得改一下,可以用System.Web.Mail這個比較舊的類。
如果你看到這段文字,說明您正使用RSS閱讀或轉自《一棵樹-博客園》,原文地址:https://www.cnblogs.com/atree/p/smtp-qq-email.html
雖然是過時了,但是還是可以完成我們的需求。這里登陸密碼要注意:如果是一般賬號,要用授權碼(下面會說明設置);企業賬號用登錄密碼,代碼如下:
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage(); try { mail.To = "接收的郵箱"; mail.From = "發送的郵箱"; mail.Subject = "這是主題"; mail.BodyFormat = System.Web.Mail.MailFormat.Html; mail.Body = "這是內容"; mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //身份驗證 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mail.From); //郵箱登錄賬號,這里跟前面的發送賬號一樣就行 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "********"); //這個密碼要注意:如果是一般賬號,要用授權碼;企業賬號用登錄密碼 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//端口 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//SSL加密 System.Web.Mail.SmtpMail.SmtpServer = "smtp.qq.com"; //企業賬號用smtp.exmail.qq.com System.Web.Mail.SmtpMail.Send(mail); //郵件發送成功 } catch (Exception ex) { //失敗,錯誤信息:ex.Message; }
