From: Minero Aoki Date: 2003-08-25T16:07:09+09:00 Subject: [ruby-list:38230] Re: Tmailで送るメールに日付がつけられなくなりました 青木です。 In mail "[ruby-list:38198] Tmailで送るメールに日付がつけられなくなりました" 川田誠司 wrote: > 川田と申します。 > 今回、ちょっとした問題で困っています。 > Tmailの問題です。 > > 問題: > mailserver(smtp)が替わったらTmailで送るメールに日付がつけられなくなった。 > def make_mail_text(subject,from,to,txt,attach) > mail = TMail::Mail.new > mail.from = TMail::HeaderField.new('From', from) > mail.to = to > mail.date = Time.now > mail.subject =subject > mail.mime_version = '1.0' > 以下略 > で、mail.dateに日付が正しく入っていないのかと思い、 > mail.date = "Sat, 23 Aug 2003 18:43:41 +0900" > などと直接代入もやって見ましたが、結果は同じでした。 > > まったく同じ書き方でも、旧のmail sererでは問題がありませんでした。 > 旧のメールサーバが日付を補足していたのかもしれません。 つまり、セットしたつもりでも実は Date: がついてなかった、 ということでないと話が通じないわけですよね。 まず、手元で make_mail_text だけを実行して Date: が付くか どうか確認してください。少なくとも手元の環境では以下の プログラムでちゃんと Date: が付きます。 require 'tmail' m = TMail::Mail.new m.date = Time.now puts m.encoded ……あ、そうか、わかった。 > def make_mail_text(subject,from,to,txt,attach) > mail = TMail::Mail.new > mail.from = TMail::HeaderField.new('From', from) ここが原因ですね。from が文字列としたら、 mail.from = from としてください。ここで違う型の値 (HeaderField) をセット しているために、どこかで例外が起きているんだと思います。 ruby -d で実行すると例外発生をトレースできるので確かめて みてください。 ------------------------------------------------------------------- 青木峰郎