我有一个发送电子邮件的Django应用程序。生产服务器有电子邮件服务器,但我的本地计算机没有。我希望能够在本地测试电子邮件的发送。有没有办法让django不通过电子邮件服务器发送,而只是打印到文件或控制台?
发布于 2011-01-10 06:15:31
你可以用configure your application to use the Console Backend发送电子邮件。它将电子邮件写到标准输出,而不是发送。
更改您的settings.py,使其包含以下行:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
不要忘了在生产过程中删除它。
发布于 2011-01-10 05:47:19
Python有一个小的SMTP服务器built-in。您可以使用以下命令在第二个控制台中启动它:
python -m smtpd -n -c DebuggingServer localhost:1025
这将简单地打印所有发送到控制台中localhost:1025
的邮件。
您必须配置Django才能在settings.py
中使用此服务器
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
发布于 2011-01-10 07:35:40
您可以配置您的应用程序将电子邮件写出到临时文件中,而不是发送它们(类似于Daniel Hepper的回答)。
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = 'tmp/email-messages/'
这会将每个新消息保存为单独的文件。如果您正在发送成堆的电子邮件,并且不想使用回滚功能,则此功能非常有用。
https://stackoverflow.com/questions/4642011
复制相似问题