我正在寻找一种通过向 settings.ADMINS 发送邮件来报告所有异常(如错误 500)的方法。
我已将 Debug 设置为 False,但是在我引发异常时的代码中,没有发送任何邮件。
我使用 django 1.4
谢谢 !
发布您的相关设置(记录器、电子邮件和管理员)可能有助于进一步帮助您,但有几点建议:
来自 Django 的文档:
为了发送电子邮件,Django 需要一些设置来告诉它如何连接到您的邮件服务器。至少,您需要指定 EMAIL_HOST,可能还需要指定 EMAIL_HOST_USER 和 EMAIL_HOST_PASSWORD,但根据您的邮件服务器的配置,可能还需要其他设置。有关电子邮件相关设置的完整列表,请参阅 Django 设置文档。
和:
默认情况下,Django 将从 root@localhost 发送电子邮件。但是,某些邮件提供商会拒绝来自该地址的所有电子邮件。要使用不同的发件人地址,请修改 SERVER_EMAIL 设置。
对于 Gmail 帐户,它们可能如下所示:
EMAIL_HOST_USER = 'this-is-not-a-real-address@gmail.com'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
SERVER_EMAIL = EMAIL_HOST_USER
你检查过机器上的日志吗?像 Postfix 日志,或者它的邮件队列。也许电子邮件确实是由 Django 移交的,但 Postfix(或您正在使用的任何东西)由于某种原因(如上面引用的那个)无法发送它们。
此外,您可能对这个问题/答案感兴趣: How do you log server errors on django sites。我喜欢自己使用Sentry。