11.13 標準モジュール rfc822

 

このモジュールは インターネット標準RFC822で定義されている"emailのヘッダ"の集合体を表すメッセージクラスを定義します。 通常ファイルのヘッダのいろいろな内容を読み込むのに使用します。

Unix,MH,MMDF型のメールファイルを読み込むために分割するモジュールがあります。それがmailboxです。

Message (file[, seekable])
メッセージインスタンスは引数のfileオブジェクトのインスタンスです。 ファイルオブジェクトがシークできるとき、オプションのseekableパラメーターは シーク可能かどうかを示している。デフォルト値は真の1です。 空行までのファイルのヘッダーを読み込んでインスタンスを作成します。 ファイルのポインタが空行より後にくるとヘッダーは終わりです。

CR-LFまたはLFで終わる行をファイルから読み込んで入力します。 CR-LFで終わるものはLFに置き換えて、行を保存します。

全てのヘッダーは大文字でも小文字でも区別しません。 つまり、m['From'], m['from'], m['FROM']は全て同じ結果となります。

parsedate (date)
RFC822のルールに従ってデータを解析しようとします。 しかし、いくつかのメーラーは特徴としてその書式に従っていません。 parsedata ()はそんなとき正しく推定しようとします。 そのデータは'Mon, 20 Nov 1995 19:12:08 -0500'のようにRFC822のデータを含む文字列です。 そのデータの解析に成功したら、parsedata ()はtime.mktime()に直接渡すことが出来る9つのタプルを返します。 そうでなければなにも返しません。

parsedate_tz (date)
parsedate()と同じようにしていくつかの関数を実行します。しかし、結果は何もないか10のタプルです。 最初の9つの要素はtime\mktime()に直接渡すことができるタプルです。 10番目はUTCからの日付の時間帯のオフセットです。UTCはグリニッジ標準時間に対する公式時間です。 時間帯のオフセットの符号は時間帯に対するtime.timezoneの変数の符号と反対です。 このモジュールがRFC822に従っている限り、後者の時間はPOSIXの標準に従っています。 入力文字列に時間帯に関するものがないとき、タプルの最後の要素はNoneになります。

mktime_tz (tuple)
parserdate_tz()によって返された10個のタプルをUTC時間にします。 タプルの中の時間帯の項目がNoneのとき、ローカル時間帯とします。 まず、最初の8個の要素をローカル時間帯として処理し、次に時間帯の差を補正します。 この場合、夏時間にはわずかな誤差が起こるでしょう。 通常はきにしなくてもいいです。


guido@python.org