このモジュールでは、インターネット標準 RFC 2822 7.10で定義されている ``電子メイルメッセージ'' を表現するクラス、 Message を定義しています。 このメッセージはメッセージヘッダ群とメッセージボディの集まり からなります。このモジュールではまた、ヘルパークラス RFC 2822 アドレス群を解釈するための AddressList クラス を定義しています。RFC 2822 メッセージ固有の構文に関する情報 は RFC を参照してください。
mailbox モジュールでは、 多くのエンドユーザメイルプログラムによって生成されるメイルボックス を読み出すためのクラスを提供しています。
file[, seekable]) |
このクラスは readline() メソッドをサポートする任意の入力 オブジェクトを扱うことができます。入力オブジェクトが seek および tell できる場合、 rewindbody() メソッドが動作します。 また、不正な行データを入力ストリームにプッシュバックできます。 入力オブジェクトが seek できない一方で、入力行をプッシュバックする unread() メソッドを持っている場合、Message は不正な行データにこのプッシュバックを使います。こうして、 このクラスはバッファされているストリームから来るメッセージを 解釈するのに使うことができます。
オプションの seekable 引数は、lseek() システムコール が動作しないと分かるまでは tell() がバッファされたデータを 無視するような、ある種の stdio ライブラリで回避手段として提供されています。 可搬性を最大にするために、socket オブジェクトによって生成されたファイル のような、seek できないオブジェクトを渡す際には、最初に tell() が呼び出されないようにするために seekable 引数をゼロに設定すべきです。
ファイルとして読み出された入力行データは CR-LF と単一の改行 (line feed) のどちらで終端されていてもかまいません; 行データを記憶する前に、終端の CR-LF は単一の改行と置き換えられます。
ヘッダに対するマッチは全て大小文字に依存しません。例えば、
m['From']
、 m['from']
、および
m['FROM']
は全て同じ結果になります。
field) |
None
は空のリストを表します。)
str) |
str) |
address) |
(None, None)
を返します。
pair) |
(realname, email_address)
形式の 2 要素のタプルをとり、To: や Cc: ヘッダに
適した文字列値を返します。pair の最初の要素が真値をとらない
場合、二つ目の要素をそのまま返します。
date) |
'Mon, 20 Nov 1995 19:12:08 -0500'
のような
RFC 2822 様式の日付を収めた文字列です。日付の解析に成功した場合、
parsedate() は time.mktime() にそのまま渡す
ことができるような 9 要素のタプルを返します; そうでない場合には
None
を返します。結果のフィールド 6、7、および 8 は
有用な情報ではありません。
date) |
None
または
10 要素のタプルを返します; 最初の 9 要素は time.mktime()
に直接渡すことができるようなタプルで、 10 番目の要素はその日の
タイムゾーンにおける UTC (グリニッチ標準時の公式名称) からの
オフセットです。(タイムゾーンオフセットの符号は、
同じタイムゾーンにおける time.timezone
変数の符号と反転
しています; 後者の変数が POSIX 標準に従っている一方、
このモジュールは RFC 2822 に従っているからです。) 入力文字列
がタイムゾーン情報を持たない場合、タプルの最後の要素は None
になります。結果のフィールド 6、7、および 8 は
有用な情報ではありません。
tuple) |
None
の場合、地域の
時刻を表しているものと家庭します。些細な欠陥: この関数はまず最初の
8 要素を地域における時刻として変換し、次にタイムゾーンの違いに対する
補償を行います; これにより、夏時間の切り替え日前後でちょっとした
エラーが生じるかもしれません。通常の利用に関しては心配ありません。
参考: