⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1894.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   Within the framework of today's internet mail, the DSNs defined in
   this memo provide valuable information to the mail user; however,
   even a "failed" DSN can not be relied upon as a guarantee that a
   message was not received by the recipient.  Even if DSNs are not
   actively forged, conditions exist under which a message can be
   delivered despite the fact that a failure DSN was issued.











Moore & Vaudreuil           Standards Track                    [Page 24]

RFC 1894             Delivery Status Notifications          January 1996


   For example, a race condition in the SMTP protocol allows for the
   duplication of messages if the connection is dropped following a
   completed DATA command, but before a response is seen by the SMTP
   client.  This will cause the SMTP client to retransmit the message,
   even though the SMTP server has already accepted it.[9] If one of
   those delivery attempts succeeds and the other one fails, a "failed"
   DSN could be issued even though the message actually reached the
   recipient.











































Moore & Vaudreuil           Standards Track                    [Page 25]

RFC 1894             Delivery Status Notifications          January 1996


5. Appendix - collected grammar

   NOTE:  The following lexical tokens are defined in RFC 822:  atom,
   CHAR, comment, CR, CRLF, DIGIT, LF, linear-white-space, SPACE, text.
   The date-time lexical token is defined in [8].

action-field = "Action" ":" action-value

action-value =
     "failed" / "delayed" / "delivered" / "relayed" / "expanded"

address-type = atom

arrival-date-field = "Arrival-Date" ":" date-time

delivery-status-content =
     per-message-fields 1*( CRLF per-recipient-fields )

diagnostic-code-field =
     "Diagnostic-Code" ":" diagnostic-type ";" *text

diagnostic-type = atom

dsn-gateway-field = "DSN-Gateway" ":" mta-name-type ";" mta-name

envelope-id = *text

extension-field = extension-field-name ":" *text

extension-field-name = atom

final-recipient-field =
     "Final-Recipient" ":" address-type ";" generic-address

generic-address = *text

last-attempt-date-field = "Last-Attempt-Date" ":" date-time

mta-name = *text

mta-name-type = atom

original-envelope-id-field =
     "Original-Envelope-Id" ":" envelope-id

original-recipient-field =
     "Original-Recipient" ":" address-type ";" generic-address




Moore & Vaudreuil           Standards Track                    [Page 26]

RFC 1894             Delivery Status Notifications          January 1996


per-message-fields =
     [ original-envelope-id-field CRLF ]
     reporting-mta-field CRLF
     [ dsn-gateway-field CRLF ]
     [ received-from-mta-field CRLF ]
     [ arrival-date-field CRLF ]
     *( extension-field CRLF )

per-recipient-fields =
     [ original-recipient-field CRLF ]
     final-recipient-field CRLF
     action-field CRLF
     status-field CRLF
     [ remote-mta-field CRLF ]
     [ diagnostic-code-field CRLF ]
     [ last-attempt-date-field CRLF ]
     [ will-retry-until-field CRLF ]
     *( extension-field CRLF )

received-from-mta-field =
     "Received-From-MTA" ":" mta-name-type ";" mta-name

remote-mta-field = "Remote-MTA" ":" mta-name-type ";" mta-name

reporting-mta-field =
     "Reporting-MTA" ":" mta-name-type ";" mta-name

status-code = DIGIT "." 1*3DIGIT "." 1*3DIGIT

     ; White-space characters and comments are NOT allowed within a
     ; status-code, though a comment enclosed in parentheses MAY follow
     ; the last numeric subfield of the status-code.  Each numeric
     ; subfield within the status-code MUST be expressed without
     ; leading zero digits.

status-field = "Status" ":" status-code

will-retry-until-field = "Will-Retry-Until" ":" date-time













Moore & Vaudreuil           Standards Track                    [Page 27]

RFC 1894             Delivery Status Notifications          January 1996


6. Appendix - Guidelines for gatewaying DSNs

   NOTE:  This section provides non-binding recommendations for the
   construction of mail gateways that wish to provide semi-transparent
   delivery reports between the Internet and another electronic mail
   system.  Specific DSN gateway requirements for a particular pair of
   mail systems may be defined by other documents.

6.1 Gatewaying from other mail systems to DSNs

   A mail gateway may issue a DSN to convey the contents of a "foreign"
   delivery or non-delivery notification over Internet mail.  When there
   are appropriate mappings from the foreign notification elements to
   DSN fields, the information may be transmitted in those DSN fields.
   Additional information (such as might be useful in a trouble ticket
   or needed to tunnel the foreign notification through the Internet)
   may be defined in extension DSN fields.  (Such fields should be given
   names that identify the foreign mail protocol, e.g. X400-* for X.400
   NDN or DN protocol elements)

   The gateway must attempt to supply reasonable values for the
   Reporting-MTA, Final-Recipient, Action, and Status fields.  These
   will normally be obtained by translating the values from the remote
   delivery or non-delivery notification into their Internet-style
   equivalents.  However, some loss of information is to be expected.
   For example, the set of status-codes defined for DSNs may not be
   adequate to fully convey the delivery diagnostic code from the
   foreign system.  The gateway should assign the most precise code
   which describes the failure condition, falling back on "generic"
   codes such as 2.0.0 (success), 4.0.0 (temporary failure), and 5.0.0
   (permanent failure) when necessary.  The actual foreign diagnostic
   code should be retained in the Diagnostic-Code field (with an
   appropriate diagnostic-type value) for use in trouble tickets or
   tunneling.

   The sender-specified recipient address, and the original envelope-id,
   if present in the foreign transport envelope, should be preserved in
   the Original-Recipient and Original-Envelope-ID fields.

   The gateway should also attempt to preserve the "final" recipient
   addresses and MTA names from the foreign system.  Whenever possible,
   foreign protocol elements should be encoded as meaningful printable
   ASCII strings.

   For DSNs produced from foreign delivery or nondelivery notifications,
   the name of the gateway MUST appear in the DSN-Gateway field of the
   DSN.




Moore & Vaudreuil           Standards Track                    [Page 28]

RFC 1894             Delivery Status Notifications          January 1996


6.2 Gatewaying from DSNs to other mail systems

   It may be possible to gateway DSNs from the Internet into a foreign
   mail system.  The primary purpose of such gatewaying is to convey
   delivery status information in a form that is usable by the
   destination system.  A secondary purpose is to allow "tunneling" of
   DSNs through foreign mail systems, in case the DSN may be gatewayed
   back into the Internet.

   In general, the recipient of the DSN (i.e., the sender of the
   original message) will want to know, for each recipient: the closest
   available approximation to the original recipient address, the
   delivery status (success, failure, or temporary failure), and for
   failed deliveries, a diagnostic code that describes the reason for
   the failure.

   If possible, the gateway should attempt to preserve the Original-
   Recipient address and Original-Envelope-ID (if present), in the
   resulting foreign delivery status report.

   When reporting delivery failures, if the diagnostic-type subfield of
   the Diagnostic-Code field indicates that the original diagnostic code
   is understood by the destination environment, the information from
   the Diagnostic-Code field should be used.  Failing that, the
   information in the Status field should be mapped into the closest
   available diagnostic code used in the destination environment.

   If it is possible to tunnel a DSN through the destination
   environment, the gateway specification may define a means of
   preserving the DSN information in the delivery status reports used by
   that environment.




















Moore & Vaudreuil           Standards Track                    [Page 29]

RFC 1894             Delivery Status Notifications          January 1996


7. Appendix - Guidelines for use of DSNs by mailing list exploders

   NOTE: This section pertains only to the use of DSNs by "mailing
   lists" as defined in [4], section 7.2.7.

   DSNs are designed to be used by mailing list exploders to allow them
   to detect and automatically delete recipients for whom mail delivery
   fails repeatedly.

   When forwarding a message to list subscribers, the mailing list
   exploder should always set the envelope return address (e.g. SMTP
   MAIL FROM address) to point to a special address which is set up to
   received nondelivery reports.  A "smart" mailing list exploder can
   therefore intercept such nondelivery reports, and if they are in the
   DSN format, automatically examine them to determine for which
   recipients a message delivery failed or was delayed.

   The Original-Recipient field should be used if available, since it
   should exactly match the subscriber address known to the list.  If
   the Original-Recipient field is not available, the recipient field
   may resemble the list subscriber address.  Often, however, the list
   subscriber will have forwarded his mail to a different address, or
   the address may be subject to some re-writing, so heuristics may be
   required to successfully match an address from the recipient field.
   Care is needed in this case to minimize the possibility of false
   matches.

   The reason for delivery failure can be obtained from the Status and
   Action fields, and from the Diagnostic-Code field (if the status-type
   is recognized).  Reports for recipients with actio

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -