Sto usando Django 1.8. Questo è il mio file impostazioni di base:Django non invia email di errore - come posso eseguire il debug?
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.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
ADMINS = (
('ME', '[email protected]'),
)
MANAGERS = ADMINS
E queste sono le mie impostazioni di produzione:
########## EMAIL CONFIGURATION
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = utils.get_env_setting('GMAIL_PASS')
EMAIL_SUBJECT_PREFIX = '[%s] ' % SITE_NAME
SERVER_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
########## END EMAIL CONFIGURATION
E 'usato per inviare email errore di produzione, ma si è fermato. Ho impostato una pagina che restituisce 500 errori in modo che possa testarlo ulteriormente - nessuna email viene inviata quando la carico.
Ho provato il debug le cose ovvie:
- Posso ancora accedere al
[email protected]
e non sembra essere stato bloccato. - Ho controllato il mio filtro antispam.
- Sono sicuro che
DEBUG
è impostato su false. - Credo che la variabile di ambiente
GMAIL_PASS
sia disponibile per l'utente Django.
Come posso eseguire il debug di questo ulteriore?
Prima di tutto, controlla che i messaggi vengano inviati. Impostare 'HOST' su' localhost', 'PORT' su' 1025', disabilitare 'TLS' ed eseguire un server SMTP fittizio usando questo comando:' python -m smtpd -n -c DebuggingServer localhost: 1025' – zopieux
In caso aiuta chiunque, mi ci è voluto un po 'per capire che non devi solo specificare 'mail_admins' sotto la chiave' handlers', ma devi ** anche ** abilitare quel gestore sotto la chiave 'logger' –