user icon

ソースからビルドしたDovecotにpigeonholeを入れる

以前Dovecotをソースからビルドしましたが、dnfでdovecot-pigeonholeを入れても(当然)動かなかったので、別途入れる事にしました。
https://pigeonhole.dovecot.org/download.html
こちらから安定版リリースを取得。
いつの間にか、pigeonholeとmanagesieveが一つのパッケージにまとまっていました。

make

デフォルトで/usr/localに入るようで、configureでディレクトリ指定のオプションは不要でした。
tar xzf dovecot-2.3-pigeonhole-0.5.20.tar.gz 
cd dovecot-2.3-pigeonhole-0.5.20/
./configure
make
make install

Dovecot 設定

/usr/local/share/doc/dovecot/example-config/conf.d/ にsieveのconfが出来るので、sieve関連のファイルを/usr/local/etc/dovecot/conf.d/へコピーします。
cp /usr/local/share/doc/dovecot/example-config/conf.d/*sieve*.conf /usr/local/etc/dovecot/conf.d/
  • 20-managesieve.conf
以下のコメント化を解きます。
protocols = $protocols sieve
service managesieve-login{
  inet_listener sieve {
    port = 4190
  }
}
service managesieve{
}
90-sieve.confはデフォルトのままで動作するので、編集不要です。
LMTP配信
以下、sieveがLMTPで動作するように設定します。
  • 10-master.conf
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
今回はRoundCubeへログインするアカウントが、メールアドレス形式(yamada@virtual.localdomain 等)なので不要ですが、ユーザ名のみ(yamada 等)の場合はauth_username_format = %nを設定します。
※下手に設定するとログイン出来なくなります。
  • 20-lmtp.conf
postmasterは実在するユーザの誰かを指定します。
protocol lmtp {
  postmaster_address = yamada@virtual.localdomain
  mail_plugins = $mail_plugins sieve
}
編集が終わったら、リロードします。
doveadm reload

Postfix

  • /etc/postfix/main.cf
virtualユーザを対象にします。
virtual_transport = lmtp:unix:private/dovecot-lmtp

RoundCube

  • config/config.inc.php
pluginsにmanagesieveを追加します。
$config['plugins'] = ['acl', 'managesieve'];
RoundCubeも同じサーバで動作しているので、plugins側の設定ファイルはなくても動作しますが、一応設定ファイルをコピーしておきます。
cp -p plugins/managesieve/config.inc.php.dist plugins/managesieve/config.inc.php
サーバが異なる場合は、managesieve_hostを変更して下さい。
RoundCubeにログインして設定を開くと、フィルターが追加されています。
動作するか確認するため作成を押して、件名 Subjectに「test」が含まれていたらtestフォルダへ移動させてみます。
これで自分宛に件名を「test」を含んだメールを送って、テストフォルダへ到達していれば完了です。
Facebooktwitterlinkedintumblrmail

Tags: , , ,

名前
E-mail
URL
コメント

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)