Sieve

メールサーバー | IT用語集

この用語をシェア

Sieveとは

Sieveは、サーバーサイドでメールをフィルタリングする標準スクリプト言語です。RFC 5228で標準化されており、メールの自動振り分け、転送、削除などの処理をサーバー側で実行します。クライアント非依存でフィルタリングが動作するため、どのメールクライアントからアクセスしても同じ振り分けルールが適用されます。

Sieveスクリプト例

# 基本的なフィルタリング例
require ["fileinto", "reject"];

# スパムを削除
if header :contains "Subject" "[SPAM]" {
    discard;
    stop;
}

# メーリングリストを振り分け
if header :contains "List-Id" "dev-team.example.com" {
    fileinto "INBOX.MailingLists.Dev";
    stop;
}

# 特定送信者を重要フォルダへ
if address :is "from" "boss@example.com" {
    fileinto "INBOX.Important";
    stop;
}

# 不在通知(vacation)
if header :contains "To" "user@example.com" {
    vacation :days 7 "I am on vacation until next week.";
}

Sieveの主な機能

  • fileinto: 指定フォルダへ振り分け
  • discard: メール削除
  • redirect: 転送
  • reject: 拒否(エラー返信)
  • vacation: 不在通知
  • 条件分岐: if/elsif/else

自社メールサーバー運用への応用

Dovecotでの設定

# /etc/dovecot/conf.d/90-sieve.conf
plugin {
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_default = /var/lib/dovecot/sieve/default.sieve
}

protocol lda {
  mail_plugins = $mail_plugins sieve
}

protocol lmtp {
  mail_plugins = $mail_plugins sieve
}

ManageSieve

Sieveスクリプトのリモート管理プロトコル:

# /etc/dovecot/conf.d/20-managesieve.conf
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}

クライアント対応

多くのメールクライアントがSieve/ManageSieveに対応:

  • Thunderbird: Sieve拡張機能あり
  • Roundcube: managesieveプラグイン
  • SOGo: ネイティブサポート

関連ブログ記事

まとめ

Sieveは、サーバーサイドで動作する標準的なメールフィルタリング言語です。クライアント非依存で振り分けルールが適用されるため、複数デバイスでメールを利用する現代の環境に最適です。Dovecotとの組み合わせで、高度なメール管理を実現できます。

この用語についてもっと詳しく

Sieveに関するご質問や、メールサーバー構築のご相談など、お気軽にお問い合わせください。