开启谷歌邮箱两步验证后用应用密码发邮件遇SMTP认证错误
Gmail两步验证下SMTP认证失败问题排查
问题描述
我给谷歌邮箱开启了两步验证,也设置了应用密码,但运行Python代码发送邮件时仍出现认证错误。(注:示例中的用户名和密码为占位符,实际使用了有效信息)
代码示例
def send_email(message): host = 'smtp.gmail.com' port = 465 username = 'example.com' password = "jpcimnjhfjelzwds" reciever = 'example1.com' context = ssl.create_default_context() with smtplib.SMTP_SSL(host, port, context=context) as server: server.login(username, password) server.sendmail(username, reciever, message) if __name__ == "__main__": send_email()
错误信息
smtplib.SMTPAuthenticationError: (535, b'5.7.8 用户名和密码不被接受。\n5.7.8 u3-20020ac24c23000000b004f75661a7e6sm583437lfq.36 - gsmtp')
解决建议
- 核对应用密码生成逻辑:必须在开启两步验证后,在谷歌账号安全设置中生成针对邮件服务的应用密码,不要混用其他服务的应用密码。
- 检查用户名格式:Gmail的SMTP登录用户名必须是完整的邮箱地址(如
xxx@gmail.com),不能仅填写域名部分。 - 确认应用密码输入无误:应用密码是16位无空格的字符串,复制粘贴时避免多带空格或遗漏字符。
- 排查账号安全状态:登录Gmail网页版,查看是否有未处理的安全拦截提示,或当前IP是否被标记为异常。
内容的提问来源于stack exchange,提问作者Nihat Sadiqzada
相关产品推荐
相关产品推荐

