【问题标题】:VB .Net Sending email using Gmail accountVB .Net 使用 Gmail 帐户发送电子邮件
【发布时间】:2011-04-06 15:39:05
【问题描述】:

为什么会超时?

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 测试设置,可以正常发送。

设置非常长的超时 = 什么都不做

将端口号更改为 587 或 25 = 什么都不做

一个想法:Outlook Express 有一个“我的服务器需要身份验证”选项,我看不到与 SmtpClient 明显等效的选项。会不会和那个有关?

提前致谢

戴夫

--Fedang 上的 Trindaz #vb.net-smtp

【问题讨论】:

    标签: vb.net smtp gmail


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      编辑:您可能需要在以 s.Credentials... 开头的行之前添加以下行:s.UseDefaultCredentials = False

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

      一个好的开始是从命令行做一个简单的连接。

      telnet smtp.gmail.com 465
      

      注意,根据 Windows 版本,您可能需要先启用 telnet 客户端,详情请参阅link

      【讨论】:

      • 现在变得更奇怪了:s.UseDefaultCredentials = False 'kinda' 有效。电子邮件通过了,但我仍然收到超时错误!使用超级终端打开 smtp.gmail.com 465 给我一个无法输入的空白​​屏幕。直接从命令行运行 telnet smtp.gmail.com 465 给我一个黑屏,只能工作 - 打字移动光标但没有出现字符。
      • 更新:将超时设置为 10 秒也可以避免超时。谢谢ho1!
      猜你喜欢
      • 2012-03-30
      • 2011-12-15
      • 2013-03-24
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      相关资源
      最近更新 更多