Ubuntu Postfix Mail Server 設定筆記 (五) MUA (Roundcube Webmail 及 Sieve 整合)

然之前已設定好 SMTP 、IMAP 及 POP3,已經可以使用 Thunderbird 等收發郵件。
但 Webmail 有時候還是比較方便。另外如果有類似 Gmail 的 Filter 功能就更好了。

還好現在在很多 FOSS 的 Webmail Client,
例如 RoundCube 和 OpenWebMail 等,原理都是用 IMAP/POP3 登入本機伺服器。

RoundCube 的介面比較接近現代網頁,就用它吧!
Sieve 是一種 “mail filtering language”,dovecot 也有 dovecot-sieve 提供其 implementation。
managesieved 貼在 dovecot 下提供通訊介面以管理每個 Mail User 的 Sieve 設定。

本文會安裝這三個 Package 並把它們整合在一起。

2017-04-26 更新: 更新文章格式

1. 安裝 sieve 及 managesieved

apt-get install dovecot-sieve dovecot-managesieved

為 LMTP 啟用 Sieve ,修改 /etc/dovecot/conf.d/20-lmtp.conf

mail_plugins = $mail_plugins sieve

預設 Sieve 使用者設定檔在 ~/.dovecot.sieve
因為我們使用 Virtual Mailbox,並沒有 ~ 的 Home Directory,所以需要把 Sieve 設定檔移進 Virtual Mailbox 內:

修改 /etc/dovecot/conf.d/90-sieve.conf 內的兩行:

sieve = /var/mail/vhosts/%d/%n/.dovecot.sieve
sieve_dir = /var/mail/vhosts/%d/%n/sieve

最後重啟 Dovecot。

2. 下載並安裝 Roundcube

cd /var/www/
wget https://github.com/roundcube/roundcubemail/releases/download/1.2.4/roundcubemail-1.2.4-complete.tar.gz
tar -zxv -f roundcubemail-1.2.4-complete.tar.gz

新增 Apache 設定:

<VirtualHost *:80>
	DocumentRoot /var/www/roundcubemail-1.2.4
	ServerName mail.edm.tiger-workshop.com
</VirtualHost>

重啟 Apache 後,使用瀏覽器執行 /installer/,按指示完成安裝。
main.inc.php 主要設定如下:

$rcmail_config['default_host'] = 'localhost';
$rcmail_config['default_port'] = 143;
$rcmail_config['imap_auth_type'] = 'PLAIN';

$rcmail_config['smtp_server'] = 'localhost';
$rcmail_config['smtp_port'] = 587;
$rcmail_config['smtp_user'] = '%u';
$rcmail_config['smtp_pass'] = '%p';
$rcmail_config['smtp_auth_type'] = 'PLAIN';

Database簡單起見使用 SQLite,database 目錄 chown 給 www-data 即可

mkdir /var/www/roundcubemail/database/
chown www-data:www-data /var/www/roundcubemail/database/

db.inc.php 設定:

$rcmail_config['db_dsnw'] = 'sqlite:////var/www/roundcubemail/database/roundcube.db?mode=0646';

使用之前設定的 IMAP 帳戶登入 http://mail.edm.tiger-workshop.com/,應該能成功登入。

Roundcube

3. RoundCube Sieve 整合

啟用 RoundCube 的 ManageSieve 過濾器設定整合,再修改 main.inc.php

$rcmail_config['plugins'] = array('managesieve');

重啟後 Settings 內出現 Filters,應該已能新增 Filter 成功。
發封信測試 Filter 是否正常運作。

Filter

4. 加速 Roundcube 操作

剛安裝好的 RoundCube 反應很慢,Google 找過主要原因是 Dovecot 預設設定下的 IMAP 登入很慢,
而 RoundCube 需要大量 IMAP 登入操作。

Dovecot 預設啟用了 PAM,登入失敗後才 Fallback 到先前設定的密碼檔,浪費很多時間。
所以我們需要把 PAM 停掉:

修改 /etc/dovecot/conf.d/auth-system.conf.ext

#passdb {
  #driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
#}
...

把除了之前自己設定的 passdb 與 userdb 都 Comment 掉,貯存後重啟 Dovecot。

另外一種提速就是指定 IMAP 與 SMTP 的 Auth Type,以免去 Auto-Negotiation 的程序,之前設定已新增了:

$rcmail_config['imap_auth_type'] = 'PLAIN';
$rcmail_config['smtp_auth_type'] = 'PLAIN';

RoundCube 現在應該速度飛快了!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.