2016-09-02 13 views
-1

約30%我有asp.net web頁面,這在某些情況下,電子郵件通知用戶。但是,大約30%的情況下,電子郵件未發送且正在拋出SmtpException:SMTPException發生的時間

System.Net.Mail.SmtpException:發送郵件失敗。 ---> System.IO.IOException:無法從傳輸 連接讀取數據:net_io_connectionclosed。

由於我一直在爭取這個錯誤一段時間,我設法提取SmtpStatusCode,它說:「一般失敗」。作爲一個SMTP服務器我使用的山魈與設置:
<network host="smtp.mandrillapp.com" password="####" port="25" userName="####" enableSsl="false" />

誰能給我一個理由,爲什麼這個錯誤發生只有30%的時間,而不是一味。我看了一下關於stackoverflow的其他問題,但他們關心的是什麼時候它根本不起作用的情況。

回答

0

如果你是一個住宅互聯網連接,您的ISP將阻止傳出的電子郵件發送通過阻斷端口25.Try連接到本地電子郵件服務器通過TCP/IP,或到一個你自己的內部網絡上的所有出站連接。

更新

正如你所要求的歷史,這裏是blog我所提到的回答你的問題

在1982年,美國南加州大學提交了一份提案,以 互聯網工程任務組(IETF)。請求註釋(RFC) 821已發佈,建立端口25作爲Internet電子郵件的默認傳輸通道 。 30年後,我們仍然使用端口25作爲在兩臺郵件服務器之間傳輸電子郵件的主要方式 。一個 少數的RFC已經過時初始SMTP RFC,但是,對於 SMTP的基礎仍然是相同的或相似的。

1998年12月,R. Gellens和J. Klensin在 的支持下增加了一個新的互聯網電子郵件規範 通信RFC 2476。 RFC提出了傳統消息 提交和消息中繼概念的拆分。定義的消息 提交應該發生在端口587的RFC,以確保新的政策和 安全要求與傳統的繼電器 流量在消息中繼端口25

所以不要干涉爲什麼端口25是行不通的在你的情況?

它是在傳統阻塞,住宅ISP和雲託管提供商 ,遏制是從受損 計算機或服務器轉發垃圾郵件的數量。除非您專門管理郵件服務器,否則您的計算機或服務器上應該沒有流量穿過此端口。

587爲什麼會起作用?

這是默認郵件提交端口。當郵件客戶端或服務器 正在提交電子郵件以通過正確的郵件服務器進行路由時,它應該始終使用此端口。

所有Mailgun客戶都應該考慮使用此端口作爲默認端口, ,除非您明確被上游網絡或主機 提供商阻止。此端口再加上TLS加密,將確保 電子郵件安全地提交,並遵循IETF 規定的指導原則。

+0

好的,但爲什麼70%的電子郵件發送正確? – Siocki

+0

@Siocki不知道爲什麼會發生這種情況,您是否嘗試將端口更改爲587? – Webruster

+0

我想我沒有其他選擇,但仍然有我的網站,具有完全相同的設置,它的工作完美。 – Siocki