Django使用GoDaddy邮箱发邮件触发SMTPAuthenticationError问题
Django配置Office 365 SMTP发送邮件认证失败解决指南
现有邮件配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.office365.com' EMAIL_HOST_USER = 'email@website.com' DEFAULT_FROM_EMAIL = EMAIL_HOST_USER EMAIL_HOST_PASSWORD = "password" EMAIL_PORT = 587 EMAIL_USE_SSL = False EMAIL_USE_TLS = True
触发的错误信息
SMTPAuthenticationError at /contact-ajax
(535, b'5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant. [BYAPR02CA0052.namprd02.prod.outlook.com 2023-10-25T10:46:26.078Z 08DBD4986B1B4B4D]')
错误触发代码位置:
# views.py 第130行 msg.send()
用户已确认:账号密码可正常登录GoDaddy网页邮箱,无需应用密码,但问题仍存在。
解决步骤
1. 开启租户级SMTP客户端认证
错误核心原因是Office 365租户禁用了SMTP客户端认证,需通过管理员账户操作:
- 登录Microsoft 365管理员后台
- 进入Exchange管理中心,找到SMTP客户端认证相关设置
- 启用租户范围内的SMTP客户端认证权限
- 确认目标邮箱的SMTP权限未被租户设置单独限制
2. 检查GoDaddy邮箱托管限制
由于邮箱由GoDaddy托管,需确认平台侧配置:
- 登录GoDaddy账户,进入对应邮箱的管理界面
- 检查SMTP访问权限是否被平台限制
- 确认是否需要使用GoDaddy专属SMTP服务器(而非smtp.office365.com)
3. 验证Django配置细节
- 确保
EMAIL_HOST_PASSWORD为正确账户密码,无转义错误 - 确认
DEFAULT_FROM_EMAIL与EMAIL_HOST_USER完全一致,Office 365要求发件人必须是已验证账户 - 保持
EMAIL_PORT=587、EMAIL_USE_TLS=True的标准配置不变
内容的提问来源于stack exchange,提问作者Samuel M.
相关产品推荐
相关产品推荐

