ようこそゲストさん

CPA-LABテクニカル

2008/09/11(木) dateヘッダーは送信日時ではない

Dateヘッダーの意味

メールのDateヘッダーは、通常「送信日時を表す」としか、書いていないことが多い。

しかし、RFC2822によれば
http://www.puni.net/~mimori/rfc/rfc2822.txt
いかなる場合でも、特にメッセージが実際に配送されている時間を含むことを意味せず、むしろ人またはメッセージの人以外の著者がメッセージを最終形にした、配送の準備ができたという時間を示す。

.....complete and ready toenter the mail delivery system.
メーラーの実装も様々で、「後で送信する」のボタンを押した日時であったり、実際に中継サーバーに送信した日時であったり、切り替えができるものもあったりするようである。

RFC2822を解釈すると、「(A)出来上がって 、かつ、(B)送信準備ができた」時刻ということである。
厳密に考えれば、「後で送信する」のボタンを押した時が、もっともRFC2822には合致する。

しかし、多くの人が、「メールの配信開始時刻」つまり、インターネットに放たれた時刻、と考えているために、RFCは無視し、実際に中継サーバーに送信した日時をつけるメーラーもあるのだろう。

Dateヘッダーを付け忘れたら?

最初のSMTPサーバー自動的に付けるのが慣例です。

そこでQdmailは

Qdmail 1.1.1b から、タイムゾーンを設定すれば、dateヘッダーを自動的につけるようにしました。

名前:  非公開コメント   

  • TB-URL  http://www.cpa-lab.com/tech/0188/tb/

2008/09/11(木) 「SafeMode力」を鍛える

はてブ情報 はてブに登録 はてブ数 qdmailspok
PHP日本語メール送信ライブラリQdmailを1.1.1bにバージョンアップして、SafeMode時には、mail関数の第5引数を指定しないようにしました。

私自身はSafeModeって使ったことないのだけれど、レンタルサーバーでは、SafeModeになっていることもあるそうな。

SafeModeの検出方法

  if(ini_get('safe_mode')){
                             // SafeMode時の処理
  }

本当にいろんな環境があるもので。。。

Thanks to

こちらでご指摘ありがとうございました。
Qdmailで日本語のメール送信-CakePHPクッキング

1: CakePHPクッキング 2008年09月11日(木) 午後1時21分

SafeMode対応ありがとうございます。
問題なく動作しました


名前:  非公開コメント   

  • TB-URL  http://www.cpa-lab.com/tech/0186/tb/