Dovecot

libdovecot-sieve.so.0 未定義符號:i_debug

  • March 16, 2014

在將 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

為我解決了這個問題

引用自:https://serverfault.com/questions/582101