配置正确但Django无法发邮件,同设置第三方工具可发送的排查求助
Django邮件无法实际发送的解决办法
核心问题
你当前配置的EMAIL_BACKEND是django.core.mail.backends.console.EmailBackend,这个后端仅会将邮件内容输出到控制台,不会通过SMTP服务器实际发送邮件——这就是你能在控制台看到邮件内容,但收件箱收不到邮件的直接原因。
第一步:修改邮件后端配置
将settings.py中的邮件后端替换为SMTP后端,这是Django实际发送邮件的核心配置:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
保存配置后重启Django服务,再执行发送测试。
额外检查项(避免其他潜在问题)
- 确认Zoho账号已开启SMTP服务,并且允许第三方客户端访问:部分邮箱需要生成专用应用密码(而非登录密码)用于SMTP验证,Zoho可在账户安全设置中配置
- 检查服务器防火墙/云服务安全组是否放行587端口的出站流量
- 验证环境变量加载是否正确:可以在视图函数中临时打印变量值确认
print("邮箱账号:", NOREPLYEMAIL) print("邮箱密码:", NOREPLYEMAILPASS) - 若遇到SSL/TLS相关错误,可确认
EMAIL_USE_TLS = True(587端口通常使用TLS加密),同时确保EMAIL_USE_SSL = False(SSL一般对应465端口)
验证效果
修改配置后,控制台不再输出邮件内容,testemail.send()方法会返回1表示发送成功,此时收件箱应该能收到测试邮件。
内容的提问来源于stack exchange,提问作者Majoris
相关产品推荐
相关产品推荐

