【发布时间】:2015-08-29 19:34:56
【问题描述】:
好的。所以我真的很不高兴我可能会发布另一个重复的问题,但似乎没有任何相关的东西可以帮助我。
所以问题是我想接收包含服务器错误消息 (500) 的电子邮件,而我不这样做。
我知道什么:
- 在我的本地机器上一切正常:当我设置
DEBUG = False时,我收到了我的消息。老实说,他们太多了。 - 从生产服务器上的
./manage.py shell内部调用django.core.mail.mail_admins()工作正常:我收到了我的电子邮件,因为我从一个视图中收到了send_email()发送的电子邮件 - 我在生产服务器上设置了
DEBUG = False - 我试图通过将我的主页模板弄乱并缺少括号以及将
assert 0字符串放入我的主页视图来获取电子邮件。我的 500.html 渲染得很好。 -
这是我在 settings.py 中的电子邮件设置:
EMAIL_HOST = 'smtp.yandex.ru' EMAIL_HOST_USER = 'noreply@<project-name>.ru' EMAIL_HOST_PASSWORD = '<password>' EMAIL_PORT = 587 EMAIL_USE_TLS = True DEFAULT_FROM_EMAIL = 'noreply@<project-name>.ru' SERVER_EMAIL = 'noreply@<project-name>.ru' - 以下是我在 settings.py 中的日志记录设置:
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', } }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' } }, 'loggers': { 'django': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': False, }, } }我也尝试将“传播”更改为 True,但没有成功
- 这是来自 settings.py 的我的管理员:
ADMINS = (('xelnod', 'xelnod@gmail.com'),) - 我正在使用 Django 1.7 和 Python 2.7.6
- 生产服务器运行在 '57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux'
- 我在这里:
https://stackoverflow.com/questions/1414130/,
和这里: https://stackoverflow.com/questions/17374909/,
甚至在这里: https://stackoverflow.com/questions/19634962/(所以我已经运行了sudo apt-get install sendmail),
还有一些 other places — 不幸的是,没有运气。
……我错过了什么(我敢打赌这会很愚蠢……)?
UPD:我注意到,当我在本地测试这个时,我只收到关于我的静态文件的电子邮件 - 没有关于损坏的模板或 AssertionError,所以,我想,这一定是我的错误级别或我的 500 个错误还不足以让 Django 向他们发送电子邮件……尝试将处理程序和记录器级别设置为 INFO,但没有任何改变
【问题讨论】:
-
尝试更改
loggers=>'level': 'DEBUG'