オプションは、デフォルトのままにしておきます。
make NO_DIALOG=yes
make install
インストール時のメッセージを残しておきます。
===> Installing for dovecot-pigeonhole-0.5.21.1_1
===> Checking if dovecot-pigeonhole is already installed
===> Registering installation for dovecot-pigeonhole-0.5.21.1_1
Installing dovecot-pigeonhole-0.5.21.1_1...
This port assumes you are familiar with Dovecot and have it installed
and running on the system you have installed this plugin on.
You can enable the plugin with this directive in your dovecot.conf:
protocol lda {
# Support for dynamically loadable plugins. mail_plugins is
# a space separated list of plugins to load.
mail_plugins = sieve # ... other plugins like quota
}
Further information on configuration can be found at:
http://wiki2.dovecot.org/Pigeonhole
3. サーバ設定
「Postfix」「Dovecot」の設定は、参考サイトのものとずいぶん違います。
わたしが、はしょっているだけなのか?参考サイトの資料が古いのか?
「root」ユーザ権限で。
vi /usr/local/etc/postfix/main.cf
# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"
の後に、下記の行を記述します。
mailbox_command = /usr/local/libexec/dovecot/deliver
vi /usr/local/etc/dovecot/dovecot.conf
末尾に下記を記述します。
protocol lda {
mail_plugins = sieve
}
編集が終わったら、それぞれ文法チェックを行って。
postfix check
doveconf -n
再起動。
service dovecot reload
service postfix reload
4. 個別転送設定
ユーザごとに、個別に転送を行う設定です。
転送設定を行いたい、ログインユーザで。
vi ~/.dovecot.sieve
例えば、件名に「*****spam*****」という文言があれば、「user@example.net」へ転送するという設定を行う場合、下記を記述します。
(スパムメールの件名を変更する手順については「メールサーバ(postfix)- Rspamd(スパムフィルタ)」参照)
if header :contains "subject" "*****spam*****" {
redirect "user@example.net";
}
編集が終わったら。
sievec ~/.dovecot.sieve
この結果。
~/.dovecot.svbin
が生成されます。
(「postfix」「dovecot」では、この手のファイルは作成したら、ハッシュ化するかデータベース化するようです)
5. グローバルルール
前項は、ユーザ別の転送設定について記述しました。
わたしの場合、スパムメールを受信する専用のアカウントをつくっており。
スパムと判断したものは、そこに送りつけるようにしているようにします。
送りつけるルールを、すべてのユーザに作成するのは、面倒。
グローバルルールというものを作成するといいようです。
ルールを「/usr/local/etc/dovecot/sieve/」に記述するものとします。
mkdir -pv /usr/local/etc/dovecot/sieve
vi /usr/local/etc/dovecot/sieve/default.sieve
下記を記述します。
if header :contains "subject" "*****spam*****" {
redirect "receive_user@example.com";
}
1行目のスパムメールと判断する条件や、2行目の転送先の設定は、それぞれの環境に合わせます。
書き終わったら、下記のコマンドで、有効化しておきます。
sievec /usr/local/etc/dovecot/sieve/default.sieve
逆に、スパムメールの送信先では、何の条件があっても、スルーで受ける必要がありますので。
受信メールアドレスのユーザで。
vi ~/.dovecot.sieve
下記を記述します。
if true {
keep;
stop;
}
上記は、すべて真で、受信メールをそのまま受付、それ以上の条件は受け付けないという定義です。
書き終わったら、下記のコマンドで、有効化しておきます。
sievec ~/.dovecot.sieve
本項、上記までの設定を有効にします。
「root」ユーザ権限で。
vi /usr/local/etc/dovecot/conf.d/10-mail.conf
末尾に下記を記述します。
plugin {
sieve = ~/.dovecot.sieve
sieve_global_path = /usr/local/etc/dovecot/sieve/default.sieve
}
書き終わったらチェックして。
doveconf -n
再起動。
service dovecot reload
6. 確認
転送設定を行った、ユーザへ、スパムメールを送信して。
転送先のアドレスへ、メールが届けば、設定は、うまくいっています。
転送の記述の仕方は、今後、参考サイトを元に、細かくできるように考えたいと思います。
7. 参考サイト
本ページは、「ChatGPT」くんおよび下記のサイトを参考にさせていただきました。
「Cyrus IMAPd から Dovecot へ移行」
「sieve の書き方」