VB.Net使用Gmail帐户发送电子邮件

VB.Net使用Gmail帐户发送电子邮件,vb.net,smtp,gmail,Vb.net,Smtp,Gmail,为什么会超时 Dim s As New SmtpClient s.Host = "smtp.gmail.com" s.Port = 465 s.EnableSsl = True s.Timeout = 5000 s.Credentials = New NetworkCredential("my.name@gmail.com", "mypassword") Dim m As New MailMessage m.To.Add("my.name@gmail.com") m.From = New Ma

为什么会超时

Dim s As New SmtpClient
s.Host = "smtp.gmail.com"
s.Port = 465
s.EnableSsl = True
s.Timeout = 5000
s.Credentials = New NetworkCredential("my.name@gmail.com", "mypassword")

Dim m As New MailMessage
m.To.Add("my.name@gmail.com")
m.From = New MailAddress("my.name@gmail.com")
m.Body = "Test Message"
m.Subject = "Test Subject"
s.Send(m)
这些设置直接来自我的Outlook Express测试设置,它可以发送良好的数据

Set really long timeout=不执行任何操作

将端口号更改为587或25=不起任何作用

一个想法是:Outlook Express有一个“我的服务器需要身份验证”选项,我看不出它与SmtpClient有明显的等效性。这可能与此有关吗

提前谢谢

戴夫


--Fedang#vb.net smtp上的Trindaz编辑:您可能需要在以
s.Credentials开头的行之前添加以下行:
s.usedaultcredentials=False

您是否有防火墙或某种防病毒程序正在运行,可能会阻止连接

一个好的开始就是从命令行进行简单的连接

telnet smtp.gmail.com 465

注意,根据Windows版本的不同,您可能必须首先启用telnet客户端,有关详细信息,请参见此部分。

您必须进入您的gmail帐户,打开对不太安全的应用程序的访问,并将端口更改为587

现在它变得更奇怪:s.UseDefaultCredentials=False“kinda”起作用。电子邮件通过了,但我仍然收到一个超时错误!使用超级终端打开smtp.gmail.com 465给我带来了一个无法输入的空白屏幕。直接从命令行运行telnet smtp.gmail.com 465会让我看到一个黑屏,只起到一定的作用-键入移动光标,但没有出现字符。更新:将超时设置为10秒也可以避免超时。谢谢你!