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

Django使用Gmail发邮件报错SMTPNotSupportedError求助

解决Django使用Gmail发送邮件时的SMTPNotSupportedError错误

1. 修正配置拼写错误

你的settings.py中存在关键拼写错误:EMAIL_USE_TSL = True 应改为 EMAIL_USE_TLS = True(正确拼写是TLS,而非TSL)。该错误会导致Django无法启用正确的加密协议,进而触发SMTP服务器不支持AUTH的报错。

修正后的完整邮件配置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '<username@gmail.com>'
EMAIL_HOST_PASSWORD = '<app_password>'
EMAIL_PORT = 587
EMAIL_USE_TLS = True  # 修正拼写错误
EMAIL_USE_SSL = False

2. 确认Gmail应用密码有效性

  • 必须先开启Google账户的两步验证,才能生成有效的应用密码。
  • 应用密码是第三方应用专用的登录凭证,并非你的Google账户密码,确保复制时没有多余空格或字符。

3. 验证网络与端口设置

  • 端口587搭配EMAIL_USE_TLS = True是Gmail SMTP的标准配置;若改用SSL加密,需将端口改为465,同时设置EMAIL_USE_SSL = True、EMAIL_USE_TLS = False。
  • 检查防火墙、代理或VPN是否拦截了对smtp.gmail.com的587端口请求。

4. 测试修正后的配置

修改settings.py后重启Django项目,再执行以下代码测试:

from django.conf import settings
from django.core.mail import send_mail

send_mail(
    subject='测试邮件',
    message='这是一封测试邮件',
    from_email=settings.EMAIL_HOST_USER,
    fail_silently=False,
    recipient_list=['<username@gmail.com>']
)

若仍报错,可直接用smtplib测试连接,排除Django层面的问题:

import smtplib

try:
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login('<username@gmail.com>', '<app_password>')
    print("SMTP连接成功")
    server.quit()
except Exception as e:
    print(f"连接错误: {e}")

内容的提问来源于stack exchange,提问作者Bastian Johannesen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:05:18