2010-03-31 233 views
6

我想用C#和我有麻煩這樣做(4 System.Net.Mail /框架)通過谷歌應用程序/ Gmail發送一個基本的電子郵件。通過谷歌應用程序發送電子郵件在C#

我收到以下異常:「操作超時」。

我的代碼如下:

  //Create the mail message 
      MailMessage mail = new MailMessage(); 

      //Set the addresses 
      mail.From = new MailAddress("[email protected]", "My Name"); 
      mail.To.Add(Email); 

      //Set the subject and bodycontent 
      mail.Subject = "Email Testing"; 
      mail.Body = "This is the body of the email"; 

      //Send the message using the SmtpClient 
      SmtpClient smtp = new SmtpClient(); 
      smtp.EnableSsl = true; 
      smtp.Send(mail); 

我的web.config具有以下設置:

 <smtp from="[email protected]" deliveryMethod="Network"> 
      <network host="smtp.gmail.com" 
       userName="[email protected]" 
       password="password" 
       port="587" /> 
     </smtp> 

在我的疑難解答我曾嘗試:

  • 用我個人的Gmail地址以及來自通過Google Apps託管的域中的另一個域名。
  • 使用端口25,465,和587
  • 硬編碼在C#代碼的配置設置,而不是使用在web.config
  • 發送和telnet命令直接登錄從多個網絡位置,以確保在防火牆/ ISP不阻止它
  • 確保在GMail設置中啓用了POP(根據谷歌,這應該打開使用SMTP發送的能力)
  • 更改發送和回覆地址以確保它們與帳戶匹配(顯然是GMail必需)。

我可以通過GMail界面爲我的兩個電子郵件帳戶發送和接收電子郵件。我也嘗試了問題#757987中提供的設置和解決方案無濟於事。

+0

有沒有人有這與最近的GMail工作?我認爲Google最近改變了一些安全設置,這導致了我的症狀。 – NateReid 2010-04-09 03:19:10

回答

1

您的代碼看起來不錯。你說你嘗試過Telneting。你真的能夠通過telnet發送郵件嗎?

你可以嘗試從您的SMTP標籤移除

from="[email protected]" deliveryMethod="Network" 

因爲它們沒有必要爲自己在做什麼。

編輯:

的Telnet通常會允許您連接到SMTP服務器和發送數據的16個字節前,將你踢出去(?)。如果您沒有收到類似these的回覆,那很可能是這種情況。

在防火牆上嘗試開放端口587,看看你能實際上通過telnet SMTP服務器(EHLO,ECHO等)進行交互。

+0

謝謝你的建議。我試圖從smtp標籤中刪除「from」和「deliverymethod」,它仍然超時。 當我提到我試着在我最初的問題telnet命令......我嘗試連接,它連接的,但是當我嘗試使用我找到的指令發送電子郵件在「http://www.wikihow.com/Send-Email 「使用Telnet」會在第一條命令後將我踢出去。 – NateReid 2010-03-31 15:08:26

+1

聽起來像你的telnet實際上並沒有連接,在這種情況下,你可能有網絡問題。嘗試在你的防火牆 – Joel 2010-03-31 15:32:07

+0

從谷歌上的故障排除電子郵件開放的587端口這就是我想,但根據該http://mail.google.com/support/bin/answer.py?hl=en&answer=78775頁面(特別是最後一個項目符號點),我已連接。 – NateReid 2010-03-31 16:06:33

相關問題