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

Django发送邮件本地正常服务器报错:SMTPServerDisconnected

解决Django部署后Gmail SMTP连接断开问题

针对你遇到的SMTPServerDisconnected at /contact Connection unexpectedly closed错误,结合本地正常、服务器异常的情况,从Gmail配置和服务器环境两个方向排查:

一、Gmail端配置检查

  • 确认两步验证与应用密码有效性:Gmail仅对开启了两步验证的账号提供应用密码权限,若未开启两步验证,应用密码无效,需先开启两步验证后重新生成应用密码替换EMAIL_HOST_PASSWORD。
  • 发件人权限限制:Gmail SMTP默认要求发件人必须是认证的账号本身(即你的my@gmail.com),当前send_mail中用userEmail作为发件人可能触发拦截。修改代码为:
    send_mail('title', 'message', settings.EMAIL_HOST_USER, [settings.EMAIL_HOST_USER], fail_silently=False,)
    
    若需显示用户邮箱作为回复地址,可在邮件内容里添加Reply-To头,通过html_message参数或EmailMessage类实现。

二、服务器环境排查

  • 测试SMTP连通性:在服务器终端执行以下命令,验证能否正常连接Gmail SMTP服务器:
    telnet smtp.gmail.com 587
    
    若无法连通,即使服务商说端口正常,也可能是服务器出站防火墙/安全组未开放587端口,需联系服务商确认出站规则。
  • DNS解析测试:在服务器上执行nslookup smtp.gmail.com,检查是否能正常解析到Gmail的SMTP服务器IP,若解析失败,需调整服务器DNS配置(比如换成8.8.8.8)。
  • 尝试切换SSL端口:将配置改为使用465端口和SSL协议,测试是否能正常发送:
    EMAIL_PORT = 465
    EMAIL_USE_SSL = True
    EMAIL_USE_TLS = False
    
  • 检查服务器IP信誉:部分服务器IP可能被Gmail列入黑名单,导致连接被拒绝,可通过发送测试邮件到其他邮箱排查IP是否受限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:12:38