[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 メーリングリストの案内