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

如何解决Django使用Gmail发送邮件时的SMTPConnectError问题?

解决Django使用Gmail发送邮件时SMTPConnectError (421, b'Service not available')问题

你的Django邮件配置如下:

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_USE_TLS = True
EMAIL_PORT = 587
EMAIL_HOST_USER = "example@gmail.com"
EMAIL_HOST_PASSWORD = "password"

出现错误:

SMTPConnectError at /send/
(421, b'Service not available')

以下是针对性的解决步骤:

  • 检查网络端口限制
    部分网络(如企业内网、校园网)会屏蔽SMTP的587端口,可尝试切换到465端口并启用SSL加密,修改配置如下:

    EMAIL_USE_TLS = False
    EMAIL_USE_SSL = True
    EMAIL_PORT = 465
    

    同时可以用命令测试网络连通性:telnet smtp.gmail.com 587 或 curl -v smtp://smtp.gmail.com:587,如果无法连通,说明网络层面被限制,需要联系网络管理员。

  • 验证应用专用密码的正确性
    确保你的Google账户已经开启两步验证,应用专用密码是在开启两步验证后生成的,且生成时选择的应用类型为「邮件」。检查密码是否输入错误,注意不要包含多余空格或特殊字符。

  • 排查Google账户安全拦截
    登录你的Google账户,查看「安全活动记录」,确认是否有来自当前服务器/IP的登录请求被拦截。如果有,手动允许该设备的访问权限,避免Google的安全机制阻止连接。

  • 临时测试本地网络环境
    如果是服务器部署的应用,可尝试在本地开发环境用相同配置测试,排除服务器网络的问题。如果本地能正常发送,说明服务器网络存在限制。

内容的提问来源于stack exchange,提问作者Chinyere Unamba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:39:25