Django使用AOL邮箱发信报SMTPServerDisconnected连接关闭错误求解
问题修复方案
- 优先检查AOL应用密码配置
AOL目前禁止第三方客户端直接使用账号原密码登录SMTP服务,你需要先进入AOL账号安全设置,开启两步验证,再生成专属的第三方应用密码,将该密码替换你当前环境变量中存储的EMAIL_PASSWORD值。 - 修正发件人地址配置
AOL SMTP服务要求发件人地址必须与登录账号完全一致,你当前send_mail方法中传入的发件人是noreply@superlists,与你的myemail@aol.com不匹配,将该参数替换为你的AOL邮箱地址即可。 - 补充SMTP超时配置
在settings.py的邮件配置中新增EMAIL_TIMEOUT = 10,避免连接超时导致服务端主动断连。 - 本地最小化验证SMTP连通性
先运行以下测试脚本排除网络、账号权限类问题,确认SMTP链路正常后再调试Django业务代码:import smtplib, ssl from email.mime.text import MIMEText context = ssl.create_default_context() with smtplib.SMTP_SSL("smtp.aol.com", 465, context=context) as server: server.login("你的AOL邮箱", "你的应用密码") msg = MIMEText("测试邮件内容") msg["Subject"] = "测试邮件" msg["From"] = "你的AOL邮箱" msg["To"] = "接收测试的邮箱" server.sendmail("你的AOL邮箱", "接收测试的邮箱", msg.as_string()) - 修复Python 3.6 SSL兼容问题
你使用的Python 3.6默认SSL协议版本可能与AOL当前要求的TLS 1.2不兼容,可自定义Django SMTP后端指定协议版本,或者升级Python版本到3.8+解决兼容问题。 - 顺带修复认证后端代码错误
你的PasswordlessAuthenticationBackend中创建用户的代码写为ListUser.object.create,缺少s,正确应为ListUser.objects.create,否则后续登录流程会触发属性错误。
内容的提问来源于stack exchange,提问作者MPsyko
相关产品推荐
相关产品推荐

