email パッケージはもともと mimelib と 呼ばれる個別のライブラリからつくられたものです。その後変更が加えられ、 メソッド名がより一貫したものになり、いくつかのメソッドやモジュールが 加えられたりはずされたりしました。いくつかのメソッドでは、 その意味も変更されています。しかしほとんどの部分において、 mimelib パッケージで使うことのできた機能は、ときどきその方法が変わってはいるものの email パッケージでも使用可能です。 mimelib パッケージと email パッケージの間の 下位互換性はあまり優先はされませんでした。
以下では mimelib パッケージと email パッケージにおける 違いを簡単に説明し、それに沿ってアプリケーションを移植するさいの 指針を述べています。
おそらく 2つのパッケージのもっとも明らかな違いは、 パッケージ名が email に変更されたことでしょう。 さらにトップレベルのパッケージが以下のように変更されました:
Message クラスでは、以下のような違いがあります:
Parser クラスは、その public なインターフェイスは変わっていませんが、 これはより一層かしこくなって message/delivery-status 形式のメッセージを 認識するようになりました。これは配送状態通知 7.8において、各ヘッダブロックを表す独立した Message パートを含む ひとつの Message インスタンスとして表現されます。
Generator クラスは、その public なインターフェイスは変わっていませんが、 email.generator モジュールに新しいクラスが加わりました。 DecodedGenerator と呼ばれるこのクラスは 以前 Message.getpayloadastext() メソッドで使われていた 機能のほとんどを提供します。
また、以下のモジュールおよびクラスが変更されています:
Image
クラスおよびモジュールは MIMEImage
に
名前が変更されました。_minor 引数も _subtype に
名前が変更されています。
Text
クラスおよびモジュールは MIMEText
に
名前が変更されました。_minor 引数も _subtype に
名前が変更されています。
MessageRFC822
クラスおよびモジュールは MIMEMessage
に
名前が変更されました。注意: 従来バージョンの mimelib では、
このクラスおよびモジュールは RFC822
という名前でしたが、
これは大文字小文字を区別しないファイルシステムでは
Python の標準ライブラリモジュール rfc822 と
名前がかち合ってしまっていました。
また、MIMEMessage クラスはいまや message main type をもつあらゆる種類の MIME メッセージを 表現できるようになりました。これはオプション引数として、 MIME subtype を指定する _subtype 引数をとることができる ようになっています。デフォルトでは、_subtype は rfc822 に なります。
mimelib では、address および date モジュールで いくつかのユーティリティ関数が提供されていました。 これらの関数はすべて email.utils モジュールの中に 移されています。
MsgReader
クラスおよびモジュールは廃止されました。
これにもっとも近い機能は email.iterators モジュール中の
body_line_iterator() 関数によって提供されています。