首页 > 解决方案 > 出现错误 500 时,Django 没有给我发送电子邮件

问题描述

部署我的网站后,我想在出现错误 500 时收到一封包含错误的电子邮件。

我可以使用 send_mail 发送普通电子邮件。我也有DEBUG= False,ADMINS=[('name', 'email')]SERVER_EMAIL = "domain email", 但是我并没有收到任何电子邮件。

我相信这是因为我为 handler500 创建了一个自定义模板

网址.py

handler500 = myapp.error_500

视图.py

def error_500(request):
    data = {}
    return render(request,'.../error_500.html', data)

如何收到包含错误的电子邮件?

更新

删除自定义 handler500 后,我收到了错误电子邮件。所以我在自定义方法中的问题error_500,我知道如何设置电子邮件,但是如何获取错误报告并将其包含在正文中。我应该在 msg_plain 中放什么

视图.py

def error_500(request):
    if IN_PROD:
         sender='admin@myapp.com',
         to_email='admin@email.com',
         mail_subject='500 ERROR ALERT',
         msg_plain = DJANGO ERROR REPORT??? 

         send_mail(mail_subject, msg_plain,from_email=sender, recipient_list=[to_email])
    data = {}
    return render(request,'.../error_500.html', data)

标签: django

解决方案


的确切值是ADMINS多少?根据您的示例,这是错误的格式。它应该是:

ADMINS = [('name', 'name@email.com')]

不是

ADMINS = [('name'), ('name@email.com')]

推荐阅读