On 11 Apr 2019, at 15:01, Autumn Tyr-Salvia wrote:

Hello,

I'm looking at headers for a particular message, and noticed two different Return-Path headers. The message is being sent by an ESP. One Return-Path
uses a VERP address with the ESP's domain, and the other uses the same
address as the friendly From:.

I haven't seen this in other headers before - is this common?

Not in non-spam. Not even in non-spam bulk mail. It is a symptom of immature/amatuer list exploder software.

Why would
there be 2?

A message is sent via SMTP to a mailing list system. It is delivered to a mailbox by a terminal MTA which does the right thing in delivery and adds a Return-Path header with the SMTP envelope sender address in it. The list exploder software picks up that message for resending and sends it out with a unique VERP envelope sender for each recipient, neglecting to strip the existing Return-Path. Terminal MTAs doing final delivery MAY (but generally do not) strip existing Return-Path headers when doing their own final delivery, at which time they add their own Return-Path header containing the VERP address.

Responsibility for stripping out the original Return-Path belongs to the entity that resends a delivered message via SMTP with a new envelope sender.

I spent some quality time with RFC 2822 and couldn't determine
if it's spec-legal to have two Return-Path headers or not.

In both RFC2822 and RFC5322:

 3.6.7.  Trace Fields

   The trace fields are a group of header fields consisting of an
   optional "Return-Path:" field, and one or more "Received:" fields.

Note that it does not say "one or more" about Return-Path.

Section 4.4 of both RFC5321 & RFC2821 discuss the meaning of Return-Path, wherein the key text is:

   [...] This use of return-path is required; mail systems MUST support
   it.  The return-path line preserves the information in the <reverse-
   path> from the MAIL command.

   [...]

The primary purpose of the Return-path is to designate the address to
   which messages indicating non-delivery or other mail system failures
   are to be sent.  For this to be unambiguous, exactly one return path
   SHOULD be present when the message is delivered.


More to the
point, it's using the one with the ESP domain for checking SPF, which is
not what the desired behavior.

I'm not able to parse out an identity for your use of "it" here...

SPF applies to the envelope sender in an SMTP transaction, not to ANY header, however it could in theory be used post-delivery on a well-formed message, applying to the ONE Return-Path header that such a message will have.

Anything checking SPF before final delivery should ONLY be using the SMTP sender address, which I expect in this case would be the VERP address.

I can reach out directly to the ESP in question to get more info, but
wanted to ask this group first if there's some other resource I should
consult for a firm understanding of using multiple Return-Path headers
before I have that conversation.

Multiple Return-Path headers is bad and wrong. It both causes confusion and violates the language of the specification of message format in the 2 latest revisions of that spec.


--
Bill Cole
[email protected] or [email protected]
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
Available For Hire: https://linkedin.com/in/billcole

_______________________________________________
mailop mailing list
[email protected]
https://chilli.nosignal.org/cgi-bin/mailman/listinfo/mailop

Reply via email to