2010-09-01 117 views
1

爲什麼超時?VB .Net使用Gmail帳戶發送電子郵件

Dim s As New SmtpClient 
s.Host = "smtp.gmail.com" 
s.Port = 465 
s.EnableSsl = True 
s.Timeout = 5000 
s.Credentials = New NetworkCredential("[email protected]", "mypassword") 

Dim m As New MailMessage 
m.To.Add("[email protected]") 
m.From = New MailAddress("[email protected]") 
m.Body = "Test Message" 
m.Subject = "Test Subject" 
s.Send(m) 

這些設置直接來自我的Outlook Express測試設置,它可以很好地發送。

設置很長超時=什麼也不做

更改端口號爲587或25 =什麼也不做

一個念頭:Outlook Express中有一個「我的服務器要求身份驗證」選項,我看不到與SmtpClient相當。它可能與此有關嗎?

在此先感謝

戴夫

--Trindaz上Fedang#vb.net-SMTP

回答

1

編輯:您可能需要添加以下行:s.UseDefaultCredentials = False前行開始s.Credentials...

您是否有防火牆或運行某種反病毒程序可能會阻止連接?

一個好的開始就是從命令行做一個簡單的連接。

telnet smtp.gmail.com 465 

注意,根據Windows版本,您可能必須先啓用Telnet客戶端,請參閱本link瞭解詳情。

+0

現在它變得怪異:s.UseDefaultCredentials =假「有點」的作品。電子郵件通過,但我仍然遇到超時錯誤! 使用超級終端打開smtp.gmail.com 465給了我一個空白的屏幕,我無法打字。直接從命令行運行telnet smtp.gmail.com 465給了我一個黑屏,只有一個工作 - 鍵入移動光標,但沒有任何人物出現。 – Trindaz 2010-09-01 07:14:05

+0

更新:將超時設置爲10秒也可以避免超時。謝謝ho1! – Trindaz 2010-09-01 07:15:49

-2

你必須去到您的Gmail帳戶,並打開訪問安全性較低的應用程序和端口更改爲587

相關問題