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

Django配置雅虎SMTP发邮件报SMTPServerDisconnected错误

Django对接雅虎SMTP发信报Connection unexpectedly closed修复方案

该错误发生在SMTP登录认证阶段,由雅虎服务器主动断开连接触发,和之前尝试修改的端口、host参数无关,核心是认证逻辑不符合雅虎邮箱的安全规则,按以下步骤修复即可:

  • 替换登录凭证为雅虎应用专用密码
    雅虎邮箱默认禁止第三方客户端使用账号日常登录密码走SMTP发信,必须使用单独生成的应用专用密码,这是90%以上该报错的诱因:
    1. 登录雅虎邮箱网页端,进入账户安全设置页
    2. 先开启账号两步验证,未开启两步验证的账号无法生成应用专用密码
    3. 找到「生成应用密码」入口,应用类型选「其他」,自定义备注名(比如Django业务站),生成16位长度的专用密码
    4. 将settings.py中EMAIL_HOST_PASSWORD字段的值替换为该16位密码,不要保留输入时的空格
  • 补全邮箱配置的缺失参数
    现有配置缺少超时、默认发件人等雅虎SMTP强制校验的参数,将邮箱配置段替换为如下内容:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
# 增加连接超时配置,避免握手阶段被静默断开
EMAIL_TIMEOUT = 30
EMAIL_HOST = 'smtp.mail.yahoo.com'
EMAIL_PORT = 587
# 这里填完整的雅虎邮箱地址,不要省略@yahoo.com后缀
EMAIL_HOST_USER = '你的雅虎邮箱全称'
# 这里填上一步生成的16位应用专用密码,不要填日常登录密码
EMAIL_HOST_PASSWORD = '生成的16位应用专用密码'
# 显式指定默认发件人,和认证账号保持一致,避免被雅虎判定为伪造发件人
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
  • 优化视图层发信逻辑,避免直接抛500错误
    现有代码未做参数校验和异常捕获,不仅发信失败会返回500,传入的商品类型ID不存在时也会触发索引报错,将post方法的发信逻辑调整为如下内容:
from django.conf import settings
from django.core.mail import EmailMessage
from django.contrib import messages

def post(self,request):
    user_email = request.POST.get('mail')
    type_pk = request.POST.get('type')
    # 先校验必填参数
    if not user_email or not type_pk:
        messages.error(request, "提交信息不完整,请重新填写")
        return redirect('/')
    try:
        prod_type = models.ProductTypes.objects.get(pk=type_pk)
        email = EmailMessage(
            subject='Qazpoligraph',
            body=prod_type.name,
            from_email=settings.DEFAULT_FROM_EMAIL,
            to=[user_email]
        )
        # 调试阶段可保持fail_silently=False打印详细错误,正式环境可改为True
        email.send(fail_silently=False)
        messages.success(request, "订单提交成功")
    except Exception as e:
        # 可自行添加日志记录逻辑,不要直接抛出异常导致500
        messages.error(request, "提交失败,请稍后重试")
    return redirect('/')
  • 网络连通性排查
    如果完成上述配置后依然报错,切换手机热点测试连接,部分本地运营商、公司网络会默认拦截587/465等SMTP常用端口,导致连接被中途切断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 06:36:16