Как стать автором
Обновить

Комментарии 11

Может кто поможет? Сломался на Flask-Mail. Иду по мануалу - не берет он ничего из переменных окружения.

В init

app = Flask(__name__)
app.config.from_object(Config)
mail = Mail(app)

во flask shell

Instance: C:\python\microblog\instance
>>> from app import mail
>>> mail.MAIL_SERVER
>>> app.config['MAIL_SERVER']
'localhost'

т.е. из конфига все грузится - Flask-Mail ничего не видит. Вроде как в ручную его инициализировать не надо. Тогда чего ему еще надо?

По текущему коду можно сказать, что вы собираетесь использовать эмулируемый сервер на своём компьютере, для определения проблемы нужны логи в момент ошибки и описание при каких действиях она появляется

При чем тут это? mail.MAIL_SERVER пустая, mail.send падает с "не найден сервер".

Вставил в код ручную инициализацию mail:

mail = Mail(app)
mail.MAIL_SERVER = app.config['MAIL_SERVER']
mail.MAIL_PORT = app.config['MAIL_PORT']

сразу все отработало без ошибок

Попробуйте такой способ, это называется отложенная инициализация и будет объяснена в 15 главе

mail = Mail()

app = Flask(__name__)
app.config.from_object(Config)
mail.init_app(app)

Если у вас нормально отрабатывают другие расширения, то посмотрите файл /app/mail.py, возможно в функции send_async_email(app, msg) не активируется контекст приложения, функции расширений во время выполнения обращаются к контексту приложения и берут сами все необходимые параметры, в flask shell вы отправляете сообщение в том же потоке, где контекст приложения загружен по умолчанию.

В общем допрошел урок. Все действительно работает. Не работает только во flask run. Хотя там же рядом я без проблем работаю с БД. Ну запишем в "фичи" :-)

Не работает ссылка:

Заменил, спасибо, что написали.

Нерабочая ссылка https://pythonhosted.org/Flask-Mail/ в параграфе:
Flask-Mail поддерживает некоторые функции, которые я здесь не использую, такие как списки Cc и Bcc. Обязательно ознакомьтесь с документацией Flask-Mail, если вас интересуют эти опции.

Заменил, спасибо, что написали

Тема с gmail немного не до конца раскрыта)) долго ковырялся пока дополнительную статью не прочел - https://mailtrap.io/blog/flask-send-email-gmail/
В общем если не очень получается - лучше сразу почитать, как gmail настроить

Тема с gmail взята полностью из оригинальной статьи и материал проверен временем, поскольку в учебнике 2018 происходит аналогичная настройка.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории