qwikReportDate

Date: (25-Jul-2006)

reportが投げてくるメールは,現在Date:はつけていないようだ.

RFC2822では

3.3. Date and Time Specification

date-time       =       [ day-of-week "," ] date FWS time [CFWS]
time            =       time-of-day FWS zone
zone            =       (( "+" / "-" ) 4DIGIT) / obs-zone

RFC2822形式で出すメソッドとしては,Time.now.rfc2822がある(ml-session.rb を参照).

しかし,site-report.rb で Date: をつけているわけではない. {Daily,Hourly,Weekly}ReportThread からは (SendReportThreadから継承した) send メソッドを呼んでいるだけで,send メソッドは,class Site の send_report を 呼んでいるだけ.send_report の def の中では

       sm = Sendmail.new(@config.smtp_host, @config.smtp_port, @config.test)

となっている.Sendmail クラスは,util-sendmail.rb で定義されていて,sendメソッドは

   def send(mail)
     Sendmail.send(@host, @port, mail[:from], mail[:to], mail[:subject],
                   mail[:content], @test)
   end

ここまでずっとメールヘッダにDate:をつける部分は出てこないようだが……. Qwik::generate_report_mail でも

       :from    => from,
       :to      => user,
       :subject => "#{siteurl} Report",
       :content => "Recent changes on #{siteurl}\n\n#{rep}",

ということでDate:はつけていない.

……あ,分かった.qwikWeb は Date: を付けずに投げている.受け取ったメールサーバで Date: を足している.これは……まずい.qmail だとよしなに取りはからってくれない. ということでちゃんと Date: をつけるようにしてみよう.

→ qwik.jp から送られてくるレポートにはついている.自前でインストールしたところにはついていない. 違いは何だろう.apt-get でインストールしたこと?

問題の明確化

  • Postfix, qmailで挙動が違うように思われる

→ Postfixは,無いときには良きに計らってつけてくれます.qmailはポリシーとして面倒を見ません(Date:を付け加えるようにするパッチはある).

  • そもそもDateがついていないというのは、RFC違反なのか、そうではないのか?

→ RFC2822では

Field           Min number      Max number    
orig-date       1               1

となってるので,つけなければいけません.

  • おそらくRFC違反だと思われるため、Dateをつけるように改良するのが筋かなと
Last modified: 2007-03-07 Attached files total: 1MB