Метод send_message
Метод send_message применяется к объекту
Mail и отправляет одно сообщение,
переданное в параметре message. Метод
устанавливает SMTP-соединение, отправляет письмо
и возвращает результат отправки. Если соединение
уже открыто, оно будет использовано повторно.
Синтаксис
mail.send_message(message)
Пример
Давайте создадим объект Message и отправим
его с помощью метода send_message:
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.example.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USERNAME'] = 'user@example.com'
app.config['MAIL_PASSWORD'] = 'password'
mail = Mail(app)
msg = Message(
subject='hello',
sender='user@example.com',
recipients=['admin@example.com']
)
msg.body = 'abcde'
res = mail.send_message(msg)
Результат выполнения кода:
None
Пример
Давайте отправим сообщение внутри обработчика маршрута и вернём текст ответа:
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.example.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USERNAME'] = 'user@example.com'
app.config['MAIL_PASSWORD'] = 'password'
mail = Mail(app)
@app.route('/send')
def send():
msg = Message(
subject='article',
sender='user@example.com',
recipients=['admin@example.com']
)
msg.body = 'hello'
mail.send_message(msg)
return 'sent'
Результат выполнения кода для адреса /send:
sent