Я хочу использовать managesieve на моем сервере dovecot, который использует виртуальных пользователей и ldap для пользователей. Это в моем dovecot.conf:
plugin {
sieve_dir=/var/mail/sievescript/%u_scripts
sieve_extensions = +imapflags
}
protocol managesieve {
login_executable = /usr/lib/dovecot/managesieve-login
mail_executable = /usr/lib/dovecot/managesieve
managesieve_max_line_length = 65536
managesieve_logout_format = bytes=%i/%o
listen = *:2000
}
Если я попытаюсь поговорить с managesieve с помощью telnet, произойдет следующее:
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
"IMPLEMENTATION" "dovecot"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator- i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date imapflags"
"SASL" "PLAIN LOGIN"
"STARTTLS"
"NOTIFY" "mailto"
"VERSION" "1.0"
OK "Dovecot ready."
AUTHENTICATE "PLAIN" "xxxxxxxxxxxxx"
BYE "Internal error occured. Refer to server log for more information. [2011-10-02 00:48:09]"
Connection closed by foreign host.
В журнале Dovecot говорится:
2011-10-02 00:48:09 MANAGESIEVE(user): Fatal: Failed to create sieve storage with data: /var/mail/sievescript/user_scripts
Папка sievescirpt принадлежит dovecot: dovecot. Может кто-нибудь помочь?
Спасибо.
Если вы спросите себя, что это было: это был неправильный путь в конфигурации, потому что я использовал% u, но я должен был использовать% m
Dovecot не имеет доступа к почтовым или ситовым скриптам как пользователь dovecot, что объясняется в VirtualUsers документацию, так что, скорее всего, вам нужно выяснить, что Логин пользователя Dovecot использует для этого виртуального пользователя, назначенного из вашей пользовательской базы данных.