Contents
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をつけるように改良するのが筋かなと