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 только ключевой.
