RFC 1047 (rfc1047) - Page 1 of 3


Duplicate messages and SMTP



Alternative Format: Original Text Document



Network Working Group                                   Craig Partridge
Request for Comments: 1047                              CIC at BBN Labs
                                                          February 1988


                      DUPLICATE MESSAGES AND SMTP


STATUS OF THIS MEMO

   An examination of a synchronization problem in the Simple Mail
   Transfer Protocol (SMTP) is presented.  This synchronization problem
   can cause a message to be delivered multiple times.  A method for
   avoiding this problem is suggested.  Nodding familiarity with the
   SMTP specification, RFC-821, is required.  Distribution of this memo
   is unlimited.

INTRODUCTION

   Over the past few years, the staff of the CSNET Coordination and
   Information Center (CIC) has often been asked to help determine why a
   single mail message is being delivered multiple times to its
   recipients.  In the process of tracing the problems of multiple
   delivery, we have discovered that many duplicate messages are the
   result of a synchronization problem in SMTP.  There is a point in the
   process of delivering a message where the receiving mailer knows it
   has accepted the message but the sending mailer is still not sure the
   message has been reliably delivered.  If the SMTP conversation is
   broken at this point, the sending mailer will be forced to re-deliver
   the message, even though the message has already been received and
   delivered by the receiving mailer.

DESCRIPTION OF THE PROBLEM

   The synchronization problem occurs at the end of delivering a
   message.  When the sending mailer has finished sending the text of a
   message, it is required to send a line containing a single dot or
   period.  When the receiving mailer receives this final dot, it is
   expected to do its final message processing and either confirm
   receipt of the message (with a 250 reply) or reject the message with
   any one of several error codes.

   Observe that there is a potential synchronization gap here.  During
   the period between the time the receiving mailer has determined that
   it will accept the message, and the time that sending mailer gets the
   250 reply, the message is active at both the sending and receiving
   mailer.  Until the sending mailer gets the 250 reply, it must assume
   the message was not delivered.  After the receiving mailer has



Partridge