多年来我一直使用VB代码发送电子邮件。它停止工作显然是由于Gmail的安全限制。
我的Gmail帐户使用两步验证,我甚至生成了一个"应用程序密码"。还是不行
我代码:
Dim SmtpServer As New SmtpClient()
Dim Email As New MailMessage()
SmtpServer.UseDefaultCredentials = False
SmtpServer.Credentials = New Net.NetworkCredential("username", "password")
"username"是我的gmail地址和密码为"App密码"。我创建的调试器没有显示SmtpServer.Credentials.
我尝试了很多方法来让这个工作,除了购买收费的软件。我甚至尝试张贴代码,应该工作。
欢迎提出任何建议。
改变代码:
Dim SmtpServer As New SmtpClient()
Dim Email As New MailMessage()
SmtpServer.UseDefaultCredentials = False
SmtpServer.EnableSsl = True
Dim MyCredentials = New NetworkCredential("username", "password")
SmtpServer.Credentials = MyCredentials
调试说:MyCredentials ?{System.Net.NetworkCredential}域:";"密码:"password"SecurePassword: {System.Security.SecureString}用户名:"username">
所以MyCredentials工作,但是调试说:? SmtpServer。凭证没有
我没有显示我的真实用户名或应用程序密码。我错过了什么?
你遇到的问题是由于删除了不太安全的应用程序,设置在你的谷歌帐户
smtpServer.Credentials = New Net.NetworkCredential("username", "password")
你需要在你的谷歌账户上启用2fa,并创建一个应用程序密码,并在你的代码中使用它来代替你的实际密码。
切换到Xouath2并授权用户。
快速修复SMTP用户名和密码不接受错误