Flask-Mail не отправляет электронные письма, об ошибках не сообщается
Все, я пытаюсь настроить флеш-почту для отправки уведомлений на мою электронную почту, когда пользователь регистрируется. Я не получаю сообщений об ошибках из сценария, использованного для отправки электронного письма, но на самом деле ничего не отправляется, или, по крайней мере, ничего не принимается.
Существует ли файл журнала, который может показать, было ли отправлено, отклонено письмо или, возможно, возникла проблема при входе на сервер? Как отследить эту проблему?
Есть идеи здесь?
3 ответа
Flask-Email
использование smtplib
который может установить уровень отладки: https://github.com/mattupstate/flask-mail/blob/master/flask_mail.py. Вы можете установить его с MAIL_DEBUG = True
или же DEBUG = True
, Также проверьте, что MAIL_SUPPRESS_SEND = False
а также TESTING = False
,
С отладкой я вижу в stdout
прогресс почты: успех, неудача, получатели и т. д.
Подробности смотрите: http://pythonhosted.org/Flask-Mail/.
У tbicr есть наиболее вероятное исправление, сначала проверьте MAIL_SUPPRESS_SEND.
В конечном итоге меня сожгли (будучи новичком в flask), когда вы создаете экземпляр своего объекта Mail(), убедитесь, что он установлен после того, как вы установили значения app.config. Объект Mail() не возвращается и не просматривает эти значения после факта, поэтому они по умолчанию будут иметь неверные значения. Что расстраивает, так это то, что вы не увидите никаких ошибок при попытке отправить сообщения со значениями по умолчанию / неверными. По крайней мере, на момент публикации.
Я знаю, что эта статья написана недавно, но я столкнулся с той же проблемой. Как упомянуто @tbicr, убедитесь, что app.testing
установлен в False
, Как говорится в Flask-Mail
документы здесь:
"Если настройка TESTING
установлен в True
, электронные письма будут подавлены. призвание send()
ваши сообщения не приведут к отправке сообщений ".
Это была именно моя проблема. Я внедрил Google reCAPTCHA в одну из моих форм и app.testing
был установлен на True
поэтому мне не приходилось каждый раз нажимать на кнопку reCAPTCHA. Удалив app.testing
или установив его на False
, электронные письма были в состоянии быть отправленными.