[#39671] Ruby 1.8.1 on SX-6 — Masaki Hasegawa <masaki-h@...4u.or.jp>

はじめまして、長谷川 と申します。

16 messages 2004/05/19
[#39673] Re: Ruby 1.8.1 on SX-6 — Tanaka Akira <akr@...17n.org> 2004/05/19

In article <20040519.205107.102564296.suuchi29@naps.kishou.go.jp>,

[ruby-list:39698] Re: TMail-0.10.8: mail.references=["a@b"]

From: Minero Aoki <aamine@...>
Date: 2004-05-31 18:24:22 UTC
List: ruby-list #39698
青木です。返事が遅くなってすみません。
書いたあと、送信するのをすっかり忘れてました。

  In mail "[ruby-list:39695] TMail-0.10.8: mail.references=["a@b"]"
    "Shirai,Kaoru" <shirai@korinkan.co.jp> wrote:

> 白井です。
> 
> いつも有難く使わせていただいている TMail ですが、 0.10.8 で
> 
>   require "tmail/mail"
>   
>   mail = TMail::Mail.new
>   mail.references = ["<a@b>"]
>   p mail.encoded
> 
> を実行すると、"References: <a@b>\n\n"と出力されるのですが、
> 
>   mail.references = ["a@b"]
> 
> だと空のメールが出力されてしまいます。自動的に <> を付けるか、例外を出
> した方が良いのではないでしょうか。

ああ、なるほど……。どうしようかな。現在は届いたメールを読み込む
ときに合わせてチェックを緩くしているのですが、新しいメールを
作るときは厳しいほうがよいわけですね。一般化するならば、以前から
(こっそり) 懸案になっている「目的によってポリシーを変えたいよ問題」
の一部だと言えます。

この問題はずっと前 (二年くらい前) から考えていたのですが、
最近ようやく方針が決まりました。少し前から導入していた Config
クラスを Policy と改名して、目的に合わせてカスタマイズ
できるようにしたいと思います。

具体的には以下のように使いわけます。

  # 基本的に読み出し用
  mail = TMail::Mail.parse(mail_text)
  mail = TMail::Mail.load(mail_path)

  # メール作成用
  mail = TMail::Mail.create

読み出し用に作成された Mail オブジェクトには以下のポリシーを適用します。

  * 最大限寛容に、曖昧なフォーマットを許可する。
  * 例外はできるだけ起こさない。

書き出し用に作成された Mail オブジェクトには以下のポリシーを適用します。

  * RFC2822 基準で厳しくフォーマットを規制する。
  * できるだけたくさん例外を出す。

CVS HEAD では既に変更しました。
時間ができしだい 0.10.9 (or 0.11) も出そうと思います。
-------------------------------------------------------------------
青木峰郎

In This Thread