今回はメール振り分け機能を導入します。
この機能によって例えば件名に「SALE」とあるメールを「広告」というフォルダに振り分けるといった事が出来ます。
また、複数のメールアドレスに届いたメールをエイリアスで1つのメールアドレスに集約しているような場合は、この機能でどのメールアドレス宛てかによってフォルダに振り分けることが出来ます。
この記事で行うこと
1. Pigeonholeのインストール
PigeonholeはDovecotのモジュールの1つでSieveといわれるメールの振り分け機能を持っています。
また、Pigeonholeはメールの振り分けルールをサーバにSSH等でログインしなくてもクライアントから設定できるManage Sieveという機能も持っています。
このため、これ1つで振り分けに関する機能を取りそろえることが出来ます。
こちらは普通に dnf
を使ってインストールできます。
[root@localhost ~]# dnf install dovecot-pigeonhole
2. Dovecotの設定
前述の通りPigeonholeはDovecotのモジュールなので、Dovecotの設定を行う事になります。
変更する箇所を表す部分で「-」は削除する行(変更前)、「+」は追加する行(変更後)となります。また、記号の記載が無い行は参考までに前後の行を記載しているものです。
2-1. dovecot.confの設定
ManageSieveによるアクセスを出来るようにするために、プロトコルの部分にsieveを加えます。
/etc/dovecot/dovecot.conf
を編集します。
# Protocols we want to be serving.
- protocols = imap lmtp
+ protocols = imap lmtp sieve
2-2. lmtp.confの設定
DovecotがMDA機能によってメールを配信するときにSieveでの振り分けを行います。
このため、MDA機能であるLMTPのプラグインとしてSieveを設定します。
/etc/dovecot/conf.d/20-lmtp.conf
を編集します。
protocol lmtp {
# Space separated list of plugins to load (default is global mail_plugins).
- #mail_plugins = $mail_plugins
+ mail_plugins = $mail_plugins sieve
}
2-3. managesieve.confの設定
/etc/dovecot/conf.d/20-managesieve.conf
はその名の通りManageSieveの設定を行うファイルですが、今回はデフォルト値で問題が無いため、このままとします。
ポート番号を変える必要がある場合などに使ってください。
2-4. sieve.confの設定
ManageSieve等を使って設定された振り分け情報は、初期値ではユーザディレクトリ( /home/ユーザ名/
)下に保存されます。
しかし、メールボックスの場所を変えている場合などはユーザディレクトリ下ではなく別の場所にしたいという場合があると思います。
その場合は、 /etc/dovecot/conf.d/90-sieve.conf
内の以下の部分を修正します。
- sieve = file:~/sieve;active=~/.dovecot.sieve
+ sieve = file:「設定したいフォルダ」;acitive=「設定したいファイル名」
「設定したいフォルダ」はメールボックスの場所と同じにすることをオススメします。必要なフォルダ権限が同じなので、アクセス権限で詰まることが減るためです。
ちなみに、こちらもメールボックス同様に %u
といった変数が使えます。
active=
というのはアクティブな振り分けファイルのエイリアスとなるものです。
あまり深く考えずに、メールボックスのディレクトリに dovecot.sieve
というファイル名で入れれば良いかと思います。
ちなみに元の設定では .dovecot.sieve
と .
が付いていますが、メールボックス内で先頭に .
のついたファイルがあると、メールのフォルダと勘違いされてしまうので注意してください。
3. ファイアウォールの設定
同じサーバ内からアクセスする場合(メールサーバと同じサーバにインストールされたRainLoopを使う場合など)は不要ですが、外部からアクセスするにはポートを空けてあげる必要があります。
今回はサービスを作らずに直接ポートを指定して開けたいと思います。
[root@localhost ~]# firewall-cmd --add-port=4190/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
もし、ポート番号を変更している場合は 4190
を変更したポート番号に合わせてください。
4. ManageSieveへのアクセス
ManageSieveを扱えるクライアントにはThunderBird等がありますが、今回は前回インストールしたRainLoopを使ってアクセスしてみたいと思います。
RainLoopの管理画面を開きます。
設定が終わったら、ユーザとしてログインして、設定画面に行きます。
まとめ
これで、メールの振り分け機能まで設定できました。
一通り問題なく使えるメールサーバとなったのではないかと思います。(零細の無料メールサービスよりかは使えるんじゃないかなと)
次回は、迷惑メールのフィルタリング機能を入れたいと思います。