2005 年 6 月の履歴(もしくは日誌)


2005 年 6 月

6 月 28 日

Mail.app の自動改行

うかつな事に,Mac OS X の標準のメールソフト (Mail User Agent) である Mail.app が,メール送信時に自動改行を行っているということを,きちんと理解していませんでした.BCC で自分宛に送ったメールを受け取った時には,いつも自分が意図したところで改行されているように見えていたのです.ただ,他のメールを引用した時に行頭に引用符が入る処理は,なにか賢そうな処理をしているなってくらいにしか分かっていませんでした.でも送信時には勝手に変なところで改行されて相手に届いていたのです.

rfc2646 という規格に乗っ取って,Mail.app は自動改行をしているようです.

この rfc2646 では,rfc2646 に対応したメールソフトでは,表示する幅に応じて段落の横幅を調整して表示しますが,rfc2646 に対応していないメールソフトでは 80 文字以内のどこかで改行されて表示するという事を意図して規格化しています.

つまり rfc2646 に対応したメールソフトと,対応していないメールソフトでは,表示のされ方が異なります.

対応していれば,きちんと段落ごとに改行されますが,もし表示領域の横幅が 100 文字あれば,100 文字分まで生かして表示します.

対応してない場合は,表示領域が 100 文字分あろうが 200 文字分あろうが,80 文字以下で改行して表示します.

ですから Mail.app で送信したメールを Mail.app で受信すれば,かならず意図したとおりに表示されますが,受信側が rfc2646 に対応していなければちょっと違うということになります...

これまでは,横幅を一定幅にそろえるために改行を入れてメールの文章を作成していたのですが,これが間違いだったのです.

解決策:

  1. Mail.app の自動改行を生かして,メールを書く時に段落ごとに改行はするけど,横幅を一定幅にそろえる為の改行を入れない.
  2. 自動改行を無効にするプラグインをインストールする.
    StopFold
    http://ichiro.nnip.org/osx/StopFold/index.html

それでも実は問題があります.Mail.app は,日本語の文字のおよそ 35 文字付近で改行するのですが,どうも日本語の文字数の数え方か改行の挿入位置のルールかなにかに問題があって,ちょっと変なところに改行を入れてしまいます.それでこの改行のルールを改善するパッチもあるようです.

ぼくはパッチもプラグインも利用しないで,Mail.app のやりたいように自動改行させてやろうと思っています.それでもこれまでのように横幅を一定幅にそろえる為の改行を入れなければ,すっごく変なところに改行が入らなくて,ちょっとは読みやすくなるかなと.Mail.app のように rfc2646 に対応しているメールソフトなら,ばっちり表示されるんだし.

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050628n3 TrackBack