Great Circle Associates Majordomo-Users
(June 1999)
 

Indexed By Date: [Previous] [Next] Indexed By Thread: [Previous] [Next]

Subject: Re: correct behavior for MTA error message?
From: tibbs @ hpc . uh . edu
Date: 25 Jun 1999 12:31:56 -0500
To: Omar Thameen <omar @ clifford . inch . com>
Cc: majordomo-users @ GreatCircle . COM
In-reply-to: Omar Thameen's message of "Fri, 25 Jun 1999 11:46:55 -0400"
References: <19990625114655.A16162@clifford.inch.com>
User-agent: Gnus/5.070065 (Pterodactyl Gnus v0.65) Emacs/20.3

>>>>> "OT" == Omar Thameen <omar@clifford.inch.com> writes:

OT> I assume that sending undeliverable-type messages to the reply-to
OT> address is not RFC compliant.  Does anyone know offhand what address
OT> it's _supposed_ to send errors to and what RFC specifies this?

Bounces are supposed to go to the envelope sender, which isn't actually
part of the message.  Instead, it's part of the enclosing transaction that
mail servers make to transmit mail.  It isn't part of the header of your
message, although the receiving MTA may choose to add it, usually as a
Return-Path: header.  The basic concepts are on RFC821:

   3.1.  MAIL

      There are three steps to SMTP mail transactions.  The transaction
      is started with a MAIL command which gives the sender
      identification.  A series of one or more RCPT commands follows
      giving the receiver information.  Then a DATA command gives the
      mail data.  And finally, the end of mail data indicator confirms
      the transaction.

         The first step in the procedure is the MAIL command.  The
         <reverse-path> contains the source mailbox.

            MAIL <SP> FROM:<reverse-path> <CRLF>

         This command tells the SMTP-receiver that a new mail
         transaction is starting and to reset all its state tables and
         buffers, including any recipients or mail data.  It gives the
         reverse-path which can be used to report errors.  If accepted,
         the receiver-SMTP returns a 250 OK reply.

This is clarified and tightened up in RFC1123, section 5.2.8 and 5.3.3.  An
excerpt:

      5.3.3  Reliable Mail Receipt

[...]

         If there is a delivery failure after acceptance of a message,
         the receiver-SMTP MUST formulate and mail a notification
         message.  This notification MUST be sent using a null ("<>")
         reverse path in the envelope; see Section 3.6 of RFC-821.  The
         recipient of this notification SHOULD be the address from the
         envelope return path (or the Return-Path: line).  However, if
         this address is null ("<>"),  the receiver-SMTP MUST NOT send a
         notification.  If the address is an explicit source route, it
         SHOULD be stripped down to its final hop.


Of course, the important part is a SHOULD, which means that folks writing
broken software are even freer to ignore it than a MUST.  Lots of software
that ignores these provision uses Reply-To:, which is the source of all of
our warnings.

OT> Is the preferred method of dealing with this to insert a header into
OT> all outgoing messages like X-Loop-Avoid: whatever and then add it to
OT> taboo_header and taboo_body (taboo_body since the offending MTA will
OT> probably quote the message with headers).

Yes, that helps, but you are assuming that the bounces will contain some of
the original message.  This is not always the case.  The development
version uses checksumming in addition, but even that doesn't trap all
loops.

 - J<


References:
Indexed By Date Previous: correct behavior for MTA error message?
From: Omar Thameen <omar@clifford.inch.com>
Next: Re: correct behavior for MTA error message?
From: Jeffrey Goldberg <J.Goldberg@Cranfield.ac.uk>
Indexed By Thread Previous: correct behavior for MTA error message?
From: Omar Thameen <omar@clifford.inch.com>
Next: Re: correct behavior for MTA error message?
From: Jeffrey Goldberg <J.Goldberg@Cranfield.ac.uk>

Google
 
Search Internet Search www.greatcircle.com