7.1.7 エンコーダ

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

email パッケージでは、encoders モジュールにおいて いくかの便宜的なエンコーディングをサポートしています。実際にはこれらの エンコーダは MIMEAudio および MIMEImage クラスの コンストラクタでデフォルトエンコーダとして使われています。 すべてのエンコーディング関数は、エンコードするメッセージオブジェクト ひとつだけを引数にとります。これらはふつうペイロードを取りだし、 それをエンコードして、ペイロードをエンコードされたものにセットしなおします。 これらはまた Content-Transfer-Encoding: ヘッダを適切な値に 設定します。

提供されているエンコーディング関数は以下のとおりです:

encode_quopri( msg)
ペイロードを quoted-printable 形式にエンコードし、 Content-Transfer-Encoding: ヘッダを quoted-printable7.5 に設定します。 これはそのペイロードのほとんどが通常の印刷可能な文字からなっているが、 印刷不可能な文字がすこしだけあるときのエンコード方法として適しています。

encode_base64( msg)
ペイロードを base64 形式でエンコードし、 Content-Transfer-Encoding: ヘッダを base64 に変更します。これはペイロード中の データのほとんどが印刷不可能な文字である場合に適しています。 quoted-printable 形式よりも結果としてはコンパクトなサイズになるからです。 base64 形式の欠点は、これが人間にはまったく読めないテキストに なってしまうことです。

encode_7or8bit( msg)
これは実際にはペイロードを変更はしませんが、ペイロードの形式に応じて Content-Transfer-Encoding: ヘッダを 7bit あるいは 8bit に適した形に設定します。

encode_noop( msg)
これは何もしないエンコーダです。 Content-Transfer-Encoding: ヘッダを設定さえしません。



脚注

...quoted-printable7.5
注意: encode_quopri() を 使ってエンコードすると、データ中のタブ文字や空白文字も エンコードされます。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。