Mailの改行位置がバラバラな理由

  • Tiger以降の)Mailは、送信するメッセージに1行70バイト前後で改行を入れる仕様となっている。この改行は、受信側がformat=flowedに対応していない場合に顕在化する。
  • ちゃんと調べたわけではないが、format=flowedに対応していない環境はけっこう多い気がする。AppleのサービスであるMobileMeウェブメールも非対応だ。
  • 下図は、Appleのウェブにあった文章(英文と和文)をLeopardのMailから送信し、MobileMeのウェブで表示したもの。英文は適切に改行されているが、和文は行長のバラツキが目立つ。


  • 和文の行長が不揃いとなる主な原因は、バイト幅を基準として整形しているため、(ISO-202-JPにおける)エスケープシーケンスのバイト幅の影響を受けること。漢字と英数字の切り替えが多い行ほど、エスケープシーケンスの分、行長が短くなる。
  • しかし、これだけでは、上の図における和文2行目の極端な短さを説明できない。原因を探していると、「WebKit の改行位置」にたどり着いた。WebKitのソースはすでに修正されているようだが(WebKit の改行問題を直した)、Mail(Mac OS X 10.5.4現在でバージョン3.4)の実装にはまだ反映されていないということなのだろう。