РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
473 of 643 menu

Метод attach

Метод attach применяется к объекту сообщения Message и добавляет вложение к письму. Первым параметром передаётся имя файла или объект файла, вторым - желаемое имя вложения, третьим - MIME-тип содержимого. Если имя вложения не указано, берётся имя исходного файла. Метод возвращает сам объект сообщения, что позволяет строить цепочки вызовов.

Синтаксис

message.attach(filename, [content_type], [data])

Пример

Давайте создадим сообщение и прикрепим к нему файл 'image.png':

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) with app.app_context(): msg = Message( subject='Hello', sender='user@example.com', recipients=['recipient@example.com'] ) msg.attach('image.png', 'image/png', open('image.png', 'rb').read())

В результате к письму будет прикреплён файл 'image.png' с MIME-типом 'image/png'.

Пример

Давайте прикрепим текстовый файл, не указывая MIME-тип явно:

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) with app.app_context(): msg = Message( subject='Report', sender='user@example.com', recipients=['recipient@example.com'] ) with app.open_resource('report.txt') as fp: msg.attach('report.txt', 'text/plain', fp.read())

Результат выполнения кода - письмо с вложением 'report.txt' и типом 'text/plain'.

Пример

Давайте прикрепим несколько файлов, используя цепочку вызовов:

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) with app.app_context(): msg = Message( subject='Files', sender='user@example.com', recipients=['recipient@example.com'] ) msg.attach('a.txt', 'text/plain', b'aaa') msg.attach('b.txt', 'text/plain', b'bbb') msg.attach('c.txt', 'text/plain', b'ccc')

В результате к письму будут прикреплены три файла: 'a.txt', 'b.txt' и 'c.txt'.

Смотрите также

  • класс Message,
    который представляет электронное письмо
  • метод add_recipient,
    который добавляет получателя письма
  • атрибут attachments,
    который хранит список вложений
  • атрибут body,
    который содержит текстовое тело письма
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить