使用QQ企業郵箱465埠傳送郵件失敗
阿新 • • 發佈:2019-02-07
採用以下程式碼
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage(,2); try { mail.To = "收件人郵箱"; mail.From = "發件人郵箱"; mail.Subject = "subject"; mail.BodyFormat = System.Web.Mail.MailFormat.Html; mail.Body = "<font color='red'>body</font>"; mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "發件人郵箱"); //set your username here mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "發件人郵箱密碼"); //set your password here mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//set port mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//set is ssl System.Web.Mail.SmtpMail.SmtpServer = "smtp.qq.com"; System.Web.Mail.SmtpMail.Send(mail,2); //return true; } catch (Exception ex) { ex.ToString(,2); }
以下內容轉於
2014-05-10 10:12:38 3994瀏覽
我採用了.net 的自帶元件 System.Web.Mail.MailMessage傳送郵件,主要是在客戶註冊網站成功的時候發條歡迎郵件,最近郵件無法傳送了,看了下騰訊smtp郵件配置,所有的郵件傳送都換成ssl了,之前用的是25埠,現在換成了465或587,於是修改程式碼如下:
MailMessage msgMail = new MailMessage("發件箱", "收件箱", "郵件標題", "郵件內容",2); SmtpClient smtp = new SmtpClient("smtp.qq.com", 465,2); smtp.EnableSsl = true; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Credentials = new System.Net.NetworkCredential("發件箱", "發件箱登入密碼",2); try { smtp.Send(msgMail,2); } catch (Exception ex) { Console.WriteLine("傳送完畢......",2); }
這樣還是不行,報操作已超時錯誤在國外的技術網站上看到一句話System.Net.Mail支援Explicit SSL但是不支援Implicit SSL,然後查了下關於這兩個模式的資料,我按照我理解的說一下:
Explicit SSL 發起於未加密的25,然後進行一個starttl握手,最終切換到加密的連線。
Implicit SSL 直接從指定的埠發起starttl握手。
既然指定了埠,那麼應該就是使用了Implicit SSL,不知道微軟什麼時候能更新下System.net.mail,System.net.mail能在郵件中嵌入圖片的。問題到了這裡,那是不是就沒有辦法利用騰訊郵箱發郵件了呢?答案肯定是否定的,foxmail不就可以配置傳送郵件嗎?我們可以利用CDO.Message和System.web.mail傳送郵件。
詳見我下面的2篇文章:
http://www.codingwhy.com/view/614.htmlhttp://www.codingwhy.com/view/616.html
http://www.codingwhy.com/view/611.html