email.mime
: Creating email and MIME objects from scratch¶
Вихідний код: Lib/email/mime/
Цей модуль є частиною застарілого (Compat32
) API електронної пошти. Його функціональні можливості частково замінено на 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
.Якщо вказано політику (за замовчуванням політика
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.Необов’язковий межа — це обмежувальний рядок із кількох частин. Якщо
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
A subclass of
MIMENonMultipart
, theMIMEApplication
class is used to represent MIME message objects of major type application. _data contains the bytes for the raw application data. Optional _subtype specifies the MIME subtype and defaults to 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
A subclass of
MIMENonMultipart
, theMIMEAudio
class is used to create MIME message objects of major type audio. _audiodata contains the bytes for the raw audio data. If this data can be decoded as au, wav, aiff, or aifc, then the subtype will be automatically included in the Content-Type header. Otherwise you can explicitly specify the audio subtype via the _subtype argument. If the minor type could not be guessed and _subtype was not given, thenTypeError
is raised.Необов’язковий _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
A subclass of
MIMENonMultipart
, theMIMEImage
class is used to create MIME message objects of major type image. _imagedata contains the bytes for the raw image data. If this data type can be detected (jpeg, png, gif, tiff, rgb, pbm, pgm, ppm, rast, xbm, bmp, webp, and exr attempted), then the subtype will be automatically included in the Content-Type header. Otherwise you can explicitly specify the image subtype via the _subtype argument. If the minor type could not be guessed and _subtype was not given, thenTypeError
is raised.Необов’язковий _encoder — це виклик (тобто функція), яка виконуватиме фактичне кодування даних зображення для транспортування. Цей виклик приймає один аргумент, який є екземпляром
MIMEImage
. Він має використовуватиget_payload()
іset_payload()
, щоб змінити корисне навантаження на закодовану форму. Він також має додати будь-які Content-Transfer-Encoding або інші заголовки до об’єкта повідомлення за потреби. Стандартне кодування — base64. Перегляньте список вбудованих кодувальників у модуліemail.encoders
.Додатковий аргумент policy за умовчанням має значення
compat32
._параметри передаються безпосередньо до конструктора
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 лише для ключового слова.