2009年9月29日火曜日

Mac OS X の Mail.app でメッセージ振り分けの設定をした(覚え)

OS は Leopard。やりたかったことは、
  • 未処理のメッセージは特定のメールボックスで見る。
  • 処理済のメッセージはそのメッセージに応じたメールボックスに移す。
だけだったのだが、意外と苦労した。

Mail.app の振り分け機能では、好きなときに好きなルールのまとまりを適用するようなことはできない。さらに、あるルールの動作の結果が他のルールの動作に影響を与えることができない(例えば、あるルールでメッセージの状態を変え、他のルールでそれに基づいて処理を行なうことはできない)ように設計されているようだ。つまりフィルタは受信箱に入る時に適用されることだけを想定しているように見える。

だから上に書いたようなことをするには、先に(メールを受信した瞬間に)振り分けを行なうしかない。すると未処理メッセージを上のように読むには、スマートメールボックスを使うことになる。つまり、
  • ルールで振り分けをする
  • 未開封となっているメッセージをスマートメールボックスで読む
というやり方になる。これはきっと Mail.app の設計者も意図しているところだと思う。

でもこのやり方では、一度スマートメールボックスで開封して、誤ってそのスマートメールボックスから離れてしまうと、開封したメッセージは振り分け先のメールボックスから探し出さなければいけない。これは危険だ。

そこで、フラグを使って以下のようにして解決した。
  • 受信箱に入るメッセージには無条件にフラグを立てる
  • ルールで振り分けをする
  • フラグが付いたメッセージをスマートメールボックスで読む
  • 処理が済んだら手でフラグを落とす(削除や明示的な移動もできる)
  • 受信箱に残っている(振り分けるルールがない) メッセージを手で移動するなり消すなりする
とりあえずこれでうまくいっているように見えるが、いろいろ試していたせいか、メールボックスの再構築や Mail.app の再起動をしないとメッセージの状態が安定しない(移動できないとか、重複して表示されるとか)ことがあるみたい。でも前から Mail.app が不安定でよく落ちているから、この設定のせいではないのかも。