email.mime
: Создание объектов электронной почты и MIME с нуля¶
Исходный код: Lib/email/mime/
Модуль является частью устаревшего API электронной почты (Compat32
). Его
функциональность частично заменена contentmanager
в новом API, но в некоторых
приложениях эти классы могут быть полезны, даже в неунаследованном коде.
Обычно структура объекта сообщения получается путем передачи файла или
некоторого текста парсер, который анализирует текст и возвращает объект
корневого сообщения. Однако вы можете также построить полную структуру сообщения
с нуля или даже объекты индивидуума Message
вручную. Фактически можно также
взять существующую структуру и добавить новые объекты Message
, переместить
их и т.д. Это делает очень удобный интерфейс для нарезка-и-перетасовка
сообщениями MIME.
Создать новую структуру объекта можно путем создания Message
сущности,
добавления вложений и всех соответствующих заголовков вручную. Для сообщений
MIME, хотя, пакет email
обеспечивает некоторый удобный подклассы,
чтобы сделать вещи легче.
Далее перечислены классы:
-
class
email.mime.base.
MIMEBase
(_maintype, _subtype, *, policy=compat32, **_params)¶ Модуль:
email.mime.base
Базовый класс для всех MIME-специфичных подклассов
Message
. Обычно вы не создадите сущности специально изMIMEBase
, хотя могли бы.MIMEBase
предоставляется главным образом в качестве удобного базового класса для более конкретных MIME-знающие подклассы._maintype - главный тип Content-Type (например, text или image), и _subtype - незначительный тип Content-Type (например, plain или gif). _params является параметром ключ/значение словарь и передается непосредственно в
Message.add_header
.Если параметр policy указан (по умолчанию используется политика
compat32
), он будет передан параметруMessage
.Класс
MIMEBase
всегда добавляет заголовок Content-Type (на основе _maintype, _subtype и _params) и заголовок MIME-Version (всегда имеет значение1.0
).Изменено в версии 3.6: Добавлен параметр policy только ключевой.
-
class
email.mime.nonmultipart.
MIMENonMultipart
¶ Модуль:
email.mime.nonmultipart
Подкласс
MIMEBase
, это промежуточный базовый класс для сообщений MIME, которые не являются multipart. Основной целью этого класса является предотвращение использования методаattach()
, который имеет смысл только для сообщений multipart. Если вызвана функцияattach()
, возникает исключениеMultipartConversionError
.
-
class
email.mime.multipart.
MIMEMultipart
(_subtype='mixed', boundary=None, _subparts=None, *, policy=compat32, **_params)¶ Модуль:
email.mime.multipart
Подкласс
MIMEBase
, это промежуточный базовый класс для MIME сообщений, которые являются multipart. Дополнительные дефолты _subtype к mixed, но может быть используемый, чтобы определить подтип сообщения. Заголовок Content-Type multipart/_subtype будет добавлен к объекту сообщения. Также будет добавлен заголовок MIME-Version.Дополнительный boundary - многослойный граничный строка. При значении
None
(значение по умолчанию) граница вычисляется при необходимости (например, при сериализации сообщения)._subparts представляет собой последовательность начальных подразделов для полезной нагрузки. Должна быть предусмотрена возможность преобразования этой последовательности в список. С помощью метода
Message.attach
к сообщению всегда можно присоединить новые подразделы.Необязательный аргумент policy по умолчанию имеет значение
compat32
.Дополнительные параметры заголовка Content-Type берутся из аргументов ключевой или передаются в аргумент _params, являющийся словарем ключевой.
Изменено в версии 3.6: Добавлен параметр policy только ключевой.
-
class
email.mime.application.
MIMEApplication
(_data, _subtype='octet-stream', _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶ Модуль:
email.mime.application
Подкласс
MIMENonMultipart
, классMIMEApplication
используемый, чтобы представлять объекты сообщения MIME главного типа application. _data является строка, содержащим необработанные байтовые данные. Необязательный _subtype задает подтип MIME, а по умолчанию - octet-stream.Дополнительный _encoder - вызываемый (т.е. функция), который выполнит фактический кодировка данных для транспорта. Этот вызываемый принимает один аргумент, который является
MIMEApplication
сущность. Это должно использоватьget_payload()
иset_payload()
, чтобы изменить полезная нагрузка на форму кодированный. Это должно также добавить любой Content-Transfer-Encoding или другие заголовки к объекту сообщения по мере необходимости. Дефолт кодировка является base64. Посмотрите модульemail.encoders
для списка встроенного кодеры.Необязательный аргумент policy по умолчанию имеет значение
compat32
._params передаются прямо конструктору базового класса.
Изменено в версии 3.6: Добавлен параметр policy только ключевой.
-
class
email.mime.audio.
MIMEAudio
(_audiodata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶ Модуль:
email.mime.audio
Подкласс
MIMENonMultipart
, классMIMEAudio
используемый, чтобы создать объекты сообщения MIME главного типа audio. _audiodata является строка, содержащим необработанные аудиоданные. Если эти данные могут быть расшифрованы стандартным модулем Pythonsndhdr
, то подтип будет автоматически включен в заголовок Content-Type. В противном случае можно явно указать подтип звука с помощью аргумента _subtype. Если минорный тип нельзя было угадать и _subtype не давали, тоTypeError
поднимается.Дополнительный _encoder - подлежащее выкупу (т.е. функция), который выполнит фактический кодировка аудиоданных для транспорта. Этот вызываемый принимает один аргумент, который является
MIMEAudio
сущность. Это должно использоватьget_payload()
иset_payload()
, чтобы изменить полезная нагрузка на форму кодированный. Это должно также добавить любой Content-Transfer-Encoding или другие заголовки к объекту сообщения по мере необходимости. Дефолт кодировка является base64. Посмотрите модульemail.encoders
для списка встроенного кодеры.Необязательный аргумент policy по умолчанию имеет значение
compat32
._params передаются прямо конструктору базового класса.
Изменено в версии 3.6: Добавлен параметр policy только ключевой.
-
class
email.mime.image.
MIMEImage
(_imagedata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶ Модуль:
email.mime.image
Подкласс
MIMENonMultipart
, классMIMEImage
используемый, чтобы создать объекты сообщения MIME главного типа image. _imagedata является строка, содержащим необработанные данные изображения. Если эти данные могут быть расшифрованы стандартным модулем Pythonimghdr
, то подтип будет автоматически включен в заголовок Content-Type. В противном случае можно явно указать подтип изображения с помощью аргумента _subtype. Если минорный тип нельзя было угадать и _subtype не давали, тоTypeError
поднимается.Дополнительный _encoder - подлежащее выкупу (т.е. функция), который выполнит фактический кодировка данных изображения для транспорта. Этот вызываемый принимает один аргумент, который является
MIMEImage
сущность. Это должно использоватьget_payload()
иset_payload()
, чтобы изменить полезная нагрузка на форму кодированный. Это должно также добавить любой Content-Transfer-Encoding или другие заголовки к объекту сообщения по мере необходимости. Дефолт кодировка является base64. Посмотрите модульemail.encoders
для списка встроенного кодеры.Необязательный аргумент policy по умолчанию имеет значение
compat32
._params пропускают прямо к конструктору
MIMEBase
.Изменено в версии 3.6: Добавлен параметр policy только ключевой.
-
class
email.mime.message.
MIMEMessage
(_msg, _subtype='rfc822', *, policy=compat32)¶ Модуль:
email.mime.message
Подкласс
MIMENonMultipart
, классMIMEMessage
используемый, чтобы создать объекты MIME главного типа message. _msg - используемый как полезный груз и должен быть сущность классаMessage
(или подкласс этого), иначеTypeError
поднят.Дополнительный _subtype устанавливает подтип сообщения; по умолчанию используется значение rfc822.
Необязательный аргумент policy по умолчанию имеет значение
compat32
.Изменено в версии 3.6: Добавлен параметр policy только ключевой.
-
class
email.mime.text.
MIMEText
(_text, _subtype='plain', _charset=None, *, policy=compat32)¶ Модуль:
email.mime.text
Подкласс
MIMENonMultipart
, классMIMEText
используемый, чтобы создать объекты MIME главного типа text. _text является строка для полезной нагрузки. _subtype - вспомогательный тип, значение по умолчанию равно plain. _charset является набором символ текста и передается в качестве аргумента конструкторуMIMENonMultipart
; значение по умолчанию равноus-ascii
, если строка содержит толькоascii
код точек, иutf-8
в противном случае. Параметр _charset принимает либо строка, либоCharset
сущность.Если аргумент _charset явно не установлен в
None
, созданный объект MIMEText будет иметь как заголовок Content-Type с параметромcharset
, так и заголовок Content-Transfer-Encoding. Это означает, что последующий вызовset_payload
не приведет к полезной нагрузке кодированный, даже если набор символов передан в командеset_payload
. Это поведение можно «сбросить», удалив заголовокContent-Transfer-Encoding
, после чего вызовset_payload
автоматически кодирует новую полезную нагрузку (и добавляет новый заголовок Content-Transfer-Encoding).Необязательный аргумент policy по умолчанию имеет значение
compat32
.Изменено в версии 3.5: _charset также принимает
Charset
сущности.Изменено в версии 3.6: Добавлен параметр policy только ключевой.