Python: уроки, справочник и задачи

Модуль email в Python: письма, заголовки и вложения

Раздел: Модули и библиотеки Python · Обновлено 31.10.2026

Модуль email в Python входит в стандартную библиотеку и служит для создания и разбора электронных писем: заголовков, обычного текста, HTML и вложений. Сам модуль ничего не отправляет, готовое сообщение передают модулю smtplib. Ниже показано, как создать объект письма, заполнить его и отправить, с примерами кода.

python email: разбор темы с примерами кода на Python 3 из раздела "Модули и библиотеки Python". Показаны основные функции, параметры и рабочие примеры кода с результатом выполнения.

python email
Фото: Eesti Post / Public domain, Wikimedia Commons
Содержание статьи
  1. 1. Для чего нужен модуль email
    1. Назначение модуля email
    2. Преимущества использования модуля email
  2. 2. Как использовать модуль email
    1. Создание объекта сообщения
    2. Добавление заголовков и содержимого
    3. Отправка письма
  3. 3. Примеры использования
  4. Заключение

1. Для чего нужен модуль email

Модуль email в Python используется для работы с электронной почтой, как для отправки, так и для обработки входящих писем. Он предоставляет удобный способ создания, форматирования и отправки электронных сообщений.

Модуль email в Python является универсальным инструментом для работы с электронной почтой. Он предоставляет разработчикам возможность создавать, форматировать и отправлять электронные сообщения как текстового, так и мультимедийного содержания.

Назначение модуля email

Преимущества использования модуля email

Модуль email является неотъемлемой частью инструментария разработчика Python при работе с электронной почтой, обеспечивая удобный и эффективный способ отправки и обработки писем.

2. Как использовать модуль email

Для работы с модулем email в Python необходимо импортировать соответствующие классы и функции из стандартной библиотеки. Вот основные шаги по использованию модуля:

Создание объекта сообщения

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()

Добавление заголовков и содержимого

msg['Subject'] = 'Тема письма'
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
body = MIMEText('Текст письма')
msg.attach(body)

Добавление вложений, изображений и других элементов:

# Пример добавления вложения
attachment = MIMEText(open('document.pdf', 'rb').read())
attachment.add_header('Content-Disposition', 'attachment', filename='document.pdf')
msg.attach(attachment)

Отправка письма

import smtplib
server = smtplib.SMTP('smtp.example.com')
server.sendmail('sender@example.com', ['recipient@example.com'], msg.as_string())
server.quit()

При использовании модуля email в Python важно учитывать правильное форматирование письма, корректное указание заголовков и адресов получателя и отправителя, а также обработку возможных ошибок при отправке. С помощью описанных шагов разработчики могут легко создавать и отправлять электронные сообщения с различным содержимым, что делает модуль email мощным инструментом для работы с электронной почтой в Python.

3. Примеры использования

import smtplib
from email.mime.text import MIMEText
msg = MIMEText("Привет, это тестовое письмо!")
msg['Subject'] = 'Тестовое письмо'
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
server = smtplib.SMTP('smtp.example.com')
server.sendmail('sender@example.com', ['recipient@example.com'], msg.as_string())
server.quit()

В данном примере создается простое текстовое письмо с помощью модуля email. Сначала используется класс MIMEText для формирования текстового содержимого сообщения. Затем устанавливаются заголовки письма (тема, адрес отправителя и адрес получателя). После этого письмо отправляется через SMTP сервер.

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
msg = MIMEMultipart()
msg['Subject'] = 'Письмо с изображением'
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
html = """
<html>
    <body>
        <p>Привет! Вот изображение:</p>
        <img src="image1">
    </body>
</html>
"""
msg.attach(MIMEText(html, 'html'))
with open('image.jpg', 'rb') as img:
    image = MIMEImage(img.read())
    image.add_header('Content-ID', '<image1>')
    msg.attach(image)
server = smtplib.SMTP('smtp.example.com')
server.send_message(msg)
server.quit()

В этом примере создается HTML-письмо с вложенным изображением. Используется класс MIMEMultipart для создания многочастного сообщения, включающего HTML-код с ссылкой на изображение. Изображение добавляется как вложение с помощью класса MIMEImage, а затем отправляется письмо через SMTP сервер.

Приведенные примеры демонстрируют различные способы использования модуля email в Python для создания и отправки электронных сообщений с различным форматированием и содержанием. Разработчики могут адаптировать эти примеры под свои конкретные потребности при работе с электронной почтой в своих проектах.

Заключение

Модуль email в Python представляет собой мощный инструмент для работы с электронной почтой, обеспечивая разработчикам удобные средства для создания, форматирования и отправки писем различного содержания. Благодаря своей гибкости и функциональности, этот модуль становится незаменимым при автоматизации процесса отправки и обработки электронных сообщений.

В работе были рассмотрены основные аспекты использования модуля email:

Используя знания и примеры из данной статьи, разработчики смогут эффективно работать с электронной почтой в своих проектах на Python, обеспечивая надежную и функциональную обработку писем. Модуль email делает процесс работы с электронной почтой более удобным и эффективным, открывая новые возможности для автоматизации коммуникаций через email.