Метод send
Метод send применяется к объекту Mail
и отправляет электронное письмо. Первым параметром
передаётся тема письма, вторым - текст сообщения,
третьим - адрес отправителя, а четвёртым - список
адресов получателей. Дополнительные параметры позволяют
указать копии, скрытые копии и вложения.
Параметры метода:
subject - тема письма.
message - текст сообщения.
sender - адрес отправителя.
recipients - список адресов получателей.
cc - список адресов для копии.
bcc - список адресов для скрытой копии.
attachments - список вложений.
reply_to - адрес для ответа.
Синтаксис
mail.send(subject, message, sender, recipients, cc=None, bcc=None, attachments=None, reply_to=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_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'user@example.com'
app.config['MAIL_PASSWORD'] = 'password'
mail = Mail(app)
@app.route('/')
def index():
mail.send(
'Hello',
'This is a test message',
'user@example.com',
['recipient@example.com']
)
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():
mail.send(
'Article',
'Text of the article',
'user@example.com',
['recipient@example.com'],
cc=['cc@example.com'],
bcc=['bcc@example.com']
)
return 'sent with cc'
Результат выполнения кода:
sent with cc
Пример
Давайте отправим письмо с вложением:
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 app.open_resource('file.txt') as f:
mail.send(
'Hello',
'Message with attachment',
'user@example.com',
['recipient@example.com'],
attachments=[('file.txt', 'text/plain', f.read())]
)
return 'sent with attachment'
Результат выполнения кода:
sent with attachment
Смотрите также
-
класс
Mail,
который управляет отправкой почты -
метод
init_app,
который инициализирует почту для приложения -
метод
send_message,
который отправляет объект Message -
метод
sendкласса Connection,
который отправляет письмо через соединение