Python/Django SMTP DebugServer不会捕获电子邮件

Nea*_*ara 2 django smtp python-2.x smtpd

我以这种方式启动服务器(在mac上):

python -m smtpd -n -c DebuggingServer localhost:9999
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误或任何其他通知.我想这意味着一切都好,如果我错了,请纠正我.

但是当我从django shell或我的应用程序发送电子邮件时,使用带有fail_silently = False的send_mail/mail_managers,我在smtpd调试服务器上看不到任何输出.我没有得到任何SMTP错误,send_mail/mail_managers返回1.

我跑了:

lsof -i | grep LISTEN
Run Code Online (Sandbox Code Playgroud)

看看是否有人收听9999端口,而且没有人收听.这是否意味着smtp调试服务器出了问题?它应该显示在听众列表中吗?

我的电邮设置:

EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 9999
Run Code Online (Sandbox Code Playgroud)

sne*_*awo 6

我认为你需要使用默认的smtp后端

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
Run Code Online (Sandbox Code Playgroud)

  • 为了解释一下,[虚拟后端](https://docs.djangoproject.com/en/dev/topics/email/#dummy-backend)对您的电子邮件没有任何作用.您需要使用默认后端实际将电子邮件发送到调试邮件服务器. (2认同)