Класс Connection
Класс Connection инкапсулирует SMTP-соединение
с почтовым сервером. Он создаётся автоматически
при вызове методов send и send_message
у объекта Mail, но также может быть создан
вручную через менеджер контекста для отправки
нескольких писем в рамках одного соединения.
Основные методы класса: send и send_message.
Синтаксис
with mail.connect() as conn:
conn.send(message)
conn.send_message(subject, recipients, body)
Пример
Давайте создадим объект Mail и отправим
письмо через соединение, полученное методом
connect:
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)
with mail.connect() as conn:
msg = Message(
subject='hello',
recipients=['user@example.com'],
body='article'
)
conn.send(msg)
Результат выполнения кода:
"message 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)
with mail.connect() as conn:
for recipient in ['a@example.com', 'b@example.com']:
msg = Message(
subject='hello',
recipients=[recipient],
body='article'
)
conn.send(msg)
Результат выполнения кода:
"2 messages sent"
Пример
Давайте отправим письмо через метод
send_message, который принимает тему,
получателей и тело письма:
from flask import Flask
from flask_mail import Mail
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)
with mail.connect() as conn:
conn.send_message(
subject='hello',
recipients=['user@example.com'],
body='abcde'
)
Результат выполнения кода:
"message sent"
Смотрите также
-
класс
Mail,
который управляет отправкой почты -
метод
connect,
который открывает SMTP-соединение -
метод
send,
который отправляет объект Message -
метод
send_message,
который отправляет письмо по частям