[華語, cmn-Hant-TW]
雖然說去年底 Dovecot 2.3 就推出了,不過一直都沒時間理他,最近比較有空就來用 FreeBSD ports 升級,然後就卡關了,還好問題都不難處理,首先是升級一定會遇到的外掛程式版本匹配問題
doveconf: Error: Couldn't load plugin /usr/local/lib/dovecot/settings/libmanagesieve_login_settings.so: Module is for different ABI version 2.2.ABIv35(2.2.35) (we have 2.3.ABIv1(2.3.1))
所有 dovecot-* 相關套件重編即可
再來要設定 dh.pem,細節可以看這篇說明,不過其實照錯誤訊息提示的方法來設定就可以了 (設定檔在 /usr/local/etc/dovecot/dovecot.conf
)
doveconf: Warning: please set ssl_dh=</usr/local/etc/dovecot/dh.pem doveconf: Warning: You can generate it with: dd if=/var/db/dovecot/ssl-parameters.dat bs=1 skip=88 | openssl dhparam -inform der > /usr/local/etc/dovecot/dh.pem
這樣應該就可以跑起來了,不過接下來就發現系統怪怪的,sieve 失效了,信不會自動歸檔,看了一下 maillog (/var/log/mailog
) 找到了類似這樣的訊息
May 18 18:30:29 pighead dovecot: lmtp(pighead)<66864><Nbm6IUWr/lowBQEAHS1Vsw>: Error: sieve: Failed to initialize script execution: Invalid postmaster_address: invalid address `postmaster@' specified for the postmaster_address setting
這個 2.2 沒設沒問題,在 2.3 就不行了,所以要手動加一行進設定檔
postmaster_address = admin@pig-head.cc
這個就照自己實際上的 postmaster e-mail 去設就好了,其實隨便設一個也無妨就是
還有一個跟 Let’s Encrypt SSL 有關的狀況,如果把 chain.pem 設為 ssl_ca,cert.pem 設為 ssl_cert 的話,雖然一般收信軟體收信沒問題,不過 Roundcube Webmail 會連不上,在 maillog 裡面會看到類似這樣的訊息
May 18 18:34:07 pighead dovecot: imap-login: Disconnected (no auth attempts in 1 secs): user=<>, rip=10.3.18.1, lip=10.3.18.1, TLS handshaking: SSL_accept() failed: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca: SSL alert number 48, session=<4v7CTTts1Pp6dBv6>
解決方法是用 fullchain 當 cert,dovecot.conf 的 ssl 設定會類似這樣
ssl_cert=</usr/local/etc/dehydrated/certs/pig-head.cc/fullchain.pem ssl_key=</usr/local/etc/dehydrated/certs/pig-head.cc/privkey.pem
有碰到的問題大致上是這樣,也都解決了,還有遇到的話再來看怎麼處理