home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-asid-email-routing-ns-00.txt < prev    next >
Text File  |  1997-03-26  |  34KB  |  728 lines

  1.  
  2.  
  3. Network Working Group                                         H. Lachman
  4. INTERNET-DRAFT                             Netscape Communications Corp.
  5. Expires: 30 September 1997                                    March 1997
  6. Intended Category: Informational
  7.  
  8.  
  9.  
  10.                   LDAP-based Routing of SMTP Messages:
  11.                        Approach Used by Netscape
  12.                <draft-ietf-asid-email-routing-ns-00.txt>
  13.  
  14. Status of this Memo
  15.  
  16.    This document is an Internet-Draft.  Internet-Drafts are working
  17.    documents of the Internet Engineering Task Force (IETF), its areas,
  18.    and its working groups.  Note that other groups may also distribute
  19.    working documents as Internet-Drafts.
  20.  
  21.    Internet-Drafts are draft documents valid for a maximum of six months
  22.    and may be updated, replaced, or obsoleted by other documents at any
  23.    time.  It is inappropriate to use Internet-Drafts as reference
  24.    material or to cite them other than as ``work in progress.''
  25.  
  26.    To learn the current status of any Internet-Draft, please check the
  27.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  28.    Directories on ftp.is.co.za (Africa), ftp.nordu.net (Europe),
  29.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  30.    ftp.isi.edu (US West Coast).
  31.  
  32. Abstract
  33.  
  34.    Directory services based on the Lightweight Directory Access Protocol
  35.    (LDAP) [1] and X.500 [2] provide a general-purpose means to store
  36.    information about users and other network entities.  One of the many
  37.    possible uses of a directory service is to store information about
  38.    users' email accounts, such as their email addresses, and how
  39.    messages addressed to them should be routed.  In the interest of
  40.    interoperability, it is desirable to have a common schema for such
  41.    email-related information.
  42.  
  43.    This document discusses some of the fundamental questions to be
  44.    considered in the development of a common schema for LDAP-based
  45.    routing of SMTP [3] messages, presents an approach that has been
  46.    implemented and deployed, and discusses possible extensions to that
  47.    approach that may serve to make it more complete and general.  The
  48.    intent is to provide information about an existing implementation,
  49.    and to stimulate discussion about whether and how to standardize the
  50.    relevant aspects of LDAP-based messaging management.
  51.  
  52.  
  53.  
  54. Lachman                                                         [Page 1]
  55.  
  56. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  57.  
  58.  
  59. 1.  Background and Motivation
  60.  
  61.    LDAP-based directory services are currently being used in many
  62.    organizations as a repository of information about users and other
  63.    "network entities" (such as groups of users, network resources,
  64.    etc.).  Some information is stored in the directory for the
  65.    consumption of persons browsing for information (e.g., telephone
  66.    numbers, postal addresses, secretary's name), while other information
  67.    (e.g., login name, password, disk quota) is stored for use by one or
  68.    more network applications or services.  It is the latter kind of
  69.    information that is of interest in this discussion.  In general, it
  70.    is advantageous for different network applications and services to
  71.    refer to the directory for user account information, rather than each
  72.    service keeping its own collection of user account records, which
  73.    requires the network administrator to separately create or destroy
  74.    user entities, passwords, etc., in many different systems each time a
  75.    user joins or leaves the organization.  The goals of centralized user
  76.    management and sharing of information with other service types drove
  77.    our decision in the design of Netscape Messaging Server (an SMTP-
  78.    based mail server product) to use LDAP-based directory services as a
  79.    common repository for user account information.
  80.  
  81.    Now, if a given mail server can refer to the directory for its own
  82.    users' account information, it follows that that same information is
  83.    visible to other LDAP-aware mail servers in the same organization,
  84.    and therefore that information can aid those other mail servers in
  85.    correctly routing messages to users of the mail server in question.
  86.    This assumes that there is an agreed-upon set of per-user attributes
  87.    to support message routing.  If this assumption is met, we can
  88.    obviate other means currently employed to specify per-user message
  89.    routing (such as the Unix "aliases" database).  The benefit of this
  90.    is to further consolidate per-user system information.
  91.  
  92.    If each vendor's mail server product has its own schema for LDAP-
  93.    based message routing, then the above benefits can be achieved for
  94.    single-vendor customers, but customers who have multiple vendors'
  95.    mail server products would not be well served.  They will likely
  96.    expect interoperability, which will require a common schema to be
  97.    supported by the various vendors' products.  Thus, it is worthwhile
  98.    to consider how to develop a common schema.
  99.  
  100.    This document does not attempt to define a standard.  It does attempt
  101.    to define what the relevant questions are, and goes on to describe
  102.    one vendor's solution plus possible extentions to generalize it.  It
  103.    is hoped that this discussion helps to characterize the issue, and
  104.    encourages the development of a common solution.
  105.  
  106.    This document considers only intra-enterprise SMTP message routing
  107.  
  108.  
  109.  
  110. Lachman                                                         [Page 2]
  111.  
  112. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  113.  
  114.  
  115.    using LDAP-based directory services.  Solutions and issues involving
  116.    inter-enterprise routing, non-SMTP message handling, non-LDAP
  117.    directory services, and other messaging management topics not related
  118.    to message routing, are outside the scope of this document (except
  119.    that the concepts presented may also be applicable in the case of
  120.    X.500 directory services).
  121.  
  122. 2.  Terminology
  123.  
  124.    In the context of this document, a "mail server" is a Simple Mail
  125.    Transfer Protocol (SMTP) message transfer agent (MTA).  It either
  126.    includes, or has associated with it, a local message delivery agent
  127.    (MDA) that performs delivery to accounts that are considered local to
  128.    the particular mail server.  A mail server may offer related services
  129.    as well, such as providing a means for mail user agents (MUAs) to
  130.    pick up messages, but that is outside the scope of this discussion.
  131.  
  132.    The term "account" is used to refer to any entity that can receive
  133.    mail.  This includes mail user accounts, as well as mail group
  134.    accounts (mail distribution lists).  A "delivery" is said to have
  135.    occured when an MTA passes a message to the local MDA, having first
  136.    ascertained that the message is destined for a particular account
  137.    that can be delivered to locally.  The MDA may then place the message
  138.    in a local message store, and/or take other actions as specified by
  139.    the account's attributes.
  140.  
  141.    "Routing" and "forwarding" are distinct actions.  "Routing" is said
  142.    to have occured when an MTA passes a message to a "next-hop" MTA,
  143.    having ascertained that the addressed entity is not a local account
  144.    but may exist elsewhere.  "Forwarding" is said to have occured when a
  145.    message has successfully arrived at a particular account and the MDA
  146.    determines that the message must be resent to one or more new
  147.    destinations as specified by the account's attributes.  "Forwarding"
  148.    may be configurable by the user, while "routing" is normally
  149.    configurable only by a network administrator.  With this definition,
  150.    it might also be said that when a message arrives at a mail group
  151.    account, and the MDA resends the message to all of the individual
  152.    group members, this is also "forwarding".
  153.  
  154. 3.  Questions to Consider
  155.  
  156.    When a message arrives at an MTA, the MTA must determine whether to
  157.    deliver the message to a local account, route the message to another
  158.    MTA, or, in the case of an unresolvable recipient address, take some
  159.    remedial action such as "bouncing" the message.  In the course of
  160.    making this determination, an MTA may reference information from a
  161.    variety of sources, including its own local configuration, one or
  162.    more directory services, and perhaps other sources.  This document
  163.  
  164.  
  165.  
  166. Lachman                                                         [Page 3]
  167.  
  168. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  169.  
  170.  
  171.    discusses only per-account routing and addressing information
  172.    provided by an LDAP-based directory service, and what role that
  173.    information might play in helping the MTA determine what to do with a
  174.    message.
  175.  
  176.    The question of how an MTA might use such information can be broken
  177.    down into three subquestions:
  178.  
  179.    Question (1):  For a given recipient address, which LDAP entry does
  180.    it belong to?
  181.  
  182.    Question (2):  For a given LDAP entry, should a message addressed to
  183.    it be delivered locally or routed?
  184.  
  185.    Question (3):  If a message addressed to a given LDAP entry needs to
  186.    be routed, to where should the message be routed?
  187.  
  188.    In order for these questions to be answerable by the MTA, LDAP
  189.    entries that represent mail accounts should include attributes that
  190.    specify addressing and routing information.  These attributes should
  191.    be advertised to (i.e., readable by) the MTAs that are expected to
  192.    act on them, and there should be a definition of what attributes are
  193.    involved and how they are to be interpreted.  With this definition,
  194.    an MTA can be implemented or configured to correctly use such
  195.    information to answer the above questions, and therefore, correctly
  196.    handle messages addressed to accounts represented as LDAP entries.
  197.  
  198. 4.  Description of Solution Implemented
  199.  
  200.    In the design of Netscape Messaging Server, we defined two new LDAP
  201.    object classes, 'mailRecipient', which is used to represent a mail
  202.    user account, and 'mailGroup', which is used to represent a mail
  203.    group account (mail distribution list).  An LDAP entry of either
  204.    class may have attributes that are of an "account configuration"
  205.    nature and are used solely by the MDA handling mail for the account,
  206.    while other attributes are used by the account's "home" MTA as well
  207.    as other MTAs.  It is this latter set of attributes that are of
  208.    interest in this discussion, since we are concerned with the behavior
  209.    of MTAs.
  210.  
  211.    Our MTA implementation uses the following attributes:
  212.  
  213.            mail                    primary email address
  214.            mailAlternateAddress    additional email addresses
  215.            mailHost                server hosting mail account
  216.            uid                     user id (login name)
  217.  
  218.    The 'mail' and 'mailAlternateAddress' attributes are used to specify
  219.  
  220.  
  221.  
  222. Lachman                                                         [Page 4]
  223.  
  224. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  225.  
  226.  
  227.    the email addresses [4] that are considered valid for an account.
  228.    They must all be complete email addresses (e.g., "joe@example.com",
  229.    as opposed to "joe" or "joe@mars").  'mailHost' is the fully-
  230.    qualified domain name [5] of the mail server that considers the
  231.    account to be locally deliverable (e.g., "mars.eng.example.com").
  232.    'uid' is the user's login name.  A 'mailGroup' is not expected to
  233.    have a 'uid' attribute, and may or may not have a 'mailHost'
  234.    attribute, but both attributes should be present for a
  235.    'mailRecipient'.  For a detailed description of the 'mailRecipient'
  236.    and 'mailGroup' object classes and associated attributes, refer to
  237.    Appendices A and B.
  238.  
  239.    Our MTA implementation looks for the above attributes, and uses them
  240.    to answer the three fundamental questions considered above, as
  241.    follows.
  242.  
  243.  4.1.  Mapping an Address to an LDAP Entry
  244.  
  245.    To resolve Question (1), we take the recipient address from the SMTP
  246.    "envelope", and see if there is exactly one LDAP entry that
  247.    advertises that address as one of its valid addresses.  Specifically,
  248.    we search for an LDAP entry that has a 'mail' or
  249.    'mailAlternateAddress' attribute whose value is the address in
  250.    question.  The search is performed across all LDAP entries in a given
  251.    directory subtree, which is configured in the MTA as its "base
  252.    subtree" of interest.
  253.  
  254.    If the above search fails, we may also perform a fallback search.
  255.    Specifically, if the above search yields zero matches, we split the
  256.    address in question at the "@" sign, yielding a "local part" and a
  257.    "domain part".  If the MTA configuration specifies that it is the
  258.    final authority on messages addressed to the domain part in question
  259.    (i.e., it has the authority to bounce messages addressed to that
  260.    domain), then we search for an LDAP entry whose 'uid' attribute
  261.    equals the local part.  If we get exactly one match, then we regard
  262.    this as a successful match.
  263.  
  264.    In theory, the fallback search may not be required, but since our MTA
  265.    rewrites envelopes to 'uid'@'mailHost' (as discussed in Section 4.3),
  266.    it is clearly advantageous for receiving MTAs in this environment to
  267.    be able to unconditionally recognize an address thusly rewritten.
  268.  
  269.  4.2.  Determining Whether or not to Perform Local Delivery
  270.  
  271.    To resolve Question (2), we look up the LDAP entry's 'mailHost'
  272.    attribute.  If the value of this attribute matches the fully-
  273.    qualified domain name (FQDN) specified in the MTA configuration, then
  274.    the message is passed to the local MDA.
  275.  
  276.  
  277.  
  278. Lachman                                                         [Page 5]
  279.  
  280. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  281.  
  282.  
  283.    If the value of the 'mailHost' attribute does not match the MTA's
  284.    FQDN, then the message is routed.
  285.  
  286.    If the LDAP entry has no 'mailHost' attribute, this is considered
  287.    invalid for a 'mailRecipient', but for a 'mailGroup', the MTA will
  288.    pass the message to the local MDA to perform group list expansion and
  289.    forwarding to the individual recipients.  In other words, for a
  290.    'mailGroup', a missing 'mailHost' means any mail server may perform
  291.    group handling for the message.
  292.  
  293.  4.3.  Determining How to Route the Message
  294.  
  295.    To resolve Question (3), we look up the LDAP entry's 'mailHost' and
  296.    'uid' attributes.  The 'uid' attribute is normally present for a
  297.    'mailRecipeint', and is not normally present for a 'mailGroup'.  If
  298.    the 'uid' attribute is present, we rewrite the recipient address in
  299.    the SMTP envelope to 'uid'@'mailHost', i.e., we combine the
  300.    respective values of these two attributes and add an "@" sign to
  301.    formulate a new recipient address.  If the 'uid' attribute is not
  302.    present, we do not rewrite the recipient address.
  303.  
  304.    The message is routed to the destination indicated in the 'mailHost'
  305.    attribute.  This may or may not mean that the MTA will open an SMTP
  306.    connection to the host identified as the 'mailHost', since the MTA
  307.    configuration may specify routing rules that prevent this (e.g., in
  308.    sites that are configured so that all message traffic follows a fixed
  309.    "star" topology).  Also, some sites may use DNS MX records [6] for
  310.    internal message routing.  For example, an MTA "mail.example.com" may
  311.    receive a message for "joe@example.com", find that the 'mailHost' for
  312.    this account is "mars.eng.example.com", and then discover that mail
  313.    for "*.eng.example.com" is MX'ed to "hub.eng.example.com", which will
  314.    then be the "next hop".
  315.  
  316. 5.  Possible Ways to Generalize the Solution Implemented
  317.  
  318.    The following are serveral ways our approach could be extended to
  319.    make it more general.  None of these suggestions are reflected in our
  320.    existing implementation as of this writing.  We have no specific
  321.    plans to follow or not follow these suggestions in any subsequent
  322.    implementation.  The intent is to provide ideas as to what a more
  323.    general approach might look like.  Whether or not these ideas should
  324.    be implemented, or should become the basis for a future standard, are
  325.    left as open questions.
  326.  
  327.  5.1.  More Flexible Envelope Rewrites
  328.  
  329.    One might argue that it is not really necessary for MTAs to rewrite
  330.    envelopes when performing intra-enterprise message routing.  The
  331.  
  332.  
  333.  
  334. Lachman                                                         [Page 6]
  335.  
  336. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  337.  
  338.  
  339.    argument is as follows.  Taking an example from above, suppose Joe's
  340.    account is on "mars.eng.example.com", and Joe's account advertises
  341.    "joe@example.com" as one of its valid email addresses.  One would
  342.    expect that Joe's "home" MTA knows what Joe's valid email addresses
  343.    are.  When mail arrives on "mail.example.com" for "joe@example.com",
  344.    and it finds Joe's LDAP entry that advertises this address, it should
  345.    be able to route the message without rewriting the envelope under the
  346.    assumption that Joe's "home" MTA (and other MTAs such as
  347.    "hub.eng.example.com" that are "closer" to Joe's "home" MTA than
  348.    "mail.example.com") can also correctly identify the address as
  349.    belonging to Joe.
  350.  
  351.    However, existing practice in sites that use SMTP-based messaging
  352.    often includes the rewriting of addresses to be host-specific.  In
  353.    order to avoid going against existing practice, our MTA
  354.    implementation rewrites envelopes to 'uid'@'mailHost', as explained
  355.    above.  This is a fixed behavior, and some sites may desire more
  356.    flexibility.
  357.  
  358.    One way to provide more flexibility is to add an attribute, say:
  359.  
  360.            mailRoutingAddress      address for internal mail routing
  361.  
  362.    This could be added to the 'mailRecipient' and 'mailGroup' object
  363.    classes as a way to explicitly specify how to rewrite the envelope
  364.    when routing a message.  Then, if the 'mailRoutingAddress' is
  365.    present, the envelope is rewritten to the indicated address,
  366.    otherwise, the address is not rewritten.  This provides flexibility
  367.    for site-specific policy governing whether or not envelopes are
  368.    rewritten, and if so, how they are to be rewritten.  It obviates the
  369.    fixed 'uid'@'mailHost' behavior in our implementation (see Section
  370.    4.3), because the same information can then be stored in the
  371.    'mailRoutingAddress' attribute.
  372.  
  373.    It should be noted that if the 'mailRoutingAddress' attribute were
  374.    used as described here, that attribute would need to be added to the
  375.    search specified in Section 4.1.  That is, an MTA receiving a message
  376.    should search the directory for any entry whose 'mail',
  377.    'mailAlternateAddress', or 'mailRoutingAddress' is the address in
  378.    question, since any of those addresses could appear in the envelope.
  379.  
  380.    Also, the 'uid'@'mailHost' search could be removed from the method
  381.    specified in Section 4.1, but some sites may still regard this as a
  382.    desirable fallback, although in this case the reasons to keep it are
  383.    more along the lines of the reasoning in Section 5.2.
  384.  
  385.    One might observe that 'mailRoutingAddress' and 'mailHost' may be
  386.    partially redundant, and, in general, it is desirable to avoid
  387.  
  388.  
  389.  
  390. Lachman                                                         [Page 7]
  391.  
  392. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  393.  
  394.  
  395.    redundancy of information in the directory.  Having both attributes
  396.    would be useful, however, if for some reason a network administrator
  397.    wanted to separately control "next-hop" determination and envelope
  398.    rewrites.  So if both attributes were present, 'mailHost' would
  399.    determine where to route the message, and 'mailRoutingAddress' would
  400.    determine how to rewrite the envelope.  If only 'mailRoutingAddress'
  401.    were present, then the right-hand side (the domain part) of the
  402.    routing address would determine the next destination.  If only
  403.    'mailHost' were present, then the envelope would not be rewritten.
  404.  
  405.  5.2.  Localpart-only Searches
  406.  
  407.    Our implementation performs searches on email addresses as complete
  408.    addresses (e.g., "joe@example.com").  We do not split the address at
  409.    the "@" sign and search on the "local part", except in the case
  410.    characterized above as a "fallback" search.  This approach is
  411.    probably sufficient for most customers since they can always add more
  412.    addresses to an account as needed.  It also reduces the risk of
  413.    "namespace crossovers" that could result if customers with multiple
  414.    distinct domains (e.g., with "joe" being a different person in each
  415.    domain) did localpart-only searches.
  416.  
  417.    Nevertheless, some sites may desire the flexibility to configure
  418.    their MTAs to perform "localpart-only" searches, once the MTA has
  419.    ascertained that the domain part is considered to be "local".  They
  420.    may then want the search to attempt matches against arbitrary
  421.    attributes, like 'uid', 'cn' (with spaces and other illegal
  422.    characters matching underscores or dots in the address), or some
  423.    attribute whose purpose is to contain localpart-only email addresses.
  424.    Site-specific needs can vary considerably in this area, and the most
  425.    appropriate solution may be to make this part of an MTA's
  426.    functionality as configurable as possible.
  427.  
  428.  5.3.  Mail Address Mappings
  429.  
  430.    Some sites have a need to perform what might be called a "transit
  431.    service" whereby email sent to a given address is resent to another
  432.    address (say, for a person who wants their former Internet service
  433.    provider to resend their mail to their new account elsewhere).  This
  434.    is often called an "alias", but, in a strict sense, "alias" means "an
  435.    alternate name for something" (which is the purpose of
  436.    'mailAlternateAddress'), so this might more properly be called a
  437.    "mail address mapping".
  438.  
  439.    This effect can be accomplished with our existing implementation in
  440.    several ways.  One way is to maintain a 'mailRecipient' entry that
  441.    includes a forwarding address ('mailForwardingAddress' attribute).
  442.    Another way is to maintain a "group of one" entry, i.e., a
  443.  
  444.  
  445.  
  446. Lachman                                                         [Page 8]
  447.  
  448. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  449.  
  450.  
  451.    'mailGroup' with only one member.
  452.  
  453.    However, some network administrators may not wish to represent such
  454.    "transit" users in their directory service as being actual users or
  455.    groups.  Therefore, it may be desirable to define a new object class
  456.    for this purpose, e.g.:
  457.  
  458.            Object class:  mailAddressMapping
  459.                Required attribute:
  460.                    objectClass
  461.                Allowed attributes:
  462.                    cn
  463.                    mail
  464.                    mailAlternateAddress
  465.                    mailTransitAddress
  466.  
  467.    The MTA would treat mail addressed to such an entry the same as it
  468.    would for a non-local user who has a 'mailRoutingAddress' specified
  469.    and no 'mailHost'; i.e., a message addressed to a
  470.    'mailAddressMapping' entry (as per its 'mail' or
  471.    'mailAlternateAddress' attributes) is resent to the address specified
  472.    as its 'mailTransitAddress'.  The reason not to use
  473.    'mailRoutingAddress' for this purpose is that the transit address
  474.    must not participate in the Question (1) search (since doing so would
  475.    cause the search to yield duplicate matches in the case where the
  476.    targeted recipient is within the same organization).
  477.  
  478.  5.4.  More Configurability
  479.  
  480.    In lieu of a standard, mail server vendors could also achieve
  481.    interoperability by providing a high degree of configurability in
  482.    their products.  For example, each mail server product could provide
  483.    a means to configure or program its methods of resolving each of
  484.    Questions (1), (2), and (3); if all of the mail servers in a given
  485.    site were configured to use the same methods, then they would, in
  486.    theory, interoperate in terms of LDAP-based SMTP message routing as
  487.    described in this document.  However, this approach to
  488.    interoperability simply shifts the burden of standardization to the
  489.    customer, and then there might still be a demand for a "recommended
  490.    configuration profile" (i.e., a standard) for customers who desire
  491.    solutions that work "right out of the box".
  492.  
  493.    On the other hand, some level of configurability with regard to the
  494.    functionality discussed here may be desirable.
  495.  
  496. 6.  Security Considerations
  497.  
  498.    As in all cases where account information is stored in an LDAP-based
  499.  
  500.  
  501.  
  502. Lachman                                                         [Page 9]
  503.  
  504. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  505.  
  506.  
  507.    directory service, network administrators must be careful to ensure
  508.    that their directory service controls users' access to the entries
  509.    and attributes stored therein, according to site policy (e.g.,
  510.    allowing users to modify, say, their 'mailForwardingAddress'
  511.    attribute, but not their 'mailHost' attribute).  Mail server products
  512.    and their associated user management tools should help administrators
  513.    to ensure this, and should also help administrators avoid
  514.    configurations that would result in misdelivered mail due to
  515.    "namespace crossovers" and other reasons.
  516.  
  517. 7.  References
  518.  
  519.    [1]  W. Yeong, T. Howes, S. Kille, "Lightweight Directory Access
  520.    Protocol", RFC 1777, March 1995.
  521.  
  522.    [2]  "Information Processing Systems - Open Systems Interconnection -
  523.    The Directory: Overview of Concepts, Models and Service", ISO/IEC JTC
  524.    1/SC21, International Standard 9594-1, 1988.
  525.  
  526.    [3]  J. Postel, "Simple Mail Transfer Protocol", RFC 821, August
  527.    1982.
  528.  
  529.    [4]  D. Crocker, "Standard for the Format of ARPA Internet Text
  530.    Messages", RFC 822, August 1982.
  531.  
  532.    [5]  P. Mockapetris, "Domain names - concepts and facilities", RFC
  533.    1034, November 1987.
  534.  
  535.    [6]  C. Partridge, "Mail routing and the domain system", RFC 974,
  536.    January 1986.
  537.  
  538.    [7]  M. Smith, "Definition of the inetOrgPerson Object Class",
  539.    Internet-Draft (work in progress), November 1996.
  540.  
  541.    [8]  "Information Processing Systems - Open Systems Interconnection -
  542.    The Directory: Selected Object Classes", Recommendation X.521,
  543.    ISO/IEC JTC 1/SC21, International Standard 9594-7, 1993.
  544.  
  545.    [9]  T. Howes, M. Smith, "An LDAP URL Format", RFC 1959, June 1996.
  546.  
  547. 8.  Author's Address
  548.  
  549.    Hans Lachman
  550.    Netscape Communications Corp.
  551.    501 East Middlefield Road
  552.    Mountain View, CA 94043
  553.    USA
  554.  
  555.  
  556.  
  557.  
  558. Lachman                                                        [Page 10]
  559.  
  560. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  561.  
  562.  
  563.    Phone: (415) 254-1900
  564.    EMail: lachman@netscape.com
  565.  
  566. Appendix A.  mailRecipient Object Class and Attributes
  567.  
  568.    The following is an informal description of the 'mailRecipient'
  569.    object class and associated attributes.  It was designed to be used
  570.    as a "mix-in" object in combination with a person's LDAP entry (in
  571.    our implementation, an 'inetOrgPerson' entry [7]) to enable a person
  572.    to be recognized and handled as a mail user.
  573.  
  574.    Object class:  mailRecipient
  575.        Required attribute:
  576.            objectClass
  577.        Allowed attributes:
  578.            cn
  579.                    Common name (person's full name).
  580.            mail
  581.                    "Primary" email address.  This is the address that
  582.                    would likely be displayed by "white-pages" lookup
  583.                    applications.  Must be a complete email address
  584.                    (e.g., "joe@example.com").
  585.            mailAccessDomain
  586.                    Domains and IP addresses from which user may do POP
  587.                    or IMAP login.
  588.            mailAlternateAddress
  589.                    Email addresses that are considered valid for this
  590.                    user in addition to their 'mail' address.  Must be
  591.                    complete email addresses.
  592.            mailAutoReplyMode
  593.                    Auto-reply mode, may be one of:  'vacation' (send
  594.                    reply text to sender, but only once per vacation),
  595.                    'reply' (send reply text unconditionally), or 'echo'
  596.                    (like 'reply' but include original message in the
  597.                    reply).
  598.            mailAutoReplyText
  599.                    Reply text to use with 'mailAutoReplyMode'.
  600.            mailDeliveryOption
  601.                    Mail delivery option, one or more of:  'mailbox'
  602.                    (deliver to user's POP/IMAP mailbox), 'native'
  603.                    (deliver with platform's native delivery method,
  604.                    e.g., "/usr/bin/mail"), or 'program' (perform program
  605.                    delivery).  There must be at least one
  606.                    'mailDeliveryOption' and/or 'mailForwardingAddress',
  607.                    otherwise, mail to this account is undeliverable.
  608.            mailForwardingAddress
  609.                    User-specifiable mail forwarding address(es).
  610.            mailHost
  611.  
  612.  
  613.  
  614. Lachman                                                        [Page 11]
  615.  
  616. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  617.  
  618.  
  619.                    Fully-qualified domain name of the MTA that is the
  620.                    final SMTP destination for mail addressed to this
  621.                    account.  Used for routing (see Section 4.3), and
  622.                    also used to determine which LDAP entries represent
  623.                    accounts that are to be considered local to a given
  624.                    mail server (see Section 4.2).
  625.            mailMessageStore
  626.                    Identifier for the message store containing this
  627.                    user's POP/IMAP mailbox.  Contains absolute path of
  628.                    the message store directory (may be some other
  629.                    identifier in the future).
  630.            mailProgramDeliveryInfo
  631.                    Command text for program delivery.
  632.            mailQuota
  633.                    Quota in bytes for user's POP/IMAP mailbox.
  634.            multiLineDescription
  635.                    User-specifiable personal description.
  636.            uid
  637.                    User's login name.
  638.            userPassword
  639.                    User's password.
  640.  
  641. Appendix B.  mailGroup Object Class and Attributes
  642.  
  643.    The following is an informal description of the 'mailGroup' object
  644.    class and associated attributes.  It was designed to be used as a
  645.    "mix-in" object in combination with an LDAP group entry (in
  646.    particular, a 'groupOfUniqueNames' entry [8]) to enable a group to be
  647.    recognized and handled as a mail group.
  648.  
  649.    Object class:  mailGroup
  650.        Required attributes:
  651.            objectClass
  652.            mail
  653.                    "Primary" email address (as above).
  654.        Allowed attributes:
  655.            cn
  656.                    Common name (name of the group).
  657.            mailAlternateAddress
  658.                    Additional email addresses (as above).
  659.            mailHost
  660.                    FQDN of the MTA (as above).  For a group, if no
  661.                    'mailHost' is specified, this implies that any mail
  662.                    server may perform group handling for messages
  663.                    addressed to this group (i.e., perform group list
  664.                    expansion, and forward the message to the individual
  665.                    recipients).
  666.            mgrpAllowedBroadcaster
  667.  
  668.  
  669.  
  670. Lachman                                                        [Page 12]
  671.  
  672. INTERNET-DRAFT    LDAP-based Routing of SMTP Messages         March 1997
  673.  
  674.  
  675.                    RFC 1959-style [9] specification of users who may
  676.                    send mail to the group (if such restriction is
  677.                    desired).
  678.            mgrpAllowedDomain
  679.                    Domains from which users may send mail to the group
  680.                    (if such restriction is desired).
  681.            mgrpDeliverTo
  682.                    RFC 1959-style filter expression specifying a search
  683.                    criteria to identify users who should receive copies
  684.                    of all messages to the group (in addition to the
  685.                    formal group members, i.e., those who are specified
  686.                    as members of the 'groupOfUniqueNames' with a
  687.                    'uniqueMember' attribute), e.g., to include all
  688.                    persons in the "Sales" organizational unit.
  689.            mgrpErrorsTo
  690.                    RFC 1959-style specification of users whom to notify
  691.                    of mail delivery problems.
  692.            mgrpModerator
  693.                    RFC 1959-style specification of a user whom to send
  694.                    rejected messages (rejected because they came from
  695.                    other than an "allowed broadcaster" or from outside
  696.                    of the "allowed domains"), but only if the
  697.                    'mgrpMsgRejectAction' attribute is present with value
  698.                    'toModerator'.
  699.            mgrpMsgMaxSize
  700.                    Size in bytes of largest message that may be sent to
  701.                    the group.
  702.            mgrpMsgRejectAction
  703.                    Action to take if a message is rejected due to
  704.                    violating "allowed broadcaster" and/or "allowed
  705.                    domain" restrictions (if any).  May be one of:
  706.                    'reply' (send rejection notice to sender), 'bounce'
  707.                    (send rejection notice to sender, including the
  708.                    original message), or 'toModerator' (forward to
  709.                    moderator).
  710.            mgrpMsgRejectText
  711.                    Text of rejection notice to use with
  712.                    'mgrpMsgRejectText'.
  713.            mgrpRfc822MailMember
  714.                    Email addresses of users who should receive copies of
  715.                    all messages to the group (in addition to the formal
  716.                    group members).  These users and those specified via
  717.                    'mgrpDeliverTo' are also called "CC recipients",
  718.                    since they are not formal group members.
  719.            owner
  720.                    Distinguished name (DN) of the person responsible for
  721.                    the group.
  722.  
  723.  
  724.  
  725.  
  726. Lachman                Expires: 30 September 1997              [Page 13]
  727.  
  728.