この用語をシェア
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との組み合わせで、高度なメール管理を実現できます。
