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

Django通过本地DebuggingServer localhost:1025发送邮件失败如何解决

问题原因排查及解决方案

你看到的asyncore/asynchat弃用警告仅为模块废弃提示,不属于功能报错,不是邮件发送失败的直接原因。

  • DebuggingServer的工作逻辑误解:你启动的smtpd DebuggingServer是本地调试用的假SMTP服务,仅会将接收到的邮件内容直接打印到启动服务的终端控制台,不会执行真实的邮件投递逻辑,自然不会把邮件发到你的Gmail邮箱。你可以先查看运行调试服务的终端窗口,确认是否有邮件内容输出,如果有就说明Django发信逻辑正常,只是你找错了收信位置。
  • Django邮件后端配置缺失:你贴出的配置中缺少EMAIL_BACKEND参数,需要确认该参数是否被设置为EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend',如果被误设为console(仅打印到Django控制台)、dummy(丢弃所有邮件)等后端,就不会向本地SMTP服务发信。
  • 端口通信被拦截:检查本地1025端口是否被其他程序占用,或者Windows系统防火墙、安全软件是否拦截了本地端口的通信。可以在启动调试服务后执行telnet localhost 1025命令测试端口连通性,无法连通的话需要更换端口或者放开拦截规则。
  • send_mail调用参数错误:检查代码中send_mail()的参数是否符合规范:收件人必须是列表格式,发件人地址不能为空,参数顺序不能颠倒(正确顺序是:邮件主题、邮件内容、发件人地址、收件人列表)。
优化方案

Python 3.10+版本的smtpd模块已经正式废弃,存在兼容性隐患,建议替换为官方推荐的aiosmtpd作为本地调试SMTP服务:

  1. 先安装依赖:pip install aiosmtpd
  2. 启动调试服务的命令替换为:python -m aiosmtpd -n -l localhost:1025

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:00