我正在使用Django 1.8.这是我的基本设置文件:
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', 'me@gmail.com'),
)
MANAGERS = ADMINS
Run Code Online (Sandbox Code Playgroud)
这些是我的制作设置:
########## 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 = 'my.error.account@gmail.com'
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
Run Code Online (Sandbox Code Playgroud)
它曾用于在生产中发送错误电子邮件,但已停止.我已经设置了一个返回500个错误的页面,以便我可以进一步测试 - 加载时不会发送电子邮件.
我试过调试显而易见的事情:
my.error.account@gmail.com,它似乎没有被阻止.DEBUG是假的.GMAIL_PASSDjango用户可以使用环境变量.我该如何进一步调试?
对于问题的调试部分
@zopieux 评论道:
首先,检查邮件是否正在发送。放:
Run Code Online (Sandbox Code Playgroud)EMAIL_HOST = 'localhost' EMAIL_PORT = 1025 EMAIL_USE_TLS = False EMAIL_USE_SSL = False然后运行一个虚拟的 SMTP 服务器:
python -m smtpd -n -c DebuggingServer localhost:1025
如果可行,您可以恢复更改并按照相关问题中的说明手动发送电子邮件:
from django.core.mail import EmailMessage
email = EmailMessage('Hello', 'World', to=['user@gmail.com'])
email.send()
Run Code Online (Sandbox Code Playgroud)对于使用 Google 作为 SMTP 服务器的功能:
该问题最流行和更新的答案指出,Google 不再支持此功能(2016 年),您应该尝试寻找另一个 SMTP 服务器。
我已经发布了我的工作日志配置以供参考。
| 归档时间: |
|
| 查看次数: |
4509 次 |
| 最近记录: |