[mew-dist 26833] RFC 2231

Atsushi Onoe onoe at example.com
2006年 3月 27日 (月) 23:39:22 JST


最近 Thunderbird を使っている人からの添付ファイル名が RFC2231 で
encode されてやってくるので、やむなく cue でも decode のみ対応しました。

そこで、とても古い(7年前)のメールを参照してしまって恐縮ですが、質問です。

1. Mew では
	Content-Disposition: inline;
		filename*0*=ISO-2022-JP''....
		filename*1*=....
   型の添付ファイル名を受信できたはずですが、これは今でも正しいですか?

	X-Mailer: Mew version 4.1 on Emacs 21.4 / Mule 5.0 (SAKAKI)
   の人だと、ファイル名中に filename*1*= が含まれてしまうそうです。
   (escape sequence 中だと化ける)

2. (本当はこっちが聞きたい)
   RFC 2231 を尾上が読むと、* で終わる parameter value には tspecials
   である "/" を含めてはいけないように見えます。



   ですが、Thunderbird は
	Content-Disposition: inline;
	 filename*=ISO-2022-JP''%1B%24B5/%24-%24k%1B%28B.txt
   の様に、"/" をそのまま突っ込んできます。
   なおかつ、Mew でもこれは「起きる.txt」と表示されるそうです。

   Thunderbird の間違い? それとも尾上の勘違い?

RFC2231
|    attribute-char := <any (US-ASCII) CHAR except SPACE, CTLs,
|                      "*", "'", "%", or tspecials>
| 
|    section := initial-section / other-sections
| 
|    initial-section := "*0"
| 
|    other-sections := "*" ("1" / "2" / "3" / "4" / "5" /
|                           "6" / "7" / "8" / "9") *DIGIT)
	尾上注: 大昔かずが指摘していたように、最後の閉じ括弧は余分

|    extended-parameter := (extended-initial-name "="
|                           extended-value) /
	尾上注: extended-value の定義はないので、
		多分 extended-initial-value の間違い

|                          (extended-other-names "="
|                           extended-other-values)
| 
|    extended-initial-name := attribute [initial-section] "*"
| 
|    extended-other-names := attribute other-sections "*"
| 
|    extended-initial-value := [charset] "'" [language] "'"
|                              extended-other-values
| 
|    extended-other-values := *(ext-octet / attribute-char)
| 
|    ext-octet := "%" 2(DIGIT / "A" / "B" / "C" / "D" / "E" / "F")

RFC 2045
|      tspecials :=  "(" / ")" / "<" / ">" / "@" /
|                    "," / ";" / ":" / "\" / <">
|                    "/" / "[" / "]" / "?" / "="
|                    ; Must be in quoted-string,
|                    ; to use within parameter values


「いんちゃんに読める」を信条とする cue では、とりあえず
extended-initial-values/extended-other-values に現れた
tspecial は value としてそのまま受け入れるようにしました。。。

尾上

----- Original Message -----
Subject: [Mew-dist 07451] 1.94b6
From: Kazu Yamamoto (山本和彦) <kazu at example.com>
To: mew-dist at example.com
Date: Mon, 15 Feb 1999 20:25:47 +0900
Reply-To: mew-dist at example.com

mew-1.94b6.tar.gz を ftp.mew.org:/pub/Mew/beta に置きました。

やったこと

(1) RFC2231 の MIME parameter extensions をサポートしました。これで、
Content-Disposition: の filename パラメータに日本語などを格納できます。

もう少し分かりやすく言うと、日本語のファイル名を持つファイルを安全に添
付できます。

受け取ると来はパラメータが分割されていてももとにきちんと戻しますが、出
すときはいまのところ分割しません。符号化するのみです。

これに伴い、内部関数の仕様を一部変更しました。contrib の下のファイルは、
気づいた箇所を変更しておきましたが、動くのか試していません。ごめんなさ
い。

(2) RFC2047 ヘッダ符号化のエラー処理をもうちょっと真面目にやった。

(3) PGP/MIME の作成の際に、例えばパスワードを間違えた場合、「C-cC-u で 
undo できる」と表示していましたが、自動的に undo することにしました。

P.S.

このバージョンは、冒険家のみが使って下さい。パラメータ関係の動作を確認
して頂けるとありがたいです。

--かず





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