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

谷歌停用低安全应用后C#如何通过System.Net.Mail发送Gmail邮件

问题原因

2022年5月30日谷歌正式停用「低安全应用访问」权限后,直接使用谷歌账号主密码通过第三方客户端走SMTP发信的认证方式会被服务端直接拦截,The SMTP server requires a secure connection or the client was not authenticated报错就是该策略调整触发的。原有代码中的SMTP基础配置(587端口、smtp.gmail.com主机、开启SSL)本身配置正确,无需调整。

修复方案

仅需调整认证凭证即可让原有代码恢复可用,操作步骤如下:

  • 为发信使用的谷歌账号开启两步验证(2FA):个人账号可直接在账号安全设置中开启;企业/教育版Workspace账号需要先由租户管理员在后台放开账号开启两步验证的权限。
  • 两步验证生效后,在账号安全设置页找到「应用专用密码」入口,应用类型选择「邮件」,设备类型选择「其他」并自定义填写程序标识,生成16位长度的应用专用密码。
  • 替换SMTP认证字段的密码值:将原代码中NetworkCredential传入的账号主密码,替换为刚生成的16位应用专用密码,其余代码逻辑无需改动。

调整后的认证配置代码参考:

// 其余SMTP、邮件内容配置保持不变,仅替换密码参数即可
smtp.Credentials = new NetworkCredential("example@gmail.com", "此处填写生成的16位应用专用密码");
注意事项
  • 「低安全应用访问」入口已被永久下线,不存在任何绕过限制直接使用主密码走SMTP发信的方法,所有声称可绕过该限制的公开方案均已失效。
  • 应用专用密码是谷歌为未实现谷歌OAuth登录的第三方客户端单独签发的认证凭证,与主账号密码权限隔离,若后续凭证泄露可直接在账号安全页单独撤销,无需修改主账号密码。
  • 开启两步验证后若找不到「应用专用密码」入口,先确认账号未被家长控制、企业安全策略限制,同时使用账号常用登录IP访问设置页,非常用登录环境下谷歌会隐藏该入口以防范账号盗用。
  • 刚生成应用专用密码后如果测试发信仍返回认证错误,等待1-2分钟后重试即可,谷歌的权限配置存在短暂同步延迟。

内容的提问来源于stack exchange,提问作者Saul Muñoz Garcia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 18:16:01