2010-12-12 62 views
0

幾周前,我的ASP.NET網站停止發送用戶評論,我通過Gmail郵件服務器將這些評論通過電子郵件發送到我的電子郵件帳戶(smtp.gmail.com)。我打開的項目我的開發機器上它再次失敗,出現以下異常消息幾分鐘後發送電子郵件:ASP.NET無法通過Gmail SMTP發送電子郵件,但Outlook 2007成功

發送郵件失敗

無法讀取傳輸連接的數據:net_io_connectionclosed。

我使用Gmail的SMTP端口爲465,MailClient.EnableSSL = True。 奇怪的是我的Office Outlook 2007使用相同的設置,並且使用相同的Gmail帳戶發送郵件時沒有任何問題。

有什麼想法?

+0

要澄清,它是在您的生產env。但現在不是在prod或本地工作? – 2010-12-12 13:53:17

+0

它在任何地方都能正常工作。 2個星期前,我們意識到該網站存在問題;當我們檢查時,我們發現它不再有效,既不在生產服務器上,也不在本地。然後,我使用我的Office Outlook 2007查看本地連接或gmail是否存在問題,併發送郵件(使用我們在網站中使用的相同郵件帳戶)。 – TheAgent 2010-12-12 16:56:23

回答

3

此代碼適用於我。請注意,端口號與您正在嘗試的465不同。我幾乎可以肯定,我也嘗試過465,但沒有運氣。

var msg = new MailMessage(new MailAddress(recipient, "SCS Web Site"), new MailAddress(toAddress)) 
       { 
        Body = BuildMailBody(), 
        Subject = "SCS Web Site Message" 
       }; 
var smtp = new SmtpClient 
       { 
        Host = "smtp.gmail.com", 
        Port = 587, 
        EnableSsl = true, 
        UseDefaultCredentials = false, 
        Credentials = new NetworkCredential(myGmailUser, myGmailPassword) 
       }; 
smtp.Send(msg); 
+0

感謝您的回覆,但這些設置不起作用。使用端口#587我收到消息「發送郵件失敗 - 無法連接到遠程服務器」。即使你的端口#工作,這也不能解釋爲什麼我的Office Outlook可以使用465發送郵件。這讓我瘋狂! – TheAgent 2010-12-12 13:03:57

0

你不會碰巧有一個防火牆不允許出站連接,那麼,特別是允許Outlook打通。 。 。

+0

當我們的主服務器發送郵件失敗時(2周前),我意識到了這個問題。然後我在我的開發機器上測試了代碼,發生了同樣的事情。沒有人碰到任何一臺機器;所以我認爲它與防火牆沒有任何關係。 – TheAgent 2010-12-12 13:53:02

-1

我發現formmail通過gmail(在Windows服務器上)的一個奇怪之處是端口號是問題。我的代碼和你的代碼很相似,但只有當我將端口改爲25而不是587或465時纔有效。這可能就是你需要的。

相關問題