[Dovecot] LDA sieve plugin [patch]
Hi all.
I spent some time testing Dovecot's LDA sieve plugin and found problem with "notify" method. In fact it always returns "generic sieve error"... and thus produces bounce messages like this:
Your message was automatically rejected by Dovecot Mail Delivery Agent.
The following reason was given: Unknown error
Deliver logs error: "generic sieve error", but otherwise server reports "notify" method as supported.
The problem is: original code was taken from curys sieve and requires "notifyd", as sieve runs 'chrooted' and can't access external binaries like "sendmail". communications with notifyd is done via socket.
Thus I wrote pacth, which ads "notify" functionality to dovecot's sieve plugin, at less "notify:mailto" method.
cyrus originally contains null, log and zephyr methods. null and log is useless with dovecot, zephur is cyrus specific...
RFC docs says there is 3 available methods SMS, XMPP and MAILTO:
method can be an SMS URI [SMS-URI http://ietfreport.isoc.org/idref/draft-ietf-sieve-notify/#ref-SMS-URI] containing a phone number, or an XMPP [XMPP http://ietfreport.isoc.org/idref/draft-ietf-sieve-notify/#ref-XMPP] URI containing an XMPP identifier [XMPP-URI http://ietfreport.isoc.org/idref/draft-ietf-sieve-notify/#ref-XMPP-URI] The supported URI values will be site-specific, but support for the [MailTo http://ietfreport.isoc.org/idref/draft-ietf-sieve-notify/#ref-MailTo] method is REQUIRED in order to insure interoperability. If a URI schema is specified that the implementation does not support, the notification MUST cause an error condition. Sieve scripts can check the supported methods using the "valid_notify_method" test to be sure that they only use supported ones, to avoid such error conditions.
as SMS-URI and XMPP methods are not included in cyrus sieve version, they are not available in dovecots plugin too. [any ideas, sample code how to implement them?]
BUT... WARNING All this will not work if you have "mail_chroot" setting enabled in dovecot.conf; chrooted process can't access required external binaries. DOT USE THIS PLUGIN WITH "mail_chroot" SENTIG ENABLED!
Actualy it is not sieve plugin problem only - its LDA problem... it can't send bonce messages, do forwards etc.
Question to Timo: Do You have ideas how to fix it? My be disable chroting for LDA at all? or do it "cyrus way" - move all calls to external binaries to sepreate, non chrooted process? For delivery agent it is requred to be able send bounces and notifications... do forwards.
Uldis
participants (1)
-
Uldis Pakuls