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 帐户发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

.Net通过Gmail发送邮件[重复]

如何在 C# 中使用带有服务帐户的 gmail api 或 google Oauth 来发送邮件?

如何使用 GMail 帐户发送电子邮件? [复制]

向 Gmail 帐户发送邮件

让 nodemailer 使用不同的 gmail 帐户发送电子邮件

SendMail 错误:无法使用 gmail 帐户发送电子邮件? XAMPP