cyrus-imapd 2.1.15, sieve, lmtpd, and return-path header

Chris Stromsoe cbs at cts.ucla.edu
Wed Sep 24 00:58:03 EDT 2003


On Tue, 23 Sep 2003, Pat Lashley wrote:

> Are you intentionally missing my point; or am I just not being
> sufficiently clear?

I'm not missing your point (I think) -- I don't agree with it.

Just because lmtp is linked to sieve is no reason to assume that they are
(or should be)  functionally intertwined.  smtp does stuff and hands off
to lmtp.  lmtp does stuff (figures out if the mailbox is local, adds
return-path, received header) and hands off to sieve.  sieve adds x-sieve
header, filters, and does some action.  It would be nice if filtering were
completely pluggable and could be replaced by other filtering agents, much
the same way that you can plug different sasl libraries.


> You don't care that the value comes from the envelope because you have
> become married to the idea that "it's a header visible in my mailbox and
> should be filterable".  You are ignoring the proper timeline.  You are
> ignoring the presence of a method for filtering on that data.  You are
> intent on having -your- solution whether it is the right one or not.

No, I believe that my solution _is_ the right one.  Headers added by lmtp
should be visible to sieve.  Things shouldn't be done to the message after
sieve processes it.


> > provide that header to sieve with all of the other headers it knows
> > about.
>
> But that header isn't in the incoming message; and doesn't properly
> exist until after sieve is done with it.

until lmtpd is done with it.  At which point sieve takes over and should
have access to it.


> At this point it is only a
> potential header; not an actual one.  Should lmtpd provide -all-
> potential headers for Sieve to process?

lmtpd should provide all of the headers that it creates plus all of the
headers that come with a message.


> And I claim that final delivery is always
>
> 	smtp -> lmtp -> sieve -> mailbox
>
> but that the 'sieve' step is optimized to a no-op in the case where
> there is no sieve script.

If that is the case, sieve should see the full set of headers as generated
by lmtpd.  Yet, it does not.  My patch addresses that.



-Chris




More information about the Info-cyrus mailing list