[Dovecot] Sieve puts incoming message into inbox on any problem with submission_host

Stephan Bosch stephan at rename-it.nl
Mon Nov 12 01:15:22 EET 2012


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.





More information about the dovecot mailing list