2015-01-07 39 views
0

我想通過GMailSystem.Net.Mail.SmtpClient.Send()超時SmtpException

我可以在家裏

System.Net.Mail.SmtpClient.Send()Timeout SmtpException通過Gmail發送電子郵件在公司與相同的代碼封閉的網絡發送Email

我要問網絡管理員。

網絡管理員不知道gmail使用的地址/端口信息,因此在詢問我嘗試連接[address:smtp.gmail.com, port:587]telnet併成功連接之前,我必須知道需要檢查的地址/端口。

還有更多檢查/打開網絡地址/端口嗎?

+0

告訴我們,是造成你的問題的代碼。 – Mitz

+0

這不是代碼問題。它在家庭中運行良好 – user2523112

+0

爲什麼使用587端口?你在代碼中使用的端口是什麼?或在應用程序/ web.config? –

回答

0

您需要使用EnableSsl = true

 static void Main(string[] args) 
     { 
      var client = new SmtpClient("smtp.gmail.com", 587) 
      { 
       Credentials = new NetworkCredential("[email protected]", "mypwd"), 
       EnableSsl = true 
      }; 
      client.Send("[email protected]", "[email protected]", "test", "testbody"); 
      Console.WriteLine("Sent"); 
      Console.ReadLine(); 
     } 

FYI Gmail要求身份驗證:

Outgoing Mail (SMTP) Server 
requires TLS or SSL: smtp.gmail.com (use authentication) 
Use Authentication: Yes 
Port for TLS/STARTTLS: 587 
Port for SSL: 465 
+0

OP明確表示代碼在他家中工作,但不能在工作中,你如何改變這種狀況? –

+0

@SteenT:它使用TLS。因此,使用enableSsl =「true」來啓用TLS。 SSL和TSL實際上是等效的 - TLS比SSL更廣泛。 按照[MSDN文檔](http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.enablessl.aspx),這將強制SMTPClient使用[RFC](http:///www.ietf.org/rfc/rfc3207.txt)3207(和RFC使用術語TLS/SSL)。 – Avijit

+0

因此,在他的家中,如果沒有TLS和SSL,可以在他的工作網絡中使用它? –