The sieve-extprograms extension strips Return-Path headers before passing mail off to the external program. The patch to remove this behavious is trivial (and attached), but since it appears to be deliberate I felt I should investigate further. I believe this is basically a cut-and-paste error. The code to strip Return-Path has been there since the sieve-pipe plugin for Dovecot 1.x, and I believe it was copied from the equivalent code in the 'redirect' action for passing mail off to sendmail(8). In that case, stripping Return-Path is correct, since the message is being resubmitted for delivery (by SMTP or otherwise), and the last step of the new delivery will (should) add a new Return-Path header with the new envelope information. In the case of sieve-extprograms, though, the filtering is happening post-delivery, so a stripped Return-Path will never be replaced. Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: return-path.patch Type: text/x-diff Size: 1012 bytes Desc: not available URL: <http://dovecot.org/pipermail/dovecot/attachments/20121113/5433942f/attachment-0004.bin>
Stephan Bosch
2012-Nov-25 09:30 UTC
[Dovecot] sieve-extprograms strips Return-Path headers
Hi Ben, On 11/13/2012 3:57 PM, Ben Morrow wrote:> The sieve-extprograms extension strips Return-Path headers before > passing mail off to the external program. The patch to remove this > behavious is trivial (and attached), but since it appears to be > deliberate I felt I should investigate further. > > I believe this is basically a cut-and-paste error. The code to strip > Return-Path has been there since the sieve-pipe plugin for Dovecot 1.x, > and I believe it was copied from the equivalent code in the 'redirect' > action for passing mail off to sendmail(8). In that case, stripping > Return-Path is correct, since the message is being resubmitted for > delivery (by SMTP or otherwise), and the last step of the new delivery > will (should) add a new Return-Path header with the new envelope > information. In the case of sieve-extprograms, though, the filtering is > happening post-delivery, so a stripped Return-Path will never be > replaced.Yeah, you are right. Applied: http://hg.rename-it.nl/pigeonhole-0.3-sieve-extprograms/rev/3bd6ed27ae26 Regards, Stephan.