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

xel*_*nod 5 python email django

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

所以问题是我想收到包含服务器错误消息的电子邮件(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'
    
    Run Code Online (Sandbox Code Playgroud)

  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,
            },
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    我也尝试将'propagate'改为True,但没有成功

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

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

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

Hus*_*sam 0

当你有时,错误消息是什么DEBUG = True

也许您需要修复您的 500 模板,因为如果该模板损坏,您将无法看到 500 错误页面的 500 错误页面