2011-10-18 228 views
4

我仍然收到「發送郵件失敗」。例外。內部例外是「無法連接到遠程服務器」,內部例外是「連接嘗試失敗,因爲連接方在一段時間後沒有正確響應,或者由於連接的主機未能響應而建立連接失敗」。我敢肯定,這不是防火牆設置的原因。有人知道我能做些什麼嗎?謝謝。通過Google SMTP發送郵件失敗

var mail = new MailMessage("[email protected]", "[email protected]") 
         { 
          Subject = "Testing subject", 
          Body = "Testing body" 
         }; 
      try 
      { 
       var client = new SmtpClient("smtp.google.com", 465) 
           { 
            EnableSsl = true, 
            Credentials = new NetworkCredential("[email protected]", "password") 
           }; 
       client.Send(mail); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.Message); 
      } 

回答

6

這裏是谷歌設置需要:

  • 接收郵件(POP3)服務器 - 需要SSL:pop.gmail.com

    使用SSL:是

    端口:995

    發送郵件(SMTP)服務器 - 需要TLS3或SSL:smtp.gmail.com (使用驗證)

    使用身份驗證:是的

    端口爲TLS/STARTTLS:587

    SSL的端口:465

    帳戶名稱:您的完整電子郵件地址(包括@ gmail.com或 @ your_domain.com )

    郵箱地址:您的電子郵件地址([email protected][email protected]_domain.com)

    密碼:您的Gmail密碼

+0

是的,它應該是587端口。現在工作正常。謝謝。 – jonakrob

0

如果主機名是正確的,谷歌支持SMTP通過SSL,那麼它被東西堵住,我會開始檢查防火牆。

0

我不認爲smtp.google.com是正確的gmail服務器。你有沒有嘗試在端口25 smtp.gmail.com?

端口465適用於通過SSL的SMTP,.NET SmtpClient不支持該端口。而是使用端口25. SMTP客戶端將使用STARTTLS功能來加密通信。

3

我不認爲465是正確的端口。你嘗試過587嗎?而SMTP服務器是smtp.gmail.com

+0

是的,它應該是587端口。它現在工作正常。謝謝。 – jonakrob

0

正確的端口是587 smtpclient類

+0

不適用於所有人! – Nitesh

1

我也Godaddy的電子郵件服務器和下面的代碼工作的工作對我罰款:

命名空間

System.Net.Mail 

============

string senderID = "[email protected]"; 
string senderPassword = "123456"; 
string body = " Test email "; 

MailMessage mail = new MailMessage(); 
mail.To.Add(username); 
//mail.CC.Add(_cc); 
mail.From = new MailAddress(senderID); 
mail.Priority = MailPriority.High; 
mail.Subject = "Test Email"; 
mail.Body = body; 
mail.IsBodyHtml = true; 
SmtpClient smtp = new SmtpClient(); 
smtp.Host = "relay-hosting.secureserver.net"; //Or Your SMTP Server Address 
smtp.Credentials = new System.Net.NetworkCredential 
    (senderID, senderPassword); // ***use valid credentials*** 
smtp.Port = 25; 
smtp.EnableSsl = false; 
smtp.Send(mail); 
相關問題