VB .Net 使用 Gmail 帐户发送电子邮件
Posted
技术标签:
【中文标题】VB .Net 使用 Gmail 帐户发送电子邮件【英文标题】:VB .Net Sending email using Gmail account 【发布时间】: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
【问题讨论】:
【参考方案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!以上是关于VB .Net 使用 Gmail 帐户发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# 中使用带有服务帐户的 gmail api 或 google Oauth 来发送邮件?