Roundcube: managesieveプラグイン

導入メモ。

環境

  • 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文を羅列する形で記述する。ifelifを並べたような動作をさせたい場合、それぞれのフィルター動作の最後に「規則の評価を停止」を追加する必要がある。

フィルターの順序を入れ替えるGUIは、今のところ用意されていない。順序を入れ替えたいときは、「動作」から「フィルターセット」を選択し、エディタ上で定義をカット&コピーすればよい。

タイトルとURLをコピーしました