メールの Date: ヘッダは送信日時を示すものではない
某案件で「メールがやたらに遅延する」というクレーム(?)があったのですが、見てみたら
ということで、1. に関して疑われた次第。クライアント PC の時刻が狂っているのかと思ったら「合ってます」というそっけない回答が...
で、何となく気になったので RFC を見ていたら 822 ではなく 2822 を見て納得。ちなみに Google で検索して見つけた RFC2822 の日本語訳の一つ には以下の記述があります。
もともとの日時は、メッセージが完成し、メール配送システムに投入する準備
ができた、とメッセージの著者が示す日付と時間を明記する。例えば、これは
ユーザがアプリケーションプログラムにおいて「送る」や「提出」ボタンを押
した時間かもしれない。いかなる場合でも、特にメッセージが実際に配送され
ている時間を含むことを意味せず、むしろ人またはメッセージの人以外の著者
がメッセージを最終形にした、配送の準備ができたという時間を示す。(例え
ば、ネットワークに接続されていない携帯型コンピュータの利用者は、メッセー
ジを配送のためにキューに貯めるかもしれない。もともとの日時はユーザがメッ
セージをキューにためた日時を示し、ユーザがメッセージを送信するためにネッ
トワークに接続した時間を示さない)。
ということで某氏に
の 2つの MUA で調べて貰ったところ、Outlook Express で『後で送信する』を選択した場合にそのときの時刻が Date ヘッダに記載されることが確認できました。ちなみに Becky! は常に送信時の時刻が付くみたいです。
メールサーバ構築に携わって 10年以上経つんですが、初めて Date: フィールドの意味を知りました。いやー、勉強になりますねぇ*1。
*1:っつーか、不勉強。反省しろ > 自分 orz