添付ファイル名についてNo.48780
Kamonohasi さん 15/11/07 19:43
 
いつもお世話になっており、ありがとうございます。

iPhone Mail から送信されたメールに添付されたファイル名が化けるという現象が
発生しました。
秀丸メール 6.46 32bitver
Windows7 pro

データログは公開できないのですが、送られてきたメールを見ると
Content-Type: application/pdf;
 name=_____C___.pdf;
との記載とは別に

Content-Disposition: attachment;
 filename*=iso-2022-jp''×××(伏せました).pdf

との記載がありました。
秀丸メールでは前者の「_____C___.pdf」が添付ファイル名として採用されるようです。

個人的にはiPhoneから添付ファイルを受け取ることは、
非常に希なため積極的な対応を希望するものではありません。

なお、受信ログをeml形式で出力して別メーラーに読み込ませたところ、
Outlook 2010 → _____C___.pdf
Shuriken 2014→×××(伏せました).pdf
となりました。
RFCに明るくないので、あるべき状態が分かりませんがご報告まで。

[ ]
RE:48780 添付ファイル名についてNo.48782
秀まるお2 さん 15/11/08 18:14
 
 Content-Type:ヘッダでの「name=」の指定とContent-Disposition=での
「filename=」の指定が両方されていて、その内容が異なる場合、秀丸メールの
ソースコードを調べたら、

 1.name=またはfilename=のどちらかのデコードに失敗した場合は、失敗しな
  かった方を採用する。
 2.どっちも問題なかった場合は、後で出てきた方を優先する。

 ってロジックなってました。今回の場合はたぶん、Content-Type:ヘッダの方
がContent-Disposition:ヘッダよりも後に、つまり、

Content-Disposition: ....
Content-Type: ....

 みたいな順序になってるせいで、Content-Type:ヘッダの「name=」の方が優先
されたんだと思います。

 どっちを優先するかのロジックは僕の方で適当にいじっていいかと思うんです
か、例えばファイル名に日本語を使った場合、finame=の方は正しいけども、
name=の方では日本語の文字が全部「_」に置き換わるってロジックなのであれば、

     filename=の中に日本語(全角文字)があって、name=の方には
     それが無く、代わりに「_」の文字がある

 となっているならfilename=を優先する、みたいなロジックにしてもいいかと
思います。

 そういうロジックで良さそうでしたらそうしたいと思います。

 何かサンプルがあると助かるのですが、だれかそういう、日本語ファイル名の
添付ファイルをiPhoneから送っていただける方おられないでしょうか。

 よかったら"maruo@mitene.or.jp"に1通送ってほしいです。

[ ]
RE:48782 添付ファイル名についてNo.48790
秀まるお2 さん 15/11/09 14:53
 
 僕の知り合いの人に頼んでiPhoneから添付ファイルを1つ送ってもらいました。

>  2.どっちも問題なかった場合は、後で出てきた方を優先する。

 こっちのロジックが効いて正しい方(filename=)が優先されるはずなんです
が、効いてないようでした。どっちにしても直せるので、次のβ版にて修正させ
ていただきます。

[ ]