Cowbay via Postfix-users: > Hello, > > My Postfix is 3.4.23-0+deb10u2. It's old. > > I got a rare mail with the Resent-Sender header and no other Resent- headers. > > Since I configured the local_header_rewrite_clients, cleanup(8) insert the > missing Resent- headers for this mail. > > According to RFC 5322 Appendix A.3. > (https://datatracker.ietf.org/doc/html/rfc5322#appendix-A.3) > > resent fields are prepended to the message: > ---- > Resent-From: Mary Smith <m...@example.net> > Resent-To: Jane Brown <j-brown@other.example> > Resent-Date: Mon, 24 Nov 1997 14:22:01 -0800 > Resent-Message-ID: <78...@example.net> > From: John Doe <jdoe@machine.example> > To: Mary Smith <m...@example.net> > Subject: Saying Hello > Date: Fri, 21 Nov 1997 09:55:06 -0600 > Message-ID: <1234@local.machine.example> > > This is a message just to say hello. > So, "Hello". > ---- > > However cleanup(8) didn't prepend but append. It's like below: > ---- > From: John Doe <jdoe@machine.example> > To: Mary Smith <m...@example.net> > Subject: Saying Hello > Date: Fri, 21 Nov 1997 09:55:06 -0600 > Message-ID: <1234@local.machine.example> > Resent-From: Mary Smith <m...@example.net> > Resent-To: Jane Brown <j-brown@other.example> > Resent-Date: Mon, 24 Nov 1997 14:22:01 -0800 > Resent-Message-ID: <78...@example.net> > > This is a message just to say hello. > So, "Hello". > ---- > > > There is another interesting behavior that if there is no Message-Id > header, cleanup(8) won't insert the Message-Id header and append > all missing Resent- headers.
Postfix adds a missing (Resent) Message-ID, Date, or From header when a message is received as an original or resent submission, not when it receives a message from a remote MTA (for some definition of 'remote'). (Postfix detects that a message is resent when it contains a Resent- header, including Resent-From, Resent-Message-Id, Resent-To, Resent-Cc, Resent-Bcc, Resent-Reply-To, or Resent-Sender). The Postfix Resent- implementation is based on RFC 822 which in section 4.1 syntax appears to suggest that 'originator' (From:, Sender:) come before before 'resent' (Resent-From:, Resent-Sender). Also, in RFC 822 the interpretation of multiple "Resent-" fields of the same type was explicitly undefined. There were no multiple Resent- blocks, let alone whether a newer Resent- block precedes or follows an older one. Thus, the Postfix implementation supports one Resent- block, and its placement meets RFC 822 requirements. (The implementation was done at a time that prepending would have been technically impossible, because Postfix reads and writes out headers one by one, and it would not have been able to prepend something to a header that it had already written out.) So yeah, you can blame me for not parsing RFC 5322 for changes in Resent handling. Wietse _______________________________________________ Postfix-users mailing list -- postfix-users@postfix.org To unsubscribe send an email to postfix-users-le...@postfix.org