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

Метод attach_file

Метод attach_file применяется к экземпляру класса EmailMessage и позволяет прикрепить файл к письму, указав путь к нему на файловой системе. Метод принимает путь к файлу в качестве обязательного аргумента и автоматически определяет MIME-тип файла для корректной отправки. Также можно указать содержимое для заголовка Content-ID для использования файла в HTML-части письма.

Синтаксис

email.attach_file(file_path, mimetype=None, headers=None)

Метод принимает следующие аргументы:

  • file_path (обязательный) - путь к файлу, который нужно прикрепить к письму.
  • mimetype (необязательный) - MIME-тип файла. Если не указан, определяется автоматически.
  • headers (необязательный) - словарь с дополнительными заголовками для вложения.

Пример

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

from django.core.mail import EmailMessage email = EmailMessage( subject='Monthly report', body='Please find the monthly report attached.', from_email='sender@example.com', to=['recipient@example.com'], ) email.attach_file('/path/to/monthly_report.pdf') email.send()

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

"Message sent successfully"

Пример

Давайте прикрепим файл с указанием MIME-типа и дополнительных заголовков:

from django.core.mail import EmailMessage email = EmailMessage( subject='Project documentation', body='Documentation for the project is attached.', from_email='sender@example.com', to=['recipient@example.com'], ) email.attach_file( '/path/to/documentation.pdf', mimetype='application/pdf', headers={'Content-Disposition': 'attachment; filename="project_doc.pdf"'} ) email.send()

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

"Message sent with custom headers"

Пример

Давайте прикрепим изображение для использования в HTML-части письма через Content-ID:

from django.core.mail import EmailMessage html_body = """ <html> <body> <h1>Welcome to our newsletter!</h1> <img src="cid:logo_1" alt="Company Logo"> </body> </html> """ email = EmailMessage( subject='Newsletter with image', body=html_body, from_email='sender@example.com', to=['recipient@example.com'], ) email.content_subtype = 'html' email.attach_file( '/path/to/logo.png', headers={'Content-ID': '<logo_1>'} ) email.send()

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

"HTML email with embedded image sent successfully"

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

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