You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET 2010使用Gmail发邮件遇异常登录验证问题求解决

问题分析与解决

你的问题确实和谷歌账号的二次验证(两步验证)直接相关,同时谷歌当前的安全策略也禁止了直接使用账号密码通过SMTP登录的方式,所以会触发异常活动检测并登出账号。

具体解决步骤

1. 开启两步验证(推荐,提升账号安全性)

如果你的账号还没开启两步验证,先进入谷歌账号的「安全」页面开启该功能。

2. 生成应用专用密码

  • 登录谷歌账号,进入「安全」设置界面
  • 找到「应用专用密码」选项(仅当两步验证开启后可见)
  • 选择「邮件」作为应用类型,生成一个16位无空格的专用密码
  • 将VB.NET代码中的passW替换为这个专用密码,禁止使用原账号密码

3. 代码优化与验证

原代码中重复实例化了MailMessage,可调整为更简洁的版本,同时确保SMTP配置正确:

Try
    Dim smtpserver As New SmtpClient()
    ' 替换为你的邮箱和生成的应用专用密码
    smtpserver.Credentials = New Net.NetworkCredential(emailFrom, "你的应用专用密码")
    smtpserver.Port = 465 ' 587(TLS)也可,需保持EnableSsl=True
    smtpserver.Host = "smtp.gmail.com"
    smtpserver.EnableSsl = True

    Dim mail As New MailMessage()
    mail.From = New MailAddress(emailFrom)
    mail.To.Add(emailTo)
    mail.Subject = "Subject"
    mail.Body = "hello 2024"

    smtpserver.Send(mail)
    MsgBox("Mail Sent")
Catch ex As Exception
    MsgBox(ex.ToString)
    Close()
End Try

补充说明

谷歌已取消「不太安全的应用访问」选项,所以即使未开启两步验证,也无法直接用账号密码登录SMTP。最稳妥的方式是开启两步验证后使用应用专用密码。如果后续升级.NET框架,建议使用MailKit库,它更好地支持现代OAuth2认证方式。

内容的提问来源于stack exchange,提问作者Greg Wynner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 22:52:32