ThunderbirdとApple Mail間の添付ファイル名の文字化け

  • 長いファイル名をRFC 2231でエンコードする際、Thunderbirdは複数行に分割し、Apple Mailは分割しない。下図は、「あいうえおあいうえおあいうえお.png」というファイルを添付して送信した例。Apple Mailがエンコードしたfilenameパラメータには、(図ではウインドウの幅の制限により折り返し表示されているが)改行コードは入っていない。


  • RFC 2231で複数行にする方法が規定されている以上、1行あたりの文字数の制限が存在するものと思われる。以下に引用するRFC 5322の一節がそれだろうか。

Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF.

  • とするなら、Apple Mailの実装は「SHOULD(したほうがよい)には従わなくてもいい」という考え方なのだろう。
  • ここまでは、エンコードの話。問題となるのは、デコードのほうだ。Apple MailはRFC 2231方式でエンコードされた複数行のパラメータを、連結してからデコードするのではなく、デコードしてから連結する。このため、1文字が2行にまたがっていた場合、その文字以降が化けてしまう(下図)。Apple Mailのバグだと思う*1


  • メーラーの中でも添付ファイル名の扱いにおいて比較的RFCを尊重しているThunderbirdApple Mailの間で文字化けが発生するという状況は残念なので、直してほしい。

*1:以前に書いたように(AOLメールの件名の文字化け)、RFC 2047では、文字単位で行分割することになっている。このルールをRFC 2231にまで適用してしまったのかな、という気もする。