首先先貼上代碼
try { MailAddress receiver = new MailAddress("zhan.com", "郵箱"); MailAddress sender = new MailAddress(WebSettingsConfig.SenderAddress, "PC"); MailMessage message = new MailMessage(); message.From = sender;//發件人 message.To.Add(receiver);//收件人 //message.CC.Add(sender);//抄送人 message.Subject = model.Title;//標題 message.Body = "內容:" + model.Content + "<br> 聯系姓名:" + model.SenderName + "<br> 聯系郵箱:" + model.SenderEmail + "<br> 電話號碼:" + model.SenderPhone;//內容 message.IsBodyHtml = true;//是否支持內容為HTML SmtpClient client = new SmtpClient(); client.Host = "smtp.exmail.qq.com"; // client.Port = 587; client.EnableSsl = true;//是否啟用SSL //client.Timeout = 10000;//超時 client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(WebSettingsConfig.SenderAddress, WebSettingsConfig.SenderPassword); client.Send(message); return this.Json(new ResultU(true, ConstResult.success, "郵件發送成功!")); } catch (Exception ex) { LogFile.WriteErrorLog(DateTime.Now + " 郵件發送失敗:" + ex.Message); return this.Json(new ResultU(false, ConstResult.fail, "郵件發送失敗!")); }
發送郵件的代碼沒什么特別的,但是因為用騰訊企業郵箱一直發送失敗,總是提示超時。也有查到網上的一些解決方案,幾乎都是不要使用SSL,使用25端口。感覺不大好
看看騰訊的官方設置說明,使用SSL,端口號465,但是如果按配置,總是提示超時。沒辦法,google了一把,發現端口號應該是587
可以看看這里了解一下 https://stackoverflow.com/questions/15796530/what-is-the-difference-between-ports-465-and-587
所以其實也不算是騰訊的誤導,只能說是自己知識不足