18.1.7. email.encoders:エンコーダー—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/email.encoders
移動先:案内検索

18.1.7。 email.encoders :エンコーダー

Message オブジェクトを最初から作成する場合、準拠したメールサーバーを介して転送するためにペイロードをエンコードする必要があることがよくあります。 これは、バイナリデータを含む image / * および text / * タイプのメッセージに特に当てはまります。

email パッケージは、encodersモジュールでいくつかの便利なエンコーディングを提供します。 これらのエンコーダーは、 MIMEAudio および MIMEImage クラスコンストラクターによって実際に使用され、デフォルトのエンコーディングを提供します。 すべてのエンコーダ関数は、エンコードするメッセージオブジェクトという1つの引数を取ります。 彼らは通常、ペイロードを抽出してエンコードし、ペイロードをこの新しくエンコードされた値にリセットします。 また、必要に応じて Content-Transfer-Encoding ヘッダーを設定する必要があります。

これらの関数は、マルチパートメッセージには意味がないことに注意してください。 代わりに、個々のサブパートに適用する必要があり、タイプがマルチパートのメッセージが渡されると、TypeErrorが発生します。

提供されるエンコード関数は次のとおりです。

email.encoders.encode_quopri(msg)
ペイロードをquoted-printable形式にエンコードし、 Content-Transfer-Encoding ヘッダーをquoted-printable 1 に設定します。 これは、ペイロードの大部分が通常の印刷可能なデータであるが、印刷できない文字がいくつか含まれている場合に使用するのに適したエンコーディングです。
email.encoders.encode_base64(msg)
ペイロードをbase64形式にエンコードし、 Content-Transfer-Encoding ヘッダーをbase64に設定します。 これは、quoted-printableよりもコンパクトな形式であるため、ペイロードのほとんどが印刷不可能なデータである場合に使用するのに適したエンコーディングです。 base64エンコーディングの欠点は、テキストが人間が読めないようにすることです。
email.encoders.encode_7or8bit(msg)
これは実際にはメッセージのペイロードを変更しませんが、ペイロードデータに基づいて、 Content-Transfer-Encoding ヘッダーを7bitまたは8bitのいずれかに適切に設定します。 。
email.encoders.encode_noop(msg)
これは何もしません。 Content-Transfer-Encoding ヘッダーも設定されません。

脚注

1
encode_quopri()を使用してエンコードすると、データ内のすべてのタブとスペース文字もエンコードされることに注意してください。