谷歌停用低安全应用后Python3脚本Gmail SMTP发信替代方案
最简单的Gmail SMTP发信替代方案
谷歌停用「允许低安全应用访问」功能后,对原有Python脚本改动最小、操作最简单的方案是使用Gmail应用专用密码(App Password),不需要额外对接复杂的OAuth2授权流程,不需要更换SMTP服务器,原有代码逻辑几乎不用调整。
前置要求
- 你的Gmail账号必须先开启两步验证(2FA),这是使用应用专用密码的强制前提,个人普通Gmail账号均可自主开启,Google Workspace企业/教育账号如果未开放该功能需要联系域管理员开通。
操作步骤
1. 开启账号两步验证
- 进入Google账号安全设置页,找到「两步验证」选项,按照页面提示完成身份校验,可选择手机号验证码、Google身份验证器等方式完成绑定,成功开启后即可看到应用专用密码的入口。
2. 生成应用专用密码
- 在安全设置页进入「应用专用密码」配置项
- 应用类型选择「其他(自定义名称)」,输入方便你识别的备注名,比如
Python发信脚本,点击生成按钮 - 页面会弹出16位长度的专用密码,该密码仅在生成时完整展示一次,关闭弹窗后无法再次查看,请妥善保存,遗失后直接重新生成即可,旧密码会自动失效
3. 修改脚本配置
原有Python发信代码完全不需要调整逻辑,只需要替换登录密码即可:
- SMTP服务器保持为
smtp.gmail.com,端口仍使用原配置的465(SSL加密)或587(STARTTLS加密) - 登录用户名仍为你的完整Gmail邮箱地址
- 登录密码替换为刚才生成的16位应用专用密码即可,复制时注意不要带页面显示的分隔空格,直接输入连续的16位字符
可直接运行的测试代码(Python3标准库实现)
import smtplib from email.mime.text import MIMEText # 替换为你自己的配置信息 sender_email = "你的完整Gmail地址@gmail.com" app_password = "你生成的16位应用专用密码" receiver_email = "收件人邮箱地址@xxx.com" # 构造普通文本邮件 msg = MIMEText("测试邮件内容", "plain", "utf-8") msg["Subject"] = "SMTP发信测试" msg["From"] = sender_email msg["To"] = receiver_email # 发信逻辑和之前完全一致 with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server: server.login(sender_email, app_password) server.send_message(msg) print("邮件发送成功")
常见注意事项
- 该方案为Google官方支持的正规发信方式,不需要依赖第三方中转服务,稳定性和之前使用低安全应用访问的体验完全一致
- 如果找不到应用专用密码入口,优先检查两步验证是否真的开启成功,部分刚开启2FA的账号等待1-2分钟刷新页面即可看到入口
- 应用专用密码和账号主密码权限隔离,就算专用密码泄露,也不会影响你账号主密码的安全,不需要用的时候直接在后台删除对应密码即可立刻收回权限
内容的提问来源于stack exchange,提问作者fckilagged
相关产品推荐
相关产品推荐

