2010-07-30 50 views
1

如何获得django send_mail发送邮件的结果。我运行它本地,我send_mail到我的电子邮件,它返回True,但没有发信(因为我没有任何smtp设置)。但结果是真的。如何获得真正的结果?django send_mail得到结果

回答

3

Django使用异常来处理电子邮件发送问题。 send_mail返回的值是发送的电子邮件数量。

如果你没有得到一个异常,也可能是一些事情之一:

  • 你必须fail_silently设置为true(默认为false)
  • 您使用不同的电子邮件后端(smtp是1.2+的默认设置,是早期版本的唯一选项)
  • 邮件实际上正在发送,但其他信息有误(电子邮件服务器,错误的电子邮件地址,垃圾邮件文件夹,gmail自动发送的邮件隐藏等)
4

使用django-mailer。它将电子邮件放入数据库并使用cron-jobbed管理命令将其发送出去。它可以帮助你跟踪这个问题,改善你的应用程序响应时间,也让你的生活更轻松。

+0

thnx,this intresting。 – Evg 2010-08-02 07:44:42

1

我也建议使用例外来确定电子邮件是否已发送。 如果您没有时间或选择设置电子邮件服务器,我会建议使用django + gmail。 U可以创建一个'假'gmail账户(如果你已经拥有gmail-acc,它可能被'baned'创建另一个账户),并使用它的SMTP作为发送电子邮件的机会,即使你正在使用django的开发服务器localy)。 How to is here