email
--- An email and MIME handling package¶
Kode sumber: Lib/email/__init__.py
The email
package is a library for managing email messages. It is
specifically not designed to do any sending of email messages to SMTP
(RFC 2821), NNTP, or other servers; those are functions of modules such as
smtplib
. The email
package attempts to be as
RFC-compliant as possible, supporting RFC 5322 and RFC 6532, as well as
such MIME-related RFCs as RFC 2045, RFC 2046, RFC 2047, RFC 2183,
and RFC 2231.
Struktur keseluruhan paket email dapat dibagi menjadi tiga komponen utama, ditambah komponen keempat yang mengontrol perilaku komponen lainnya.
Komponen utama dari paket tersebut adalah "model objek" yang mewakili pesan email. Aplikasi berinteraksi dengan paket terutama melalui antarmuka model objek yang ditentukan dalam sub-modul message
. Aplikasi dapat menggunakan API ini untuk mengajukan pertanyaan tentang email yang sudah ada, membuat email baru, atau untuk menambah atau menghapus subkomponen email yang menggunakan antarmuka model objek yang sama. Artinya, mengikuti sifat pesan email dan subkomponen MIME-nya, model objek email adalah struktur pohon objek yang semuanya menyediakan API EmailMessage
.
Dua komponen utama lainnya dari paket tersebut adalah parser
dan generator
. Parser mengambil versi serial dari pesan email (aliran byte) dan mengubahnya menjadi pohon objek EmailMessage
. Generator mengambil EmailMessage
dan mengubahnya kembali menjadi aliran byte serial. (Pengurai dan generator juga menangani aliran karakter teks, tetapi penggunaan ini tidak disarankan karena terlalu mudah untuk berakhir dengan pesan yang tidak valid dalam satu atau lain cara.)
Komponen kontrolnya adalah modul policy
. Setiap EmailMessage
, setiap generator
, dan setiap parser
memiliki objek terkait policy
yang mengontrol perilakunya. Biasanya aplikasi hanya perlu menetapkan kebijakan ketika EmailMessage
dibuat, baik dengan langsung membuat instance EmailMessage
untuk membuat email baru, atau dengan mengurai aliran input menggunakan parser
. Namun kebijakan tersebut dapat diubah jika pesan diserialkan menggunakan generator
. Hal ini memungkinkan, misalnya, pesan email umum diurai dari disk, tetapi untuk membuat serialnya menggunakan pengaturan SMTP standar saat mengirimnya ke server email.
Пакет електронної пошти робить усе можливе, щоб приховати деталі різних керівних RFC від програми. Концептуально програма повинна мати можливість розглядати повідомлення електронної пошти як структуроване дерево тексту Юнікод і двійкових вкладень, не турбуючись про те, як вони представлені під час серіалізації. На практиці, однак, часто необхідно знати принаймні деякі правила, що регулюють повідомлення MIME та їхню структуру, зокрема назви та природу "типів вмісту" MIME та те, як вони ідентифікують багатокомпонентні документи. Здебільшого ці знання потрібні лише для більш складних застосувань, і навіть тоді це має бути лише структура високого рівня, а не деталі того, як ці структури представлені. Оскільки типи вмісту MIME широко використовуються в сучасному Інтернет-програмному забезпеченні (не лише в електронній пошті), це буде знайомим поняттям для багатьох програмістів.
У наступних розділах описується функціональність пакета email
. Ми починаємо з об’єктної моделі message
, яка є основним інтерфейсом, який використовуватиме додаток, і продовжуємо це з parser
і generator
компоненти. Потім ми розглядаємо елементи керування policy
, що завершує обробку основних компонентів бібліотеки.
У наступних трьох розділах розглядаються винятки, які може викликати пакунок, і дефекти (невідповідність RFC), які може виявити parser
. Далі ми розглядаємо підкомпоненти headerregistry
і contentmanager
, які надають інструменти для більш детального маніпулювання заголовками та корисними навантаженнями відповідно. Обидва ці компоненти містять функції, пов’язані зі споживанням і створенням нетривіальних повідомлень, але також документують їхні API розширюваності, які будуть цікаві для розширених програм.
Після них наведено набір прикладів використання основних частин API, розглянутих у попередніх розділах.
Вищезазначене представляє сучасний (дружній до Unicode) API пакета електронної пошти. Решта розділів, починаючи з класу Message
, охоплюють застарілий API compat32
, який має набагато більш пряме справу з деталями представлення повідомлень електронної пошти. compat32
API не приховує деталі RFC від програми, але для програм, яким потрібно працювати на цьому рівні, вони можуть бути корисними інструментами. Ця документація також актуальна для програм, які все ще використовують compat32
API з причин зворотної сумісності.
Berubah pada versi 3.6: Документи реорганізовано та переписано для просування нового EmailMessage
/EmailPolicy
API.
Вміст документації пакета email
:
email.message
: Representing an email messageemail.parser
: Parsing email messagesemail.generator
: Generating MIME documentsemail.policy
: Policy Objectsemail.errors
: Exception and Defect classesemail.headerregistry
: Custom Header Objectsemail.contentmanager
: Managing MIME Contentemail
: Examples
Застарілий API:
email.message.Message
: Representing an email message using thecompat32
APIemail.mime
: Creating email and MIME objects from scratchemail.header
: Internationalized headersemail.charset
: Representing character setsemail.encoders
: Encodersemail.utils
: Miscellaneous utilitiesemail.iterators
: Iterators
Lihat juga
- Модуль
smtplib
Клієнт SMTP (Simple Mail Transport Protocol).
- Модуль
poplib
Клієнт POP (Post Office Protocol).
- Модуль
imaplib
Клієнт IMAP (Internet Message Access Protocol).
- Модуль
mailbox
Інструменти для створення, читання та керування колекціями повідомлень на диску з використанням різноманітних стандартних форматів.