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

Метод attach

Метод attach применяется к объекту EmailMessage и позволяет добавлять вложения к письму. Метод может принимать три типа аргументов: имя файла и его содержимое с MIME-типом, объект файлоподобного потока, или уже готовый объект MIMEBase. В зависимости от переданных аргументов метод автоматически определяет способ обработки вложения.

Синтаксис

email_message.attach(filename, content, mimetype=None) email_message.attach(file_object) email_message.attach(mime_object)

Пример . С текстовым файлом

Давайте создадим письмо и добавим текстовое вложение:

from django.core.mail import EmailMessage # Создаем объект письма email = EmailMessage( subject="Important document", body="Please find the attached document.", from_email="sender@example.com", to=["recipient@example.com"], ) # Добавляем текстовое вложение email.attach("document.txt", "Hello, this is the file content.", "text/plain") email.send()

Результат выполнения кода:

"Email sent successfully with attachment: document.txt"

Пример . С файловым объектом

Рассмотрим добавление вложения из файлового потока:

from django.core.mail import EmailMessage from io import BytesIO # Создаем поток с данными file_data = BytesIO(b"Binary content of the file") file_data.name = "binary_data.bin" # Создаем письмо email = EmailMessage( subject="Binary file", body="Here is the binary data.", from_email="sender@example.com", to=["user@example.com"], ) # Добавляем вложение из файлового объекта email.attach(file_data) email.send()

Результат выполнения кода:

"Email with binary file sent successfully"

Пример . С вложением разных типов

Добавим несколько вложений разных типов в одном письме:

from django.core.mail import EmailMessage # Создаем письмо с несколькими вложениями email = EmailMessage( subject="Multiple attachments", body="This email has three attachments.", from_email="sender@example.com", to=["user@example.com", "colleague@example.com"], ) # Текстовый файл email.attach("readme.txt", "Installation instructions", "text/plain") # HTML файл email.attach("page.html", "<h1>Hello</h1>", "text/html") # PDF файл (бинарные данные) pdf_content = b"%PDF-1.4\n1 0 obj\n<< /Type /Catalog >>\nendobj\n" email.attach("document.pdf", pdf_content, "application/pdf") # Отправляем письмо email.send()

Результат выполнения кода:

"Email sent with 3 attachments: readme.txt, page.html, document.pdf"

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

  • метод send,
    который непосредственно отправляет письмо
  • метод attach_file,
    который добавляет вложение из файловой системы
  • функция send_mail,
    которая является упрощенным способом отправки писем
  • класс EmailMultiAlternatives,
    который позволяет отправлять письма с альтернативными версиями содержимого
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить