Метод send
Метод send применяется к объекту соединения
Connection и выполняет отправку письма.
Первым параметром передаётся объект сообщения
Message, который уже содержит тему, отправителя,
получателей и тело письма. Метод возвращает объект
соединения, что позволяет строить цепочки вызовов.
Синтаксис
Connection.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_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'user@example.com'
app.config['MAIL_PASSWORD'] = 'password'
mail = Mail(app)
@app.route('/')
def index():
msg = Message(
subject='hello',
sender='user@example.com',
recipients=['user@example.com']
)
msg.body = 'article'
with mail.connect() as conn:
conn.send(msg)
return 'sent'
Результат выполнения кода при переходе на адрес /:
sent
Пример
Давайте отправим несколько писем в рамках одного соединения, используя возвращаемый объект:
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_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'user@example.com'
app.config['MAIL_PASSWORD'] = 'password'
mail = Mail(app)
@app.route('/')
def index():
with mail.connect() as conn:
for name in ['user', 'abcde']:
msg = Message(
subject='hello',
sender='user@example.com',
recipients=[name + '@example.com']
)
msg.body = 'article'
conn.send(msg)
return 'sent'
Результат выполнения кода при переходе на адрес /:
sent
Смотрите также
-
класс
Connection,
который представляет соединение с почтовым сервером -
метод
send_message,
который отправляет письмо без явного соединения -
класс
Mail,
который управляет почтовыми отправками в приложении -
метод
connect,
который открывает соединение с почтовым сервером