Wietse Venema:
> Viktor Dukhovni:
> > On Sat, Jan 21, 2023 at 02:49:34PM -0500, Wietse Venema wrote:
> > 
> > > Correction: the MTA<==>Milter protocol hides the Received: header
> > > that is prepended by the MTA, but it exposes headers that are already
> > > present. That's what Sendmail does, and therefore Postfix, too.
> > 
> > Not only does Sendmail do this, it actually makes sense.  The milter
> > logically sits **between** the remote sender and the receiving MTA.
> > Headers that are added by the local MTA are downstream of milter
> > processing.
> 
> For practical reasons, Postfix has to go before Milters.
> 
> Specifically, Postfix goes before Milters when processing SMTP
> commands, including an envelope sender or recipient. Postfix decides
> if it will reject an SMTP command. If Postfix does not reject that
> command, then the first Milter decides if it will reject that
> command, and so on. If an envelope sender or recipient are not
> rejected, Postfix makes its changes before it stores that envelope
> content.
> 
> Postfix also goes before Milters when processing header/body content.
> Postfix modifies/rejects header/body content before it stores that
> content. Then the first Milter reads/modifies/rejects that stored
> header/body content or modifies the stored envelope, then the second
> Milter, and so on.
> 
> I believe that this does not differ much from the way that Milters
> work in Sendmail. They keep the header in memory (limited to ~32kB),
> but the body can be much larger, and at the time it was not customary
> to keep the entire message body in memory.

Added some text to the MILTER_README documentation.

        Wietse

Reply via email to