Не приходят письма на почту с использованием Flask-Mail
Настройки сервера SMTP
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_USERNAME = app.mail_settings.MAIL_USERNAME # введите свой адрес электронной почты здесь
MAIL_DEFAULT_SENDER = app.mail_settings.MAIL_USERNAME # и здесь
MAIL_PASSWORD = app.mail_settings.MAIL_PASSWORD # введите пароль
Отправка письма
from app import mail, app
from flask import render_template
from flask_mail import Message
from threading import Thread
def async_send_mail(app, msg):
with app.app_context():
mail.send(msg)
def send_email(subject, recipient, template, user, token):
msg = Message(subject=subject, sender=app.config['MAIL_DEFAULT_SENDER'], recipients=[recipient])
msg.body = "confirm"
thr = Thread(target=async_send_mail, args=[app, msg])
thr.start()
return thr
# создание токена подтверждения email и отправка письма на почту
def send_confirm_email(user):
token = user.get_confirm_email_token()
print("Send confirm to " + str(user.email))
send_email("Confirm e-mail", user.email, 'mail/confirm.html', user, token)
# создание токена сброса пароля и отправка письма на почту
def send_reset_pass(user):
token = user.get_reset_password_token()
print("Send reset password to " + str(user.email))
send_email("Reset password", user.email, 'mail/reset_password_mail.html', user, token)
Важный момент - при отправке письма ошибок не возникает