- 未処理のメッセージは特定のメールボックスで見る。
- 処理済のメッセージはそのメッセージに応じたメールボックスに移す。
Mail.app の振り分け機能では、好きなときに好きなルールのまとまりを適用するようなことはできない。さらに、あるルールの動作の結果が他のルールの動作に影響を与えることができない(例えば、あるルールでメッセージの状態を変え、他のルールでそれに基づいて処理を行なうことはできない)ように設計されているようだ。つまりフィルタは受信箱に入る時に適用されることだけを想定しているように見える。
だから上に書いたようなことをするには、先に(メールを受信した瞬間に)振り分けを行なうしかない。すると未処理メッセージを上のように読むには、スマートメールボックスを使うことになる。つまり、
- ルールで振り分けをする
- 未開封となっているメッセージをスマートメールボックスで読む
でもこのやり方では、一度スマートメールボックスで開封して、誤ってそのスマートメールボックスから離れてしまうと、開封したメッセージは振り分け先のメールボックスから探し出さなければいけない。これは危険だ。
そこで、フラグを使って以下のようにして解決した。
- 受信箱に入るメッセージには無条件にフラグを立てる
- ルールで振り分けをする
- フラグが付いたメッセージをスマートメールボックスで読む
- 処理が済んだら手でフラグを落とす(削除や明示的な移動もできる)
- 受信箱に残っている(振り分けるルールがない) メッセージを手で移動するなり消すなりする