Dovecot
libdovecot-sieve.so.0 未定義符號:i_debug
在將 dovecot 從 1.2 升級到 2.1.7(同時將擠壓升級到 wheezy)後,篩子不再起作用。(併中斷郵件傳遞)
apt-purging all dovecot 軟體包並重新安裝並沒有改善這種情況,我仍然收到相同的錯誤消息:
==> mail.err <== Mar 14 13:40:14 xxx dovecot: deliver(postmaster@xxx.de): dlopen(/usr/lib/dovecot/modules//lib90_sieve_plugin.so) failed: /usr/lib/dovecot/libdovecot-sieve.so.0: undefined symbol: i_debug Mar 14 13:40:14 xxx dovecot: deliver(postmaster@xxx.de): Fatal: Couldn't load required plugins ==> mail.info <== Mar 14 13:40:14 xxx postfix/pipe[15828]: 13B1F19E0792: to=<xxx@xxx.de>, orig_to=<xxx@xxx.de>, relay=dovecot, delay=0.43, delays=0.32/0.01/0/0.09, dsn=4.3.0, status=deferred (temporary failure)
dovecot.conf:
protocols = imap lmtp sieve mail_plugin_dir = /usr/lib/dovecot/modules/ [snip] ... [/snip] protocol lda { mail_plugins = $mail_plugins sieve #mail_plugins = sieve } protocol lmtp { mail_plugins = $mail_plugins sieve } plugin { #recipient_delimiter = + sieve = ~/.dovecot.sieve sieve_dir = ~/sieve }
ll /usr/lib/dovecot/libdovecot-siev*
lrwxrwxrwx 1 root root 25 Feb 5 2013 libdovecot-sieve.so -> libdovecot-sieve.so.0.0.0 lrwxrwxrwx 1 root root 25 Feb 5 2013 libdovecot-sieve.so.0 -> libdovecot-sieve.so.0.0.0 -rw-r--r-- 1 root root 540304 Feb 5 2013 libdovecot-sieve.so.0.0.0
ll /usr/lib/dovecot/modules/篩子
-rw-r--r-- 1 root root 18392 Feb 5 2013 /usr/lib/dovecot/modules/lib90_sieve_plugin.so
問題解決了:
在 postfix 郵件被管道傳送到 dovecot 的傳遞而不是 lmtp
刪除 /etc/postfix/master.cf 中的管道,
dovecot unix - n n - - pipe flags=DORhu user=nobody argv=/usr/local/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -n -m ${extension}
並將虛擬傳輸添加到 /etc/postfix/main.cf,
virtual_transport = lmtp:unix:private/dovecot-lmtp
或者
virtual_transport = lmtp:unix:/var/run/dovecot/lmtp
為我解決了這個問題