ThunderbirdからAppleMailに送信したメールの添付ファイル名の文字化け
文字化けに関する話題は古くからあるみたいですが、検索してもこの件は出てこなかったもので新たに投稿させてもらいます。既出だったらすいません。
困っているのはThunderbirdからApple Mailに「長い日本語ファイル名の」添付ファイルを送ると、ファイル名が先頭数文字以降化けると言う現象です。具体的には、例えばThunderbirdで「いろはにほへとちりぬるをABCDEFG.doc」と言うファイルを送ると、Mailで受信した時には「いろはにほへH$A$j$L$k$rABCDEFG.doc」となります。
確認はThunderbird 3.0.4とApple Mail4.2で行いました。
何が起こっているかは比較的簡単に想像できます。Thuderbirdで送ったメールのヘッダは以下のようになっています。
Content-Type: application/msword;
name="=?ISO-2022-JP?B?GyRCJCQkbSRPJEskWyRYJEgkQSRqJEwkayRyGyhCQUJDREVGRy5kb2M=?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*0*=ISO-2022-JP''%1B%24%42%24%24%24%6D%24%4F%24%4B%24%5B%24%58%24;
filename*1*=%48%24%41%24%6A%24%4C%24%6B%24%72%1B%28%42%41%42%43%44%45%46;
filename*2*=%47%2E%64%6F%63
このように、日本語ファイル名は ISO-2022-JPにされた上でいわゆるURLエンコードされ、長いので3行に分割されています。AppleMailは Content-Dispositionヘッダの filename パラメータを見ているようなのですが、どうも分割されたパラメータを「行毎にデコードしてから」→「結合」しているようですね。つまり下のような感じで、2行目以降でははISO-2022-JPであると言う情報とコントロールコードが欠けるため、文字化けするのでしょう。
filename*0*=ISO-2022-JP''%1B%24%42%24%24%24%6D%24%4F%24%4B%24%5B%24%58%24; → "いろはにほへ"
filename*1*=%48%24%41%24%6A%24%4C%24%6B%24%72%1B%28%42%41%42%43%44%45%46; → "H$A$j$L$k$rABCDEF"
filename*2*=%47%2E%64%6F%63 → "G.doc"
RFC的にどっちが正しくてどっちが間違っているのか知りませんが、ここはひとつAppleMailの方で処理の順番を変えて、「パラメータを結合してから」→「デコード」して欲しいものです。
で、質問なのですが、これをうまいこと回避されている方はいらっしゃいませんでしょうか。何か設定で挙動を変えられるのだったらありがたいのですが。
Mac Pro, Mac OS X (10.6.3), Thunderbird3.0.4,Mail4.2