[mew-dist 22848] Re: Message-Id と MIME encode について

Shuhei KOBAYASHI shuhei at example.com
2003年 1月 11日 (土) 19:31:31 JST


;; 87=91 です(w

結局のところ Mew は RFC822, RFC2047 の基本的な所がしっかりしていないので
こんな問題が起こるのですね. いや, かずさんの理解が正しいかと Mew の code
が正しいかは別の問題で, Mew の parser/decoder は今から眺めるところですが.

RFC2047 は

  まず従来の RFC822 に従って構文解析し,
  その結果のうち特定の部分(comment と phrase)について各要素を調べて
  encoded-word の形をしていたら decode する. (structured field の場合)

という処理を前提としています.

RFC2047, 6.1. "Recognition of 'encoded-word's in message headers":
|  A mail reader must parse the message and body part headers according
|  to the rules in RFC 822 to correctly recognize 'encoded-word's.

これが基本.
;; 基本ではあるけれど, 実装するのはそんなに容易ではないというのには同意.
;; 基本ではあるけれど, あまり理解されていないのも ietf-822 を見れば...


これがちゃんと理解できていれば

Kazu Yamamoto (山本和彦) <kazu at example.com> writes:
> RFC 2047 には、
>    + An 'encoded-word' MUST NOT appear in any portion of an 'addr-spec'.
> と書いてあります。
> 
> RFC 822 には
>      msg-id      =  "<" addr-spec ">"            ; Unique message id
> とあります。
> 
> 両者より、Message-ID: には encoded-word を使ってはいけません。

この結論が正しいとしても, この規則が余計な制限になると気付きませんか?

たとえ msg-id に encoded-word に相当する文字列が含まれていたとしても
msg-id は「特定の部分」ではないので decoder が認識することはない, と.
;; 送信側で何が起きていたとしても, 受信側にとってそれは encoded-word
;; の形をした単なる US-ASCII の並びに過ぎない.

RFC2047 が「encoded-word」と「'encoded-word'」を使い分けている事に注意
して読み直してみてください.

>    + An 'encoded-word' MUST NOT appear in any portion of an 'addr-spec'.

は

  + 'addr-spec' (という ABNF の規則)の各要素の中に 'encoded-word'
    (という ABNF の規則)が現れてはいけない.

と読みます.

-- 
Shuhei KOBAYASHI



Mew-dist メーリングリストの案内