2011-03-06 16 views
1

我的網站發送購買確認電子郵件。 95%的時間,它的工作原理。點擊運行付款和應發送電子郵件的「確認」按鈕後,另外5%,我得到以下異常:SmtpClient.Send異常

詳情:

例外:發送郵件失敗。

內部異常:無法連接到 遠程服務器
內部異常 (2):連接嘗試因爲連接的方做了一段 時間後沒有 正確響應失敗 ,或建立的連接失敗 因爲連接的主機沒有反應 72.167.234.197:25

的代碼來發送郵件是這樣的:

Dim smtpClientPayPalSuccess As System.Net.Mail.SmtpClient = New System.Net.Mail.SmtpClient() 
smtpClientPayPalSuccess.Host = "relay-hosting.secureserver.net" 
smtpClientPayPalSuccess.Send(mailMessagePayPalSuccess) 

僅供參考:我已經確認託管,我不需要任何憑據,或不同於25的端口號。這也通過https運行。

任何想法爲什麼這隻會發生一小部分時間?

謝謝。

戴夫

回答

1

我不知道爲什麼郵件失敗的部分時間。據我所知,它可能是定期維護防火牆或郵件服務器本身。

我會建議你異步發送郵件,而不是'確認'按鈕過程的一部分。只需將郵件放在(永久)存儲上,並繼續嘗試在兩者之間發送郵件。

或者(衷心推薦)將郵件從您的應用發送到本地郵件服務器,並讓該郵件服務器將郵件轉發到72.167.234.197:25。這樣你就可以免費獲得重試次數,發送郵件到localhost失敗的機會很小(或者應該很小)。

0

這是可能的,很可能根據您的博覽會,有防止從連接/與SMTP服務器進行通信您的網站實際的網絡錯誤。這可能是流量太多或網絡連接速度較慢的結果。我的建議是圍繞電子郵件代碼嘗試一下,或許在放棄之前重試發送電子郵件幾次。

當你提到這是工作的95%的時間,它表明問題最有可能位於你的控制之外。

作爲一個側面說明,你也許應該考慮不要放棄你的SMTP服務器的實際IP地址(這是無關緊要的問題)

+0

哦,但我喜歡IP地址。也許我可以通過它發送我的垃圾郵件。需要一些藍色藥丸?真的很便宜... :) – extraneon 2011-03-06 16:54:18

+0

我並不擔心把IP放進去,因爲它會拒絕主機網絡之外的任何連接。 – Dave 2011-03-06 17:12:30