--- 素朴な疑問集 ---
トップページへ    [素朴な疑問集 TOP]


疑問No.506 (2006.03.03)

Q. taniさんからの疑問

 メールのことでわからないので困っています。教えてください。
 メールの「Date:覧」に標記された日付・時間は、送信した日時ですか、それとも受信した日時ですか?
 海外からのメールです。

  Date:Sun,19 Feb 2006 23:53:13 +0800(CST)

上記のような標記になっています。「CST」は米国中央標準時ですよね?
 発信者は現在スイスにいると書いてあります。発信者はこのメールを現地で何時に送信したのでしょうか?

「はい、それは、送信日時です」「はい、それは、受信日時です」だけの回答でしたら面白くないですから。メールの送信、受信について、こんな雑学があるよということを教えてください。(星田)


A. 立方体さんから

 それは、送信日時でしょう。
 メールは本文・表題の他に、ヘッダと呼ばれる通常表示されない部分があります(そこを見る方法は、メーラの help を参照してください)。
 インターネットのメールは、差出人の端末から、宛先の端末に到着されるまでに、幾つかのサーバをバケツリレー方式で経由します。ヘッダには差出時間からそのサーバの経由時間、その他の情報が記録されます。
 たとえば、実際にアメリカから来た、或るメールのヘッダを抜粋しますと

   Return-Path: <a@XXXX.com>
   Received: xxx xxx idxxxx;   (xxxなどは当然伏字)
   Thu, 23 Feb 2006 04:01:54 +0900 (JST)
    (途中省略)
   Date: Wed, 22 Feb 2006 11:01:28 -0800

とありますが、メーラの日付のところは、

   送信日時 2006/02/23 4:01:28

と表示されております。
 これを見ると、

   差出時間が、 2006/02/22 11:01:28 現地時間、
   受取り時間が、2006/02/23 04:01:54 日本時間

というのが読み取れます。
 私の使用しているメーラは、送信日時を日本時間に修正して表示しているようです。
 ご質問の

   Date:Sun,19 Feb 2006 23:53:13 +0800(CST)

は、ヘッダのDate: フィールドでしょうから、rfc2822という規約で、送信時間と決まっております。ただし、この送信時間は、基本的にはメールを送信した端末内部で持っている時間です。
 でも、CSTは通常、-0600なんですけど……。スイスでも+0800ってのは妙だし……。更に厳密に「送信時間」とは何かというと、面倒くさいので、下記をを参照してください。
  
ftp://ftp.isi.edu/in-notes/rfc2822.txt

A. 椎名さんから

 まず、メールヘッダの「Date」について私の理解を書きます。
 これは送信時刻を指し、メールソフトの時刻が基準になります。つまり、通常は送った人のPCの時刻が書かれます。あくまで送信者の時刻ですから、これが間違っていれば、変な時刻表示にもなるわけです。
 スパムメールは変な時刻(何年も過去や未来)になっているものが目に付きますが、これは意図したものだと思います。私も含め、多くの人はメールを時刻順でソートし、かつ、プレビューを使用しているでしょうから、こういった変な時刻にすることで、リストの先頭(もしくは最後)に並ばせれば、強制閲覧させられる可能性が上がりますよね。
 話がそれましたが、結局、メールの送信時刻はいつだったかというと、提示されたものがメールヘッダのDate:だとすると、+0800(CST)の説明ができず、私はわからなかったります。
 スイスということから、CSTではなくCET(+0100 中央ヨーロッパ標準時)の間違いで、Date:ヘッダではなく、メールソフトが加工した(?)時刻で、かつ、そのソフトが日本標準時(+0900 JST)との時差として、このような表記になったとか、かなりこじつけっぽい推測しかできません。この辺は詳しい方の説明を待ちたいと思います。
 これに頼らず、私がこのメールの送信時刻を調べるとしたら、他のヘッダを見てみます。Date:ヘッダの他にもたくさんのヘッダが書かれているのを見たと思いますが、その中にはRecieved:ヘッダたくさんあったと思います。
 これはメールサーバを経由した記録で、経由するごとに上に追加されていきます。そのため、いちばん下のものが送信者にいちばん近いメールサーバということになります。そして、ここにも時刻が書かれており、これはメールサーバの時刻になります。多数の人が使うものですし、おそらくは正確な設定になっているでしょうから、こちらの時刻を見てみる、というのはいかがでしょうか。
 なお、この方法でも、送信者の環境によっては、必ずしも期待した結果を得られるわけではないことも書いておきます。たとえば自分でメールサーバを構築しているとか、アンチウィルスソフトによっては、メールサーバとしての振る舞いをするものもあるかもしれません。そういうときは、もうひとつふたつ上のRecievedヘッダを見てみるといいことになります。

麻生有美さん、Nyaokichiさんからも、回答をいただきました。ありがとうございました。