Live Hotmailから送信すると件名が文字化けすることがある

サポートにメールを送ったが色よい返事はもらえなかった。
ご指摘ありがとうございます、担当部署に報告します、とのこと。いつ直るんだろうか…


具体的には、Live Hotmailから送信したメールを、他のメーラーで受信するときに問題が起こる。


件名(Subject)を日本語で書いた場合、Live Hotmailでは、
(1)iso-2022-jp(JISコード)でエンコードされ
(2)base64MIMEエンコードされ
(3)一定の長さよりも長い場合複数行に分割
の処理が行われる。これはいずれもRFCで規定された、どのメーラーでも一般的な処理だ。


ただし、この3条件でエンコードされたメールヘッダを受信すると、メーラーによっては正しい日本語に復元できないようだ。
iso-2022-jpでは、デフォルトはASCIIキャラクタであり、2バイトコードに切替える場合は

ESC $ B

バイトコードからASCIIに戻すときは

ESC ( B

エスケープシーケンスが必要になる。


ここで、[ESC $ B] 〜 [ESC ( B]の間で行分割が行われた場合に問題となる。
行結合を行ってから解釈すれば正しく日本語として解釈が可能だが、行ごとにMIMEエンコードを解除してから行結合を行う(実際にそのようなメーラーが複数存在するようである)と、[ESC $ B] 〜 [ESC ( B]の途中で分割された後者の方は、実態としてJISコードでエンコードされているにもかかわらず、[ESC $ B]で始まらないためASCIIとして解釈されてしまうため、日本語として正しく解釈できない。

$3$s$K$A$O

などと表示されてしまう。(JISコードで「こんにちは」)


RFCに準拠しているのかどうかは面倒くさいので確認していないが、少なくとも旧hotmailではこのあたりは適切に対処されていた。

Live Hotmailになってからの不具合だ。