首页 > 解决方案 > 在电子邮件错误方面需要帮助

问题描述

我似乎无法通过电子邮件发送我的错误,它已成功记录但未发送任何电子邮件!没有回溯或任何其他错误,只是如果遇到错误代码 500,它会记录它但不会向管理员发送任何电子邮件!

我在互联网上尝试了许多解决方案,但都没有奏效!

这是我的 settings.py 的一部分:

ADMINS = [('Prithvi', '<email1>')]


#Email Settings

MAILER_LIST = ['<email1>']
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '<email2>' #EDITED
EMAIL_HOST_PASSWORD = '<password>'
EMAIL_USE_TLS = True
EMAIL_USE_SSL = False
EMAIL_USE_LOCALTIME = True
SERVER_EMAIL = '<email2>'
DEFAULT_FROM_EMAIL = '<email2>'

#Logger and Handler settings

# Python logging package
import logging

# Standard instance of a logger with __name__
stdlogger = logging.getLogger(__name__)

# Custom instance logging with explicit name
dbalogger = logging.getLogger('dba')

LOGGING = {
    'version': 1,
    'disable_existing_loggers': True,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse',
        },
        'require_debug_true': {
            '()': 'django.utils.log.RequireDebugTrue',
        },
    },
    'formatters': {
        'simple': {
            'format': '[%(asctime)s] %(levelname)s %(message)s',
            'datefmt': '%Y-%m-%d %H:%M:%S'
        },
        'verbose': {
            'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s',
            'datefmt': '%Y-%m-%d %H:%M:%S'
        },
    },
    'handlers': {
        'console': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },
        'development_logfile': {
            'level': 'DEBUG',
            'filters': ['require_debug_true'],
            'class': 'logging.FileHandler',
            'filename': r'C:/Users/Prithvi/Desktop/Prithvi/django/pd1/tmp/django_dev.log',###
            'formatter': 'verbose'
        },
        'production_logfile': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': r'C:/Users/Prithvi/Desktop/Prithvi/django/pd1/var/log/django/django_production.log',###
            'maxBytes' : 1024*1024*100, # 100MB
            'backupCount' : 5,
            'formatter': 'simple'
        },
        'dba_logfile': {
            'level': 'DEBUG',
            'filters': ['require_debug_false','require_debug_true'],
            'class': 'logging.handlers.WatchedFileHandler',###
            'filename': r'C:/Users/Prithvi/Desktop/Prithvi/django/pd1/var/log/dba/django_dba.log',
            'formatter': 'simple'
        },
    },
    'root': {
        'level': 'DEBUG',
        'handlers': ['console'],
    },  
    'loggers': {
        'coffeehouse': {
            'handlers': ['development_logfile','production_logfile'],
         },
        'dba': {
            'handlers': ['dba_logfile'],
        },
        'django': {
            'handlers': ['development_logfile','production_logfile'],
        },
        'py.warnings': {
            'handlers': ['development_logfile'],
        },
    }
}

我只是希望我知道是什么原因造成的,而且官方文档上也没有太多关于这个主题的信息来帮助我!

任何帮助将不胜感激!

标签: pythondjango

解决方案


这部分 settings.py 看起来不错。不久前,我尝试了同样的事情,但意识到 gmail 不允许您如此轻松地发送电子邮件。检查您的 gmail 收件箱,您一定收到了一封电子邮件,上面写着“尝试被阻止”。它标志着您的应用程序“不够安全”。您可以去其他邮件服务提供商,例如 zoho,并使用他们的 smtp 服务器。希望有帮助!

'handlers': {
    'mail_admins': {
        'level': 'ERROR',
        #'filters': ['require_debug_false'],
        'class': 'django.utils.log.AdminEmailHandler'
    },
 }

 'loggers': {
'django': {
    'handlers': ['file', 'console', 'mail_admins',],
    'propagate': True,
    'level': 'DEBUG',
},

推荐阅读