"email.encoders": エンコーダー
******************************

**ソースコード:** Lib/email/encoders.py

======================================================================

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

このモジュールはPython3で非推奨になりました。 "MIMEText" クラスはクラ
スのインスタンス化中に渡された *_subtype* と *_charset* の値を使って
content typeとCTEヘッダを設定するので、ここで提供されている関数は明示
的に呼び出すべきではありません。

この節の以降のテキストはモジュールの元々のドキュメントです。

何もないところから "Message" を作成するときしばしば必要になるのが、ペ
イロードをメールサーバに通すためにエンコードすることです。これはとくに
バイナリデータを含んだ *image/** や *text/** タイプのメッセージで必要
です。

The "email" package provides some convenient encoders in its
"encoders" module.  These encoders are actually used by the
"MIMEAudio" and "MIMEImage" class constructors to provide default
encodings.  All encoder functions take exactly one argument, the
message object to encode.  They usually extract the payload, encode
it, and reset the payload to this newly encoded value.  They should
also set the *Content-Transfer-Encoding* header as appropriate.

マルチパートメッセージにこれら関数を使うことは全く無意味です。それらは
各々のサブパートごとに適用されるべきものです。メッセージがマルチパート
のものを渡すと "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()" を使ってエンコードすると、データ中のタブ文
    字や空白文字もエンコードされます。
