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

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

email.encoders :エンコーダー

ソースコード: :source: `Lib / email / encodings.py`



このモジュールは、レガシー(Compat32)電子メールAPIの一部です。 新しいAPIでは、機能は set_content()メソッドの cte パラメーターによって提供されます。

このモジュールはPython3では非推奨です。 MIMEText クラスは、そのインスタンス化中に渡された _subtype および _charset 値を使用してコンテンツタイプとCTEヘッダーを設定するため、ここで提供される関数を明示的に呼び出すことはできません。クラス。

このセクションの残りのテキストは、モジュールの元のドキュメントです。

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()を使用してエンコードすると、データ内のすべてのタブとスペース文字もエンコードされることに注意してください。