12.2 email -- 電子メールと MIME 処理のためのパッケージ

バージョン 2.2 で 新たに追加 された仕様です。

email パッケージは電子メールのメッセージを管理するライブラリです。 これには MIME やそれ以外の RFC 2822ベースのメッセージ文書もふくまれます。 このパッケージはいくつかの古い標準パッケージ、rfc822mimetoolsmultifile などにふくまれていた 機能のほとんどを持ち、くわえて標準ではなかった mimecntl などの 機能もふくんでいます。このパッケージは、とくに電子メールのメッセージを SMTP (RFC 2821) サーバに送信するために作られているというわけでは ありません。それは smtplib モジュールの機能です。 email パッケージは RFC 2822 に加えて、RFC 2045, RFC 2046, RFC 2047 および RFC 2231 など MIME 関連の RFC をサポートしており、できるかぎり RFC に準拠することをめざしています。

email パッケージの一番の特徴は、電子メールの内部表現である オブジェクトモデル と、電子メールメッセージの解析および生成とを 分離していることです。email パッケージを使うアプリケーションは 基本的にはオブジェクトを処理することができます。メッセージに子オブジェクトを 追加したり、メッセージから子オブジェクトを削除したり、内容を完全に 並べかえたり、といったことができます。フラットなテキスト文書から オブジェクトモデルへの変換、またそこからフラットな文書へと戻す変換は それぞれ別々の解析器 (パーサ) と生成器 (ジェネレータ) が担当しています。 また、一般的な MIME オブジェクトタイプのいくつかについては手軽な サブクラスが存在しており、メッセージフィールド値を抽出したり解析したり、 RFC 準拠の日付を生成したりなどのよくおこわれるタスクについては いくつかの雑用ユーティリティもついています。

以下の節では email パッケージの機能を説明します。 説明の順序は多くのアプリケーションで一般的な使用順序にもとづいています。 まず、電子メールメッセージをファイルあるいはその他のソースから フラットなテキスト文書として読み込み、つぎにそのテキストを解析して 電子メールのオブジェクト構造を作成し、その構造を操作して、 最後にフラットなテキストに戻す、という順序になっています。

このオブジェクト構造は、まったくのゼロから作りだしたものであっても いっこうにかまいません。この場合も上と似たような作業順序になるでしょう。

またここには email パッケージが提供するすべての クラスおよびモジュールに関する説明と、email パッケージを 使っていくうえで遭遇するかもしれない例外クラス、いくつかの補助ユーティリティ、 そして少々のサンプルも含まれています。古い mimelib や前バージョンの email パッケージののユーザのために、現行バージョンとの違いと 移植についての節も設けてあります。

参考:

smtplib:モジュール
SMTP プロトコル クライアント.



ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。