On 11/9/2012 2:24 PM, Christian Rohmann wrote:
Hello dovecot-users,
I have a question/suggestion regarding the submission_host feature of the lda (either via dovecot-lda binary or lmtp) in combination with sieve.
The same applies to vacation messages being sent out. Especially with an (unconditional) redirect action, users don't expect to find messages in their inbox. Also problems with the submission_host could very much be temporary and a little delay in delivering a message is better then putting it somewhere the user doesn't expect a message to be.
Yes, I agree. With the normal sendmail configuration this situation was much less likely to occur since messages would be queued locally first.
Is there any way to change the behavior of dovecot or the sieve plugin to tempfail in case a message cannot be sent out? Not currently, I've been thinking about something like that for use with the extprograms plugin, which presents similar challenges.
I know that with multiple sieve actions it gets more complicated as there could be corner cases were the first message can be sent via the submission server and another message produced by the same sieve script cannot.
Exactly. And other kind of actions even make this more annoying. The Sieve interpreter tries to do things atomically as much as possible. With outgoing messages, that is rather difficult, so these actions are performed only after all other actions, e.g. local folder deliveries, succeed. So, in the current implementation simply issuing a temp fail would yield the even nastier result of duplicating deliveries; it is not possible to simply undo local message deliveries at that stage anymore.
To solve this definitively I'll have to do some redesign of the action execution sequence.
I'd love sieve to behave like this:
a) if submission host is unreachable (hostname wrong, timeout, ...) -> tempfail The simplest solution right now would be to perform a pre-check on whether the message submission is likely to succeed or not.
Regards,
Stephan.