ただし、すでに、CentOS 7においてdovecot(2.2.36)が導入されていて、
postfixが、dovecot-ldaコマンドを用いて配送しているものとする。
■追加のパッケージをインストールした。
# yum install dovecot-pigeonhole
Installed:
dovecot-pigeonhole.x86_64 1:2.2.36-3.el7
Dependency Updated:
dovecot.x86_64 1:2.2.36-3.el7
Complete!
# yum info dovecot-pigeonhole
Name : dovecot-pigeonhole
Arch : x86_64
Epoch : 1
Version : 2.2.36
Release : 3.el7
Size : 1.6 M
Repo : installed
From repo : base
Summary : Sieve and managesieve plug-in for dovecot
URL : http://www.dovecot.org/
License : MIT and LGPLv2
Description : This package provides sieve and managesieve plug-in for dovecot LDA.
■dovecotでsieveを有効化した。
二つのファイルにおいて次のように該当個所を編集した。
# vi /etc/dovecot/conf.d/15-lda.conf
・・・# vi /etc/dovecot/conf.d/20-managesieve.conf
protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
#mail_plugins = $mail_plugins
mail_plugins = $mail_plugins sieve}
・・・
・・・
# Uncomment to enable managesieve protocol:
#protocols = $protocols sieve
protocols = $protocols sieve
・・・
○dovecotの再起動を行った。
# systemctl restart dovecot
■ThunderbirdにSieve 0.3.0を導入し、ルール作成と有効化を行う。
使用しているThunderbirdは 60.3.0(Linux 64bit) である。
フィルタリングルールはThunderbird側で行うことができる。
○Thunderbirdにsieveを導入した。
Thunderbird画面右上にある「≡」アイコンから、「アドオン」を開き、
拡張機能項目より「sieve」を検索し、インストールした。
○sieveの振り分けルールの作成を行った。
<Sieve Filterの有効化>
1、sieveによるサーバーサイドでのメール振り分けを行いたいIMAPアカウントを、
Thunderbird画面の左側にある一覧より選びクリックする。
2、再び「≡」アイコンから、「メッセージフィルタ」メニューより「Sieve Filter Settings(S)」をクリックする。
3、"Yes, manage Sieve scripts for this account: " を選択した。
<sieveフィルタルールの作成>
簡単のため受信フォルダ(INBOX)に保存するだけのルールとした。
1、再び「≡」アイコンから、「メッセージフィルタ」メニューより「Sieve Message Filters(M)」をクリックする。
2、Filter for: に、該当のIMAPユーザー名が表示されているか確認した。
3、右側の「NEW」ボタンをクリックして、フィルタスクリプト名を与えた。
4、一覧に表示されたフィルタスクリプトをダブルクリックして編集画面を表示させた。
5、上部の「Source」ボタンをクリックする毎にGUIあるいはCUI編集モードに切り替わるので、GUIモードにした。
6、左側に「Action、Tests、Operators、Debugging」と命令や演算子が分類されているので、「Action」を開いて命令一覧を表示させた。
7、「Action」命令一覧から「fileinto」をマウスドラッグして、隣枠上部にある細い長方形で囲まれた空白にまで持って行くと赤線が現れるので、ドロップした。
8、ドロップによって追加された項目をダブルクリックすると編集メニューが現れるので、次のように編集して保存する。
指定しているINBOXはデフォルトの受信トレイを表す。
別のフォルダも指定できる。
そのフォルダが存在しない場合も、下記画面のように「Create folder, When non existant」にチックしておけば自動生成される。
(ただし、そのフォルダはIMAPメールクライアントで「購読(サブスクリプト)」されていなければ表示がされない。)
受信トレイ配下に作成するサブフォルダは、受信トレイは通常「購読」されているので、
自動的にIMAPメールクライアントに表示される。
受信トレイ配下に作成するサブフォルダは次のように指定すればよい。
(例)INBOX.folder
編集が終わったら「Apply」をクリックする。
すると、次の画面のようになった。
最後に「Save」ボタンをクリックして、作成したルールを保存した。
9、フィルタルール一覧画面に復帰したら、右側にある「Active」をクリックして有効化しておく。これで作成したフィルタがDovecotサーバー側で有効になった。
■動作確認
テストメールを通過させた後、Dovecotサーバーマシンにおいてログを確認した。
# grep lda /var/log/maillog
Jan 8 06:39:03 xxxxxxxx dovecot: lda(xxxxxxxx@example.com): sieve: msgid=<xxxxxxxx>: stored mail into mailbox 'INBOX'
そして、IMAPメールクライアント側でも、テストメールを確認できた。
上述しているように、
該当サブフォルダについて「購読(サブスクリプト)」の状態がオフであれば、配信はされていてもクライアントで表示されないことになるので注意すること。
<参考>
・My IMAPサーバを再構築 (Fetchmail+Dovecot+Pigeonhole(Sieve))
< http://wadahiro.hatenablog.com/entry/2012/07/07/194820 > 2019年1月8日
・CentOS7 サーバ構築メモ/メール振り分け設定プラグイン設定
< https://www.terra.jp.net/dysd/centos7.html > 2019年1月8日
・Pigeonhole Sieve examples
< https://wiki.dovecot.org/Pigeonhole/Sieve/Examples > 2019年1月8日
・Add-ons / Sieve 0.3.0 by Thomas Schmid
< https://addons.thunderbird.net/en-US/thunderbird/addon/sieve/ > 2019年1月8日
・Sieve: An Email Filtering Language
< https://tools.ietf.org/html/rfc5228 > 2019年1月8日