今天在弄企業郵箱推送的東西,原版代碼是這樣的服務器
public void SendEmail(string title, string content) { try { MailMessage mailMsg = new MailMessage(); mailMsg.To.Add(new MailAddress(ToEmails)); mailMsg.From = new MailAddress(FromEmail); // 郵件主題 mailMsg.Subject = title; // 郵件正文內容 mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html)); // 添加附件 //string file = "D:\\1.txt"; //Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); //mailMsg.Attachments.Add(data); //郵件推送的SMTP地址和端口 SmtpClient smtpClient = new SmtpClient(EmailHost, EmailPort); //SmtpClient smtpClient = new SmtpClient(EmailHost); // 使用SMTP用戶名和密碼進行驗證 System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPW); smtpClient.EnableSsl = true; //smtpClient.Timeout = 10000;//超時 smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = credentials; smtpClient.Send(mailMsg); } catch (Exception ex) { throw; } }
按照騰訊企業郵箱給的文檔,我設置好郵箱帳號、密碼、smtp服務器、端口號以後開始測試,發現老是報錯,當時騰訊企業郵箱的官方提示是這樣的測試
能夠看到,這裏給的端口號是465,(這裏不知道要不要罵娘了)spa
而後我斷斷續續的測試了一下午,發現怎麼都發不出郵件,按理不會啊,就這麼幾行代碼的事情,因而我試着刪除一些配置,讓程序按照本身的默認值來運行,因而我刪除了端口號的配置,代碼以下:code
/// <summary> /// /// </summary> /// <param name="UserName"></param> /// <param name="Money"></param> public void SendEmail(string title, string content) { try { MailMessage mailMsg = new MailMessage(); mailMsg.To.Add(new MailAddress(ToEmails)); mailMsg.From = new MailAddress(FromEmail); // 郵件主題 mailMsg.Subject = title; // 郵件正文內容 mailMsg.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(content, null, MediaTypeNames.Text.Html)); // 添加附件 //string file = "D:\\1.txt"; //Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); //mailMsg.Attachments.Add(data); //郵件推送的SMTP地址和端口 //SmtpClient smtpClient = new SmtpClient(EmailHost, EmailPort); SmtpClient smtpClient = new SmtpClient(EmailHost); // 使用SMTP用戶名和密碼進行驗證 System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(FromEmail, FromEmailPW); smtpClient.EnableSsl = true; //smtpClient.Timeout = 10000;//超時 smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = credentials; smtpClient.Send(mailMsg); } catch (Exception ex) { throw; } }
結果就發出去了,我是真的日了狗,郵件發送失敗的提示的提示也沒有具體信息,先記錄一下,之後使用這些企業郵箱實現郵件推送,最好不要用他們提供的端口號,感受只須要有發信服務器就好了。blog