パソコンの受信トレイは整っているのに、スマートフォンでは雑然としている。同じメールボックス、同じアカウントでも結果が違うのは、整理を担うメールフィルターがパソコンのメールソフト内にあり、スマートフォンにはそのルールがないからです。
ローカルルールは、ソフトが動いている間だけ実行されます。金曜日にノートパソコンを閉じると、月曜日まで振り分けが止まることがあります。その後、三日分のメールがまとめて移動し、おとといスマートフォンで読んだメールの通知が出る場合もあります。
サーバー側のフィルターは配達時に実行され、指定のフォルダーにメールを保存します。後から接続した端末には、整理済みのメールボックスが表示されます。この仕組みを支えるのが、用途に適した実績ある言語 Sieve です。ただし、通知やフォルダーの表示はメールソフトの設定にも左右されます。
メールフィルターの実行場所で結果が変わる
| ローカルルール | サーバー側のフィルター | |
|---|---|---|
| 実行タイミング | ソフトを開いて同期している間 | メールの配達時 |
| 結果が見える範囲 | ルールは一台の端末で実行され、IMAP の変更は後から同期される | 接続した端末で同期後に確認できる |
| 通知への影響 | スマートフォンが通知した後で、メールが受信トレイから移ることがある | 同期前に振り分け済み。通知はソフトの設定次第 |
| 再インストール後 | ソフトのプロファイルを保存していないと失われる場合がある | サーバー上のメールボックス設定が残る限り維持される |
| 就寝中 | パソコンとソフトを動かしておく必要がある | サーバーが配達している限り、自分の端末には依存しない |
通知の違いは日常的に感じられます。ニュースレターが届いてスマートフォンが振動し、四十分後にパソコンのソフトがメールを後で読むへ移動する。ルールは動きましたが、避けたかった中断はすでに起きています。サーバー側のフィルターなら、スマートフォンとの同期前に振り分けられます。そのフォルダーの通知は別途設定してください。
Sieve の概要
Sieve の役割は、配達時にメールをどう扱うか決めることです。基本言語は RFC 5228 で定義され、意図的にチューリング完全ではない設計になっています。ループや任意のプログラムを実行する機能はありません。こうした制約が安全なフィルタリングに役立ちます。利用できる拡張とその機能はサーバーによって異なるため、基本言語の制約がすべての拡張にも当てはまるとは限りません。
スクリプトの例です。
if header :contains "from" "billing@vendor.com" {
fileinto "Finance/Invoices";
stop;
}
自分で書く必要はありません。ビジュアルエディターが裏側で Sieve を生成し、各フィルターが配達用スクリプトに組み込まれます。この仕組みを知ると、明示的な停止で処理が終わること、転送が SMTP で行われること、サーバーの振り分けが同期後に各端末へ反映されることを理解できます。フォルダーに保存するだけでは、後続のルールは自動的に停止しません。
フィルターには振り分け先が必要
メールを振り分けるには保存先が必要です。ただ、三十個のフォルダーを平らに並べても、混乱の形が変わるだけかもしれません。
サーバーとメールソフトの制限内で、フォルダーを入れ子にできます。ツリーは IMAP の構造から作られるため、ウェブメール、Outlook、Apple Mail、スマートフォンから同じ階層を利用できます。あるソフトで作ったサブフォルダーは同期後に他のソフトにも現れますが、フォルダーの購読設定が必要な場合があります。
Clients
Acme
Invoices
Contracts
Globex
Invoices
Finance
Receipts
Tax
ツリーを使いやすくする機能は次の三つです。
個人ごとに保存される展開と折りたたみ。 ウェブメールでは、共有メールボックスのツリー状態とフォルダーの色をメンバーごとに保存します。設定はフォルダーではなくメンバーに属するため、二人がそれぞれのサイドバーを整えても互いに影響しません。
色。 よく使う四つか五つのフォルダーを目立たせれば、一覧を毎回読み直さずに見つけられます。
階層を考慮した検索。 最も重要な機能です。Clients では、そのフォルダーだけ、サブフォルダーを含めた範囲、メールボックス全体から選べます。二番目の範囲がなければ、末端のフォルダーを一つずつ検索する必要があります。範囲の使い方は複数のメールボックスをまとめて検索する方法をご覧ください。
ビジュアルエディターでフィルターを作る
フィルターは条件とアクションで構成されます。
条件では、差出人、宛先、件名、本文、サイズ、指定のヘッダーを確認します。「含む」「完全一致」「で始まる」「で終わる」などの比較を使えます。複数の条件は、すべて一致するか、いずれかが一致すればよいかを選びます。
アクションでは、フォルダーへの保存、別のアドレスへの転送、既読や重要のマーク、通知なしの破棄、差出人への応答を伴う拒否などを指定できます。
特に注意が必要なアクションが二つあります。
破棄は通知されず、ゴミ箱にもコピーが残りません。 サーバーはメールを受け付けますが、メールボックスには保存しません。技術ログに処理の記録が残る場合はあっても、復元できるコピーではありません。条件が広すぎると、必要なメールまで気づかないうちに失われます。普段あまり開かないフォルダーへの保存をお勧めします。
拒否は SMTP エンベロープの差出人へ失敗通知を送る場合があります。この差出人はメールの作者と同じとは限りません。アドレスが偽装されていると、無関係な人に通知が届き、不要なバウンス通知であるバックスキャッターを生むことがあります。動作は実装と拒否の段階によって異なります。疑わしいメールは迷惑メールフォルダーへ保存するほうが通常は安全です。
フィルターによる転送は SMTP を使うため、転送先で認証に失敗する場合があります。SRS はエンベロープアドレスを書き換えて SPF の問題を軽減しますが、その経路で適用されるか確認が必要です。DMARC の成功や Gmail の受信トレイへの配信を保証するものではありません。迷惑メール扱いの原因は、ヘッダーと認証結果から調べてください。
メールフィルターは順番に実行される
ルールは上から下へ評価されます。そのため、フィルターの組み合わせが予想と違う結果を生むことがあります。
次の二つのルールを考えます。
@acme.comからのメール → Clients/Acme に保存- 件名に invoice を含む → Finance/Invoices に保存
Acme からの請求書は先にルール 1 に一致し、Clients/Acme に入ります。そのルールで処理の停止を有効にしていれば、ルール 2 は実行されません。原因は停止設定であって、フォルダーへの保存そのものではありません。警告が出るとは限らず、単に財務フォルダーに Acme の請求書が見当たらなくなります。
原則は具体的なルールを先に、一般的なルールを後にです。ある取引先の請求書ルールは、その取引先の全メールを扱うルールより上に置きます。フィルターが動かなくなったら、まず上のルールと停止設定を確認しましょう。ドラッグして順番を変えるだけで解決することもあります。
Sieve を手書きする場面
ビジュアルエディターは多くの日常業務に対応します。そこで表現できない条件には、Agency プランの Sieve ソースエディターを使えます。
これとそれを満たし、別の条件は満たさない、といった入れ子の論理、正規表現、追加ヘッダー、自動返信と振り分けと転送を組み合わせたスクリプトに向いています。必要な拡張をサーバーがサポートしていることが前提です。テキストのスクリプトなら、バージョン管理や複数のメールボックスでのテンプレート利用にも便利です。
require ["fileinto", "regex", "imap4flags"];
if allof (
header :regex "subject" "^\\[TICKET-[0-9]+\\]",
not header :contains "from" "noreply@"
) {
setflag "\\Flagged";
fileinto "Support/Active";
stop;
}
注意点として、ソーススクリプトとビジュアルルールは同じメールボックスのフィルタリングを制御します。手書きの変更がビジュアルルールへ戻されたり、次の生成時にも維持されたりすると考えないでください。メールボックスごとに主な管理方法を選びましょう。詳しくはSieve ソースエディターをご覧ください。
役立つ設定方法
差出人ではなくエイリアスで振り分ける。 サービスごとに メールエイリアスを分け、newsletters@、receipts@、shopping@ などを使えば、宛先のルールで多数の差出人ルールを置き換えられます。サービスが送信ドメインを変えても使えます。ただし、宛先ヘッダーに実際に表示されるアドレスを確認してください。BCC やアドレスの書き換えでは別の条件が必要な場合があります。
削除せずフォルダーへ保存する。 通知、警告、領収書を自動メールにまとめれば、受信トレイを個人間のやり取りに使いながら、後から検索できます。配達時の破棄には復元用コピーがありません。フォルダー保存なら、他の理由で削除されない限りメールを残せます。
急ぎのメールは移動せずマークする。 受信トレイから出すと見落としやすくなります。重要マークを付け、目に入る場所に残しましょう。
一般的なルールは最後に一つ置く。 上で未処理のメールを確認用フォルダーへ保存する一時的なルールで、設定の漏れを探せます。前のルールの停止設定を考慮し、構成が安定したら確認ルールを削除します。
階層を先に作り込まない。 まだ受け取っていないメールのために三段のフォルダーを作っても、実際の使い方とは合わないことがあります。同じ種類のメールが増えてからフォルダーを作りましょう。
メールフィルターの制限
| 原文のプラン | 原文のメールボックス別フィルター数 | 原文のフィルター転送数 | Sieve ソースエディター | 自動返信 |
|---|---|---|---|---|
| Nano | 3 | 利用不可 | 不可 | 不可 |
| Starter | 3 | 利用不可 | 不可 | 可 |
| Pro | 10 | 5 | 不可 | 可 |
| Agency | 50 | 25 | 可 | 可 |
表は原文のデータを残したもので、現在の上限を保証しません。現行の設定では Nano と Starter の通常のユーザールールは有効になっていませんが、Starter には別の転送上限があります。アカウントの現在の機能を確認してください。転送は利用者に代わってメールを送るため、保存容量だけでなく送信ポリシーにも関係し、別途制限されます。
よくある質問
サーバー側のフィルターは Outlook や Apple Mail でも使えますか?
はい。配達時に処理され、メールソフトには同期後に整理済みのメールボックスが表示されます。同じルールをソフト側に作る必要はありませんが、フォルダーの購読と通知は別途設定します。
Sieve を覚える必要はありますか?
いいえ。ビジュアルエディターがスクリプトを生成します。より複雑な用途には Agency のソースエディターを使えます。
フィルターが動かなくなったのはなぜですか?
よくある原因は、前のルールが一致して処理を止めることです。順序と停止設定を確認し、その後で条件、ルールの有効状態、現在有効なスクリプトを確認してください。
受信済みのメールにも実行できますか?
これらのフィルターは配達時に動き、新着メールを対象にします。保存済みのメールは検索と一括操作で整理してください。Sieve が別の再処理ツールを排除するわけではありませんが、それは別の機能です。
フィルター転送とメールボックス転送は何が違いますか?
メールボックス転送は、その設定が適用されるすべての新着メールのコピーを送ります。フィルターは条件に合うメールを選びます。また、転送アクションにはコピーを残すものと残さないものがあります。選んだアクションと他のルールの組み合わせを確認してください。
フォルダーの色はチームで共有されますか?
いいえ。ウェブメールの色とツリー状態は共有メールボックスのメンバーごとに保存されます。他のメールソフトにも同じ色が表示されるとは限りません。
フォルダーは何段まで入れ子にできますか?
サーバーとメールソフトの制限内で階層を作れます。三段を超えると、順に開くより検索のほうが便利な場合が多くなります。ツリーは IMAP に基づきますが、表示と購読はソフト次第です。
迷惑メールをフィルターで破棄すべきですか?
避けたほうが安全です。破棄ではゴミ箱に保存されず、広すぎる条件によって必要なメールが通知なしで失われる場合があります。迷惑メールフォルダーを使い、迷惑メールを報告して分類器へ情報を送ってください。通常の移動は同じ操作ではありません。違いはブロックした差出人をご覧ください。