記一次郵件推送的坑,c#基於smtp使用騰訊企業郵箱發送郵件總是失敗,超時的原因


首先先貼上代碼

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

所以其實也不算是騰訊的誤導,只能說是自己知識不足

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM