iPhone/iPadから送信したHTMLメールがWindowsメールやOutlookで化ける
- 公式のマニュアルにそう書いてあるわけではないので自信がないのだが、iPhone/iPadのメールでは、作成中のメッセージに既存のドキュメントからテキストをコピーすると、HTMLメールとして送信されるようだ。プレーンテキストのメールから文字をコピーしただけでも、自動的にHTMLメールになる。そんなわけで、iPhone/iPadはHTMLメールを送信することが多い。
- iPhone/iPadの送信するHTMLメールにはテキストパートとHTMLパートが存在する。そして、テキストパートのcharsetがISO-2022-JPである場合、HTMLパートはISO-2022-JPではなくUTF-8となる。下図は、iPadから送信したHTMLメールをSnow LeopardのMail 4.3で表示したもの。
- 下図は、そのソース。
- で、このような(テキストパートとHTMLパートのcharsetが一致しない)メールをWindowsメール*1やOutlook*2で受信すると、文字化けする(下図)。
- 要素を変更して何度かテストしてみたところ、WindowsメールやOutlookは、テキストパートのcharsetを見てHTMLパートをデコードしているようだ(括弧内追記。Microsoftのサポート情報を発見。Outlook 2007の動作は修正プログラムによって改善される。http://support.microsoft.com/kb/976162/ja)。
- というわけで、どちらが悪いのかといえばWindowsメールやOutlookのほうがダメな気がするが、iPhone/iPadの仕様も謎ではある。いずれにせよiPhone/iPadから送信した日本語のHTMLメールは、WindowsメールやOutlookでは化ける可能性がある。
- メールが文字化けした場合、一般に「珍しい文字とか使ってない?」というのが疑われるわけだが、このケースでは逆に「珍しい文字」(UTF-8でしか表現できない文字)を使ったほうがテキストパートもcharset=utf-8となって(HTMLパートと揃うので)文字化けしない、という点がおもしろい。
*1:テストに用いたのはWindows VistaのMicrosoft Windows Mail 6。
*2:テストに用いたのはMicrosoft Office 2007のOutlook 12.0。