发送带有postfix的电子邮件django(没有明确的后缀服务器)

时间:2011-10-05 06:21:07

标签: python django email postfix-mta mta

我想在Django中模拟postfix sendmail命令,我不需要显式启动后缀服务器。

例如,如果我只是在命令行中输入以下内容:

sendmail recipient@example.com
my message body
^D

这将向recipient@example.com发送消息。我不需要明确启动后缀服务器。

似乎其他语言(Perl和PHP)具有基本上会复制它的绑定。但是,我找不到在Django / Python中做到这一点的方法。我得到的最接近的是设置

EMAIL_HOST = 'localhost'

settings.py中,然后手动执行

postfix start

这允许django send_mail()命令执行它的操作,但是如果没有在后台运行postfix服务器,有没有办法实现这一点?其他环境如何成功实现这一目标?

由于 -S

(并且不 - 我不想设置第三方gmail帐户来执行此操作 - 这是一个很难解决的问题。)

2 个答案:

答案 0 :(得分:0)

也许this会帮助你。没有亲自尝试过,但似乎没有适合您的需求,而没有设置后缀服务器的所有麻烦。

答案 1 :(得分:0)

模拟电子邮件传递的简单解决方案是使用Python调试服务器。以下以smtp模式在端口1025上运行它:

python -m smtpd -n -c DebuggingServer localhost:1025

您需要确保您的Django测试服务器在localhost上的端口1025处发送电子邮件,因此您可能需要在settings.py

EMAIL_PORT = 1025

当它正常工作时,测试服务器只会将Django发送的所有邮件直接回显到终端,这样您就可以在开发过程中密切关注输出。我最近在使用Ubuntu盒子时努力使postfix工作时使用了它 - 它只是在send_mail()挂起并打破了Django测试服务器。

这是Django doc with more info on email testing