FreeBSD 14.3 RELEASE - postfix - 転送設定


クラウディア 


1. 概要
2. インストール
3. サーバ設定
4. 転送設定
5. 確認
6. グローバルルール
7. 参考サイト

1. 概要

 メールの転送設定は、「postfix」でも「procmail」が使えるらしいのですが、もっとスマートなやり方があるようです。

2. インストール

 「sieve」というプラグインを使用するようなのですが。  「ports」の名称に「sieve」という名称がついていないので、いささか戸惑います。  パッケージ名は、「dovecot-pigeonhole」なのです。  「root」ユーザ権限で。

cd /usr/ports/mail/dovecot-pigeonhole

make config
 下記がデフォルトのオプションです。

 オプションは、デフォルトのままにしておきます。


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. サーバ設定

 サーバの設定は、参考サイトのものとずいぶん違います。  わたしが、はしょっているだけなのか?参考サイトの資料が古いのか?  「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」へ転送するという設定を行う場合、下記を記述します。

if header :contains "subject" "*****spam*****" {
  redirect "user@example.net";
}
 編集が終わったら。

sievec ~/.dovecot.sieve
 この結果。

~/.dovecot.svbin
 が生成されます。  (「postfix」「dovecot」では、この手のファイルは作成したら、ハッシュ化するかデータベース化するようです)

5. 確認

 転送設定を行った、ユーザへ、スパムメールを送信して。  転送先のアドレスへ、メールが届けば、設定は、うまくいっています。  転送の記述の仕方は、今後、参考サイトを元に、細かくできるように考えたいと思います。

6. グローバルルール

 わたしの場合、スパムメールを受信する専用のアカウントをつくって、スパムと判断したものは、そこに送りつけるようにしているのですが。  送りつけるルールを、すべてのユーザに作成するのは、面倒。  グローバルルールというものを作成するといいようです。  ルールを「/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

7. 参考サイト

 本ページは、「ChatGPT」くんおよび下記のサイトを参考にさせていただきました。
Cyrus IMAPd から Dovecot へ移行」
「sieve の書き方

AbemaTV 無料体験
Amazonギフトカード
それがだいじWi-Fi