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

基于Socket实现Gmail发送邮件时遇535认证失败问题求助

Gmail SMTP Socket编程认证失败(535错误)解决方法

问题重现

通过Socket手动实现SMTP协议发送Gmail邮件,已关闭两步验证,但执行代码时返回535-5.7.8 Username and Password not accepted认证失败错误。

核心原因

当前Gmail已不再支持未启用两步验证的账号使用普通密码进行第三方SMTP登录,即使关闭两步验证,普通密码也无法通过SMTP认证。必须使用应用专用密码,而生成该密码的前提是开启账号的两步验证。

解决步骤

  • 重新启用账号的两步验证
    登录Google账号安全中心,找到“两步验证”选项并开启,按照指引完成验证设置。
  • 生成应用专用密码
    开启两步验证后,在安全中心找到“应用专用密码”选项,选择“邮件”作为应用类型,生成一个16位的专用密码。
  • 替换代码中的凭据
    将代码里的email_address改为完整的Gmail邮箱地址(如xxx@gmail.com),password替换为刚生成的应用专用密码:
    email_address = "your-full-gmail-address@gmail.com"
    password = "your-16-digit-app-specific-password"
    
  • 优化EHLO命令(可选)
    将代码中的EHLO Alice改为EHLO localhost,避免服务器对自定义标识的识别问题:
    ehloCommand = 'EHLO localhost\r\n'
    

验证修改

重新运行代码,此时SMTP认证环节应返回235成功响应,后续可正常完成邮件发送流程。

内容的提问来源于stack exchange,提问作者Davut Boztaş

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 19:23:27