Django不发送有关500错误的消息

时间:2015-06-14 04:35:06

标签: python django email

好。所以我真的不满意我可能会发布另一个重复的问题,但没有任何相关的东西似乎对我有帮助。

所以问题是我想收到包含服务器错误消息的电子邮件(500),我不会。

我知道什么:

  1. 我的本地计算机上的一切正常:我设置DEBUG = False时收到了我的消息。他们中的太多,诚实。
  2. 在生产服务器上的django.core.mail.mail_admins()内拨打./manage.py shell工作正常:我收到了我的电子邮件,因为我收到了send_email()从视图中发送的电子邮件
  3. 我在生产服务器上设置了DEBUG = False
  4. 我试图通过弄乱我的主页模板以及缺少括号来获取电子邮件,并将assert 0字符串放入我的主视图中。我正在使用我的500.html渲染。
  5. 以下是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'
    

  6. 以下是我在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,
            },
        }
    }
    

    我也试过改变传播&#39;是真的,但没有成功

  7. 这是来自settings.py的我的ADMINS: ADMINS = (('xelnod', 'xelnod@gmail.com'),)
  8. 我正在使用Django 1.7和Python 2.7.6
  9. 生产服务器正在运行&#39; 57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU / Linux&#39;
  10. 我在这里: https://stackoverflow.com/questions/1414130/
    和这里: https://stackoverflow.com/questions/17374909/
    甚至在这里: https://stackoverflow.com/questions/19634962/(所以我确实已经运行sudo apt-get install sendmail),
    在一些other places中 - 遗憾的是,没有运气。

  11. ...我错过了什么(我打赌这会是非常愚蠢的事情......)?

    UPD:我注意到当我在本地测试时,我只接收有关我的静态文件的电子邮件 - 没有关于破坏的模板或AssertionError,所以,我想,它一定是我的错误级别或我的500错误不足以让Django给他们发电子邮件...尝试将设置处理程序和记录器级别设置为INFO,但没有任何改变

1 个答案:

答案 0 :(得分:0)

DEBUG = True后的错误消息是什么?

也许你需要修复你的500模板,因为如果那个模板坏了,你就看不到500错误页面的500错误页面