RFC 630 UNKNOWN FTP · EMAIL · ERROR CODES

FTP error code usage for more reliable mail service

How TENEX mail systems used FTP reply codes to decide whether to retry delivery.

On rfc-editor.org ↗
PUBLISHED
April 1974
AUTHORS
J. Sussman
STREAM
Legacy
FTP CODES COVERED
450 to 454
PERMANENT FOR TENEX MAILERS
450 and 451
TEMPORARY FOR TENEX MAILERS
452, 453 and 454
FTP COMMANDS
MAIL and MLFL
DOI
10.17487/RFC0630

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     Julie Sussman
RFC # 630                                                 BBN
NIC # 30237                                               April 10, 1974


          FTP Error Code Usage for More Reliable Mail Service


                                PURPOSE

    A major hindrance to providing reliable mail service is the lack of
well-defined FTP error replies that would enable a mailing process to
decide how to handle a failure.  New FTP error codes are currently in
the design stage, and a proposal will be announced soon.  In the
interim, we can get some improvement by simply defining how we intend to
use the current FTP codes.  The purpose of this RFC is to inform all
sites of how TENEX sites will use and interpret the codes starting in
the near future.


                        CURRENT CODE DEFINITIONS

    The FTP error codes defined for failure to perform a file action
(including mail) are:

450 File not found
451 File access denied to you
452 Data connection closed
453 Insufficient storage
454 Cannot connect to your data socket

450, 451, and 453 are applicable to both the MAIL and MLFL commands,
while 452 and 454 are only meaningful for MLFL.


                   SHORTCOMING OF CURRENT DEFINITIONS

    There are more possible causes of failure to deliver mail than the
ones defined above.  Implementors of FTP servers thus had to make
arbitrary assignments of error conditions to defined codes.  As a
result, although the text of the reply might distinguish these
conditions for the benefit of human users, the code doesn't distinguish
them for the benefit of processes.

    The minimum distinction needed by the TENEX mail-sending processes
is between permanent and non-permanent failures.  In the latter case,
the process will repeatedly try to deliver the mail for several days.

                     NEW DEFINITIONS FOR TENEX USE

    The following changes will be installed at TENEX sites over the next
couple of months.

FTP SERVER

    The TENEX FTP server will continue to use 452 and 454 as specified
for the MLFL command.

    For MAIL and MLFL, it will send the other codes as follows:

450 Permanent failures due to the user addressed in the Mail or MLFL
    command.

    Examples:  No such user; No mailbox for that user; Can't access file
    (because net users can't write in that mailbox).

451 Permanent failures due to the message itself.

    Example:  Line sent over TELNET connection is too long (MAIL command
    only).

453 Temporary failures

    Examples:  TELNET connection unexpectedly closed;  Mailbox busy;
    Unexpected local errors (such as failure to create scratch file).

MAILING PROCESSES

    TENEX mailing processes currently interpret all the codes 450-454 as
meaning permanent failure.  They will be changed to interpret 452, 453,
and 454 as temporary while leaving 450 and 451 permanent.


                   COMPATIBILITY WITH NON-TENEX SITES

    These interpretations should not adversely affect the interaction of
TENEX and non-TENEX mail processes, since we are simply changing from
one arbitrary set of interpretations to another.  Moreover:

--Our interpretation of 450-451 as permanent and 452-454 as temporary is
consistent with their original meanings.

--Our new choice of what codes to use for what failure is no farther
from the original meanings than our old choice was, and conveys more
information.

       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by Alex McKenzie with    ]
       [ support from GTE, formerly BBN Corp.            10/99 ]

ISO Plain Language

On this page
PROBLEMMailing processes could not tell from an FTP error code whether a failed delivery was permanent or worth trying again.
MECHANISMTENEX servers use 450 for permanent user-related failures, 451 for permanent message-related failures and 453 for temporary failures. The mail process treats 452, 453 and 454 as temporary, and 450 and 451 as permanent.
WHY IT MATTERSThis gives TENEX mail senders a clearer rule for retrying delivery. The RFC presents it as an interim use of existing codes while new FTP codes are being designed.

§1Why Mail Needs Clear Error Replies

FTP servers already used codes 450 through 454 for failures when carrying out file actions. The same codes applied to mail delivery, but they did not cover every possible cause. Server authors had to assign causes to codes, so a human might learn more from the reply text than a computer process could learn from the code.

TENEX mail senders needed to distinguish permanent failures from temporary ones. For a temporary failure, the process would keep trying to deliver the message for several days.

A mail program needs to know whether a failed delivery can succeed later. A clear code lets it retry temporary problems and stop on permanent ones.

§2How TENEX Uses the Codes

The TENEX server continues to use codes 452 and 454 for the MLFL command as previously defined. For MAIL and MLFL, it uses 450 for permanent failures caused by the addressed user, such as no mailbox; 451 for permanent failures caused by the message, such as an overlong line; and 453 for temporary failures, such as a busy mailbox or an unexpectedly closed connection.

TENEX mailing processes previously treated every code from 450 to 454 as permanent. Under the planned change, they treat 452, 453 and 454 as temporary, while 450 and 451 remain permanent.

Code 450 means the addressed user cannot receive the mail, and 451 means the message itself has a permanent problem. Code 453 means a temporary problem, so the sender should try again.

TENEX server codes for mail failures
  • 450Permanent, user — The addressed user or mailbox prevents delivery.
  • 451Permanent, message — The message itself prevents delivery.
  • 453Temporary — The sender may retry after a temporary failure.

§3Compatibility and Scope

The RFC says this change should not harm mail exchanges between TENEX and non-TENEX sites. The author argues that the new assignments are no further from the original meanings of the codes than the old assignments, and convey more information to mail processes.

The note describes how TENEX sites intend to use the existing codes in the near future. It says new FTP error codes are still being designed.

The RFC expects the new assignments to work with other sites because they are at least as close to the codes' original meanings. It describes a temporary practice while new codes are being designed.