導入メモ。
環境
- FreeBSD 14.1
- Roundcube 1.6.7
- nginx 1.26.1
- Cyrus IMAPd 3.8.4
- managesieve 0.8
インストール
imapd.conf
sieveshell
を使うために、imapd.conf
の設定を変更しておく。sieveshell
ではsieveusehomedir
がyesに設定されていると次のようにエラーが出る。
Bad protocol from MANAGESIEVE server: EOL2
/usr/local/etc/imapd.conf
を編集してsievedir
のみ設定し、sieveusehomedir
は無効にしておく。
sieveusehomedir: no
sievedir: /var/imap/sieve
cyrus.conf
/usr/local/etc/cyrus.confを編集し、次の行がなければ追加する。
sieve cmd="timsieved" listen="sieve" prefork=0
managesieve cmd="timsieved" listen="4190" prefork=0
IMAPデーモンを再起動し、設定変更を反映させる。
# sudo service imapd restart
managesieve
Pythonパッケージのmanagesieve
をインストール。動作確認に必要なだけなので、入れなくてもかまわない。
# pip3 install managesieve
Python版のsieveshell
が付属している。Python仮想環境にインストールすれば、自動的にPython版がCyrus IMAPd付属版より優先して使用される。そうでない場合には、PATHを編集するかaliasを使って、Python版を使うようにする。
動作確認するには、次のようにコマンドを実行。
# sieveshell mail.server.jp
Password:
connecting to mail.server.jp as user user1
Server capabilities: encoded-character comparator-i;ascii-numeric fileinto reject ereject vacation vacation-seconds notify enotify include editheader vnd.cyrus.snooze envelope environment body imap4flags date ihave mailbox mboxmetadata servermetadata duplicate relational regex extlists subaddress copy index variables redirect-deliverby redirect-dsn special-use fcc mailboxid
>
パスワードを入力して、上記のようにプロンプト >
が表示されればOK。
Server capabilitiesとして羅列されているのは、sieve拡張のうちサポートしているもの。ただし、サーバー側でサポートしていても、Roundcube側のインタフェースがすべてサポートしているわけでないことに注意。
Roundcube: config.inc.php
Roundcubeのconfig.inc.php
に、プラグインmanagesieveを追加する。/usr/local/www/roundcube/config/config.inc.php
を編集し、$config['plugins']
の定義に次のように'managesieve'
を追加。
$config['plugins'] = [
'archive',
'zipdownload',
'hide_blockquote',
'identicon',
'show_additional_headers',
'managesieve',
];
managesieve: config.inc.php
managesieveのconfig.inc.php
を用意する。プラグインディレクトリ/usr/local/www/roundcube/plugins/managesieve
にあるconfig.inc.php.dist
をコピーして使用する。
# cd /usr/local/www/roundcube/plugins/managesieve
# sudo cp config.inc.php.dist config.inc.php
Roundcubeでの利用
フィルター
Roundcubeではmanagesieveプラグインのインストールが完了すると、「設定」の中に「フィルター」が現れる。このフィルターの中でsieveを編集する。
フィルターセット
設定からフィルターを選択すると、隣のペイン上部に「動作」の歯車が表示される。この歯車をクリックして、フィルターセットの操作を行う。
フィルターセットとは、sieveファイルのこと。フィルターセットごとにsieveファイルが作成される。
フィルターセットは複数作成できるが、有効化できるのはひとつだけ。複数用意しておいて、ケースごとに簡単に切り替えられるところが、メーラー付属のフィルターより便利。
フィルター
右側ペイン上部にある「作成」および「削除」により、フィルター定義を追加・削除できる。
すべてif
文を羅列する形で記述する。if
とelif
を並べたような動作をさせたい場合、それぞれのフィルター動作の最後に「規則の評価を停止」を追加する必要がある。
フィルターの順序を入れ替えるGUIは、今のところ用意されていない。順序を入れ替えたいときは、「動作」から「フィルターセット」を選択し、エディタ上で定義をカット&コピーすればよい。