Атрибут extra_headers
Атрибут extra_headers применяется к объекту сообщения
Message
и представляет собой словарь дополнительных заголовков письма.
Ключами словаря выступают имена заголовков, а значениями -
их содержимое. Эти заголовки добавляются к стандартным
заголовкам, которые формирует Flask-Mail при отправке письма.
Атрибут удобно использовать, когда нужно передать получателю
служебную информацию: приоритет письма, заголовок
Reply-To, идентификатор рассылки, заголовки
List-Unsubscribe или X-Mailer.
Значением по умолчанию является пустой словарь.
Синтаксис
message.extra_headers = {'Header-Name': 'header value'}
Пример
Давайте создадим сообщение и добавим к нему
заголовок X-Priority со значением '1':
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.example.com'
mail = Mail(app)
msg = Message(
subject='Hello',
sender='user@example.com',
recipients=['user@example.com']
)
msg.body = 'abcde'
msg.extra_headers = {'X-Priority': '1'}
print(msg.extra_headers)
Результат выполнения кода:
{'X-Priority': '1'}
Пример
Давайте добавим сразу несколько дополнительных заголовков к письму:
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.example.com'
mail = Mail(app)
msg = Message(
subject='Article',
sender='user@example.com',
recipients=['user@example.com']
)
msg.body = 'article body'
msg.extra_headers = {
'X-Priority': '1',
'X-Mailer': 'Flask-Mail',
'List-Unsubscribe': '<mailto:unsubscribe@example.com>'
}
for key, value in msg.extra_headers.items():
print(key, ':', value)
Результат выполнения кода:
X-Priority : 1
X-Mailer : Flask-Mail
List-Unsubscribe : <mailto:unsubscribe@example.com>
Пример
Давайте отправим письмо с дополнительным заголовком
Reply-To, чтобы ответы приходили на другой адрес:
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.example.com'
mail = Mail(app)
with app.app_context():
msg = Message(
subject='Hello',
sender='user@example.com',
recipients=['user@example.com']
)
msg.body = 'abcde'
msg.extra_headers = {'Reply-To': 'support@example.com'}
mail.send(msg)
Смотрите также
-
класс
Message,
который представляет электронное письмо -
атрибут
sender,
который задаёт отправителя письма -
атрибут
recipients,
который задаёт список получателей -
атрибут
subject,
который задаёт тему письма