这详细说明了本杰明的回答。如果我没有安装 postfix、sendmail 或 exim 等本地电子邮件服务器,我测试电子邮件的一种方法是运行 python 电子邮件服务器。您可以使用 sudo 在端口 25 上运行它,或者只使用 > 1024 的端口(保留端口):
python -m smtpd -n -c DebuggingServer localhost:1025
#sudo python -m smtpd -n -c DebuggingServer localhost:25
为了使用您当前的 django 应用程序代码进行测试,您可以临时更改 settings.py 以将其包含在底部:
EMAIL_HOST, EMAIL_PORT, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD = 'localhost', 1025, None, None
现在测试您的电子邮件,或者您可以在另一个终端窗口的 ./manage.py shell 中执行此操作,如下所示:
python manage.py shell
并粘贴此代码以发送电子邮件:
from django.core.mail import send_mail
send_mail('Subject here', 'Here is the message.', 'messanger@localhost.com',['any@email.com'], fail_silently=False)
无需使用任何真实的电子邮件,因为您会在终端中看到所有内容。您可以将其转储到适当的容器中,例如 .html 以进行进一步测试。