2026年7月16日
2026年7月16日
メールの受信フィルタ(Sieve)を設定する方法
はじめに
メールの受信フィルタ(Sieve)は、メールサーバー上で自動的に処理を行うための柔軟なスクリプト言語です。Sieve を使用することで、ユーザーは特定の条件を満たしたメールに対して自動返信や振り分け、削除などの操作を実行できます。これは、 Junk メールの自動分類、特定の送信元からのメールに対する対応、定期的なバックアップなどに役立ちます。
症状・背景
- 大量の Junk メールが迷惑になる場合
- 特定の送信元からのメールだけを特定のフォルダへ自動的に振り分ける必要がある場合
- 自動返信や拒否が必要なメールアドレス一覧を設定したい場合
- 一般的なメール管理作業を効率化したい場合
手順・設定方法
ステップ1: Sieve フィルタリングを有効にする
# Postfix の Sieve を有効にするため、master.cf ファイルを開きます。
sudo nano /etc/postfix/master.cf
# "sieve" というサービスを追加します。
sieve unix - n n - - pipe
flags=R user=sieve argv=/usr/bin/dovecot Sieve /var/spool/sieve/%u/default.svbin
# ソケットの設定を追加します。
sieve_before-rewrite unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/bin/dovecot sieve /var/vmail/%d/%u/default.svbin
ステップ2: Sieve フィルタリングスクリプトを設定する
# Sieve スクリプトを作成します。ここでは、 Junk メールを削除する例を示します。
sudo nano /var/spool/sieve/your-email@example.com/default.sieve
require ["fileinto", "reject"];
if header :contains "subject" "Junk" {
fileinto "Junk";
} else {
stop;
}
# Junk フォルダが存在しない場合は作成します。
sudo mkdir -p ~/Junk
ステップ3: Sieve サーバーを再起動する
# Postfix を再起動して変更を適用します。
sudo systemctl restart postfix
ステップ4: フィルタリングのテストとトラブルシュート
# ターゲットメールアドレスに Junk メールを送信して確認します。
echo "Subject: Junk" | mail -s "Junk" your-email@example.com
注意事項
- Sieve スクリプトは、Postfix の sieve コマンドや Dovecot の sieve サーバーで実行されるため、適切に設定する必要があります。
- フィルタリングスクリプトの記述には慎重になり、プライバシー保護と法的制限を遵守するようにします。
- Sieve は柔軟性が高く、複雑なフィルタリングロジックを実装できますが、不適切な設定は誤った動作やシステムの不安定性を引き起こす可能性があります。
まとめ
1. Sieve の有効化: Postfix の master.cf ファイルで Sieve を有効にします。
2. スクリプト作成: 目的に基づいてスクリプトを作成し、必要に応じてフォルダを設定します。
3. 再起動: Postfix サービスを再起動して変更を適用します。
4. テストと確認: スクリプトの動作をテストし、問題がなければ運用へ移ります。
関連記事: