libdovecot-sieve.so.0 未定义符号:i_debug

libdovecot-sieve.so.0 未定义符号:i_debug

将 dovecot 从 1.2 升级到 2.1.7 后(同时将 squeeze 升级到 wheezy),sieve 不再起作用。(并且中断了邮件传递)

apt-purging 所有 dovecot 包并重新安装并没有改善情况,我仍然收到相同的错误消息:

==> mail.err <==
Mar 14 13:40:14 xxx dovecot: deliver([email protected]): 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([email protected]): Fatal: Couldn't load required plugins

==> mail.info <==
Mar 14 13:40:14 xxx postfix/pipe[15828]: 13B1F19E0792: to=<[email protected]>, orig_to=<[email protected]>, 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/*sieve*

-rw-r--r-- 1 root root 18392 Feb  5  2013 /usr/lib/dovecot/modules/lib90_sieve_plugin.so

答案1

问题解决了:

在 postfix 中,邮件通过 dovecot 的 deliver 管道传输,而不是 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

为我解决了这个问题

相关内容