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

谷歌下线低安全应用后 本地Django如何测试SMTP发信至谷歌邮箱

本地Django环境向Gmail发邮件实现方案

谷歌下线低安全性应用访问权限后,本地环境通过SMTP向Gmail发信只能使用应用专用密码方案,具体操作步骤如下:

前置准备

你使用的Gmail账号必须先开启两步验证,这是生成应用专用密码的强制前置条件,未开启两步验证的账号无法使用SMTP发信,目前没有其他绕过方式。

步骤1:生成Gmail应用专用密码

  • 进入谷歌账号的安全设置页面,找到「应用专用密码」入口
  • 选择应用类型为「邮件」,设备选择当前本地开发所用设备
  • 点击生成后会得到16位长度的应用专用密码,这个密码只会展示一次,先妥善保存,后续配置要用到

步骤2:修改Django本地配置

打开本地Django项目的settings.py文件,添加/修改邮件相关配置项:

# 指定SMTP邮件后端
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# 谷歌官方SMTP服务器地址
EMAIL_HOST = 'smtp.gmail.com'
# SMTP端口,优先用587走TLS加密
EMAIL_PORT = 587
EMAIL_USE_TLS = True
# 发信Gmail账号,填完整邮箱地址
EMAIL_HOST_USER = '你的Gmail邮箱地址@gmail.com'
# 这里填刚才生成的16位应用专用密码,不要填谷歌账号的主密码
EMAIL_HOST_PASSWORD = '16位应用专用密码'
# 默认发件人地址,和上面的邮箱保持一致即可
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

如果587端口连接失败,可以替换为465端口走SSL加密,对应配置修改为:

EMAIL_PORT = 465
EMAIL_USE_TLS = False
EMAIL_USE_SSL = True

步骤3:功能测试

两种测试方式按需选择即可:

  • 真实发信测试
    在项目根目录执行命令进入Django交互shell:python manage.py shell
    在shell中执行以下测试代码:
    from django.core.mail import send_mail
    send_result = send_mail(
        subject='本地Django测试邮件',
        message='这是本地开发环境发出的SMTP测试邮件',
        from_email=None,
        recipient_list=['收信的Gmail地址'],
        fail_silently=False,
    )
    print(send_result)
    
    执行后返回值为1就代表发信请求提交成功,去对应Gmail的收件箱查收即可,没收到的话先检查垃圾邮件文件夹。
  • 本地无网调试
    如果你只是调试Django的发信逻辑、不需要真的把邮件发到公网,可以直接用Django自带的控制台邮件后端,不需要配置任何SMTP信息,触发的邮件内容会直接打印在运行服务的终端里,适合纯功能开发调试。
    仅需把settings.py里的邮件后端配置改为:
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
    

常见问题排查

  • 不要尝试用账号主密码直接登录SMTP,谷歌已经完全封禁了非OAuth、非应用专用密码的第三方SMTP访问
  • 复制应用专用密码时注意不要带入前后空格、换行符,密码本身不需要输入中间显示的分隔空格
  • 出现连接超时报错先检查本地网络是否能正常连通谷歌SMTP服务器,网络受限的环境无法直接连Gmail SMTP
  • 发信成功但收件箱找不到邮件,优先检查垃圾邮件、推广邮件分类

内容的提问来源于stack exchange,提问作者Abdelhamed Abdin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 13:06:08