One document matched: draft-gellens-submit-06.txt

Differences from draft-gellens-submit-05.txt




                        SMTP Message Submission


Status of this Memo:

    This document is an Internet Draft.  Internet Drafts are working
    documents of the Internet Engineering Task Force (IETF), its Areas,
    and its Working Groups.  Note that other groups may also distribute
    working documents as Internet Drafts.

    Internet Drafts are draft documents valid for a maximum of six
    months.  Internet Drafts may be updated, replaced, or obsoleted by
    other documents at any time.  It is not appropriate to use Internet
    Drafts as reference material or to cite them other than as a
    "working draft" or "work in progress."

    To learn the current status of any Internet Draft, please check the
    "1id-abstracts.txt" listing contained in the Internet Drafts shadow
    directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
    ftp.isi.edu (US West Coast).


    A version of this draft document will be submitted to the RFC
    editor as a Proposed Standard for the Internet Community.
    Discussion and suggestions for improvement are requested.  Public
    comments should be sent to the IETF Submit mailing list,
    <ietf-submit@imc.org>.  To subscribe, send a message containing
    SUBSCRIBE to <ietf-submit-request@imc.org>.  Private comments can
    be sent to the authors.

    This version reflects comments received during Last Call.


Copyright Notice

    Copyright (C) The Internet Society 1998.  All Rights Reserved.


Table of Contents

1.  SUBMIT Servers. . . . . . . . . . . . . . . . . . . . . . . . . .  4
2.  SMTP Extension for Message Relay Assertion . . . . . . . . . . . . 4
3.  Actions when RELAY Is Used. . . . . . . . . . . . . . . . . . . .  5


Gellens, Klensin             Expires September 1998             [Page 1]
Internet Draft            SMTP Message Submission            March 1998


4.  Actions when the Message Is a Submission . . . . . . . . . . . . . 5
4.1.  General Rules . . . . . . . . . . . . . . . . . . . . . . . . .  5
4.1.1.  Specific Problems  . . . . . . . . . . . . . . . . . . . . . . 5
4.1.2.  Rejection vs.  Damage . . . . . . . . . . . . . . . . . . . .  5
4.2.  Things which MAY Be Done . . . . . . . . . . . . . . . . . . . . 6
4.2.1.  Enforce Submission Rights . . . . . . . . . . . . . . . . . .  6
4.2.2.  Require Authentication . . . . . . . . . . . . . . . . . . . . 6
4.2.3.  Enforce Permissions . . . . . . . . . . . . . . . . . . . . .  6
4.2.4.  Check Message Data . . . . . . . . . . . . . . . . . . . . . . 6
4.2.5.  Add 'Sender'. . . . . . . . . . . . . . . . . . . . . . . . .  6
4.2.6.  Add 'Date' . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.7.  Add 'Message-ID'. . . . . . . . . . . . . . . . . . . . . . .  6
4.2.8.  Transfer Encode  . . . . . . . . . . . . . . . . . . . . . . . 7
4.2.9.  Resolve Aliases . . . . . . . . . . . . . . . . . . . . . . .  7
4.2.10.  Header Rewriting  . . . . . . . . . . . . . . . . . . . . . . 7
4.2.11 Sign the Message . . . . . . . . . . . . . . . . . . . . . . .  7
4.2.12 Encrypt the Message . . . . . . . . . . . . . . . . . . . . . . 7
4.3.  Things which SHOULD Be Done . . . . . . . . . . . . . . . . . .  7
4.3.1.  Be the Only MSA  . . . . . . . . . . . . . . . . . . . . . . . 7
4.3.2.  Log Errors. . . . . . . . . . . . . . . . . . . . . . . . . .  8
4.4.  Things which MUST NOT Be Done  . . . . . . . . . . . . . . . . . 8
4.4.1.  Corrupt the Message . . . . . . . . . . . . . . . . . . . . .  8
4.5.  Things which MUST Be Done  . . . . . . . . . . . . . . . . . . . 8
4.5.1.  Ensure All Domains are Fully-Qualified. . . . . . . . . . . .  8
4.5.2.  Enforce Address Syntax . . . . . . . . . . . . . . . . . . . . 9
4.5.3.  Use RELAY . . . . . . . . . . . . . . . . . . . . . . . . . .  9
4.5.4.  Add 'Change-ID' and 'Change-History' . . . . . . . . . . . . . 9
5. 'Change-ID' and 'Change-History'. . . . . . . . . . . . . . . . .  10
5.1.  Parameters of 'Change-ID' . . . . . . . . . . . . . . . . . . . 10
5.1.1.  Date . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
5.1.2.  MSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.1.3.  Port . . . . . . . . . . . . . . . . . . . . . . . . . . . .  10
5.1.4.  Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.2.  Parameters of 'Change-History' . . . . . . . . . . . . . . . .  10
5.2.1.  Element . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2.2.  Action . . . . . . . . . . . . . . . . . . . . . . . . . . .  11
5.2.3.  Cause . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2.4.  Original . . . . . . . . . . . . . . . . . . . . . . . . . .  11
5.2.5.  Result  . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.3.  ABNF for 'Change-ID' . . . . . . . . . . . . . . . . . . . . .  11
5.4.  ABNF for 'Change-History' . . . . . . . . . . . . . . . . . . . 13
5.5.  Common ABNF. . . . . . . . . . . . . . . . . . . . . . . . . .  13
5.6.  Examples of 'Change-ID' and 'Change-History'  . . . . . . . . . 14
6.  Submission Extension Mechanism . . . . . . . . . . . . . . . . .  15
6.1.  SUBM Example  . . . . . . . . . . . . . . . . . . . . . . . . . 15
7.  Interaction with Other SMTP Extensions . . . . . . . . . . . . .  15
8.  Message Rejection and Bouncing  . . . . . . . . . . . . . . . . . 16
9.  Reply Codes. . . . . . . . . . . . . . . . . . . . . . . . . . .  16
10.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . . 17
10.1.  Registration Procedures . . . . . . . . . . . . . . . . . . .  17
10.2.  Change Control . . . . . . . . . . . . . . . . . . . . . . . . 17
10.3.  Registration Template . . . . . . . . . . . . . . . . . . . .  18


Gellens, Klensin             Expires September 1998             [Page 2]
Internet Draft            SMTP Message Submission            March 1998


11.  Security Considerations  . . . . . . . . . . . . . . . . . . . . 18
12.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . .  19
13.  References . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
14.  Full Copyright Statement. . . . . . . . . . . . . . . . . . . .  20
15.  Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21


Introduction

    SMTP was defined as a message *transfer* protocol, that is, a means
    to route (if needed) and deliver finished (complete) messages.
    Message Transfer Agents (MTAs) are not supposed to alter the
    message text, except to add 'Received', 'Return-Path', and other
    header fields as required by [SMTP-MTA].

    However, SMTP is now also widely used as a message *submission*
    protocol, that is, a means for message user agents (MUAs) to
    introduce new messages into the MTA routing network.  Regardless of
    whether this is good or bad, it is far too late to change.

    Originally, users connected to servers from terminals, and all
    processing occurred on the server.  Now, a split-MUA model is
    common, with MUA functionality occurring on both the user's own
    system and the server. Protocols such as POP or IMAP provide one
    side of the split-MUA architecture.  SMTP has been used for the
    other.  This memo proposes that the submission protocol defined
    here be used instead.

    Messages being submitted are in some cases finished (complete)
    messages, and in other cases are unfinished (incomplete) in some
    aspect or other.  Unfinished messages need to be completed to
    ensure they conform to [MESSAGE-FORMAT], and later requirements.
    For example, the message may lack proper 'Date' or 'Message-ID'
    header fields, and domains might not be fully qualified.  In some
    cases, the MUA may be unable to generate finished messages (for
    example, it might not know its time zone).  Even when submitted
    messages are complete, local site policy may dictate that the
    message text be modified in some ways.  Such completions or
    modifications have been shown to cause harm when performed by
    downstream MTAs, and are in general considered to be outside the
    province of MTAs.

    This memo proposes a low cost, deterministic means for messages to
    be identified as submissions, and specifies what actions are to be
    taken by a submission server.






Gellens, Klensin             Expires September 1998             [Page 3]
Internet Draft            SMTP Message Submission            March 1998


    Separation of messages into submissions and transfers can have many
    benefits for Internet mail in the short and long term.  These
    benefits include allowing sites to more easily implement security
    policies and guard against unauthorized mail relaying (and
    injection of unsolicited bulk email), making it easier to detect
    configuration problems with a site's mail clients, providing a
    migration path to get MTAs out of the dangerous business of
    modifying mail, and providing a basis for adding additional
    functionality in the future.


Definitions of Terms Used in this Memo

    Fully-Qualified

    Containing or consisting of a domain which can be resolved using
    DNS; not a local alias.

    Message Transfer Agent (MTA)

    A process which conforms to [SMTP-MTA], which accepts messages as
    an SMTP server, and either delivers them, or acts as an SMTP client
    to relay them to another MTA.

    Message User Agent (MUA)

    A process which acts (usually on behalf of a user) to compose and
    submit new messages, and process delivered messages.  In the
    split-MUA model, POP or IMAP is used to access delivered messages.


Conventions Used in this Document

    In examples, "C:" is used to indicate lines sent by the client, and
    "S:" indicates those sent by the server.  Line breaks within a
    command example are for editorial purposes only.

    The key words "MUST", "MUST NOT", "SHOULD", "SHOULD NOT", and "MAY"
    in this document are to be interpreted as defined in [KEYWORDS].


1.  SUBMIT Servers

    To distinguish transfer SMTP from submission, port 587 is reserved
    as the MAIL SUBMIT port.  Messages received on this port are
    defined to be submissions.  The protocol used is ESMTP [SMTP-MTA,
    ESMTP], with modifications as specified in this memo.

    The process which acts as a submission server will be referred to
    as a Message Submission Agent (MSA) to distinguish it from an MTA,
    which acts as a transfer agent.



Gellens, Klensin             Expires September 1998             [Page 4]
Internet Draft            SMTP Message Submission            March 1998


2.  SMTP Extension for Message Relay Assertion

    In addition to providing for SMTP submission on a separate port
    from transfer, to aid in migration this memo extends SMTP [ESMTP]
    to enable assertion that a message on port 25 is not a submission.

    The name of this extension is "Relay".

    The EHLO keyword is RELAY.

    One new optional parameter is defined for the MAIL FROM verb:
    RELAY.

    If RELAY is used with the MAIL FROM command, the message is to be
    treated as a relay; that is, the MTA is being informed that it is
    not the originating or submitting MTA.

    RELAY is only for use on the SMTP port.  If RELAY appears in MAIL
    FROM on the SUBMIT port, the MSA MUST reject the command with 504.


3.  Actions when RELAY Is Used

    If the MAIL FROM command has the RELAY parameter, the MTA is being
    informed that this message is being relayed, and therefore the MTA
    MUST NOT alter the text, except as specified in [SMTP-MTA].


4.  Actions when the Message Is a Submission

4.1.  General Rules

4.1.1.  Specific Problems

    Even though various modifications to header fields are authorized
    in this memo, a paramount rule is that elements of structured
    header fields may only be modified when specific problems are
    recognized which have clear solutions.  This is especially true
    with address elements.  For example, indiscriminately appending
    '@foo.com' to an address or element which lacks an '@' results in
    more broken addresses.  An unqualified address must be verified to
    be a valid local part in the domain before the domain can be added.


4.1.2.  Rejection vs.  Damage

    It is better to reject than to risk damage.  When a problem with a
    message is detected, and there is no specifically configured rule
    for the problem, it is better to reject the message than to attempt
    to fix it.  This is especially true of problems which are
    correctable by the MUA (for example, an invalid 'From' field).
    Response code 554 should be used to reject a MAIL FROM, RCPT TO, or


Gellens, Klensin             Expires September 1998             [Page 5]
Internet Draft            SMTP Message Submission            March 1998


    DATA command which contains something improper.


4.2.  Things which MAY Be Done

    The MSA MAY do any of the following:

4.2.1.  Enforce Submission Rights

    The MSA MAY refuse the MAIL FROM command if the address in MAIL
    FROM is not believed to have submission rights, or is invalid, or
    is not authorized with the authentication used (if the session has
    been authenticated).  Failure code 560 should be used for this
    purpose.

4.2.2.  Require Authentication

    The MSA MAY refuse the MAIL FROM command with code 503 if the
    client has not authenticated.

4.2.3.  Enforce Permissions

    The MSA MAY refuse the MAIL FROM, or a RCPT TO command if
    inconsistent with the permissions given to the user (if known).
    Failure code 560 should be used.


4.2.4.  Check Message Data

    The MSA MAY refuse the DATA command or send a failure result after
    end-of-data if the submitted message is syntactically invalid, or
    seems inconsistent with permissions given to the user (if known).
    Result code 554 should be used for syntactic problems in the data
    (500 or 501 is used if the command itself is not syntactically
    valid). 560 should be used to reject based on the submitting user.


4.2.5.  Add 'Sender'

    The MSA MAY add or replace the 'Sender' field, if the identity of
    the sender is known and this is not given in the 'From' field.  The
    MSA MUST ensure that any address it places in a 'Sender' field is
    in fact a valid mail address.

4.2.6.  Add 'Date'

    The MSA MAY add a 'Date' field to the submitted message, if it
    lacks it, or correct the 'Date' field if it does not conform to
    [MESSAGE-FORMAT] syntax.





Gellens, Klensin             Expires September 1998             [Page 6]
Internet Draft            SMTP Message Submission            March 1998


4.2.7.  Add 'Message-ID'

    The MSA MAY add or replace the 'Message-ID' field, if it lacks it,
    or it is not valid syntax (as defined by [MESSAGE-FORMAT]).

4.2.8.  Transfer Encode

    The MSA MAY apply transfer encoding to the message according to
    MIME conventions, if needed and not harmful to the MIME type.

4.2.9.  Resolve Aliases

    The MSA MAY resolve aliases (CNAME records) for domain names, in
    the envelope and optionally in address fields of the header,
    subject to local policy.  For example, if www.ab.com and ftp.ab.com
    are both aliases for mail.ab.com, rewriting them could lose useful
    information.

4.2.10.  Header Rewriting

    The MSA MAY rewrite local parts and/or domains, in the envelope and
    optionally in address fields of the header, according to local
    policy.  For example, a site may prefer to rewrite 'JRU' as
    'J.Random.User' in order to hide logon names, and/or to rewrite
    'squeeky.sales.xyz.com' as 'zyx.com' to hide machine names and make
    it easier to move users.

    However, only addresses, local-parts, or domains which match
    specific local MSA configuration settings may be altered.  The MSA
    MUST NOT apply data-independent rewriting rules, such as always
    deleting the first element of a domain name.  So, for example, a
    rule which strips the left-most element of the domain if the
    complete domain matches '*.foo.bar.com' would be permitted.

4.2.11 Sign the Message

    The MSA MAY (digitally) sign or otherwise add authentication
    information to the message.

4.2.12 Encrypt the Message

    The MSA MAY encrypt the message for transport to reflect
    organizational policies.


4.3.  Things which SHOULD Be Done

    The MSA SHOULD do all of the following:






Gellens, Klensin             Expires September 1998             [Page 7]
Internet Draft            SMTP Message Submission            March 1998


4.3.1.  Be the Only MSA

    The MSA MAY reject messages which already contain a 'Change-ID' or
    'Change-History' header field, or otherwise appear to have already
    been through an MSA. Generally, the MSA SHOULD do this unless it
    knows it is a gateway receiving messages from downstream MSAs.
    Response code 556 should be used for this.

4.3.2.  Log Errors

    The MSA SHOULD log message errors, especially apparent
    misconfigurations of client software.  It can be very helpful to
    notify the administrator when problems are detected with local mail
    clients.  This is another advantage of distinguishing submission
    from relay: system administrators may be interested in local
    configuration problems, but not in client problems at other sites.


4.4.  Things which MUST NOT Be Done

    The MSA MUST NOT do any of the following:

4.4.1.  Corrupt the Message

    The MSA MUST NOT alter already valid headers or text in ways not
    authorized by this memo.  However, the MSA MAY reject or bounce
    messages which violate site policy in some way. (For example,
    messages which appear to contain proprietary information)


4.5.  Things which MUST Be Done

    The MSA MUST do all of the following:

4.5.1.  Ensure All Domains are Fully-Qualified

    The MSA MUST ensure that all domains in the envelope are
    fully-qualified.  Single-level domains (for example, 'sales') MAY
    be expanded based on local configuration (for example, to
    'sales.foo.com').  Multi-level domains which are not
    fully-qualified (for example, 'sales.foo') MUST be rejected, not
    expanded.  Response code 555 should be used to reject a MAIL FROM
    or RCPT TO command which contains improper domains.

    If the MSA examines or alters the message text in way, except to
    add 'Received', 'Change-ID', and 'Change-History' header fields, it
    MUST ensure that all domains in the text are fully-qualified.  The
    rules for single and multi-level domains in the preceding paragraph
    apply.  Response code 555 should be used to reject a DATA command
    which contains improper domains.




Gellens, Klensin             Expires September 1998             [Page 8]
Internet Draft            SMTP Message Submission            March 1998


4.5.2.  Enforce Address Syntax

    The MSA MUST reject messages with detectably illegal syntax in a
    sender or recipient address.  This applies after any address
    transformations have been done.  Response code 501 should be used
    to reject a MAIL FROM or RCPT TO command which contains an improper
    address. 555 may be used after end-of-data if the message contains
    invalid addresses in the header.

4.5.3.  Use RELAY

    The MSA MUST use the RELAY parameter to the MAIL FROM command when
    relaying the message, if the server MTA understands ESMTP and
    supports the RELAY extension.

    This requirement applies to "pure" MSAs, which accept message
    submissions and relay them via SMTP.  In certain cases, a site may
    need special configurations, in which MSAs and/or MTAs submit
    messages to an MSA for additional policy validation.  These MSAs or
    MTAs are considered gateways, because they do not follow the normal
    model.

4.5.4.  Add 'Change-ID' and 'Change-History'

    The MSA MUST Document all modifications to the envelope or text by
    adding a 'Change-ID' and one or more 'Change-History' header
    fields.  A transparent encoding change to the envelope or text
    header, for example, removing extraneous quotes from an envelope
    recipient, does not need to be noted in a Change-History header
    field.

    The MSA MUST add 'Change-ID' and 'Change-History' in addition to a
    'Received' header; 'Change-ID' and 'Change-History' are not
    substitutes for 'Received'.

    'Change-ID' is a structured header field which allows an MSA to
    provide trace and contact information should problems with its
    changes be detected.  All parameter names and parameter values are
    case-insensitive, unless otherwise noted.  Exactly one 'Change-ID'
    header field MUST be added.

    'Change-History' is a structured header field which allows an MSA
    to list the changes it made.  All parameter names and parameter
    values are case-insensitive, unless otherwise noted.

    Each 'Change-History' header field contains parameters describing a
    specific change made by the MSA.







Gellens, Klensin             Expires September 1998             [Page 9]
Internet Draft            SMTP Message Submission            March 1998


5. 'Change-ID' and 'Change-History'

5.1.  Parameters of 'Change-ID'

    The following parameters are defined for the 'Change-ID' header
    field.  Additional parameters may be specified in the future, and
    must be registered with IANA.  Optional parameters are registered
    on a first-come, first-served basis.  Required parameters must be
    specified in a standards-track or IESG-approved Experimental RFC.

    A registration template is included in this memo.


5.1.1.  Date

    'Date' is required and contains the time and date at which the
    change was made.


5.1.2.  MSA

    'MSA' is a required parameter, which can be in one of two forms.
    The token form is a quoted string which is sufficient for the
    postmaster at the contact domain to identify the software which
    modified the message.  This form of the parameter value must be
    treated as case sensitive; that is, its case must be preserved. The
    domain form identifies the domain name or IP address of the MSA.


5.1.3.  Port

    'Port' is a required parameter which indicates the TCP port on
    which the message was received.


5.1.4.  Contact

    'Contact' is a required parameter.  It specifies a fully-qualified
    email address, which is the contact point for problems detected by
    the recipient of the message.  It is generally not a good idea to
    use the email address of an individual.  Instead, role addresses
    should be used.  For example, 'MSA-Admin' or 'mail-nanny' for the
    local-part, which could then be aliased to one or more specific
    people, or even to another role address (such as 'postmaster').


5.2.  Parameters of 'Change-History'

    The following parameters are defined for the 'Change-History'
    header field.  Additional parameters may be defined in the future,
    and will be registered with IANA.  Optional parameters are
    registered on a first-come, first-served basis.  Required


Gellens, Klensin            Expires September 1998            [Page 10]
Internet Draft            SMTP Message Submission            March 1998


    parameters must be specified in a standards-track or IESG-approved
    Experimental RFC.

    A registration template is included in this memo.


5.2.1.  Element

    The 'Element' parameter is required and identifies which header
    field or envelope item was changed.  If the body was changed (for
    example, upgraded to MIME and content-transfer-encoded), 'body'
    should be specified.


5.2.2.  Action

    The 'Action' parameter is required and specifies the type of
    change: 'Added', 'Expanded', 'Quoted', 'Unquoted', 'Changed', or
    'Removed'.


5.2.3.  Cause

    The 'Cause' parameter optionally identifies the justification for
    the change: 'Bad-Syntax', 'Incorrect', 'Missing', 'Nickname', or
    'Policy'. 'Bad-Syntax' indicates the original value was not
    syntactically valid. 'Incorrect' means the original value was not
    correct. 'Missing' is used when a field or item has been added.
    'Nickname' indicates the original value was a local DNS alias.
    'Policy' refers to changes required by site policy, as opposed to
    corrections or additions required for conformance with Internet
    standards.


5.2.4.  Original

    'Original' is an optional parameter which contains the value of the
    field or subfield (individual value of a multi-valued field) before
    it was changed. 'Original' SHOULD NOT be used if 'Element' is
    'body'.


5.2.5.  Result

    'Result' is an optional parameter which contains the value of the
    field or subfield after it was changed.

5.3.  ABNF for 'Change-ID'






Gellens, Klensin            Expires September 1998            [Page 11]
Internet Draft            SMTP Message Submission            March 1998


    This defines the syntax for the 'Change-ID' header field using ABNF
    as specified in RFC 2234 [ABNF].  Comments and folding white space
    [RFC-822] may be inserted wherever a space is specified, and
    nowhere else.

    change-id          ::= "Change-ID" ":" SP id-parameters

    contact            ::= "Contact" "=" "<" local-part "@" (domain /
                           IP) ">"

    date               ::= "Date" "=" [weekday "," SP] day SP month SP
                           year SP hour ":" minute [":" second] SP
                           time-zone

    day                ::= 2DIGIT

    domain             ::= sub-domain 1*("." sub-domain)

    dot-string         ::= 1*(atext ["." atext])

    hour               ::= 1*2DIGIT

    id-parameters      ::= date ";" SP msa ";" SP port ";" SP contact
                           *(";" SP ext-parameter)

    IP                 ::= "[" (IPv4-literal / IPv6-literal) "]"

    IPv4-literal       ::= snum 3("." snum)

    IPv6-literal       ::= simple-char *(simple-char / SP)

    ldh-str            ::= *(alphanumeric / "-") alphanumeric

    local-part         ::= dot-string | quoted-string

    minute             ::= 2DIGIT

    month              ::= 2DIGIT

    msa                ::= "MSA" "=" (msa-domain / msa-literal)

    msa-domain         ::= domain / IP

    msa-literal        ::= quoted-string

    port               ::= "Port" "=" 1*DIGIT

    second             ::= 2DIGIT

    sub-domain         ::= alphanumeric *(ldh-str)

    time-zone          ::= ("+" / "-") 4DIGIT


Gellens, Klensin            Expires September 1998            [Page 12]
Internet Draft            SMTP Message Submission            March 1998



    weekday            ::= "Mon" / "Tue" / "Wed" / "Thu" /
                           "Fri" / "Sat" / "Sun"

    year ::= 4DIGIT


5.4.  ABNF for 'Change-History'

    This defines the syntax for the 'Change-History' header field using
    [ABNF].  Comments and folding white space [RFC-822] may be inserted
    wherever a space is specified, and nowhere else.

    action             ::= "Action" "=" ("Added" / "Changed"
                           / "Expanded" / "Quoted" / "Removed"
                           / "Unquoted")

    cause              ::= "Cause" "=" ("Bad-Syntax" / "Incorrect"
                           / "Missing" / "Nickname" / "Policy")

    change-history     ::= "Change-History" ":" SP hist-parameters

    element            ::= field / envelope

    envelope           ::= "Envelope" "=" ("MAIL" / "RCPT" / "DATA" /
                            ext-parameter)

    field              ::= "Field" "=" ("body" / header-field)

    header-field       ::= <header field as specified in [HEADERS]>

    hist-parameters    ::= element ";" SP action [";" SP cause]
                           [";" SP original] [";" SP result]
                           *(";" SP ext-parameter)

    original           ::= "Original" "=" value

    result             ::= "Result" "=" value

    value ::= simple-value / quoted-string


5.5.  Common ABNF

    The following [ABNF] rules and terminals are referenced above:
    alphanumeric       ::= ALPHA / DIGIT

    atext              ::= alphanumeric /
                           "!" / "#" /
                           "$" / "%" /
                           "&" / "'" /
                           "*" / "+" /


Gellens, Klensin            Expires September 1998            [Page 13]
Internet Draft            SMTP Message Submission            March 1998


                           "-" / "/" /
                           "=" / "?" /
                           "^" / "_" /
                           "`" / "{" /
                           "|" / "}" /
                           "~"

    ext-parameter      ::= [alphanumeric *(alphanumeric / "." / "-")]
                           alphanumeric

    ldh-str            ::= *(alphanumeric / "-") alphanumeric

    printable-char     ::= VCHAR / SP

    quoted-char        ::= printable-char / "\" quoted-specials

    quoted-specials    ::= DQUOTE / "\"

    quoted-string      ::= DQUOTE *quoted-char DQUOTE

    simple-char        ::= %x21 / %x23-3A / %x3C-7E
                           ;ASCII character in the range exclamation
                           ;mark through tilde, except quote and
                           ;semicolon

    simple-value       ::= 1*simple-char

    snum ::= 1*3DIGIT ;range 0 through 255


5.6.  Examples of 'Change-ID' and 'Change-History'

    Change-ID: Date="Fri, 20 March 1997 19:32 +0800";
               MSA=helpful.qualcomm.com;
               Contact=<Postmaster@Qualcomm.Com>
    Change-History: Envelope=MAIL; Action=Changed; Cause=Policy
    Change-History: Envelope=RCPT; Action=Expanded; Cause=Nickname;
                    Original=Foo; Result=Foobar
    Change-History: Field=To; Action=Expanded; Cause=Nickname;
                    Original=Foo; Result="Foobar L. Gork"
    Change-History: Field=To; Action=Quoted; Cause=Bad-Syntax;
                    Original="John Icons Now @$1.99 Doe"

    Change-ID: Date="Fri, 20 March 1997 19:32 +0800";
               MSA="xyz99abc";
               Contact=<admin+msa@Shy.Qualcomm.Com>;
    Change-History: Field=From; Action=Changed; Cause=Policy







Gellens, Klensin            Expires September 1998            [Page 14]
Internet Draft            SMTP Message Submission            March 1998


6.  Submission Extension Mechanism

    It may be desirable to extend the submission process in the future,
    using a mechanism which is clearly differentiated from normal SMTP.

    This specification defines a new verb, SUBM, which is only valid on
    the submit port.  Clients may send SUBM at any time after the
    server has sent the initial greeting.  Until such time as
    submission extensions are defined, servers SHOULD send a 250
    response.  Clients MUST be prepared for a 502 (command not
    implemented) response.

6.1.  SUBM Example

    C:  SUBM S: 250 No extensions supported





7.  Interaction with Other SMTP Extensions

    The following table lists the current standards-track and
    Experimental SMTP extensions.  Listed are the RFC, name, status, an
    indication if the extension is valid on the submit port, and a
    reference:

    RFC   Name             Status  Submission  Reference
    ----  ---------------  ------  ----------  ------------------
    2197  Pipelining           DS         Yes  [PIPELINING]
    2034  Error Codes          PS         Yes  [CODES-EXTENSION]
    1985  ETRN                 PS          No  [ETRN]
    1893  Extended Codes       PS         Yes  [SMTP-CODES]
    1891  DSN                  PS         Yes  [DSN]
    1870  Size                  S         Yes  [SIZE]
    1846  521                   E          No  [521REPLY]
    1845  Checkpoint            E         Yes  [Checkpoint]
    1830  Binary                E         Yes  [CHUNKING]
    1652  8-bit MIME           DS         Yes  [8BITMIME]

    The MSA advertises support for specific extensions in the EHLO
    response, as usual.

    Future extensions may be defined which are intended for use only
    with SMTP transfer, or only with the submission service.  Future
    extensions should explicitly specify if they are valid with SMTP,
    Submission, or both.

    Some SMTP extensions are especially useful for message submission:





Gellens, Klensin            Expires September 1998            [Page 15]
Internet Draft            SMTP Message Submission            March 1998


    Extended Status Codes [SMTP-CODES], SHOULD be supported and used
    according to [CODES-EXTENSION].  This permits the MSA to notify the
    client of specific configuration or other problems in more detail
    than the response codes listed in this memo.  Because some
    rejections are related to a site's security policy, care should be
    used not to expose more detail than is needed to correct the
    problem.

    [PIPELINING] SHOULD be supported by the MSA.

    Methods have been proposed which would allow for SMTP
    authentication.  These extensions, if supported and used, would
    allow the MSA to validate the authority and determine the identity
    of the submitting user.

    Any references to the DATA command in this memo also refer to any
    substitutes for DATA, such as the BDAT command used with
    [CHUNKING].


8.  Message Rejection and Bouncing

    MTAs and MSAs MAY choose to implement message rejection rules which
    rely in part on whether the message is a submission or a relay.
    For example, some sites might configure their MTA to reject all
    RCPT TOs for messages which do not reference local users, and
    configure their MSA to reject all message submissions which do not
    come from local users (based on IP address and/or authenticated
    identity).

    If the MSA is not able to determine a return path to the submitting
    user (from a valid MAIL FROM, or based on authenticated identify),
    it MUST immediately reject the message.  A message can be
    immediately rejected by returning a 5xx code to the MAIL FROM
    command or after receiving the data.

    Except in the case where the MSA is unable to determine a valid
    return path for the message being submitted, text in this memo
    which instructs an MSA to issue a rejection code MAY be complied
    with by accepting the message and subsequently generating a bounce
    message.  Note that in the normal case of message submission,
    immediately rejecting the message is preferred, as it gives the
    user and MUA direct feedback.  To properly handle delayed bounces,
    the client must maintain a queue of messages it has submitted, and
    match bounces to them.  In the case of batch submission, the client
    is requesting the delayed bounce behavior.


9.  Reply Codes





Gellens, Klensin            Expires September 1998            [Page 16]
Internet Draft            SMTP Message Submission            March 1998


    This memo adds several reply codes to those defined in [SMTP-MTA].
    The reply codes used in this document are:

    250 Requested action okay, completed.
    502 Command not implemented.
    503 Bad sequence of commands.
    505 Authentication required.  Site policy requires authentication
        before issuing this command.
    554 Transaction Failed.  (Various errors in contents of MAIL FROM,
        RCPT TO, or DATA).
    555 Bad domain.  Invalid or improper domain in MAIL FROM, RCPT TO,
        or DATA.
    556 Not a submission.  The message appears to have been submitted
        earlier.
    560 Not allowed.  The address in MAIL FROM is not
        believed to have submission rights, or is invalid, or is not
        authorized with the authentication used; the address in a
        RCPT TO command is inconsistent with the permissions given to the
        user; the message data is rejected based on the submitting user.

    An implementation MAY include a configuration option to generate
    554 instead of 560, to avoid revealing information about
    security-related rejections.


10.  IANA Considerations

10.1.  Registration Procedures

    'Change-ID' and 'Change-History' parameters MUST be registered with
    IANA.  Optional parameters are registered on a first-come,
    first-served basis.  Required parameters must be specified in a
    standards-track or IESG-approved Experimental RFC.

    Registration of a 'Change-ID' or 'Change-History' parameter is done
    by filling in the template below and sending it in to iana@isi.edu.
    IANA has the right to reject obviously bogus registrations, but
    will perform no review of clams made in the registration form.

    There is no naming convention for 'Change-ID' and 'Change-History'
    parameters.


10.2.  Change Control

    Once a 'Change-ID' and 'Change-History' parameter registration has
    been published by IANA, the author may request a change to its
    definition.  The change request follows the same procedure as the
    registration request.





Gellens, Klensin            Expires September 1998            [Page 17]
Internet Draft            SMTP Message Submission            March 1998


    The owner of a parameter may pass responsibility for it to another
    person or agency by informing IANA; this can be done without
    discussion or review.

    The IESG may reassign responsibility for a parameter, or make
    changes to a parameter, including marking it as OBSOLETE.

    Parameter registrations may not be deleted; those which are no
    longer believed appropriate for use can be declared OBSOLETE by a
    change to their "intended use" field; such parameters will be
    clearly marked in the lists published by IANA.

    The IESG is considered to be the owner of all parameters which are
    specified in standards track or IESG-approved Experimental RFCs.


10.3.  Registration Template

    To: iana@isi.edu Subject:  Registration of Change-History/Change-ID
    parameter X

    Parameter for header (check one): [ ] Change-History [ ] Change-ID

    Parameter name:

    Nature (check one): [ ] Optional [ ] Required

    Note:  Required parameters must be specified in a standards-track
    or IESG-approved Experimental RFC.

    Security considerations:

    Published specification:

    Person & email address to contact for further information:

    Intended usage (check one): [ ] COMMON [ ]LIMITED [ ] OBSOLETE

    Author/Change controller:

    (Any other information that the author deems interesting may be
    added below this line.)


11.  Security Considerations

    Separation of submission and relay of messages can allow a site to
    implement more secure policies.  This can aid in tracking or
    preventing unsolicited bulk email.  For example, a site could
    configure its MSA to require authentication before accepting a
    message, and could configure its MTA to reject all RCPT TOs for
    non-local users.  This can be an important element in a site's


Gellens, Klensin            Expires September 1998            [Page 18]
Internet Draft            SMTP Message Submission            March 1998


    total email security policy.

    The 'Change-History' header field allows for problem tracking and
    reporting, through use of the 'Contact' and 'MSA' parameters. Sites
    wanting to prevent disclosure of details of their local network
    (such as the identities of local servers) should use the token
    form, while sites without these concerns can use the simpler domain
    form.


12.  Acknowledgments

    This updated draft has been revised in part based on comments and
    discussions which took place on and off the IETF-Submit mailing
    list.

    Special thanks to Harald Alvestrand, who started this effort and
    wrote the original version of the draft.


13.  References

    [ESMTP] J.  Klensin, N.  Freed, M.  Rose, E.  Stefferud, and D.
    Crocker, "SMTP Service Extensions", STD 10, RFC 1869, November
    1995, <ftp://ftp.isi.edu/in-notes/rfc1869.txt>

    [SMTP-MTA] J.  Postel, "Simple Mail Transfer Protocol", STD 10, RFC
    821, August 1982, <ftp://ds.internic.net/rfc/rfc821.txt>; C.
    Partridge, "Mail Routing and the Domain System", STD 14, RFC 974,
    January 1986, <ftp://ds.internic.net/rfc/rfc974.txt>; R.  Braden,
    Editor, "Requirements for Internet Hosts -- Application and
    Support", STD 3, RFC 1123, October 1989,
    <ftp://ftp.isi.edu/in-notes/rfc1123.txt>

    [MESSAGE-FORMAT] D.  Crocker, "Standard for the format of ARPA
    Internet text messages", STD 11, RFC 822, August 1982,
    <ftp://ds.internic.net/rfc/rfc822.txt>; R.  Braden, Editor,
    "Requirements for Internet Hosts -- Application and Support", STD
    3, RFC 1123, October 1989, <ftp://ftp.isi.edu/in-notes/rfc1123.txt>

    [KEYWORDS] S.  Bradner, "Key words for use in RFCs to Indicate
    Requirement Levels", BCP 14, RFC 2119, March 1997,
    <ftp://ftp.isi.edu/in-notes/rfc2119.txt>

    [ABNF] D.  Crocker, Ed., P.  Overell, "Augmented BNF for Syntax
    Specifications:  ABNF", November 1997,
    <ftp://ftp.isi.edu/in-notes/rfc2234.txt>

    [CODES-EXTENSION] N.  Freed, "SMTP Service Extension for Returning
    Enhanced Error Codes", RFC 2034, October 1996,
    <ftp://ftp.isi.edu/in-notes/rfc2034.txt>



Gellens, Klensin            Expires September 1998            [Page 19]
Internet Draft            SMTP Message Submission            March 1998


    [SMTP-CODES] G.  Vaudreuil, "Enhanced Mail System Status Codes",
    RFC 1893, January 1996, <ftp://ftp.isi.edu/in-notes/rfc1893.txt>

    [HEADERS] J.  Palme, "Common Internet Message Headers", RFC 2076,
    February 1997, <ftp://ftp.isi.edu/in-notes/rfc2076.txt>

    [CHUNKING] G.  Vaudreuil, "SMTP Service Extensions for Transmission
    of Large and Binary MIME Messages", August 1995,
    <ftp://ftp.isi.edu/in-notes/rfc1830.txt>

    [PIPELINING] N.  Freed, "SMTP Service Extension for Command
    Pipelining", September 1997,
    <ftp://ftp.isi.edu/in-notes/rfc2197.txt>

    [ETRN] J.  De Winter, "SMTP Service Extension for Remote Message
    Queue Starting", August 1996,
    <ftp://ftp.isi.edu/in-notes/rfc1985.txt>

    [DSN] K.  Moore, "SMTP Service Extension for Delivery Status
    Notifications, January 1996,
    <ftp://ftp.isi.edu/in-notes/rfc1891.txt>

    [SIZE] J.  Klensin, N.  Freed, and K.  Moore, "SMTP Service
    Extension for Message Size Declaration, November 1995,
    <ftp://ftp.isi.edu/in-notes/rfc1870.txt>

    [521REPLY] A.  Durand, and F.  Dupont, "SMTP 521 Reply Code",
    September 1995, <ftp://ftp.isi.edu/in-notes/rfc1846.txt>

    [Checkpoint] D.  Crocker, N.  Freed, and A.  Cargille, "SMTP
    Service Extension for Checkpoint/Restart, September 1995,
    <ftp://ftp.isi.edu/in-notes/rfc1845.txt>

    [8BITMIME] J.  Klensin, N.  Freed, M.  Rose, E.  Stefferud, and D.
    Crocker, "SMTP Service Extension for 8bit-MIMEtransport", July
    1994, <ftp://ftp.isi.edu/in-notes/rfc1652.txt>


14.  Full Copyright Statement

    Copyright (C) The Internet Society 1998.  All Rights Reserved.

    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain
    it or assist in its implementation may be prepared, copied,
    published and distributed, in whole or in part, without restriction
    of any kind, provided that the above copyright notice and this
    paragraph are included on all such copies and derivative works.
    However, this document itself may not be modified in any way, such
    as by removing the copyright notice or references to the Internet
    Society or other Internet organizations, except as needed for the
    purpose of developing Internet standards in which case the


Gellens, Klensin            Expires September 1998            [Page 20]
Internet Draft            SMTP Message Submission            March 1998


    procedures for copyrights defined in the Internet Standards process
    must be followed, or as required to translate it into languages
    other than English.

    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.

    This document and the information contained herein is provided on
    an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
    ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
    THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
    WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


15.  Authors' Addresses

    Randall Gellens                    +1 619 651 5115
    QUALCOMM, Incorporated             +1 619 651 5334 (fax)
    6455 Lusk Blvd.                    Randy@Qualcomm.Com
    San Diego, CA  92121-2779
    U.S.A.


    John C. Klensin                    +1 617 960 1011
    MCI Telecommunications             klensin@mci.net
    800 Boylston St, 7th floor
    Boston, MA 02199
    USA

























Gellens, Klensin            Expires September 1998            [Page 21]


PAFTECH AB 2003-20262026-04-23 16:56:37