summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-10-08 06:30:05 +0000
committerfukachan <fukachan>2001-10-08 06:30:05 +0000
commitd5a3dd6fd5e3148742836aea5f0c1c035e677e2a (patch)
tree05717309c757b2a04477aa0f24e97d68a0834c52 /Documentation
parent5ee45023a76e779929ce6c7d8c1907db82b0a4a2 (diff)
downloadfml8-d5a3dd6fd5e3148742836aea5f0c1c035e677e2a.tar.gz
fml8-d5a3dd6fd5e3148742836aea5f0c1c035e677e2a.tar.bz2
fml8-d5a3dd6fd5e3148742836aea5f0c1c035e677e2a.zip
added
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/en/rfc/rfc1026.txt234
-rw-r--r--Documentation/en/rfc/rfc1138.txt5155
-rw-r--r--Documentation/en/rfc/rfc1148.txt5267
-rw-r--r--Documentation/en/rfc/rfc1327.txt6331
-rw-r--r--Documentation/en/rfc/rfc1495.txt619
-rw-r--r--Documentation/en/rfc/rfc2156.txt8067
-rw-r--r--Documentation/en/rfc/rfc987.txt3933
7 files changed, 29606 insertions, 0 deletions
diff --git a/Documentation/en/rfc/rfc1026.txt b/Documentation/en/rfc/rfc1026.txt
new file mode 100644
index 00000000..91e143fb
--- /dev/null
+++ b/Documentation/en/rfc/rfc1026.txt
@@ -0,0 +1,234 @@
+
+Network Working Group S.E. Kille
+Request for Comments 1026 University College London
+ September 1987
+
+ Addendum to RFC 987
+
+ (Mapping between X.400 and RFC-822)
+
+
+
+
+
+Status of this Memo
+
+ This RFC suggest a proposed protocol for the Internet community, and
+ requests discussion and suggestions for improvements. Distribution
+ of this memo is unlimited.
+
+ This document specifies a number of additions and corrections to
+ RFC-987, aka Mailgroup Note 19.
+
+ The addendum carries equal weight to the original specification,
+ which must be used when this mapping is performed on the Internet or
+ in the UK Academic Community. This mapping may also be used within
+ the RARE community in Europe. This specification may be modified in
+ the light of implementation experience, but no substantial changes
+ are expected.
+
+1. Errata
+
+ - In section 4.6.4, replace ".." with ".".
+
+ - In section 4.2.4, replace three references to 4.3.1 by
+ 4.2.1, and one reference to 4.2.2 by 4.1.2.
+
+ - In section 5.2, replace "1 mailbox" with "1#mailbox",
+ "1 msg-id" with "1#msg-id" and "1 encoded-type" with
+ "1#encoded-type".
+
+2. Component Ordering
+
+ In most cases, ordering of O/R name components is not significant for
+ the mappings specified by this document. However, Organisational
+ Units and Domain Defined Attributes are specified as SEQUENCE, in
+ P1.ORName, and so their order may be significant. This specification
+ needs to take account of this in two ways:
+
+ 1) To allow consistent mapping into the domain hierarchy
+
+ 2) To ensure preservation of order over multiple mappings.
+
+
+
+
+Kille [Page 1]
+
+RFC 1026 September 1987
+
+
+There are three places where an order must be specified:
+
+ 1) On the text encoding (std-orname) of P1.ORName as used in the
+ local-part of an RFC-822 address, the most significant component
+ must be on the RHS. This applies only to those components which
+ may have multiple values (Organisational Unit, and Domain
+ Defined Attributes). Other attributes may be presented in any
+ order. Note that in dmn-orname specified in Appendix F, this
+ ordering is already implied by the current ordering
+ requirements.
+
+ 2) For the Organisational Units (OU) in P1.ORName, the first OU in
+ the SEQUENCE is the most signicicant. This follows the
+ "natural" hierarchy of the specification of P1.ORName, where the
+ most significant components are defined first.
+
+ 3) For the Domain Defined Attributes in P1.ORName, the First Domain
+ Defined Attribute in the SEQUENCE is the most significant.
+
+ Note that although the ordering defined in 2) and 3) is mandatory for
+ this mapping, there are NO implications on ordering significance
+ within X.400.
+
+ 3. Extensions To Deal with Omitted Components
+
+ Implementation of RFC-987 has proved to be a little inflexible for
+ some naming strategies. In particular, there are some difficulties
+ where Organisation or PRMD is omitted:
+
+ The following sentence of RFC-987 should be removed: 4.2.1 (Page 27):
+ "If one of the hierarchical components is omitted .... tuple).".
+
+ The strategy proposed is to introduce the concept of explicit missing
+ components to the symmetrical mapping described in 4.2.1.
+ Essentially, a domain may be associated with an omitted attribute in
+ conjuction with several present ones. When performing the
+ algorithmic insertion of components lower in the hierarchy, the
+ omitted value should be skipped. For example, if "GMD.DFN" is
+ associated with "C=DE", "ADMD=DBP", "PRMD=GMD", and omitted
+ organisation, then "ZI.GMD.DFN" is mapped with "C=DE", "ADMD=DBP",
+ "PRMD=GMD", "OU=ZI". It should be noted that attributes may have
+ null values, and that this is treated separately from omitted
+ attributes (whilst it would be bad practice to treat these two cases
+ differently, they must be allowed for in practice).
+
+
+
+
+
+
+
+
+
+
+Kille [Page 2]
+
+RFC 1026 September 1987
+
+
+ To allow the mapping of null organisations to be represented in the
+ specification of Appendix F, the dmn-orname syntax is extended, so
+ that values may be given the symbol "@" (not a printable string
+ character). This corresponds to an omitted attribute. The new
+ definition is:
+
+ dmn-orname = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+ dmn-printablestring
+ = *( dmn-char / dmn-pair )
+ dmn-char = <ps-delim, and any ps-char except ".">
+ dmn-pair = "."
+
+ Appendix F - Format of address mapping tables
+
+ A new Appendix F is defined as follows:
+
+ There is a need to specify the association between the domain and
+ X.400 namespaces described in 4.2.1. This is defined as a table
+ syntax, but the syntax is defined in a manner which makes it suitable
+ for use with domain nameservices (such as the Internet Domain
+ nameservers or the UK NRS). The mapping is not symmetric, and so a
+ separate table is specified for each direction. If multiple matches
+ are possible, the longest possible match should be used.
+
+ Various restrictions are placed on the usage of dmn-orname:
+
+ 1) Only C, ADMD, PRMD, O, and OU may be used.
+
+ 2) There must be a strict ordering of all components, with the most
+ significant components on the RHS.
+
+ 3) No components may be omitted from the hierarchy, although the
+ hierarchy may terminate at any level. If the mapping is to an
+ omitted component, the "@" syntax is used.
+
+ For domain -> X.400:
+
+ domain-syntax "#" dmn-orname "#"
+
+ Note that the trailing "#" is used for clarity, as the dmn-orname
+ syntax can lead to values with trailing blanks.
+
+ For example:
+
+ AC.UK#PRMD$DES.ADMD$BT.C$UK#
+ XEROX.COM#O$Xerox.ADMD$ATT.C$US#
+
+
+
+Kille [Page 3]
+
+RFC 1026 September 1987
+
+
+ HMI.DBP.DFN#O$@.PRMD$HMI.ADMD.DBP.C$DE#
+
+ For X.400 -> domain:
+
+ dmn-orname "#" domain-syntax "#"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 4]
+
diff --git a/Documentation/en/rfc/rfc1138.txt b/Documentation/en/rfc/rfc1138.txt
new file mode 100644
index 00000000..9dd237c0
--- /dev/null
+++ b/Documentation/en/rfc/rfc1138.txt
@@ -0,0 +1,5155 @@
+
+
+
+
+
+
+Network Working Group S. Kille
+Request for Comments 1138 University College London
+Updates: RFCs 822, 987, 1026 December 1989
+
+
+ Mapping between X.400(1988) / ISO 10021 and RFC 822
+
+Status of this Memo
+
+ This RFC suggests an electronic mail protocol mapping for the
+ Internet community and UK Academic Community, and requests discussion
+ and suggestions for improvements. This memo does not specify an
+ Internet standard. Distribution of this memo is unlimited.
+
+ This document describes a set of mappings which will enable
+ interworking between systems operating the CCITT X.400 (1988)
+ Recommendations on Message Handling Systems / ISO IEC 10021 Message
+ Oriented Text Interchange Systems (MOTIS) [CCITT/ISO88a], and systems
+ using the RFC 822 mail protocol [Crocker82a] or protocols derived
+ from RFC 822. The approach aims to maximise the services offered
+ across the boundary, whilst not requiring unduly complex mappings.
+ The mappings should not require any changes to end systems.
+
+ This document is based on RFC 987 and RFC 1026 [Kille86a, Kille87a],
+ which define a similar mapping for X.400 (1984). This document does
+ not obsolete the earlier ones, as its domain of application is
+ different.
+
+Specification
+
+ This document specifies a mapping between two protocols. This
+ specification should be used when this mapping is performed on the
+ Internet or in the UK Academic Community. This specification may be
+ modified in the light of implementation experience, but no
+ substantial changes are expected.
+
+ Table of Contents
+
+ 1. Overview ............................................... 2
+ 1.1 X.400 ................................................. 2
+ 1.2 RFC 822 ............................................... 3
+ 1.3 The need for conversion ............................... 4
+ 1.4 General approach ...................................... 4
+ 1.5 Gatewaying Model ...................................... 5
+ 1.6 RFC 987 ............................................... 7
+ 1.7 Aspects not covered ................................... 8
+ 1.8 Subsetting ............................................ 9
+ 1.9 Document Structure .................................... 9
+
+
+
+Kille [Page 1]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ 1.10 Acknowledgements ..................................... 10
+ 2. Service Elements ....................................... 10
+ 2.1 The Notion of Service Across a Gateway ................ 10
+ 2.2 RFC 822 ............................................... 11
+ 2.3 X.400 ................................................. 15
+ 3. Basic Mappings ........................................ 24
+ 3.1 Notation .............................................. 24
+ 3.2 ASCII and IA5 ......................................... 25
+ 3.3 Standard Types ........................................ 25
+ 3.4 Encoding ASCII in Printable String .................... 28
+ 4. Addressing ............................................. 29
+ 4.1 A textual representation of MTS.ORAddress ............. 30
+ 4.2 Basic Representation .................................. 30
+ 4.3 EBNF.822-address <-> MTS.ORAddress .................... 34
+ 4.4 Repeated Mappings ..................................... 43
+ 4.5 Directory Names ....................................... 45
+ 4.6 MTS Mappings .......................................... 45
+ 4.7 IPMS Mappings ....... ................................. 48
+ 5. Detailed Mappings ...................................... 52
+ 5.1 RFC 822 -> X.400 ...................................... 52
+ 5.2 Return of Contents .................................... 59
+ 5.3 X.400 -> RFC 822 ...................................... 60
+ Appendix A Differences with RFC 987 ....................... 78
+ 1. Introduction ........................................... 78
+ 2. Service Elements ....................................... 78
+ 3. Basic Mappings ......................................... 78
+ 4. Addressing ............................................. 78
+ 5. Detailed Mappings ...................................... 79
+ 6. Appendices ............................................. 79
+ Appendix B Mappings specific to the JNT Mail .............. 79
+ 1. Introduction ........................................... 79
+ 2. Domain Ordering ........................................ 79
+ 3. Acknowledge-To: ........................................ 79
+ 4. Trace .................................................. 80
+ 5. Timezone specification ................................. 80
+ 6. Lack of 822-MTS originator specification ............... 80
+ Appendix C Mappings specific to UUCP Mail ................. 81
+ Appendix D Object Identifier Assignment ................... 82
+ Appendix E BNF Summary .................................... 82
+ Appendix F Format of address mapping tables ............... 89
+ References ................................................. 91
+
+Chapter 1 -- Overview
+
+1.1. X.400
+
+ This document relates to the CCITT 1988 X.400 Series Recommendations
+ / ISO IEC 10021 on the Message Oriented Text Interchange Service
+
+
+
+Kille [Page 2]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ (MOTIS). This ISO/CCITT standard is referred to in this document as
+ "X.400", which is a convenient shorthand. Any reference to the 1984
+ CCITT Recommendations will be explicit. X.400 defines an
+ Interpersonal Messaging System (IPMS), making use of a store and
+ forward Message Transfer System. This document relates to the IPMS,
+ and not to wider application of X.400. It is expected that X.400
+ will be implemented very widely.
+
+1.2. RFC 822
+
+ RFC 822 is the current specification of the messaging standard on the
+ Internet. This standard evolved with the evolution of the network
+ from the ARPANET (created by the Defense Advanced Research Projects
+ Agency) to the Internet, which now involves over 1000 networks and is
+ sponsored by DARPA, NSF, DOE, NASA, and NIH. It specifies an end to
+ end message format. It is used in conjunction with a number of
+ different message transfer protocol environments.
+
+ SMTP Networks
+
+ On the Internet and other TCP/IP networks, RFC 822 is used in
+ conjunction with two other standards: RFC 821, also known as
+ Simple Mail Transfer Protocol (SMTP) [Postel82a], and RFC 1034
+ which is a Specification for domains and a distributed name
+ service [Mockapetris87a].
+
+ UUCP Networks
+
+ UUCP is the UNIX to UNIX CoPy protocol, which is usually used
+ over dialup telephone networks to provide a simple message
+ transfer mechanism. There are some extensions to RFC 822,
+ particularly in the addressing. They use domains which conform
+ to RFC 1034, but not the corresponding domain nameservers
+ [Horton86a].
+
+ Csnet
+
+ Some portions of Csnet follow the Internet protocols. The
+ dialup portion of Csnet uses the Phonenet protocols as a
+ replacement for RFC 821. This portion uses domains which
+ conform to RFC 1034, but not the corresponding domain
+ nameservers.
+
+ Bitnet
+
+ Some parts of Bitnet and related networks use RFC 822 related
+ protocols, with EBCDIC encoding.
+
+
+
+
+Kille [Page 3]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ JNT Mail Networks
+
+ A number of X.25 networks, particularly those associated with
+ the UK Academic Community, use the JNT (Joint Network Team)
+ Mail Protocol, also known as Greybook [Kille84a]. This is used
+ with domains and name service specified by the JNT NRS (Name
+ Registration Scheme) [Larmouth83a].
+
+ The mappings specified here are appropriate for all of these
+ networks.
+
+1.3. The need for conversion
+
+ There is a large community using RFC 822 based protocols for mail
+ services, who will wish to communicate with users of the IPMS
+ provided by X.400 systems. This will also be a requirement in cases
+ where communities intend to make a transition to use of an X.400
+ IPMS, as conversion will be needed to ensure a smooth service
+ transition. It is expected that there will be more than one gateway,
+ and this specification will enable them to behave in a consistent
+ manner. Note that the term gateway is used to describe a component
+ performing the protocol mappings between RFC 822 and X.400. This is
+ standard usage amongst mail implementors, but should be noted
+ carefully by transport and network service implementors.
+
+ Consistency between gateways is desirable to provide:
+
+ 1. Consistent service to users.
+
+ 2. The best service in cases where a message passes through
+ multiple gateways.
+
+1.4. General approach
+
+ There are a number of basic principles underlying the details of the
+ specification. These principles are goals, and are not achieved in
+ all aspects of the specification.
+
+ 1. The specification should be pragmatic. There should not be
+ a requirement for complex mappings for "Academic" reasons.
+ Complex mappings should not be required to support trivial
+ additional functionality.
+
+ 2. Subject to 1), functionality across a gateway should be as
+ high as possible.
+
+ 3. It is always a bad idea to lose information as a result of
+ any transformation. Hence, it is a bad idea for a gateway
+
+
+
+Kille [Page 4]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ to discard information in the objects it processes. This
+ includes requested services which cannot be fully mapped.
+
+ 4. All mail gateways actually operate at exactly one level
+ above the layer on which they conceptually operate. This
+ implies that the gateway must not only be cognisant of the
+ semantics of objects at the gateway level, but also be
+ cognisant of higher level semantics. If meaningful
+ transformation of the objects that the gateway operates on
+ is to occur, then the gateway needs to understand more than
+ the objects themselves.
+
+ 5. The specification should be reversible. That is, a double
+ transformation should bring you back to where you started.
+
+1.5. Gatewaying Model
+
+1.5.1. X.400
+
+ X.400 defines the IPMS Abstract Service in X.420/ISO 10021-7,
+ [CCITT/ISO88b] which comprises of three basic services:
+
+ 1. Origination
+
+ 2. Reception
+
+ 3. Management
+
+ Management is a local interaction between the user and the IPMS, and
+ is therefore not relevant to gatewaying. The first two services
+ consist of operations to originate and receive the following two
+ objects:
+
+ 1. IPM (Interpersonal Message). This has two components: a
+ heading, and a body. The body is structured as a sequence
+ of body parts, which may be basic components (e.g., IA5
+ text, or G3 fax), or IP Messages. The heading consists of
+ fields containing end to end user information, such as
+ subject, primary recipients (To:), and importance.
+
+ 2. IPN (Inter Personal Notification). A notification about
+ receipt of a given IPM at the UA level.
+
+ The Origination service also allows for origination of a probe, which
+ is an object to test whether a given IPM could be correctly received.
+
+ The Reception service also allows for receipt of Delivery Reports
+ (DR), which indicate delivery success or failure.
+
+
+
+Kille [Page 5]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ These IPMS Services utilise the Message Transfer (MT) Abstract
+ Service [CCITT/ISO88c]. The MT Abstract Service provides the
+ following three basic services:
+
+ 1. Submission (used by IPMS Origination)
+
+ 2. Delivery (used by IPMS Reception)
+
+ 3. Administration (used by IPMS Management)
+
+ Administration is a local issue, and so does not affect this
+ standard. Submission and delivery relate primarily to the MTS
+ Message (comprising Envelope and Content), which carries an IPM or
+ IPN (or other uninterpreted contents). There is also an Envelope,
+ which includes an ID, an originator, and a list of recipients.
+ Submission also includes the probe service, which supports the IPMS
+ Probe. Delivery also includes Reports, which indicate whether a
+ given MTS Message has been delivered or not.
+
+ The MTS is REFINED into the MTA (Message Transfer Agent) Service,
+ which define the interaction between MTAs, along with the procedures
+ for distributed operation. This service provides for transfer of MTS
+ Messages, Probes, and Reports.
+
+1.5.2. RFC 822
+
+ RFC 822 is based on the assumption that there is an underlying
+ service, which is here called the 822-MTS service. The 822-MTS
+ service provides three basic functions:
+
+ 1. Identification of a list of recipients.
+
+ 2. Identification of an error return address.
+
+ 3. Transfer of an RFC 822 message.
+
+ It is possible to achieve 2) within the RFC 822 header. Some 822-MTS
+ protocols, in particular SMTP, can provide additional functionality,
+ but as these are neither mandatory in SMTP, nor available in other
+ 822-MTS protocols, they are not considered here. Details of aspects
+ specific to two 822-MTS protocols are given in Appendices B and C.
+ An RFC 822 message consists of a header, and content which is
+ uninterpreted ASCII text. The header is divided into fields, which
+ are the protocol elements. Most of these fields are analogous to P2
+ heading fields, although some are analogous to MTS Service Elements
+ or MTA Service Elements.
+
+
+
+
+
+Kille [Page 6]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+1.5.3. The Gateway
+
+ Given this functional description of the two services, the functional
+ nature of a gateway can now be considered. It would be elegant to
+ consider the 822-MTS service mapping onto the MTS Service Elements
+ and RFC 822 mapping onto an IPM, but reality just does not fit.
+ Another elegant approach would be to treat this document as the
+ definition of an X.400 Access Unit (AU). Again, reality does not
+ fit. It is necessary to consider that the IPM format definition, the
+ IPMS Service Elements, the MTS Service Elements, and MTA Service
+ Elements on one side are mapped into RFC 822 + 822-MTS on the other
+ in a slightly tangled manner. The details of the tangle will be made
+ clear in Chapter 5. Access to the MTA Service Elements is minimised.
+
+ The following basic mappings are thus defined. When going from RFC
+ 822 to X.400, an RFC 822 message and the associated 822-MTS
+ information is always mapped into an IPM (MTA, MTS, and IPMS
+ Services). Going from X.400 to RFC 822, an RFC 822 message and the
+ associated 822-MTS information may be derived from:
+
+ 1. A Report (MTA, and MTS Services)
+
+ 2. An IPN (MTA, MTS, and IPMS Services)
+
+ 3. An IPM (MTA, MTS, and IPMS Services)
+
+ Probes (MTA Service) must be processed by the gateway, as discussed
+ in Chapter 5. MTS Messages containing Content Types other than those
+ defined by the IPMS are not mapped by the gateway, and should be
+ rejected at the gateway.
+
+1.5.4. Repeated Mappings
+
+ The mappings specified here are designed to work where a message
+ traverses multiple times between X.400 and RFC 822. This is often
+ essential, particularly in the case of distribution lists. However,
+ in general, this will lead to a level of service which is the lowest
+ common denominator (approximately the services offered by RFC 822).
+ In particular, there is no expectation of additional X.400 services
+ being mapped - although this may be possible in some cases.
+
+1.6. RFC 987
+
+ Much of this work is based on the initial specification of RFC 987
+ and in its addendum RFC 1026. A basic decision is that the mapping
+ will be to the full 1988 version of X.400, and not to a 1984
+ compatible subset. This is important, to give good support to
+ communities which will utilise full X.400 at an early date. This has
+
+
+
+Kille [Page 7]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ the following implications:
+
+ - This document does not obsolete RFC 987, as it has a
+ different domain of application.
+
+ - If a gatewayed message is being transferred to a 1984
+ system, then RFC 987 should be used. If the X.400 side of
+ the gateway is a 1988 system, then it should be operated in
+ 1984 compatibility mode. There is no advantage and some
+ disadvantage in using the new mapping, and later on applying
+ X.400 downgrading rules. Note that in an environment where
+ RFC 822 is of major importance, it may be desirable for
+ downgrading to consider the case where the message was
+ originated in an RFC 822 system, and mapped according to
+ this specification.
+
+ - New features of X.400 can be used to provide a much cleaner
+ mapping than that defined in RFC 987.
+
+ Unnecessary change is usually a bad idea. Changes on the RFC 822
+ side are avoided as far as possible, so that RFC 822 users do not see
+ arbitrary differences between systems conforming to this
+ specification, and those following RFC 987. Changes on the X.400
+ side are minimised, but are more acceptable, due to the mapping onto
+ a new set of services and protocols.
+
+ A summary of changes made is given in Appendix A.
+
+1.7. Aspects not covered
+
+
+ There have been a number of cases where RFC 987 was used in a manner
+ which was not intended. This section is to make clear some
+ limitations of scope. In particular, this specification does not
+ specify:
+
+ - Extensions of RFC 822 to provide access to all X.400
+ services
+
+ - X.400 user interface definition
+
+ These are really coupled. To map the X.400 services, this
+ specification defines a number of extensions to RFC 822. As a side
+ effect, these give the 822 user access to SOME X.400 services.
+ However, the aim on the RFC 822 side is to preserve current service,
+ and it is intentional that access is not given to all X.400 services.
+ Thus, it will be a poor choice for X.400 implementors to use RFC
+ 987(88) as an interface - there are too many aspects of X.400 which
+
+
+
+Kille [Page 8]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ cannot be accessed through it. If a text interface is desired, a
+ specification targeted at X.400, without RFC 822 restrictions, would
+ be more appropriate.
+
+1.8. Subsetting
+
+ This proposal specifies a mapping which is appropriate to preserve
+ services in existing RFC 822 communities. Implementations and
+ specifications which subset this specification are strongly
+ discouraged.
+
+1.9. Document Structure
+
+ This document has five chapters:
+
+ 1. Overview - this chapter.
+
+ 2. Service Elements - This describes the (end user) services
+ mapped by a gateway.
+
+ 3. Basic mappings - This describes some basic notation used in
+ Chapters 3-5, the mappings between character sets, and some
+ fundamental protocol elements.
+
+ 4. Addressing - This considers the mapping between X.400 O/R
+ names and RFC 822 addresses, which is a fundamental gateway
+ component.
+
+ 5. Detailed Mappings - This describes the details of all other
+ mappings.
+
+ There are also six appendices:
+
+ A. Differences with RFC 987
+
+ B. Mappings Specific to JNT Mail
+
+ C. Mappings Specific to UUCP Mail
+
+ D. Object Identifier Assignment
+
+ E. BNF Summary
+
+ F. Format of Address Tables
+
+ WARNING:
+
+ THE REMAINDER OF THIS SPECIFICATION IS TECHNICALLY DETAILED.
+
+
+
+Kille [Page 9]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ IT WILL NOT MAKE SENSE, EXCEPT IN THE CONTEXT OF RFC 822 AND
+ X.400 (1988). DO NOT ATTEMPT TO READ THIS DOCUMENT UNLESS
+ YOU ARE FAMILIAR WITH THESE SPECIFICATIONS.
+
+1.10. Acknowledgements
+
+ This work was partly sponsored by the Joint Network Team. The
+ workshop at UCL in June 1989 to work on this specification was also
+ an IFIP WG 6.5 meeting.
+
+ The work in this specification was substantially based on RFC 987,
+ which had input from many people.
+
+ Useful comments and suggestions were made by Pete Cowen (Nottingham
+ Univ), Jim Craigie (JNT), Christian Huitema (Inria), Peter Lynch
+ (Prime), Julian Onions (Nottingham Univ), Sandy Shaw (Edinburgh
+ Univ), Einar Stefferud (NMA), and Peter Sylvester (GMD).
+
+Chapter 2 -- Service Elements
+
+ This chapter considers the services offered across a gateway built
+ according to this specification. It gives a view of the
+ functionality provided by such a gateway for communication with users
+ in the opposite domain. This chapter considers service mappings in
+ the context of SINGLE transfers only, and not repeated mappings
+ through multiple gateways.
+
+2.1. The Notion of Service Across a Gateway
+
+ RFC 822 and X.400 provide a number of services to the end user. This
+ chapter describes the extent to which each service can be supported
+ across an X.400 <-> RFC 822 gateway. The cases considered are single
+ transfers across such a gateway, although the problems of multiple
+ crossings are noted where appropriate.
+
+2.1.1. Origination of Messages
+
+ When a user originates a message, a number of services are available.
+ Some of these imply actions (e.g., delivery to a recipient), and some
+ are insertion of known data (e.g., specification of a subject field).
+ This chapter describes, for each offered service, to what extent it
+ is supported for a recipient accessed through a gateway. There are
+ three levels of support:
+
+ Supported
+ The corresponding protocol elements map well, and so the
+ service can be fully provided.
+
+
+
+
+Kille [Page 10]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Not Supported
+ The service cannot be provided, as there is a complete
+ mismatch.
+
+ Partial Support
+ The service can be partially fulfilled.
+
+ In the first two cases, the service is simply marked as "Supported"
+ or "Not Supported". Some explanation may be given if there are
+ additional implications, or the (non) support is not intuitive. For
+ partial support, the level of partial support is summarised. Where
+ partial support is good, this will be described by a phrase such as
+ "Supported by use of.....". A common case of this is where the
+ service is mapped onto a non- standard service on the other side of
+ the gateway, and this would have lead to support if it had been a
+ standard service. In many cases, this is equivalent to support. For
+ partial support, an indication of the mechanism is given, in order to
+ give a feel for the level of support provided. Note that this is not
+ a replacement for Chapter 5, where the mapping is fully specified.
+
+ If a service is described as supported, this implies:
+
+ - Semantic correspondence.
+
+ - No (significant) loss of information.
+
+ - Any actions required by the service element.
+
+ An example of a service gaining full support: If an RFC 822
+ originator specifies a Subject: field, this is considered to be
+ supported, as an X.400 recipient will get a subject indication.
+
+ All RFC 822 services are supported or partially supported for
+ origination. The implications of non-supported X.400 services is
+ described under X.400.
+
+2.1.2. Reception of Messages
+
+ For reception, the list of service elements required to support this
+ mapping is specified. This is really an indication of what a
+ recipient might expect to see in a message which has been remotely
+ originated.
+
+2.2. RFC 822
+
+ RFC 822 does not explicitly define service elements, as distinct from
+ protocol elements. However, all of the RFC 822 header fields, with
+ the exception of trace, can be regarded as corresponding to implicit
+
+
+
+Kille [Page 11]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ RFC 822 service elements.
+
+2.2.1. Origination in RFC 822
+
+ A mechanism of mapping, used in several cases, is to map the RFC 822
+ header into a heading extension in the IPM (InterPersonal Message).
+ This can be regarded as partial support, as it makes the information
+ available to any X.400 implementations which are interested in these
+ services. Communities which require significant RFC 822 interworking
+ should require that their X.400 User Agents are able to display these
+ heading extensions. Support for the various service elements
+ (headers) is now listed.
+
+ Date:
+ Supported.
+
+ From:
+ Supported. For messages where there is also a sender field,
+ the mapping is to "Authorising Users Indication", which has
+ subtly different semantics to the general RFC 822 usage of
+ From:.
+
+ Sender:
+ Supported.
+
+ Reply-To:
+ Supported.
+
+ To: Supported.
+
+ Cc: Supported.
+
+ Bcc: Supported.
+
+ Message-Id:
+ Supported.
+
+ In-Reply-To:
+ Supported, for a single reference. Where multiple
+ references are given, partial support is given by mapping to
+ "Cross Referencing Indication". This gives similar
+ semantics.
+
+ References:
+ Supported.
+
+ Keywords:
+ Supported by use of a heading extension.
+
+
+
+Kille [Page 12]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Subject:
+ Supported.
+
+ Comments:
+ Supported by use of an extra body part.
+
+ Encrypted:
+ Supported by use of a heading extension.
+
+ Resent-*
+ Supported by use of a heading extension. Note that
+ addresses in these fields are mapped onto text, and so are
+ not accessible to the X.400 user as addresses. In
+ principle, fuller support would be possible by mapping onto
+ a forwarded IP Message, but this is not suggested.
+
+ Other Fields
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g., "Fruit-of-the-day:") are supported by use of
+ heading extensions.
+
+2.2.2. Reception by RFC 822
+
+ This considers reception by an RFC 822 User Agent of a message
+ originated in an X.400 system and transferred across a gateway. The
+ following standard services (headers) may be present in such a
+ message:
+
+ Date:
+
+ From:
+
+ Sender:
+
+ Reply-To:
+
+ To:
+
+ Cc:
+
+ Bcc:
+
+ Message-Id:
+
+ In-Reply-To:
+
+ References:
+
+
+
+
+Kille [Page 13]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Subject:
+
+ The following non-standard services (headers) may be present. These
+ are defined in more detail in Chapter 5 (5.3.4, 5.3.6, 5.3.7):
+
+ Autoforwarded:
+
+ Content-Identifier:
+
+ Conversion:
+
+ Conversion-With-Loss:
+
+ Delivery-Date:
+
+ Discarded-X400-IPMS-Extensions:
+
+ Discarded-X400-MTS-Extensions:
+
+ DL-Expansion-History:
+
+ Deferred-Delivery:
+
+ Expiry-Date:
+
+ Importance:
+
+ Incomplete-Copy:
+
+ Language:
+
+ Latest-Delivery-Time:
+
+ Message-Type:
+
+ Obsoletes:
+
+ Original-Encoded-Information-Types:
+
+ Originator-Return-Address:
+
+ Priority:
+
+ Redirection-History:
+
+ Reply-By:
+
+ Requested-Delivery-Method:
+
+
+
+Kille [Page 14]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Sensitivity:
+
+ X400-Content-Type:
+
+ X400-MTS-Identifier:
+
+ X400-Originator:
+
+ X400-Received:
+
+ X400-Recipients:
+
+2.3. X.400
+
+2.3.1. Origination in X.400
+
+ When mapping services from X.400 to RFC 822 which are not supported
+ by RFC 822, new RFC 822 headers are defined. It is intended that
+ these fields will be registered, and that co-operating RFC 822
+ systems may use them. Where these new fields are used, and no system
+ action is implied, the service can be regarded as being partially
+ supported. Chapter 5 describes how to map X.400 services onto these
+ new headers. Other elements are provided, in part, by the gateway as
+ they cannot be provided by RFC 822.
+
+ Some service elements are marked N/A (not applicable). There are
+ five cases, which are marked with different comments:
+
+ N/A (local)
+ These elements are only applicable to User Agent / Message
+ Transfer Agent interaction and so they cannot apply to RFC
+ 822 recipients.
+
+ N/A (PDAU)
+ These service elements are only applicable where the
+ recipient is reached by use of a Physical Delivery Access
+ Unit (PDAU), and so do not need to be mapped by the gateway.
+
+ N/A (reception)
+ These services are only applicable for reception.
+
+ N/A (prior)
+ If requested, this service must be performed prior to the
+ gateway.
+
+ N/A (MS)
+ These services are only applicable to Message Store (i.e., a
+ local service).
+
+
+
+Kille [Page 15]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Finally, some service elements are not supported. In particular, the
+ new security services are not mapped onto RFC 822. Unless otherwise
+ indicated, the behaviour of service elements marked as not supported
+ will depend on the criticality marking supplied by the user. If the
+ element is marked as critical for transfer or delivery, a non-
+ delivery notification will be generated. Otherwise, the service
+ request will be ignored.
+
+2.3.1.1. Basic Interpersonal Messaging Service
+
+ These are the mandatory IPM services as listed in Section 19.8 of
+ X.400 / ISO/IEC 10021-1, listed here in the order given. Section
+ 19.8 has cross references to short definitions of each service.
+
+ Access management
+ N/A (local).
+
+ Content Type Indication
+ Supported by a new RFC 822 header (Content-Type:).
+
+ Converted Indication
+ Supported by a new RFC 822 header (X400-Received:).
+
+ Delivery Time Stamp Indication
+ N/A (reception).
+
+ IP Message Identification
+ Supported.
+
+ Message Identification
+ Supported, by use of a new RFC 822 header
+ (X400-MTS-Identifier). This new header is required, as
+ X.400 has two message-ids whereas RFC 822 has only one (see
+ previous service).
+
+ Non-delivery Notification
+ Not supported, although in general an RFC 822 system will
+ return error reports by use of IP messages. In other
+ service elements, this pragmatic result can be treated as
+ effective support of this service element.
+
+ Original Encoded Information Types Indication
+ Supported as a new RFC 822 header
+ (Original-Encoded-Information-Types:).
+
+ Submission Time Stamp Indication
+ Supported.
+
+
+
+
+Kille [Page 16]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Typed Body
+ Some types supported. IA5 is fully supported.
+ ForwardedIPMessage is supported, with some loss of
+ information. Other types get some measure of support,
+ dependent on X.400 facilities for conversion to IA5. This
+ will only be done where content conversion is not
+ prohibited.
+
+ User Capabilities Registration
+ N/A (local).
+
+2.3.1.2. IPM Service Optional User Facilities
+
+ This section describes support for the optional (user selectable) IPM
+ services as listed in Section 19.9 of X.400 / ISO/IEC 10021- 1,
+ listed here in the order given. Section 19.9 has cross references to
+ short definitions of each service.
+
+ Additional Physical Rendition
+ N/A (PDAU).
+
+ Alternate Recipient Allowed
+ Not supported. There is no RFC 822 service equivalent to
+ prohibition of alternate recipient assignment (e.g., an RFC
+ 822 system may freely send an undeliverable message to a
+ local postmaster). Thus, the gateway cannot prevent
+ assignment of alternative recipients on the RFC 822 side.
+ This service really means giving the user control as to
+ whether or not an alternate recipient is allowed. This
+ specification requires transfer of messages to RFC 822
+ irrespective of this service request, and so this service is
+ not supported.
+
+ Authorising User's Indication
+ Supported.
+
+ Auto-forwarded Indication
+ Supported as new RFC 822 header (Auto-Forwarded:).
+
+ Basic Physical Rendition
+ N/A (PDAU).
+
+ Blind Copy Recipient Indication
+ Supported.
+
+ Body Part Encryption Indication
+ Supported by use of a new RFC 822 header
+ (Original-Encoded-Information-Types:), although in most
+
+
+
+Kille [Page 17]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ cases it will not be possible to map the body part in
+ question.
+
+ Content Confidentiality
+ Not supported.
+
+ Content Integrity
+ Not supported.
+
+ Conversion Prohibition
+ Supported. In this case, only messages with IA5 body parts,
+ other body parts which contain only IA5, and Forwarded IP
+ Messages (subject recursively to the same restrictions),
+ will be mapped.
+
+ Conversion Prohibition in Case of Loss of Information
+ Supported.
+
+ Counter Collection
+ N/A (PDAU).
+
+ Counter Collection with Advice
+ N/A (PDAU).
+
+ Cross Referencing Indication
+ Supported.
+
+ Deferred Delivery
+ N/A (prior). This service should always be provided by the
+ MTS prior to the gateway. A new RFC 822 header
+ (Deferred-Delivery:) is provided to transfer information on
+ this service to the recipient.
+
+ Deferred Delivery Cancellation
+ N/A (local).
+
+ Delivery Notification
+ Supported. This is performed at the gateway. Thus, a
+ notification is sent by the gateway to the originator. If
+ the 822-MTS protocol is JNT Mail, a notification may also be
+ sent by the recipient UA.
+
+ Delivery via Bureaufax Service
+ N/A (PDAU).
+
+ Designation of Recipient by Directory Name
+ N/A (local).
+
+
+
+
+Kille [Page 18]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Disclosure of Other Recipients
+ Supported by use of a new RFC 822 header (X400-Recipients:).
+ This is descriptive information for the RFC 822 recipient,
+ and is not reverse mappable.
+
+ DL Expansion History Indication
+ Supported by use of a new RFC 822 header
+ (DL-Expansion-History:).
+
+ DL Expansion Prohibited
+ Distribution List means MTS supported distribution list, in
+ the manner of X.400. This service does not exist in the RFC
+ 822 world. RFC 822 distribution lists should be regarded as
+ an informal redistribution mechanism, beyond the scope of
+ this control. Messages will be sent to RFC 822,
+ irrespective of whether this service is requested.
+ Theoretically therefore, this service is supported, although
+ in practice it may appear that it is not supported.
+
+ Express Mail Service
+ N/A (PDAU).
+
+ Expiry Date Indication
+ Supported as new RFC 822 header (Expiry-Date:). In general,
+ no automatic action can be expected.
+
+ Explicit Conversion
+ N/A (prior).
+
+ Forwarded IP Message Indication
+ Supported, with some loss of information. The message is
+ forwarded in an RFC 822 body, and so can only be interpreted
+ visually.
+
+ Grade of Delivery Selection
+ N/A (PDAU)
+
+ Importance Indication
+ Supported as new RFC 822 header (Importance:).
+
+ Incomplete Copy Indication
+ Supported as new RFC 822 header (Incomplete-Copy:).
+
+ Language Indication
+ Supported as new RFC 822 header (Language:).
+
+ Latest Delivery Designation
+ Not supported. A new RFC 822 header (Latest-Delivery-Time:)
+
+
+
+Kille [Page 19]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ is provided, which may be used by the recipient.
+
+ Message Flow Confidentiality
+ Not supported.
+
+ Message Origin Authentication
+ N/A (reception).
+
+ Message Security Labelling
+ Not supported.
+
+ Message Sequence Integrity
+ Not supported.
+
+ Multi-Destination Delivery
+ Supported.
+
+ Multi-part Body
+ Supported, with some loss of information, in that the
+ structuring cannot be formalised in RFC 822.
+
+ Non Receipt Notification Request
+ Not supported.
+
+ Non Repudiation of Delivery
+ Not supported.
+
+ Non Repudiation of Origin
+ N/A (reception).
+
+ Non Repudiation of Submission
+ N/A (local).
+
+ Obsoleting Indication
+ Supported as new RFC 822 header (Obsoletes:).
+
+ Ordinary Mail
+ N/A (PDAU).
+
+ Originator Indication
+ Supported.
+
+ Originator Requested Alternate Recipient
+ Not supported, but is placed as comment next to address
+ (X400-Recipients:).
+
+ Physical Delivery Notification by MHS
+ N/A (PDAU).
+
+
+
+Kille [Page 20]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Physical Delivery Notification by PDS
+ N/A (PDAU).
+
+ Physical Forwarding Allowed
+ Supported by use of a comment in a new RFC 822 header
+ (X400-Recipients:), associated with the recipient in
+ question.
+
+ Physical Forwarding Prohibited
+ Supported by use of a comment in a new RFC 822 header
+ (X400-Recipients:), associated with the recipient in
+ question.
+
+ Prevention of Non-delivery notification
+ Supported, as delivery notifications cannot be generated by
+ RFC 822. In practice, errors will be returned as IP
+ Messages, and so this service may appear not to be supported
+ (see Non-delivery Notification).
+
+ Primary and Copy Recipients Indication
+ Supported.
+
+ Probe
+ Supported at the gateway (i.e., the gateway services the
+ probe).
+
+ Probe Origin Authentication
+ N/A (reception).
+
+ Proof of Delivery
+ Not supported.
+
+ Proof of Submission
+ N/A (local).
+
+ Receipt Notification Request Indication
+ Not supported.
+
+ Redirection Allowed by Originator
+ Redirection means MTS supported redirection, in the manner
+ of X.400. This service does not exist in the RFC 822 world.
+ RFC 822 redirection (e.g., aliasing) should be regarded as
+ an informal redirection mechanism, beyond the scope of this
+ control. Messages will be sent to RFC 822, irrespective of
+ whether this service is requested. Theoretically therefore,
+ this service is supported, although in practice it may
+ appear that it is not supported.
+
+
+
+
+Kille [Page 21]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Registered Mail
+ N/A (PDAU).
+
+ Registered Mail to Addressee in Person
+ N/A (PDAU).
+
+ Reply Request Indication
+ Supported as comment next to address.
+
+ Replying IP Message Indication
+ Supported.
+
+ Report Origin Authentication
+ N/A (reception).
+
+ Request for Forwarding Address
+ N/A (PDAU).
+
+ Requested Delivery Method
+ N/A (local). The services required must be dealt with at
+ submission time. Any such request is made available through
+ the gateway by use of a comment associated with the
+ recipient in question.
+
+ Return of Content
+ In principle, this is N/A, as non-delivery notifications are
+ not supported. In practice, most RFC 822 systems will
+ return part or all of the content along with the IP Message
+ indicating an error (see Non-delivery Notification).
+
+ Sensitivity Indication
+ Supported as new RFC 822 header (Sensitivity:).
+
+ Special Delivery
+ N/A (PDAU).
+
+ Stored Message Deletion
+ N/A (MS).
+
+ Stored Message Fetching
+ N/A (MS).
+
+ Stored Message Listing
+ N/A (MS).
+
+ Stored Message Summary
+ N/A (MS).
+
+
+
+
+Kille [Page 22]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Subject Indication
+ Supported.
+
+ Undeliverable Mail with Return of Physical Message
+ N/A (PDAU).
+
+ Use of Distribution List
+ In principle this applies only to X.400 supported
+ distribution lists (see DL Expansion Prohibited).
+ Theoretically, this service is N/A (prior). In practice,
+ because of informal RFC 822 lists, this service can be
+ regarded as supported.
+
+2.3.2. Reception by X.400
+
+2.3.2.1. Standard Mandatory Services
+
+ The following standard IPM mandatory user facilities may be required
+ for reception of RFC 822 originated mail by an X.400 UA.
+
+ Content Type Indication
+
+ Delivery Time Stamp Indication
+
+ IP Message Identification
+
+ Message Identification
+
+ Non-delivery Notification
+
+ Original Encoded Information Types Indication
+
+ Submission Time Stamp Indication
+
+ Typed Body
+
+2.3.2.2. Standard Optional Services
+
+ The following standard IPM optional user facilities may be required
+ for reception of RFC 822 originated mail by an X.400 UA.
+
+ Authorising User's Indication
+
+ Blind Copy Recipient Indication
+
+ Cross Referencing Indication
+
+ Originator Indication
+
+
+
+Kille [Page 23]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Primary and Copy Recipients Indication
+
+ Replying IP Message Indication
+
+ Subject Indication
+
+2.3.2.3. New Services
+
+ A new service "RFC 822 Header Field" is defined using the extension
+ facilities. This allows for any RFC 822 header field to be
+ represented. It may be present in RFC 822 originated messages, which
+ are received by an X.400 UA.
+
+Chapter 3 -- Basic Mappings
+
+3.1. Notation
+
+ The X.400 protocols are encoded in a structured manner according to
+ ASN.1, whereas RFC 822 is text encoded. To define a detailed
+ mapping, it is necessary to refer to detailed protocol elements in
+ each format. A notation to achieve this is described in this
+ section.
+
+3.1.1. RFC 822
+
+ Structured text is defined according to the Extended Backus Naur Form
+ (EBNF) defined in Section 2 of RFC 822 [Crocker82a]. In the EBNF
+ definitions used in this specification, the syntax rules given in
+ Appendix D of RFC 822 are assumed. When these EBNF tokens are
+ referred to outside an EBNF definition, they are identified by the
+ string "822." appended to the beginning of the string (e.g.,
+ 822.addr-spec). Additional syntax rules, to be used throughout this
+ specification, are defined in this chapter.
+
+ The EBNF is used in two ways.
+
+ 1. To describe components of RFC 822 messages (or of 822-MTS
+ components). In this case, the lexical analysis defined in
+ Section 3 of RFC 822 should be used. When these new EBNF
+ tokens are referred to outside an EBNF definition, they are
+ identified by the string "EBNF." appended to the beginning
+ of the string (e.g., EBNF.bilateral-info).
+
+ 2. To describe the structure of IA5 or ASCII information not in
+ an RFC 822 message. In these cases, tokens will either be
+ self delimiting, or be delimited by self delimiting tokens.
+ Comments and LWSP are not used as delimiters.
+
+
+
+
+Kille [Page 24]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+3.1.2. ASN.1
+
+ An element is referred to with the following syntax, defined in EBNF:
+
+ element = service "." definition *( "." definition )
+ service = "IPMS" / "MTS" / "MTA"
+ definition = identifier / context
+ identifier = ALPHA *< ALPHA or DIGIT or "-" >
+ context = "[" 1*DIGIT "]"
+
+ The EBNF.service keys are shorthand for the following service
+ specifications:
+
+ IPMS IPMSInformationObjects defined in Annex E of X.420 / ISO
+ 10021-7.
+
+ MTS MTSAbstractService defined in Section 9 of X.411 / ISO
+ 10021-4.
+
+ MTA MTAAbstractService defined in Section 13 of X.411 / ISO
+ 10021-4.
+
+ The first EBNF.identifier identifies a type or value key in the
+ context of the defined service specification. Subsequent
+ EBNF.identifiers identify a value label or type in the context of the
+ first identifier (SET or SEQUENCE). EBNF.context indicates a context
+ tag, and is used where there is no label or type to uniquely identify
+ a component. The special EBNF.identifier keyword "value" is used to
+ denote an element of a sequence.
+
+ For example, IPMS.Heading.subject defines the subject element of the
+ IPMS heading. The same syntax is also used to refer to element
+ values. For example, MTS.EncodedInformationTypes.[0].g3Fax refers to
+ a value of MTS.EncodedInformationTypes.[0].
+
+3.2. ASCII and IA5
+
+ A gateway will interpret all IA5 as ASCII. Thus, mapping between
+ these forms is conceptual.
+
+3.3. Standard Types
+
+ There is a need to convert between ASCII text, and some of the types
+ defined in ASN.1 [CCITT/ISO88d]. For each case, an EBNF syntax
+ definition is given, for use in all of this specification, which
+ leads to a mapping between ASN.1, and an EBNF construct.
+
+ All EBNF syntax definitions of ASN.1 types are in lower case, whereas
+
+
+
+Kille [Page 25]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ ASN.1 types are referred to with the first letter in upper case.
+ Except as noted, all mappings are symmetrical.
+
+3.3.1. Boolean
+
+ Boolean is encoded as:
+
+ boolean = "TRUE" / "FALSE"
+
+3.3.2. NumericString
+
+ NumericString is encoded as:
+
+ numericstring = *DIGIT
+
+3.3.3. PrintableString
+
+ PrintableString is a restricted IA5String defined as:
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+ This can be used to represent real printable strings in EBNF.
+
+3.3.4. T.61String
+
+ In cases where T.61 strings are only used for conveying human
+ interpreted information, the aim of a mapping should be to render the
+ characters appropriately in the remote character set, rather than to
+ maximise reversibility. For these cases, the mappings to IA5 defined
+ in CCITT Recommendation X.408 (1988) should be used [CCITT/ISO88a].
+ These will then be encoded in ASCII.
+
+ There is also a need to represent Teletex Strings in ASCII, for some
+ aspects of O/R Address. For these, the following encoding is used:
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+ Common characters are mapped simply. Other octets are mapped using a
+ quoting mechanism similar to the printable string mechanism. Each
+ octet is represented as 3 decimal digits.
+
+ There are a number of places where a string may have a Teletex and/or
+
+
+
+Kille [Page 26]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Printable String representation. The following BNF is used to
+ represent this.
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+ The natural mapping is restricted to EBNF.ps-char, in order to make
+ the full BNF easier to parse.
+
+3.3.5. UTCTime
+
+ Both UTCTime and the RFC 822 822.date-time syntax contain: Year
+ (lowest two digits), Month, Day of Month, hour, minute, second
+ (optional), and Timezone. 822.date-time also contains an optional
+ day of the week, but this is redundant. Therefore a symmetrical
+ mapping can be made between these constructs.
+
+ Note:
+ In practice, a gateway will need to parse various illegal
+ variants on 822.date-time. In cases where 822.date-time
+ cannot be parsed, it is recommended that the derived UTCTime
+ is set to the value at the time of translation.
+
+ The UTCTime format which specifies the timezone offset should be
+ used.
+
+3.3.6. Integer
+
+ A basic ASN.1 Integer will be mapped onto EBNF.numericstring. In many
+ cases ASN.1 will enumerate Integer values or use ENUMERATED. An EBNF
+ encoding labelled-integer is provided. When mapping from EBNF to
+ ASN.1, only the integer value is mapped, and the associated text is
+ discarded. When mapping from ASN.1 to EBNF, addition of an
+ appropriate text label is strongly encouraged.
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 1-9, and "-">
+
+3.3.7. Object Identifier
+
+ Object identifiers are represented in a form similar to that
+ given in ASN.1. The numbers are mandatory, to ease encoding.
+ It is recommended that as many strings as possible are used, to
+ facilitate user recognition.
+
+ object-identifier ::= [ defined-value ] oid-comp-list
+
+
+
+
+Kille [Page 27]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ oid-comp-list ::= oid-comp oid-comp-list
+ | oid-comp
+
+ defined-value ::= key-string
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+3.4. Encoding ASCII in Printable String
+
+ Some information in RFC 822 is represented in ASCII, and needs to be
+ mapped into X.400 elements encoded as printable string. For this
+ reason, a mechanism to represent ASCII encoded as PrintableString is
+ needed.
+
+ A structured subset of EBNF.printablestring is now defined. This can
+ be used to encode ASCII in the PrintableString character set.
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+
+ The 822.3DIGIT in EBNF.ps-encoded-char must have range 0-127, and is
+ interpreted in decimal as the corresponding ASCII character. Special
+ encodings are given for: at sign (@), percent (%), exclamation
+ mark/bang (!), double quote ("), underscore (_), left bracket ((),
+ and right bracket ()). These characters, with the exception of round
+ brackets, are not included in PrintableString, but are common in RFC
+ 822 addresses. The abbreviations will ease specification of RFC 822
+ addresses from an X.400 system. These special encodings should be
+ mapped in a case insensitive manner, but always be generated in lower
+ case.
+
+ A reversible mapping between PrintableString and ASCII can now be
+ defined. The reversibility means that some values of printable
+ string (containing round braces) cannot be generated from ASCII.
+ Therefore, this mapping must only be used in cases where the
+ printable strings may only be derived from ASCII (and will therefore
+ have a restricted domain). For example, in this specification, it is
+ only applied to a Domain defined attribute which will have been
+ generated by use of this specification and a value such as "(" would
+ not be possible.
+
+
+
+Kille [Page 28]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ To encode ASCII as PrintableString, the EBNF.ps-encoded syntax is
+ used, with all EBNF.ps-restricted-char mapped directly. All other
+ 822.CHAR are encoded as EBNF.ps-encoded-char.
+
+ To encode PrintableString as ASCII, parse PrintableString as
+ EBNF.ps-encoded, and then reverse the previous mapping. If the
+ PrintableString cannot be parsed, then the mapping is being applied
+ in to an inappropriate value, and an error should be given to the
+ procedure doing the mapping. In some cases, it may be preferable to
+ pass the printable string through unaltered.
+
+ Some examples are now given. Note the arrows which indicate
+ asymmetrical mappings:
+
+
+ PrintableString ASCII
+
+ 'a demo.' <-> 'a demo.'
+ foo(a)bar <-> foo@bar
+ (q)(u)(p)(q) <-> "_%"
+ (a) <-> @
+ (A) <-> @
+ (l)a(r) <-> (a)
+ (126) <-> ~
+ ( -> (
+ (l) <-> (
+
+Chapter 4 -- Addressing
+
+ Addressing is probably the trickiest problem of an X.400 <-> RFC 822
+ gateway. Therefore it is given a separate chapter. This chapter, as
+ a side effect, also defines a textual representation of an X.400 O/R
+ Address.
+
+ Initially, we consider an address in the (human) mail user sense of
+ "what is typed at the mailsystem to reference a mail user". A basic
+ RFC 822 address is defined by the EBNF EBNF.822-address:
+
+ 822-address = [ route ] addr-spec
+
+ In an 822-MTS protocol, the originator and each recipient should be
+ considered to be defined by such a construct. In an RFC 822 header,
+ the EBNF.822-address is encapsulated in the 822.address syntax rule,
+ and there may also be associated comments. None of this extra
+ information has any semantics, other than to the end user.
+
+ The basic X.400 O/R Address, used by the MTS for routing, is defined
+ by MTS.ORAddress. In IPMS, the MTS.ORAddress is encapsulated within
+
+
+
+Kille [Page 29]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ IPMS.ORDescriptor.
+
+ It can be seen that RFC 822 822.address must be mapped with
+ IPMS.ORDescriptor, and that RFC 822 EBNF.822-address must be mapped
+ with MTS.ORAddress.
+
+4.1. A textual representation of MTS.ORAddress
+
+ MTS.ORAddress is structured as a set of attribute value pairs. It is
+ clearly necessary to be able to encode this in ASCII for gatewaying
+ purposes. All aspects should be encoded, in order to guarantee
+ return of error messages, and to optimise third party replies.
+
+4.2. Basic Representation
+
+ An O/R Address has a number of structured and unstructured
+ attributes. For each unstructured attribute, a key and an encoding
+ is specified. For structured attributes, the X.400 attribute is
+ mapped onto one or more attribute value pairs. For domain defined
+ attributes, each element of the sequence will be mapped onto a triple
+ (key and two values), with each value having the same encoding. The
+ attributes are as follows, with 1984 attributes given in the first
+ part of the table. For each attribute, a reference is given,
+ consisting of the relevant sections in X.402 / ISO 10021-2, and the
+ extension identifier for 88 only attributes:
+
+Attribute (Component) Key Enc Ref Id
+
+84/88 Attributes
+
+MTS.CountryName C P 18.3.3
+MTS.AdministrationDomainName ADMD P 18.3.1
+MTS.PrivateDomainName PRMD P 18.3.21
+MTS.NetworkAddress X121 N 18.3.7
+MTS.TerminalIdentifier T-ID N 18.3.23
+MTS.OrganizationName O P/T 18.3.9
+MTS.OrganizationalUnitNames.value OU P/T 18.3.10
+MTS.NumericUserIdentifier UA-ID N 18.3.8
+MTS.PersonalName PN P/T 18.3.12
+MTS.PersonalName.surname S P/T 18.3.12
+MTS.PersonalName.given-name G P/T 18.3.12
+MTS.PersonalName.initials I P/T 18.3.12
+MTS.PersonalName
+ .generation-qualifier GQ P/T 18.3.12
+MTS.DomainDefinedAttribute.value DD P/T 18.1
+
+
+
+
+
+
+Kille [Page 30]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+88 Attributes
+
+MTS.CommonName CN P/T 18.3.2 1
+MTS.TeletexCommonName CN P/T 18.3.2 2
+MTS.TeletexOrganizationName O P/T 18.3.9 3
+MTS.TeletexPersonalName PN P/T 18.3.12 4
+MTS.TeletexPersonalName.surname S P/T 18.3.12 4
+MTS.TeletexPersonalName.given-name G P/T 18.3.12 4
+MTS.TeletexPersonalName.initials I P/T 18.3.12 4
+MTS.TeletexPersonalName
+ .generation-qualifier GQ P/T 18.3.12 4
+MTS.TeletexOrganizationalUnitNames
+ .value OU P/T 18.3.10 5
+MTS.TeletexDomainDefinedAttribute
+ .value DD P/T 18.1 6
+MTS.PDSName PD-SYSTEM P 18.3.11 7
+MTS.PhysicalDeliveryCountryName PD-C P 18.3.13 8
+MTS.PostalCode POSTCODE P 18.3.19 9
+MTS.PhysicalDeliveryOfficeName PD-OFFICE P/T 18.3.14 10
+MTS.PhysicalDeliveryOfficeNumber PD-OFFICE-NUM P/T 18.3.15 11
+MTS.ExtensionORAddressComponents PD-EXT-D P/T 18.3.4 12
+MTS.PhysicalDeliveryPersonName PD-PN P/T 18.3.17 13
+MTS.PhysicalDelivery PD-O P/T 18.3.16 14
+ OrganizationName
+MTS.ExtensionPhysicalDelivery
+ AddressComponents PD-EXT-LOC P/T 18.3.5 15
+MTS.UnformattedPostalAddress PD-ADDRESS P/T 18.3.25 16
+MTS.StreetAddress STREET P/T 18.3.22 17
+MTS.PostOfficeBoxAddress PO-BOX P/T 18.3.18 18
+MTS.PosteRestanteAddress POSTE-RESTANTE P/T 18.3.20 19
+MTS.UniquePostalName PD-UNIQUE P/T 18.3.26 20
+MTS.LocalPostalAttributes PD-LOCAL P/T 18.3.6 21
+MTS.ExtendedNetworkAddress
+ .e163-4-address.number NET-NUM N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .e163-4-address.sub-address NET-SUB N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .psap-address NET-PSAP X 18.3.7 22
+MTS.TerminalType NET-TTYPE I 18.3.24 23
+
+ The following keys identify different EBNF encodings, which are
+ associated with the ASCII representation of MTS.ORAddress.
+
+ Key Encoding
+
+ P printablestring
+ N numericstring
+ T teletex-string
+
+
+
+Kille [Page 31]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ P/T teletex-and-or-ps
+ I labelled-integer
+ X presentation-address
+
+ The BNF for presentation-address is taken from the specification "A
+ String Encoding of Presentation Address" [Kille89a].
+
+ In most cases, the EBNF encoding maps directly to the ASN.1 encoding
+ of the attribute. There are a few exceptions. In cases where an
+ attribute can be encoded as either a PrintableString or NumericString
+ (Country, ADMD, PRMD), either form should be mapped into the BNF.
+ When generating ASN.1, the NumericString encoding should be used if
+ the string contains only digits.
+
+ There are a number of cases where the P/T (teletex-and-or-ps)
+ representation is used. Where the key maps to a single attribute,
+ this choice is reflected in the encoding of the attribute (attributes
+ 10-21). For most of the 1984 attributes and common name, there is a
+ printablestring and a teletex variant. This pair of attributes is
+ mapped onto the single component here. This will give a clean
+ mapping for the common cases where only one form of the name is used.
+
+4.2.1. Encoding of Personal Name
+
+ Handling of Personal Name and Teletex Personal Name based purely on
+ the EBNF.standard-type syntax defined above is likely to be clumsy.
+ It seems desirable to utilise the "human" conventions for encoding
+ these components. A syntax is defined, which is designed to provide
+ a clean encoding for the common cases of O/R address specification
+ where:
+
+ 1. There is no generational qualifier
+
+ 2. Initials contain only letters
+
+ 3. Given Name does not contain full stop ("."), and is at least
+ two characters long.
+
+ 4. If Surname contains full stop, then it may not be in the
+ first two characters, and either initials or given name is
+ present.
+
+ The following EBNF is defined:
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+
+
+
+Kille [Page 32]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ initial = ALPHA
+
+ surname = printablestring
+
+ This can be used to map from any string containing only printable
+ string characters to an O/R address personal name. Parse the string
+ according to the EBNF. The given name and surname are assigned
+ directly. All EBNF.initial tokens are concatenated without
+ intervening full stops to generate the initials.
+
+ For an O/R address which follows the above restrictions, a string can
+ be derived in the natural manner. In this case, the mapping will be
+ reversible.
+
+ For example:
+
+ GivenName = "Marshall"
+ Surname = "Rose"
+
+ Maps with "Marshall.Rose"
+
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "M.T.Rose"
+
+ GivenName = "Marshall"
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "Marshall.M.T.Rose"
+
+ Note that X.400 suggest that Initials is used to encode ALL initials.
+ Therefore, the proposed encoding is "natural" when either GivenName
+ or Initials, but not both, are present. The case where both are
+ present can be encoded, but this appears to be contrived!
+
+4.2.2. Standard Encoding of MTS.ORAddress
+
+ Given this structure, we can specify a BNF representation of an O/R
+ Address.
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / registered-dd-type
+ / dd-key "." std-printablestring
+ standard-type = key-string
+
+
+
+Kille [Page 33]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ registered-dd-type
+ = key-string
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=">
+ std-pair = "$" ps-char
+
+ The standard-type is any key defined in the table in Section 4.2,
+ except PN, and DD. The value, after quote removal, should be
+ interpreted according to the defined encoding.
+
+ If the standard-type is PN, the value is interpreted according to
+ EBNF.encoded-pn, and the components of MTS.PersonalName and/or
+ MTS.TeletexPersonalName derived accordingly.
+
+ If dd-key is the recognised Domain Defined string (DD), then the type
+ and value should be interpreted according to the syntax implied from
+ the encoding, and aligned to either the teletex or printable string
+ form. Key and value should have the same encoding.
+
+ If value is "RFC-822", then the (printable string) Domain Defined
+ Type of "RFC-822" is assumed. This is an optimised encoding of the
+ domain defined type defined by this specification.
+
+ The matching of all keywords should be done in a case- independent
+ manner.
+
+ If the value is registered-dd-type, the value is registered with the
+ IANA and will be listed in the Assigned Numbers RFC, then the value
+ should be interpreted accordingly. This restriction maximises the
+ syntax checking which can be done at a gateway.
+
+4.3. EBNF.822-address <-> MTS.ORAddress
+
+ Ideally, the mapping specified would be entirely symmetrical and
+ global, to enable addresses to be referred to transparently in the
+ remote system, with the choice of gateway being left to the Message
+ Transfer Service. There are two fundamental reasons why this is not
+ possible:
+
+ 1. The syntaxes are sufficiently different to make this
+ awkward.
+
+
+
+
+Kille [Page 34]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ 2. In the general case, there would not be the necessary
+ administrative co-operation between the X.400 and RFC 822
+ worlds, which would be needed for this to work.
+
+ Therefore, an asymmetrical mapping is defined, which can be
+ symmetrical where there is appropriate administrative control.
+
+4.3.1. X.400 encoded in RFC 822
+
+ The std-or-address syntax is used to encode O/R Address information
+ in the 822.local-part of EBNF.822-address. Further O/R Address
+ information may be associated with the 822.domain component. This
+ cannot be used in the general case, basically due to character set
+ problems, and lack of order in X.400 O/R Addresses. The only way to
+ encode the full PrintableString character set in a domain is by use
+ of the 822.domain-ref syntax (i.e., 822.atom). This is likely to
+ cause problems on many systems. The effective character set of
+ domains is in practice reduced from the RFC 822 set, by restrictions
+ imposed by domain conventions and policy.
+
+ A generic 822.address consists of a 822.local-part and a sequence of
+ 822.domains (e.g., <@domain1,@domain2:user@domain3>). All except the
+ 822.domain associated with the 822.local-part (domain3 in this case)
+ should be considered to specify routing within the RFC 822 world, and
+ will not be interpreted by the gateway (although they may have
+ identified the gateway from within the RFC 822 world).
+
+ This form of source routing is now discouraged in the Internet
+ (Host Requirements, page 58 [Braden89a]).
+
+ The 822.domain associated with the 822.local-part may also identify
+ the gateway from within the RFC 822 world. This final 822.domain may
+ be used to determine some number of O/R Address attributes. The
+ following O/R Address attributes are considered as a hierarchy, and
+ may be specified by the domain. They are (in order of hierarchy):
+
+ Country, ADMD, PRMD, Organisation, Organisational Unit
+
+ There may be multiple Organisational Units.
+
+ Associations may be defined between domain specifications, and
+ some set of attributes. This association proceeds hierarchically.
+ For example, if a domain implies ADMD, it also implies country.
+ Subdomains under this are associated according to the O/R Address
+ hierarchy. For example:
+
+ => "AC.UK" might be associated with
+ C="GB", ADMD="GOLD 400", PRMD="UK.AC"
+
+
+
+Kille [Page 35]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ then domain "R-D.Salford.AC.UK" maps with
+ C="GB", ADMD="GOLD 400", PRMD="UK.AC", O="Salford", OU="R-D"
+
+ There are three basic reasons why a domain/attribute mapping might
+ be maintained, as opposed to using simply subdomains:
+
+ 1. As a shorthand to avoid redundant X.400 information. In
+ particular, there will often be only one ADMD per country,
+ and so it does not need to be given explicitly.
+
+ 2. To deal with cases where attribute values do not fit the
+ syntax:
+
+ domain-syntax = alphanum [ *alphanumhyphen alphanum ]
+ alphanum = <ALPHA or DIGIT>
+ alphanumhyphen = <ALPHA or DIGIT or HYPHEN>
+
+ Although RFC 822 allows for a more general syntax, this
+ restricted syntax is chosen as it is the one chosen by the
+ various domain service administrations.
+
+ 3. To deal with missing elements in the hierarchy. A domain
+ may be associated with an omitted attribute in conjunction
+ with several present ones. When performing the algorithmic
+ insertion of components lower in the hierarchy, the omitted
+ value should be skipped. For example, if "HNE.EGM" is
+ associated with "C=TC", "ADMD=ECQ", "PRMD=HNE", and omitted
+ organisation, then "ZI.HNE.EGM" is mapped with "C=TC",
+ "ADMD=ECQ", "PRMD=HNE", "OU=ZI". It should be noted that
+ attributes may have null values, and that this is treated
+ separately from omitted attributes (whilst it would be bad
+ practice to treat these two cases differently, they must be
+ allowed for).
+
+ This set of mappings need only be known by the gateways relaying
+ between the RFC 822 world, and the O/R Address space associated with
+ the mapping in question. However, it is desirable (for the optimal
+ mapping of third party addresses) for all gateways to know these
+ mappings. A format for the exchange of this information is defined
+ in Appendix F.
+
+ The remaining attributes are encoded on the LHS, using the EBNF.std-
+ or-address syntax. For example:
+
+ /I=J/S=Linnimouth/GQ=5/@Marketing.Widget.COM
+
+ encodes the MTS.ORAddress consisting of:
+
+
+
+
+Kille [Page 36]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ MTS.CountryName = "TC"
+ MTS.AdministrationDomainName = "BTT"
+ MTS.OrganizationName = "Widget"
+ MTS.OrganizationalUnitNames.value = "Marketing"
+ MTS.PersonalName.surname = "Linnimouth"
+ MTS.PersonalName.initials = "J"
+ MTS.PersonalName.generation-qualifier = "5"
+
+ The first three attributes are determined by the domain Widget.COM.
+ Then, the first element of OrganizationalUnitNames is determined
+ systematically, and the remaining attributes are encoded on the LHS.
+ In an extreme case, all of the attributes will be on the LHS. As the
+ domain cannot be null, the RHS will simply be a domain indicating the
+ gateway.
+
+ The RHS (domain) encoding is designed to deal cleanly with common
+ addresses, and so the amount of information on the RHS should be
+ maximised. In particular, it covers the Mnemonic O/R Address using a
+ 1984 compatible encoding. This is seen as the dominant form of O/R
+ Address. Use of other forms of O/R Address, and teletex encoded
+ attributes will require an LHS encoding.
+
+ There is a further mechanism to simplify the encoding of common
+ cases, where the only attributes to be encoded on the LHS is a (non-
+ Teletex) Personal Name attributes which comply with the restrictions
+ of 4.2.1. To achieve this, the 822.local-part shall be encoded as
+ EBNF.encoded-pn. In the previous example, if the GenerationQualifier
+ was not present, the encoding J.Linnimouth@Marketing.Widget.COM would
+ result.
+
+ From the standpoint of the RFC 822 Message Transfer System, the
+ domain specification is simply used to route the message in the
+ standard manner. The standard domain mechanisms are are used to
+ select appropriate gateways for the corresponding O/R Address space.
+ In most cases, this will be done by registering the higher levels,
+ and assuming that the gateway can handle the lower levels.
+
+4.3.2. RFC 822 encoded in X.400
+
+ In some cases, the encoding defined above may be reversed, to give a
+ "natural" encoding of genuine RFC 822 addresses. This depends
+ largely on the allocation of appropriate management domains.
+
+ The general case is mapped by use of domain defined attributes. A
+ Domain defined type "RFC-822" is defined. The associated attribute
+ value is an ASCII string encoded according to Section 3.3.3 of this
+ specification. The interpretation of the ASCII string depends on the
+ context of the gateway.
+
+
+
+Kille [Page 37]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ 1. In the context of RFC 822, and RFC 1034
+ [Crocker82a, Mockapetris87a], the string can be used
+ directly.
+
+ 2. In the context of the JNT Mail protocol, and the NRS
+ [Kille84a, Larmouth83a], the string should be interpreted
+ according to Mailgroup Note 15 [Kille84b].
+
+ 3. In the context of UUCP based systems, the string should be
+ interpreted as defined in [Horton86a].
+
+ Other O/R Address attributes will be used to identify a context in
+ which the O/R Address will be interpreted. This might be a
+ Management Domain, or some part of a Management Domain which
+ identifies a gateway MTA. For example:
+
+ C = "GB"
+ ADMD = "GOLD 400"
+ PRMD = "UK.AC"
+ O = "UCL"
+ OU = "CS"
+ "RFC-822" = "Jimmy(a)WIDGET-LABS.CO.UK"
+
+ OR
+
+ C = "TC"
+ ADMD = "Wizz.mail"
+ PRMD = "42"
+ "rfc-822" = "Postel(a)venera.isi.edu"
+
+ Note in each case the PrintableString encoding of "@" as "(a)". In
+ the second example, the "RFC-822" domain defined attribute is
+ interpreted everywhere within the (Private) Management Domain. In
+ the first example, further attributes are needed within the
+ Management Domain to identify a gateway. Thus, this scheme can be
+ used with varying levels of Management Domain co-operation.
+
+4.3.3. Component Ordering
+
+ In most cases, ordering of O/R Address components is not significant
+ for the mappings specified. However, Organisational Units (printable
+ string and teletex forms) and Domain Defined Attributes are specified
+ as SEQUENCE in MTS.ORAddress, and so their order may be significant.
+ This specification needs to take account of this:
+
+ 1. To allow consistent mapping into the domain hierarchy
+
+ 2. To ensure preservation of order over multiple mappings.
+
+
+
+Kille [Page 38]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ There are three places where an order must be specified:
+
+ 1. The text encoding (std-or-address) of MTS.ORAddress as used
+ in the local-part of an RFC 822 address. An order is needed
+ for those components which may have multiple values
+ (Organisational Unit, and Domain Defined Attributes). When
+ generating an 822.std-or-address, components of a given type
+ shall be in hierarchical order with the most significant
+ component on the RHS. If there is an Organisation
+ Attribute, it shall be to the right of any Organisational
+ Unit attributes. These requirements are for the following
+ reasons:
+
+ - Alignment to the hierarchy of other components in RFC
+ 822 addresses (thus, Organisational Units will appear
+ in the same order, whether encoded on the RHS or LHS).
+ Note the differences of JNT Mail as described in
+ Appendix B.
+
+ - Backwards compatibility with RFC 987/1026.
+
+ - To ensure that gateways generate consistent addresses.
+ This is both to help end users, and to generate
+ identical message ids.
+
+ Further, it is recommended that all other attributes are
+ generated according to this ordering, so that all attributes
+ so encoded follow a consistent hierarchy.
+
+ There will be some cases where an X.400 O/R address of this
+ encoding will be generated by an end user from external
+ information. The ordering of attributes may be inverted or
+ mixed. For this reason, the following heuristics may be
+ applied:
+
+ - If there is an Organisation attribute to the left of
+ any Org Unit attribute, assume that the hierarchy is
+ inverted.
+
+ - If an inversion of the Org Unit hierarchy generates a
+ valid address, when the preferred order does not,
+ assume that the hierarchy is inverted.
+
+ 2. For the Organisational Units (OU) in MTS.ORAddress, the
+ first OU in the SEQUENCE is the most significant, as
+ specified in X.400.
+
+ 3. For the Domain Defined Attributes in MTS.ORAddress, the
+
+
+
+Kille [Page 39]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ First Domain Defined Attribute in the SEQUENCE is the most
+ significant.
+
+ Note that although this ordering is mandatory for this
+ mapping, there are NO implications on ordering significance
+ within X.400, where this is a Management Domain issue.
+
+4.3.4. RFC 822 -> X.400
+
+ There are two basic cases:
+
+ 1. X.400 addresses encoded in RFC 822. This will also include
+ RFC 822 addresses which are given reversible encodings.
+
+ 2. "Genuine" RFC 822 addresses.
+
+ The mapping should proceed as follows, by first assuming case 1).
+
+ STAGE I.
+
+ 1. If the 822-address is not of the form:
+
+ local-part "@" domain
+
+ Go to stage II.
+
+ NOTE:It may be appropriate to reduce a source route address
+ to this form by removal of all bar the last domain. In
+ terms of the design intentions of RFC 822, this would
+ be an incorrect action. However, in most real cases,
+ it will do the "right" thing and provide a better
+ service to the end user. This is a reflection on the
+ excessive and inappropriate use of source routing in
+ RFC 822 based systems. Either approach, or the
+ intermediate approach of stripping only domain
+ references which reference the local gateway are
+ conformant to this specification.
+
+ 2. Attempt to parse EBNF.domain as:
+
+ *( domain-syntax "." ) known-domain
+
+ Where EBNF.known-domain is the longest possible match in a
+ list of supported mappings (see Appendix F). If this fails,
+ and the EBNF.domain does not explicitly identify the local
+ gateway, go to stage II. If it succeeds, allocate the
+ attributes associated with EBNF.known-domain, and
+ systematically allocate the attributes implied by each
+
+
+
+Kille [Page 40]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ EBNF.domain-syntax component. If the domain explicitly
+ identifies the gateway, allocate no attributes.
+
+ 3. If the local-part contains any characters not in
+ PrintableString, go to stage II.
+
+ 4. If the 822.local-part uses the 822.quoted-string encoding,
+ remove this quoting. Parse the (unquoted) 822.local-part
+ according to the EBNF EBNF.std-or-address. If this parse
+ fails, parse the local-part according to the EBNF
+ EBNF.encoded-pn. The result is a set of type/value pairs.
+ If the values generated conflict with those derived in step
+ 2 (e.g., a duplicated country attribute), the domain should
+ be assumed to be an RFC 987 gateway. In this case, take
+ only the LHS derived attributes. Otherwise add LHS and RHS
+ derived attributes together.
+
+ 5. Associate the EBNF.attribute-value syntax (determined from
+ the identified type) with each value, and check that it
+ conforms. If not, go to stage II.
+
+ 6. Ensure that the set of attributes conforms both to the
+ MTS.ORAddress specification and to the restrictions on this
+ set given in X.400. If not go to stage II.
+
+ 7. Build the O/R Address from this information.
+
+
+ STAGE II.
+
+ This will only be reached if the RFC 822 EBNF.822-address is not
+ a valid X.400 encoding. If the address is an 822-MTS recipient
+ address, it must be rejected, as there is a need to interpret
+ such an address in X.400. For the 822-MTS return address, and
+ any addresses in the RFC 822 header, they should now be encoded
+ as RFC 822 addresses in an X.400 O/R Name:
+
+ 1. Convert the EBNF.822-address to PrintableString, as
+ specified in Chapter 3.
+
+ 2. The "RFC-822" domain defined attribute should be generated
+ from this string.
+
+ 3. Build the rest of the O/R Address in the local Management
+ Domain agreed manner, so that the O/R Address will receive a
+ correct global interpretation.
+
+ Note that the domain defined attribute value has a maximum length
+
+
+
+Kille [Page 41]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ of MTS.ub-domain-defined-attribute-value-length (128). If this
+ is exceeded by a mapping at the MTS level, then the gateway
+ should reject the message in question. If this occurs at the
+ IPMS level, then the action should depend on the policy being
+ taken, which is discussed in Section 5.1.3.
+
+4.3.5. X.400 -> RFC 822
+
+ There are two basic cases:
+
+ 1. RFC 822 addresses encoded in X.400.
+
+ 2. "Genuine" X.400 addresses. This may include symmetrically
+ encoded RFC 822 addresses.
+
+ When a MTS Recipient O/R Address is interpreted, gatewaying will be
+ selected if there a single "RFC-822" domain defined attribute
+ present. In this case, use mapping A. For other O/R Addresses
+ which:
+
+ 1. Contain the special attribute.
+
+ AND
+
+ 2. Identifies the local gateway or any other known gateway with
+ the other attributes.
+
+ Use mapping A. In other cases, use mapping B.
+
+ NOTE:
+ A pragmatic approach would be to assume that any O/R
+ Address with the special domain defined attribute identifies
+ an RFC 822 address. This will usually work correctly, but is
+ in principle not correct.
+
+ Mapping A
+
+ 1. Map the domain defined attribute value to ASCII, as defined
+ in Chapter 3.
+
+ Mapping B
+
+ This will be used for X.400 addresses which do not use the explicit
+ RFC 822 encoding.
+
+ 1. For all string encoded attributes, remove any leading or
+ trailing spaces, and replace adjacent spaces with a single
+ space.
+
+
+
+Kille [Page 42]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ 2. Noting the hierarchy specified in 4.3.1, determine the
+ maximum set of attributes which have an associated domain
+ specification. If no match is found, allocate the domain as
+ the domain specification of the local gateway, and go to
+ step 4.
+
+ 3. Following the 4.3.1 hierarchy and noting any omitted
+ components implied by the mapping tables (see Appendix F),
+ if each successive component exists, and conforms to the
+ syntax EBNF.domain-syntax (as defined in 4.3.1), allocate
+ the next subdomain. At least one attribute of the X.400
+ address should not be mapped onto subdomain, as
+ 822.local-part cannot be null.
+
+ 4. If the remaining components are personal-name components,
+ conforming to the restrictions of 4.2.1, then EBNF.encoded-
+ pn should be derived to form 822.local-part. In other cases
+ the remaining components should simply be encoded as a
+ 822.local-part using the EBNF.std-or-address syntax. If
+ necessary, the 822.quoted-string encoding should be used.
+
+ If the derived 822.local-part can only be encoded by use of
+ 822.quoted-string, then use of the mapping defined
+ in [Kille89b] may be appropriate. Use of this mapping is
+ discouraged.
+
+4.4. Repeated Mappings
+
+ The mappings defined are symmetrical and reversible across a single
+ gateway. The symmetry is particularly useful in cases of (mail
+ exploder type) distribution list expansion. For example, an X.400
+ user sends to a list on an RFC 822 system which he belongs to. The
+ received message will have the originator and any 3rd party X.400 O/R
+ Addresses in correct format (rather than doubly encoded). In cases
+ (X.400 or RFC 822) where there is common agreement on gateway
+ identification, then this will apply to multiple gateways.
+
+ When a message traverses multiple gateways, the mapping will always
+ be reversible, in that a reply can be generated which will correctly
+ reverse the path. In many cases, the mapping will also be
+ symmetrical, which will appear clean to the end user. For example,
+ if countries "AB" and "XY" have RFC 822 networks, but are
+ interconnected by X.400, the following may happen: The originator
+ specifies:
+
+
+ Joe.Soap@Widget.PTT.XY
+
+
+
+
+Kille [Page 43]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ This is routed to a gateway, which generates:
+
+ C = "XY"
+ ADMD = "PTT"
+ PRMD = "Griddle MHS Providers"
+ Organisation = "Widget Corporation"
+ Surname = "Soap"
+ Given Name = "Joe"
+
+ This is then routed to another gateway where the mapping is reversed
+ to give:
+
+ Joe.Soap@Widget.PTT.XY
+
+ Here, use of the gateway is transparent.
+
+ Mappings will only be symmetrical where mapping tables are defined.
+ In other cases, the reversibility is more important, due to the (far
+ too frequent) cases where RFC 822 and X.400 services are partitioned.
+
+ The syntax may be used to source route. THIS IS STRONGLY
+ DISCOURAGED. For example:
+
+ X.400 -> RFC 822 -> X.400
+
+ C = "UK"
+ ADMD = "Gold 400"
+ PRMD = "UK.AC"
+ "RFC-822" = "/PN=Duval/DD.Title=Manager/(a)Inria.ATLAS.FR"
+
+ This will be sent to an arbitrary UK Academic Community gateway by
+ X.400. Then it will be sent by JNT Mail to another gateway
+ determined by the domain Inria.ATLAS.FR (FR.ATLAS.Inria). This will
+ then derive the X.400 O/R Address:
+
+ C = "FR"
+ ADMD = "ATLAS"
+ PRMD = "Inria"
+ PN.S = "Duval"
+ "Title" = "Manager"
+
+ Similarly:
+ RFC 822 -> X.400 -> RFC 822
+
+ "/C=UK/ADMD=BT/PRMD=AC/RFC-822=jj(a)seismo.css.gov/"
+ @monet.berkeley.edu
+
+ This will be sent to monet.berkeley.edu by RFC 822, then to the AC
+
+
+
+Kille [Page 44]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ PRMD by X.400, and then to jj@seismo.css.gov by RFC 822.
+
+4.5. Directory Names
+
+ Directory Names are an optional part of O/R Name, along with O/R
+ Address. The RFC 822 addresses are mapped onto the O/R Address
+ component. As there is no functional mapping for the Directory Name
+ on the RFC 822 side, a textual mapping should be used. There is no
+ requirement for reversibility in terms of the goals of this
+ specification. There may be some loss of functionality in terms of
+ third party recipients where only a directory name is given, but this
+ seems preferable to the significant extra complexity of adding a full
+ mapping for Directory Names.
+
+4.6. MTS Mappings
+
+ The basic mappings at the MTS level are:
+
+ 1) 822-MTS originator ->
+ MTS.PerMessageSubmissionFields.originator-name
+ MTS.OtherMessageDeliveryFields.originator-name ->
+ 822-MTS originator
+
+ 2) 822-MTS recipient ->
+ MTS.PerRecipientMessageSubmissionFields
+ MTS.OtherMessageDeliveryFields.this-recipient-name ->
+ 822-MTS recipient
+
+ 822-MTS recipients and return addresses are encoded as EBNF.822-
+ address.
+
+ The MTS Originator is always encoded as MTS.OriginatorName, which
+ maps onto MTS.ORAddressAndOptionalDirectoryName, which in turn maps
+ onto MTS.ORName.
+
+4.6.1. RFC 822 -> X.400
+
+ From the 822-MTS Originator, use the basic ORAddress mapping, to
+ generate MTS.PerMessageSubmissionFields.originator-name (MTS.ORName),
+ without a DirectoryName.
+
+ For recipients, the following settings should be made for each
+ component of MTS.PerRecipientMessageSubmissionFields.
+
+ recipient-name
+ This should be derived from the 822-MTS recipient by the
+ basic ORAddress mapping.
+
+
+
+
+Kille [Page 45]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ originator-report-request
+ This should be set according to content return policy, as
+ discussed in Section 5.2.
+
+ explicit-conversion
+ This optional component should be omitted, as this service
+ is not needed.
+
+ extensions
+ The default value (no extensions) should be used.
+
+4.6.2. X.400 -> RFC 822
+
+ The basic functionality is to generate the 822-MTS originator and
+ recipients. There is information present on the X.400 side, which
+ cannot be mapped into analogous 822-MTS services. For this reason,
+ new RFC 822 fields are added for the MTS Originator and Recipients.
+ The information discarded at the 822-MTS level should be present in
+ these fields. There may also be the need to generate a delivery
+ report.
+
+4.6.2.1. 822-MTS Mappings
+
+ Use the basic ORAddress mapping, to generate the 822-MTS originator
+ (return address) from MTS.OtherMessageDeliveryFields.originator-name
+ (MTS.ORName). If MTS.ORName.directory-name is present, it should be
+ discarded.
+
+ The 822-MTS recipient is conceptually generated from
+ MTS.OtherMessageDeliveryFields.this-recipient-name. This is done by
+ taking MTS.OtherMessageDeliveryFields.this-recipient-name, and
+ generating an 822-MTS recipient according to the basic ORAddress
+ mapping, discarding MTS.ORName.directory-name if present. However,
+ if this model was followed exactly, there would be no possibility to
+ have multiple 822-MTS recipients on a single message. This is
+ unacceptable, and so layering is violated. The mapping needs to use
+ the MTA level information, and map each value of
+ MTA.PerRecipientMessageTransferFields.recipient-name, where the
+ responsibility bit is set, onto an 822-MTS recipient.
+
+4.6.2.2. Generation of RFC 822 Headers
+
+ Not all per-recipient information can be passed at the 822-MTS level.
+ For this reason, two new RFC 822 headers are created, in order to
+ carry this information to the RFC 822 recipient. These fields are
+ "X400-Originator:" and "X400-Recipients:".
+
+ The "X400-Originator:" field should be set to the same value as the
+
+
+
+Kille [Page 46]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ 822-MTS originator. In addition, if
+ MTS.OtherMessageDeliveryFields.originator-name (MTS.ORName) contains
+ MTS.ORName.directory-name then this Directory Name should be
+ represented in an 822.comment.
+
+ Recipient names, taken from each value of
+ MTS.OtherMessageDeliveryFields.this-recipient-name and
+ MTS.OtherMessageDeliveryFields.other-recipient-names should be made
+ available to the RFC 822 user by use of the "X400-Recipients:" field.
+ By taking the recipients at the MTS level, disclosure of recipients
+ will be dealt with correctly. If any MTS.ORName.directory-name is
+ present, it should be represented in an 822.comment. If
+ MTS.OtherMessageDeliveryFields.orignally-intended-recipient-name is
+ present, then it should be represented in an associated 822.comment,
+ starting with the string "Originally Intended Recipient".
+
+ In addition, the following per-recipient services from
+ MTS.OtherMessageDeliveryFields.extensions should be represented in
+ comments if they are used. None of these services can be provided on
+ RFC 822 networks, and so in general these will be informative strings
+ associated with other MTS recipients. In some cases, string values
+ are defined. For the remainder, the string value may be chosen by
+ the implementor. If the parameter has a default value, then no
+ comment should be inserted.
+
+ requested-delivery-method
+
+ physical-forwarding-prohibited
+ "(Physical Forwarding Prohibited)".
+
+ physical-forwarding-address-request
+ "(Physical Forwarding Address Requested)".
+
+ physical-delivery-modes
+
+ registered-mail-type
+
+ recipient-number-for-advice
+
+ physical-rendition-attributes
+
+ physical-delivery-report-request
+ "(Physical Delivery Report Requested)".
+
+ proof-of-delivery-request
+ "(Proof of Delivery Requested)".
+
+
+
+
+
+Kille [Page 47]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+4.6.2.3. Delivery Report Generation
+
+ If MTA.PerRecipientMessageTransferFields.per-recipient-indicators
+ requires a positive delivery notification, this should be
+ generated by the gateway. Supplementary Information should be
+ set to indicate that the report is gateway generated.
+
+4.6.3. Message IDs (MTS)
+
+ A mapping from 822.msg-id to MTS.MTSIdentifier is defined. The
+ reverse mapping is not needed, as MTS.MTSIdentifier is always
+ mapped onto new RFC 822 fields. The value of
+ MTS.MTSIdentifier.local-part will facilitate correlation of
+ gateway errors.
+
+ To map from 822.msg-id, apply the standard mapping to
+ 822.msg-id, in order to generate an MTS.ORAddress. The Country,
+ ADMD, and PRMD components of this should be used to generate
+ MTS.MTSIdentifier.global-domain-identifier.
+ MTS.MTSIdentifier.local-identifier should be set to the
+ 822.msg-id, including the braces "<" and ">". If this string is
+ longer than MTS.ub-local-id-length (32), then it should be
+ truncated to this length.
+
+ The reverse mapping is not used in this specification. It
+ would be applicable where MTS.MTSIdentifier.local-identifier is
+ of syntax 822.msg-id, and it algorithmically identifies
+ MTS.MTSIdentifier.
+
+4.7. IPMS Mappings
+
+ All RFC 822 addresses are assumed to use the 822.mailbox syntax.
+ This should include all 822.comments associated with the lexical
+ tokens of the 822.mailbox. In the IPMS O/R Names are encoded as
+ MTS.ORName. This is used within the IPMS.ORDescriptor,
+ IPMS.RecipientSpecifier, and IPMS.IPMIdentifier. An asymmetrical
+ mapping is defined between these components.
+
+4.7.1. RFC 822 -> X.400
+
+ To derive IPMS.ORDescriptor from an RFC 822 address.
+
+ 1. Take the address, and extract an EBNF.822-address. This can
+ be derived trivially from either the 822.addr-spec or
+ 822.route-addr syntax. This is mapped to MTS.ORName as
+ described above, and used as IMPS.ORDescriptor.formal-name.
+
+ 2. A string should be built consisting of (if present):
+
+
+
+Kille [Page 48]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ - The 822.phrase component if the 822.address is an
+ 822.phrase 822.route-addr construct.
+
+ - Any 822.comments, in order, retaining the parentheses.
+
+ This string should then be encoded into T.61 us a human
+ oriented mapping (as described in Chapter 3). If the string
+ is not null, it should be assigned to
+ IPMS.ORDescriptor.free-form-name.
+
+ 3. IPMS.ORDescriptor.telephone-number should be omitted.
+
+ If IPMS.ORDescriptor is being used in IPMS.RecipientSpecifier,
+ IPMS.RecipientSpecifier.reply-request and
+ IPMS.RecipientSpecifier.notification-requests should be set to
+ default values (none and false).
+
+ If the 822.group construct is present, any included 822.mailbox
+ should be encoded as above to generate a separate IPMS.ORDescriptor.
+ The 822.group should be mapped to T.61, and a IPMS.ORDescriptor with
+ only an free-form-name component built from it.
+
+4.7.2. X.400 -> RFC 822
+
+ Mapping from IPMS.ORDescriptor to RFC 822 address. In the basic
+ case, where IPMS.ORDescriptor.formal-name is present, proceed as
+ follows.
+
+ 1. Encode IPMS.ORDescriptor.formal-name (MTS.ORName) as
+ EBNF.822-address.
+
+ 2a. If IPMS.ORDescriptor.free-form-name is present, convert it
+ to ASCII (Chapter 3), and use this as the 822.phrase
+ component of 822.mailbox using the 822.phrase 822.route-addr
+ construct.
+
+ 2b. If IPMS.ORDescriptor.free-form-name is absent. If
+ EBNF.822-address is parsed as 822.addr-spec use this as the
+ encoding of 822.mailbox. If EBNF.822-address is parsed as
+ 822.route 822.addr-spec, then a 822.phrase taken from
+ 822.local-part should be added.
+
+ 3. If IPMS.ORDescriptor.telephone-number is present, this
+ should be placed in an 822.comment, with the string "Tel ".
+ The normal international form of number should be used. For
+ example:
+
+ (Tel +44-1-387-7050)
+
+
+
+Kille [Page 49]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ 4. If IPMS.ORDescriptor.formal-name.directory-name is present,
+ then a text representation should be placed in a trailing
+ 822.comment.
+
+ 5. If IPMS.RecipientSpecifier.report-request has any non-
+ default values, then an 822.comment "(Receipt Notification
+ Requested)", and/or "(Non Receipt Notification Requested)",
+ and/or "(IPM Return Requested)" should be appended to the
+ address. The effort of correlating P1 and P2 information is
+ too great to justify the gateway sending Receipt
+ Notifications.
+
+ 6. If IPMS.RecipientSpecifier.reply-request is True, an
+ 822.comment "(Reply requested)" should be appended to the
+ address.
+
+ If IPMS.ORDescriptor.formal-name is absent, IPMS.ORDescriptor.free-
+ form-name should be converted to ASCII, and used as 822.phrase within
+ the RFC 822 822.group syntax. For example:
+
+ Free Form Name ":" ";"
+
+ Steps 3-6 should then be followed.
+
+4.7.3. IP Message IDs
+
+ There is a need to map both ways between 822.msg-id and
+ IPMS.IPMIdentifier. This allows for X.400 Receipt Notifications,
+ Replies, and Cross References to reference an RFC 822 Message ID,
+ which is preferable to a gateway generated ID. A reversible and
+ symmetrical mapping is defined. This allows for good things to
+ happen when messages pass multiple times across the X.400/RFC 822
+ boundary.
+
+ An important issue with messages identifiers is mapping to the exact
+ form, as many systems use these ids as uninterpreted keys. The use
+ of table driven mappings is not always symmetrical, particularly in
+ the light of alternative domain names, and alternative management
+ domains. For this reason, a purely algorithmic mapping is used. A
+ mapping which is simpler than that for addresses can be used for two
+ reasons:
+
+ - There is no major requirement to make message IDs "natural"
+
+ - There is no issue about being able to reply to message IDs.
+ (For addresses, creating a return path which works is more
+ important than being symmetrical).
+
+
+
+
+Kille [Page 50]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ The mapping works by defining a way in which message IDs generated on
+ one side of the gateway can be represented on the other side in a
+ systematic manner. The mapping is defined so that the possibility of
+ clashes is is low enough to be treated as impossible.
+
+4.7.3.1. 822.msg-id represented in X.400
+
+ IPMS.IPMIdentifier.user is omitted. The IPMS.IPMIdentifier.user-
+ relative-identifier is set to a printable string encoding of the
+ 822.msg-id with the angle braces ("<" and ">") removed.
+
+4.7.3.2. IPMS.IPMIdentifier represented in RFC 822
+
+ The 822.domain of 822.msg-id is set to the value "MHS". The
+ 822.local-part of 822.msg-id is built as:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ with EBNF.printablestring being the IPMS.IPMIdentifier.user-
+ relative-identifier, and std-or-address being an encoding of the
+ IPMS.IPMIdentifier.user. If necessary, the 822.quoted-string
+ encoding is used. For example:
+
+ <"147*/S=Dietrich/O=Siemens/ADMD=DBP/C=DE/"@MHS>
+
+4.7.3.3. 822.msg-id -> IPMS.IPMIdentifier
+
+ If the 822.local-part can be parsed as:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ and the 822.domain is "MHS", then this ID was X.400 generated. If
+ EBNF.printablestring is present, the value is assigned to
+ IPMS.IPMIdentifier.user-relative-identifier. If EBNF.std-or-address
+ is present, the O/R Address components derived from it are used to
+ set IPMS.IPMIdentifier.user.
+
+ Otherwise, this is an RFC 822 generated ID. In this case, set
+ IPMS.IPMIdentifier.user-relative-identifier to a printable string
+ encoding of the 822.msg-id without the angle braces.
+
+4.7.3.4. IPMS.IPMIdentifier -> 822.msg-id
+
+ If IPMS.IPMIdentifier.user is absent, and IPMS.IPMIdentifier.user-
+ relative-identifier mapped to ASCII and angle braces added parses as
+ 822.msg-id, then this is an RFC 822 generated ID.
+
+ Otherwise, the ID is X.400 generated. Use the
+
+
+
+Kille [Page 51]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ IPMS.IPMIdentifier.user to generate an EBNF.std-or-address form
+ string. Build the 822.local-part of the 822.msg-id with the syntax:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ The printablestring is taken from IPMS.IPMIdentifier.user-relative-
+ identifier. Use 822.quoted-string if necessary. The 822.msg-id is
+ generated with this 822.local-part, and "MHS" as the 822.domain.
+
+4.7.3.5. Phrase form
+
+ In "Reply-To:" and "References:", the encoding 822.phrase may be used
+ as an alternative to 822.msg-id. To map from 822.phrase to
+ IPMS.IPMIdentifier, assign IPMS.IPMIdentifier.user-relative-
+ identifier to the phrase. When mapping from IPMS.IPMIdentifier for
+ "Reply-To:" and "References:", if IPMS.IPMIdentifier.user is absent
+ and IPMS.IPMIdentifier.user-relative-identifier does not parse as
+ 822.msg-id, generate an 822.phrase rather than adding the domain MHS.
+
+4.7.3.6. RFC 987 backwards compatibility
+
+ The mapping proposed here is different to that used in RFC 987, as
+ the RFC 987 mapping lead to changed message IDs in many cases.
+ Fixing the problems is preferable to retaining backwards
+ compatibility. An implementation of this standard is encouraged to
+ recognise message IDs generated by RFC 987.
+
+Chapter 5 -- Detailed Mappings
+
+ This chapter gives detailed mappings for the functions outlined in
+ Chapters 1 and 2. It makes extensive use of the notations and
+ mappings defined in Chapters 3 and 4.
+
+5.1. RFC 822 -> X.400
+
+5.1.1. Basic Approach
+
+ A single IP Message is generated. The RFC 822 headers are used to
+ generate the IPMS.Heading. The IP Message will have one IA5
+ IPMS.BodyPart containing the RFC 822 message body.
+
+ Some RFC 822 fields cannot be mapped onto a standard IPM Heading
+ field, and so an extended field is defined in Section 5.1.2. This is
+ then used for fields which cannot be mapped onto existing services.
+
+ The message is submitted to the MTS, and the services required can be
+ defined by specifying MTS.MessageSubmissionEnvelope. A few
+ parameters of the MTA Abstract service are also specified, which are
+
+
+
+Kille [Page 52]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ not in principle available to the MTS User. Use of these services
+ allows RFC 822 MTA level parameters to be carried in the analogous
+ X.400 service elements. The advantages of this mapping far outweigh
+ the layering violation.
+
+5.1.2. X.400 Extension Field
+
+ An IPMS Extension is defined:
+
+ rfc-822-field HEADING-EXTENSION
+ VALUE RFC822Field
+ ::= id-rfc-822-field
+
+ RFC822Field ::= IA5String
+
+ The Object Identifier id-rfc-822-field is defined in Appendix D.
+
+ To encode any RFC 822 Header using this extension, the RFC822Field
+ should be set to the 822.field omitting the trailing CRLF (e.g.,
+ "Fruit-Of-The-Day: Kiwi Fruit"). Structured fields should be
+ unfolded. There should be no space before the ":". The reverse
+ mapping builds the RFC 822 field in a straightforward manner.
+
+5.1.3. Generating the IPM
+
+ The IPM (IPMS Service Request) is generated according to the rules of
+ this section. The IPMS.IPM.body usually consists of one
+ IPMS.BodyPart of type IPMS.IA5TextbodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the default (ia5)
+ which contains the body of the RFC 822 message. The exception is
+ where there is a "Comments:" field in the RFC 822 header.
+
+ If no specific 1988 features are used, the IPM generated should be
+ encoded as content type 2. Otherwise, it should be encoded as
+ content type 22. The latter will always be the case if extension
+ heading fields are generated.
+
+ When generating the IPM, the issue of upper bounds must be
+ considered. At the MTS and MTA level, this specification is strict
+ about enforcing upper bounds. Three options are available at the IPM
+ level. Use of any of these options conforms to this standard.
+
+ 1. Ignore upper bounds, and generate messages in the natural
+ manner. This assumes that if any truncation is done, it
+ will happen at the recipient UA. This will maximise
+ transfer of information, but may break some recipient UAs.
+
+ 2. Reject any inbound message which would cause a message
+
+
+
+Kille [Page 53]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ violating constraints to be generated. This will be robust,
+ but may prevent useful communication.
+
+ 3. Truncate fields to the upper bounds specified in X.400.
+ This will prevent problems with UAs which enforce upper
+ bounds, but will sometimes discard useful information.
+
+ These choices have different advantages and disadvantages, and the
+ choice will depend on the exact application of the gateway.
+
+ The rest of this section concerns IPMS.IPM.heading (IPMS.Heading).
+ The only mandatory component of IPMS.Heading is the
+ IPMS.Heading.this-IPM (IPMS.IPMIdentifier). A default should be
+ generated by the gateway. With the exception of "Received:", the
+ values of multiple fields should be merged (e.g., If there are two
+ "To:" fields, then the mailboxes of both should be used).
+ Information should be generated from the standard RFC 822 Headers as
+ follows:
+
+ Date:
+ Ignore (Handled at MTS level)
+
+ Received:
+ Ignore (Handled at MTA level)
+
+ Message-Id:
+ Mapped to IPMS.Heading.this-IPM. For these, and all other
+ fields containing 822.msg-id the mappings of Chapter 4 are
+ used for each 822.msg-id.
+
+ From:
+ If Sender: is present, this is mapped to
+ IPMS.Heading.authorizing-users. If not, it is mapped to
+ IPMS.Heading.originator. For this, and other components
+ containing addresses, the mappings of Chapter 4 are used
+ for each address.
+
+ Sender:
+ Mapped to IPMS.Heading.originator.
+
+ Reply-To:
+ Mapped to IPMS.Heading.reply-recipients.
+
+ To: Mapped to IPMS.Heading.primary-recipients
+
+ Cc: Mapped to IPMS.Heading.copy-recipients.
+
+ Bcc: Mapped to IPMS.Heading.blind-copy-recipients.
+
+
+
+Kille [Page 54]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ In-Reply-To:
+ If there is one value, it is mapped to
+ IPMS.Heading.replied-to-IPM, using the 822.phrase or
+ 822.msg-id mapping as appropriate. If there are several
+ values, they are mapped to IPMS.Heading.related-IPMs, along
+ with any values from a "References:" field.
+
+ References:
+ Mapped to IPMS.Heading.related-IPMs.
+
+ Keywords:
+ Mapped onto a heading extension.
+
+ Subject:
+ Mapped to IPMS.Heading.subject. The field-body uses the
+ human oriented mapping referenced in Chapter 3 from ASCII to
+ T.61.
+
+ Comments:
+ Generate an IPMS.BodyPart of type IPMS.IA5TextbodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the
+ default (ia5), containing the value of the fields, preceded
+ by the string "Comments: ". This body part should precede
+ the other one.
+
+ Encrypted:
+ Mapped onto a heading extension.
+
+ Resent-*
+ Mapped onto a heading extension.
+
+ Note that it would be possible to use a ForwardedIPMessage
+ for these fields, but the semantics are (arguably) slightly
+ different, and it is probably not worth the effort.
+
+ Other Fields
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g., "Fruit-of-the-day:") are mapped onto a heading
+ extension, unless covered by another section or appendix of
+ this specification. The same treatment should be applied to
+ RFC 822 fields where the content of the field does not
+ conform to RFC 822 (e.g., a Date: field with unparsable
+ syntax).
+
+5.1.4. Mappings to the MTS Abstract Service
+
+ The MTS.MessageSubmissionEnvelope comprises
+ MTS.PerMessageSubmissionFields, and
+
+
+
+Kille [Page 55]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ MTS.PerRecipientMessageSubmissionFields. The mandatory parameters
+ should be defaulted as follows.
+
+ MTS.PerMessageSubmissionFields.originator-name
+ This is always generated from 822-MTS, as defined in
+ Chapter 4.
+
+ MTS.PerMessageSubmissionFields.content-type
+ Set to the value implied by the encoding of the IPM (2 or
+ 22).
+
+ MTS.PerRecipientMessageSubmissionFields.recipient-name
+ These will always be supplied from 822-MTS, as defined in
+ Chapter 4.
+
+ Optional components should be left out, and default components
+ defaulted, with two exceptions. For
+ MTS.PerMessageSubmissionFields.per-message-indicators, the following
+ settings should be made:
+
+ - Alternate recipient should be allowed, as it seems desirable
+ to maximise the opportunity for (reliable) delivery.
+
+ - Content return request should be set according to the issues
+ discussed in Section 5.2.
+
+ MTS.PerMessageSubmissionFields.original-encoded-information-types
+ should be made a set of one element
+ BuiltInEncodedInformationTypes.ia5-text.
+
+ The MTS.PerMessageSubmissionFields.content-correlator should be
+ encoded as IA5String, and contain the Subject:, Message-ID:, Date:,
+ and To: fields (if present). This should include the strings
+ "Subject:", "Date:", "To:", "Message-ID:", and appropriate folding.
+ This should be truncated to MTS.ub-content-correlator-length (512)
+ characters. In addition, if there is a "Subject:" field, the
+ MTS.PerMessageSubmissionFields.content-identifier, should be set to a
+ printable string representation of the contents of it, truncated to
+ MTS.ub-content-id-length (16). Both are used, due to the much larger
+ upper bound of the content correlator, and that the content id is
+ available in X.400(1984).
+
+5.1.5. Mappings to the MTA Abstract Service
+
+ There is a need to map directly onto some aspects of the MTA Abstract
+ service, for the following reasons:
+
+ - So the the MTS Message Identifier can be generated from the
+
+
+
+Kille [Page 56]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ RFC 822 Message-ID:.
+
+ - So that the submission date can be generated from the
+ 822.Date.
+
+ - To prevent loss of trace information.
+
+ - To prevent RFC 822/X.400 looping caused by distribution
+ lists or redirects.
+
+ The following mappings are defined.
+
+ Message-Id:
+ If this is present, the
+ MTA.PerMessageTransferFields.message-identifier should be
+ generated from it, using the mappings described in
+ Chapter 4.
+
+ Date:
+ This is used to set the first component of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement). The 822-MTS originator
+ should be mapped into an MTS.ORAddress, and used to derive
+ MTA.TraceInformationElement.global-domain-identifier. The
+ optional components of
+ MTA.TraceInformationElement.domain-supplied-information are
+ omitted, and the mandatory components are set as follows:
+
+ MTA.DomainSuppliedInformation.arrival-time
+ This is set to the date derived from Date:
+
+ MTA.DomainSuppliedInformation.routing-action
+ Set to relayed.
+
+ The first element of
+ MTA.PerMessageTransferFields.internal-trace-information
+ should be generated in an analogous manner, although this
+ may later be dropped (see the procedures for "Received:").
+
+ Received:
+ All RFC 822 trace is used to derive
+ MTA.PerMessageTransferFields.trace-information and
+ MTA.PerMessageTransferFields.internal-trace-information.
+ Processing of Received: lines should follow processing of
+ Date:, and should be done from the the bottom to the top of
+ the RFC 822 header (i.e., in chronological order). If other
+ trace elements are processed (Via:, X400-Received:), care
+ should be taken to keep the relative ordering correct. The
+
+
+
+Kille [Page 57]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ initial element of
+ MTA.PerMessageTransferFields.trace-information will be
+ generated already (from Date:).
+
+ Consider the Received: field in question. If the "by" part
+ of the received is present, use it to derive an
+ MTS.GlobalDomainIdentifier. If this is different from the
+ one in the last element of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement.global-domain-identifier)
+ create a new MTA.TraceInformationElement, and optionally
+ remove
+ MTA.PerMessageTransferFields.internal-trace-information.
+ This removal should be done in cases where the message is
+ being transferred to another MD where there is no bilateral
+ agreement to preserve internal trace beyond the local MD.
+ The trace creation is as for internal trace described below,
+ except that no MTA field is needed.
+
+ Then add a new element (MTA.InternalTraceInformationElement)
+ to MTA.PerMessageTransferFields.internal-trace-information,
+ creating this if needed. This shall be done, even if
+ inter-MD trace is created. The
+ MTA.InternalTraceInformationElement.global-domain-identifier
+ should be set to the value derived. The
+ MTA.InternalTraceInformationElement.mta-supplied-information
+ (MTA.MTASuppliedInformation) should be set as follows:
+
+ MTA.MTASuppliedInformation.arrival-time
+ Derived from the date of the Received: line
+
+ MTA.MTASuppliedInformation.routing-action
+ Set to relayed
+
+ The MTA.InternalTraceInformationElement.mta-name should be
+ taken from the "by" component of the "Received:" field,
+ truncated to MTS.ub-mta-name-length (32). For example:
+
+ Received: from computer-science.nottingham.ac.uk by
+ vs6.Cs.Ucl.AC.UK via Janet with NIFTP id aa03794;
+ 28 Mar 89 16:38 GMT
+
+ Generates the string:
+
+ vs6.Cs.Ucl.AC.UK
+
+ Note that before transferring the message to some ADMDs, additional
+ trace stripping may be required, as the implied path through multiple
+
+
+
+Kille [Page 58]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ MDs would violate ADMD policy.
+
+ Two extended fields must be mapped, in order to prevent looping.
+ "DL-Expansion-History:" is mapped to
+ MTA.PerMessageTransferFields.extensions.dl-expansion-history.
+ "Redirection-History:" is mapped to
+ MTA.PerRecipientMessageTransferFields.extensions.redirection-history.
+
+5.1.6. Mapping New Fields
+
+ This specification defines a number of new fields for Reports,
+ Notifications and IP Messages in Section 5.3. As this specification
+ only aims to preserve existing services, a gateway conforming to this
+ specification does not need to map these fields to X.400, with the
+ exception of "DL-Expansion-History" and "Redirection-History"
+ described in the previous section. However, it is usually desirable
+ and beneficial to do so, particularly to facilitate support of a
+ message traversing multiple gateways. These mappings may be onto
+ MTA, MTS, or IPMS services.
+
+5.2. Return of Contents
+
+ It is not clear how widely supported the X.400 return of contents
+ service will be. Experience with X.400(1984) suggests that support
+ of this service may not be universal. As this service is expected in
+ the RFC 822 world, two approaches are specified. The choice will
+ depend on the use of X.400 return of contents withing the X.400
+ community being serviced by the gateway.
+
+ In environments where return of contents is widely supported, content
+ return can be requested as a service. The content return service can
+ then be passed back to the end (RFC 822) user in a straightforward
+ manner.
+
+ In environments where return of contents is not widely supported, a
+ gateway must make special provision to handle return of contents.
+ For every message passing from RFC 822 -> X.400, content return
+ request will not be requested, and report request always will be.
+ When the delivery report comes back, the gateway can note that the
+ message has been delivered to the recipient(s) in question. If a
+ non-delivery report is received, a meaningful report (containing some
+ or all of the original message) can be sent to the 822-MTS
+ originator. If no report is received for a recipient, a (timeout)
+ failure notice should be sent to the 822-MTS originator. The gateway
+ may retransmit the X.400 message if it wishes. When this approach is
+ taken, routing must be set up so that error reports are returned
+ through the same MTA. This approach may be difficult to use in
+ conjunction with some routing strategies.
+
+
+
+Kille [Page 59]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+5.3. X.400 -> RFC 822
+
+5.3.1. Basic Approach
+
+ A single RFC 822 message is generated from the incoming IP Message,
+ Report, or IP Notification. All IPMS.BodyParts are mapped onto a
+ single RFC 822 body. Other services are mapped onto RFC 822 header
+ fields. Where there is no appropriate existing field, new fields are
+ defined for IPMS, MTS and MTA services.
+
+ The gateway mechanisms will correspond to MTS Delivery. As with
+ submission, there are aspects where the MTA (transfer) services are
+ also used. In particular, there is an optimisation to allow for
+ multiple 822-MTS recipients.
+
+5.3.2. RFC 822 Settings
+
+ An RFC 822 Service requires to have a number of mandatory fields in
+ the RFC 822 Header. Some 822-MTS services mandate specification of
+ an 822-MTS Originator. Even in cases where this is optional, it is
+ usually desirable to specify a value. The following defaults are
+ defined, which should be used if the mappings specified do not derive
+ a value:
+
+ 822-MTS Originator
+ If this is not generated by the mapping (e.g., for a
+ Delivery Report), a value pointing at a gateway
+ administrator should be assigned.
+
+ Date:
+ A value will always be generated
+
+ From:If this is not generated by the mapping, it should be
+ assigned equal to the 822-MTS Originator. If this is
+ gateway generated, an appropriate 822.phrase should be
+ added.
+
+ At least one recipient field
+ If no recipient fields are generated, a field "To: list:;",
+ should be added.
+
+ This will ensure minimal RFC 822 compliance. When generating RFC
+ 822 headers, folding should be used in an appropriate manner.
+
+
+
+
+
+
+
+
+Kille [Page 60]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+5.3.3. Basic Mappings
+
+5.3.3.1. Encoded Information Types
+
+ This mapping from MTS.EncodedInformationTypes is needed in
+ several disconnected places. EBNF is defined as follows:
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+ MTS.EncodedInformationTypes is mapped onto EBNF.encoded-info.
+ MTS.EncodedInformationTypes.non-basic-parameters is ignored. Built
+ in types are mapped onto fixed strings (compatible with X.400(1984)
+ and RFC 987), and other types are mapped onto EBNF.object-identifier.
+
+5.3.3.2. Global Domain Identifier
+
+ The following simple EBNF is used to represent
+ MTS.GlobalDomainIdentifier:
+
+ global-id = std-or-address
+
+ This is encoded using the std-or-address syntax, for the attributes
+ within the Global Domain Identifier.
+
+5.3.4. Mappings from the IP Message
+
+ Consider that an IPM has to be mapped to RFC 822. The IPMS.IPM
+ comprises an IPMS.IPM.heading and IPMS.IPM.body. The heading is
+ considered first. Some EBNF for new fields is defined:
+
+ ipms-field = "Obsoletes" ":" 1#msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+
+
+
+Kille [Page 61]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Language" ":" language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#oid
+
+
+
+ importance = "low" / "normal" / "high"
+
+
+ sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+ language = 2*ALPHA [ language-description ]
+ language-description = printable-string
+
+
+ message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+ The mappings and actions for the IPMS.Heading is now specified for
+ each element. Addresses, and Message Identifiers are mapped
+ according to Chapter 4. Other mappings are explained, or are
+ straightforward (algorithmic).
+
+ IPMS.Heading.this-IPM
+ Mapped to "Message-ID:".
+
+ IPMS.Heading.originator
+ If IPMS.Heading.authorizing-users is present this is mapped
+ to Sender:, if not to "From:".
+
+ IPMS.Heading.authorizing-users
+ Mapped to "From:".
+
+ IPMS.Heading.primary-recipients
+ Mapped to "To:".
+
+ IPMS.Heading.copy-recipients
+ Mapped to "Cc:".
+
+ IPMS.Heading.blind-copy-recipients
+ Mapped to "Bcc:".
+
+ IPMS.Heading.replied-to-ipm
+ Mapped to "In-Reply-To:".
+
+
+
+Kille [Page 62]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ IPMS.Heading.obsoleted-IPMs
+ Mapped to the extended RFC 822 field "Obsoletes:"
+
+ IPMS.Heading.related-IPMs
+ Mapped to "References:".
+
+ IPMS.Heading.subject
+ Mapped to "Subject:". The contents are converted to ASCII
+ (as defined in Chapter 3). Any CRLF are not mapped, but
+ are used as points at which the subject field must be
+ folded.
+
+ IPMS.Heading.expiry-time
+ Mapped to the extended RFC 822 field "Expiry-Date:".
+
+ IPMS.Heading.reply-time
+ Mapped to the extended RFC 822 field "Reply-By:".
+
+ IPMS.Heading.reply-recipients
+ Mapped to "Reply-To:".
+
+ IPMS.Heading.importance
+ Mapped to the extended RFC 822 field "Importance:".
+
+ IPMS.Heading.sensitivity
+ Mapped to the extended RFC 822 field "Sensitivity:".
+
+ IPMS.Heading.autoforwarded
+ Mapped to the extended RFC 822 field "Autoforwarded:".
+
+ The standard extensions (Annex H of X.420 / ISO 10021-7) are mapped
+ as follows:
+
+ incomplete-copy
+ Mapped to the extended RFC 822 field "Incomplete-Copy:".
+
+ language
+ Mapped to the extended RFC 822 field "Language:", filling in
+ the two letter code. If possible, the language-description
+ should be filled in with a human readable description of the
+ language.
+
+ If the RFC 822 extended header is found, this should be mapped onto
+ an RFC 822 header, as described in Section 5.1.2.
+
+ If a non-standard extension is found, it should be discarded, unless
+ the gateway understands the extension and can perform an appropriate
+ mapping onto an RFC 822 header field. If extensions are discarded,
+
+
+
+Kille [Page 63]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ the list should be indicated in the extended RFC 822 field
+ "Discarded-X400-IPMS-Extensions:".
+
+ The IPMS.Body is mapped into the RFC 822 message body. Each
+ IPMS.BodyPart is converted to ASCII as follows:
+
+ IPMS.IA5Text
+ The mapping is straightforward (see Chapter 3).
+
+ IPMS.MessageBodyPart
+ The X.400 -> RFC 822 mapping should be recursively applied,
+ to generate an RFC 822 Message. If present, the
+ IPMS.MessageBodyPart.parameters.delivery-envelope should be
+ used for the MTS Abstract Service Mappings. If present, the
+ IPMS.MessageBodyPart.parameters.delivery-time should be
+ mapped to the extended RFC 822 field "Delivery-Date:".
+
+ Other
+ If other body parts can be mapped to IA5, either by use of
+ mappings defined in X.408 [CCITT88a], or by other reasonable
+ mappings, this should be done unless content conversion is
+ prohibited.
+
+ If some or all of the body parts cannot be converted there are three
+ options. All of these conform to this standard. A different choice
+ may be made for the case where no body part can be converted:
+
+ 1. The first option is to reject the message, and send a non-
+ delivery notification. This must always be done if
+ conversion is prohibited.
+
+ 2. The second option is to map a missing body part to something
+ of the style:
+
+ *********************************
+
+ There was a foobar here
+
+ The widget gateway ate it
+
+ *********************************
+
+ This will allow some useful information to be transferred.
+ As the recipient is a human (IPMS), then suitable action
+ should be available.
+
+ 3. Finally both can be done. In this case, the supplementary
+ information in the (positive) Delivery Report should make
+
+
+
+Kille [Page 64]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ clear that something was sent on to the recipient with
+ substantial loss of information.
+
+ Where there is more than one IPMS.BodyPart, the mapping defined by
+ Rose and Stefferud in [Rose85a], should be used to map the separate
+ IPMS.BodyParts in the single RFC 822 message body. If this is done,
+ a "Message-Type:" field with value "Multiple part" should be added,
+ which will indicate to a receiving gateway that the message may be
+ unfolded according to RFC 934.
+
+ For backwards compatibility with RFC 987, the following procedures
+ should also be followed. If there are two IA5 body parts, and the
+ first starts with the string "RFC-822-Headers:" as the first line,
+ then the remainder of this body part should be appended to the RFC
+ 822 header.
+
+5.3.5. Mappings from an IP Notification
+
+ A message is generated, with the following fields:
+
+ From:
+ Set to the MTS.MessageDeliveryEnvelope.other-
+ fields.originator-name.
+
+ To: Set to the IPMS.IPN.ipm-originator.
+
+ Subject:
+ Set to something of the form "X.400 Inter-Personal Receipt
+ Notification".
+
+ Message-Type:
+ Set to "InterPersonal Notification"
+
+ References:
+ Set to IPMS.IPN.subject-ipm
+
+ The following EBNF is defined for the body of the Message. This
+ format is defined to ensure that all information from an
+ interpersonal notification is available to the end user in a uniform
+ manner.
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ ipn-content-return
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+
+
+
+Kille [Page 65]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt "Your message to:"
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+ non-receipt-reason = "Discarded" / "Auto-Forwarded"
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+ The mappings for elements of the common fields of IPMS.IPN
+ (IPMS.CommonFields) onto this structure and the message header are:
+
+ subject-ipm
+ Mapped to "References:"
+
+
+
+
+Kille [Page 66]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ ipm-originator
+ Mapped to "To:".
+
+ ipm-preferred-recipient
+ Mapped to EBNF.preferred-recipient
+
+ conversion-eits
+ Mapped to EBNF.encoded-info in EBNF.ipn-extra-information
+
+ The mappings for elements of IPMS.IPN.non-receipt-fields
+ (IPMS.NonReceiptFields) are:
+
+ non-receipt-reason
+ Used to select between EBNF.ipn-discarded and
+ EBNF.ipn-auto-forwarded
+
+ discard-reason
+ Mapped to EBNF.discard-reason
+
+ auto-forward-comment
+ Mapped to EBNF.auto-comment
+
+ returned-ipm
+ If present, the second option of EBNF.ipn-content-return
+ should be chosen, and an RFC 822 mapping of the message
+ included. Otherwise the first option should be chosen.
+
+ The mappings for elements of IPMS.IPN.receipt-fields
+ (IPMS.ReceiptFields) are:
+
+ receipt-time
+ Mapped to EBNF.receipt-time
+
+ acknowledgement-mode
+ Mapped to EBNF.acknowledgement-mode
+
+ suppl-receipt-info
+ Mapped to EBNF.ipn-suppl
+
+ An example notification is:
+
+ From: Steve Kille <steve@cs.ucl.ac.uk>
+ To: Julian Onions <jpo@computer-science.nottingham.ac.uk>
+ Subject: X400 Inter-personal Receipt Notification
+ Message-Type: InterPersonal Notification
+ References: <1229.614418325@UK.AC.NOTT.CS>
+ Date: Wed, 21 Jun 89 08:45:25 +0100
+
+
+
+
+Kille [Page 67]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ Your message to: Steve Kille <steve@cs.ucl.ac.uk>
+ was automatically forwarded.
+ The following comment was made:
+ Sent on to a random destination
+
+ The following information types were converted: g3fax
+
+ The Original Message is not available
+
+5.3.6. Mappings from the MTS Abstract Service
+
+ This section describes the MTS mappings for User Messages (IPM and
+ IPN). This mapping is defined by specifying the mapping of
+ MTS.MessageDeliveryEnvelope. The following extensions to RFC 822 are
+ defined to support this mapping:
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Redirection-History" ":" redirection
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Requested-Delivery-Method" ":"
+ 1*( labelled-integer )
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( oid / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifer
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ redirection = mailbox ";" "reason" "="
+ redirection-reason
+ ";" date-time
+
+
+
+Kille [Page 68]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+
+
+ These elements are only appropriate for physical delivery. They
+ are represented as comments in the "X400-Recipients:" field, as
+ described in Section 4.6.2.2.
+
+ originator-certificate
+ message-token
+ content-confidentiality-algorithm-identifier
+ content-integrity-check
+ message-origin-authentication-check
+ message-security-label
+ proof-of-delivery-request
+
+ These elements imply use of security services not available in the
+ RFC 822 environment. If they are marked as critical for transfer
+ or delivery, then the message should be rejected. Otherwise they
+ should be discarded.
+
+ redirection-history
+ Each element is mapped to an extended RFC 822 field
+ "Redirection-History:". They should be ordered in the
+ message header, so that the most recent redirection comes
+ first (same order as trace).
+
+ dl-expansion-history
+ Each element is mapped to the extended RFC 822 field
+ "DL-Expansion-History:". They should be ordered in the
+ message header, so that the most recent expansion comes
+ first (same order as trace).
+
+ If any MTS (or MTA) Extensions not specified in X.400 are present,
+ and they are marked as critical for transfer or delivery, then the
+ message should be rejected. If they are not so marked, they can
+ safely be discarded. The list of discarded fields should be
+ indicated in the extended header "Discarded-X400-MTS-Extensions:".
+
+5.3.7. Mappings from the MTA Abstract Service
+
+ There are some mappings at the MTA Abstract Service level which are
+ done for IPM and IPN. These can be derived from
+ MTA.MessageTransferEnvelope. The reasons for the mappings at this
+ level, and the violation of layering are:
+
+
+
+
+Kille [Page 69]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ - Allowing for multiple recipients to share a single RFC 822
+ message.
+
+ - Making the X.400 trace information available on the RFC 822
+ side.
+
+ - Making any information on deferred delivery available.
+
+ The 822-MTS recipients should be calculated from the full list of
+ X.400 recipients. This is all of the members of
+ MTA.MessageTransferEnvelope.per-recipient-fields being passed
+ through the gateway, where the responsibility bit is set. In
+ some cases, a different RFC 822 message would be calculated for
+ each recipient. If this is due to differing service requests for
+ each recipient, then a different message should be generated.
+ If it is due only to the request for non-disclosure of
+ recipients, then the "X400-Recipients:" field should be omitted,
+ and only one message sent.
+
+ The following EBNF is defined for extended RFC 822 headers:
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-and-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+
+ action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+ If MTA.PerMessageTransferFields.deferred-delivery-time is present,
+ use it to generate a Deferred-Delivery: field. For some reason,
+ X.400 does not make this information available at the MTS level on
+
+
+
+Kille [Page 70]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ delivery. X.400 profiles, and in particular the CEN/CENELEC profile
+ for X.400(1984) [Systems85a], specify that this element must be
+ supported at the first MTA. If it is not, the function may
+ optionally be implemented by the gateway: that is, the gateway should
+ hold the message until the time specified in the protocol element.
+ Thus, it is expected that the value of this element will often be in
+ the past. For this reason, the extended RFC 822 field is primarily
+ for information.
+
+ Merge MTA.PerMessageTransferFields.trace-information, and
+ MTA.PerMessageTransferFields.internal-trace-information to produce a
+ single ordered trace list. If Internal trace from other management
+ domains has not been stripped, this may require complex interleaving.
+ Use this to generate a sequence of "X400-Received:" fields. The only
+ difference between external trace and internal trace will be the
+ extra MTA information in internal trace elements.
+
+ When generating an RFC 822 message all trace fields (X400- Received
+ and Received) should be at the beginning of the header, before any
+ other fields. Trace should be in chronological order, with the most
+ recent element at the front of the message. A simple example trace
+ (external) is:
+
+ X400-Received: by /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ; Relayed ;
+ Tue, 20 Jun 89 19:25:11 +0100
+
+ A more complex example (internal):
+
+ X400-Received: by mta UK.AC.UCL.CS in
+ /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ;
+ deferred until Tue, 20 Jun 89 14:24:22 +0100 ;
+ converted (undefined, g3fax) ";" attempted /ADMD=Foo/C=GB/ ;
+ Relayed, Expanded, Redirected ; Tue, 20 Jun 89 19:25:11 +0100
+
+5.3.8. Mappings from Report Delivery
+
+ Delivery reports are mapped at the MTS service level. This means
+ that only reports destined for the MTS user will be mapped. Some
+ additional services are also taken from the MTA service.
+
+5.3.8.1. MTS Mappings
+
+ A Delivery Report service will be represented as
+ MTS.ReportDeliveryEnvelope, which comprises of per-report-fields
+ (MTS.PerReportDeliveryFields) and per-recipient-fields.
+
+ A message should be generated with the following fields:
+
+
+
+
+Kille [Page 71]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ From:
+ An administrator at the gateway system. This is also the
+ 822-MTS originator.
+
+ To: A mapping of the
+ MTA.ReportTransferEnvelope.report-destination-name. This is
+ also the 822-MTS recipient.
+
+ Message-Type:
+ Set to "Delivery Report".
+
+ Subject:
+ Something of the form "X.400 Delivery Report".
+
+ The format of the body of the message is defined to ensure that all
+ information is conveyed to the RFC 822 user in a consistent manner.
+ This gives a summary of critical information, and then a full listing
+ of all parameters:
+
+
+ dr-body-format = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-extra-information <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+ "It was generated by:" report-point <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "It was later converted to RFC 822 by:" mailbox <CRLF>
+ "at" date-time <CRLF> <CRLF>
+
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+
+
+
+Kille [Page 72]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+
+ dr-extra-information =
+ "-----------------------------------------------" <CRLF> <CRLF>
+ "The following information is derived from the Report" <CRLF>
+ "It may be useful for problem diagnosis:" <CRLF> <CRLF>
+ drc-field-list
+
+ drc-field-list = *(drc-field <CRLF>)
+
+ drc-field = "Subject-Submission-Identifier" ":"
+ mts-msg-id
+ / "Content-Identifier" ":" printablestring
+ / "Content-Type" ":" mts-content-type
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "Originator-and-DL-Expansion-History" ":"
+ dl-history
+ / "Reporting-DL-Name" ":" mailbox
+ / "Content-Correlator" ":" content-correlator
+ / "Recipient-Info" ":" recipient-info
+ / "Subject-Intermediate-Trace-Information" ":"
+ x400-trace
+
+
+ recipient-info = mailbox "," std-or ";"
+ report-type
+ [ "converted eits" encoded-info ";" ]
+ [ "originally intended recipient"
+ mailbox "," std-or ";" ]
+ [ "last trace" [ encoded-info ] date-time ";" ]
+ [ "supplementary info" <"> printablestring <"> ";" ]
+ [ "redirection history" 1#redirection ";"
+ [ "physical forwarding address"
+ printablestring ";" ]
+
+
+ report-type = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = "delivered at" date-time ";"
+ [ "type of MTS user" labelled-integer ";" ]
+
+ drc-failure = "reason" labelled-integer ";"
+ [ "diagnostic" labelled-integer ";" ]
+
+
+
+Kille [Page 73]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ report-point = [ "mta" word "in" ] global-id
+ content-correlator = *word
+ dl-history = 1#( mailbox "(" date-time ")")
+
+ The format is defined as a fixed definition. The only exception is
+ that the EBNF.drc-fields should follow RFC 822 folding rules.
+
+ The elements of MTS.ReportDeliveryEnvelope.per-report-fields are
+ mapped as follows onto extended RFC 822 fields:
+
+ subject-submission-identifier
+ Mapped to EBNF.drc-field (Subject-Submission-Identifier)
+
+ content-identifier
+ Mapped to EBNF.drc-field (Content-Identifier)
+
+ content-type
+ Mapped to EBNF.drc-field (Content-Type)
+
+ original-encoded-information-types
+ Mapped to EBNF.drc-field (Encoded-Info)
+
+ The extensions from
+ MTS.ReportDeliveryEnvelope.per-report-fields.extensions are
+ mapped as follows:
+
+ originator-and-DL-expansion-history
+ Mapped to EBNF.drc-field (Originator-and-DL-Expansion-
+ History)
+
+ reporting-DL-name
+ Mapped to EBNF.drc-field (Reporting-DL-Name)
+
+ content-correlator
+ Mapped to EBNF.content-correlator, provided that the
+ encoding is IA5String (this should always be the case).
+ This is used in EBNF.dr-summary and EBNF.drc-field-list.
+ In the former, LWSP may be added, in order to improve the
+ layout of the message.
+
+ message-security-label
+ reporting-MTA-certificate
+ report-origin-authentication-check
+
+ These security parameters should not be present. If they are,
+ they should be discarded in preference to discarding the whole
+ report.
+
+
+
+
+Kille [Page 74]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ For each element of MTS.ReportDeliveryEnvelope.per-recipient-fields,
+ a value of EBNF.dr-recipient, and an EBNF.drc-field (Recipient-Info)
+ should be generated. The components are mapped as follows.
+
+ actual-recipient-name
+ Used to generate the first EBNF.mailbox and EBNF.std-or in
+ EBNF.recipient-info. Both RFC 822 and X.400 forms are
+ given, as there may be a problem in the mapping tables. It
+ also generates the EBNF.mailbox in EBNF.dr-recip-success or
+ EBNF.dr-recip-failure.
+
+ report
+ If it is MTS.Report.delivery, then set EBNF.dr-recipient to
+ EBNF.dr-recip-success, and similarly set EBNF.report-type,
+ filling in EBNF.drc-success. If it is a failure, set
+ EBNF.dr-recipient to EBNF.dr-recip-failure, making a human
+ interpretation of the reason and diagnostic codes, and
+ including any supplementary information. EBNF.drc-failure
+ should be filled in systematically.
+
+ converted-encoded-information-types
+ Set EBNF.drc-field ("converted eits")
+
+ originally-intended-recipient
+ Set the second ("originally intended recipient") mailbox
+
+ and
+
+ std-or in EBNF.drc-field.
+
+ supplementary-info
+ Set EBNF.drc-field ("supplementary info"), and include this
+ information in EBNF.dr-recip-failure.
+
+ redirection-history
+ Set EBNF.drc-field ("redirection history")
+
+ physical-forwarding-address
+ Set ENBF.drc-field ("physical forwarding address")
+
+ recipient-certificate
+ Discard
+
+ proof-of-delivery
+ Discard
+
+ Any unknown extensions should be discarded, irrespective of
+ criticality.
+
+
+
+Kille [Page 75]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ The original message should be included in the delivery port. The
+ original message will usually be available at the gateway, as
+ discussed in Section 5.2.
+
+5.3.8.2. MTA Mappings
+
+ The single 822-MTS recipient is constructed from
+ MTA.ReportTransferEnvelope.report-destination-name, using the
+ mappings of Chapter 4. Unlike with a user message, this information
+ is not available at the MTS level.
+
+ The following additional mappings should be made:
+
+ MTA.ReportTransferEnvelope.report-destination-name
+ This should be used to generate the To: field.
+
+ MTA.ReportTransferEnvelope.identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:".
+ It may also be used to derive a "Message-Id:" field.
+
+ MTA.ReportTransferEnvelope.trace-information
+ and
+
+ MTA.ReportTransferEnvelope.internal-trace-information
+ Mapped onto the extended RFC 822 field "X400-Received:", as
+ described in Section 5.3.7. The first element should also
+ be used to generate the "Date:" field, and the
+ EBNF.failure-point.
+
+ MTA.PerRecipientReportTransferFields.last-trace-information
+ Mapped to EBNF.recipient-info (last trace)
+ MTA.PerReportTransferFields.subject-intermediate-trace-information
+ Mapped to EBNF.drc-field (subject-Intermediate-Trace-Information).
+ These fields should be ordered so that the most recent trace element
+ comes first.
+
+5.3.8.3. Example Delivery Report
+
+ This is an example, of a moderately complex report.
+
+ From: The Postmaster <postmaster@cs.ucl.ac.uk>
+ To: jpo@computer-science.nottingham.ac.uk
+ Subject: X.400 Delivery Report
+ Message-Type: Delivery Report
+ Date: Wed, 21 Jun 89 08:45:25 +0100
+ X400-MTS-Identifier: /PRMD=UK.AC/ADMD=Gold 400/C=GB/;13412345235
+
+
+
+
+
+Kille [Page 76]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ This report relates to your message:
+ Date: Wed, 21 Jun 89 06:15:43 +0000
+ Message-ID: <8907140715.aa09015@CS.Nott.AC.UK>
+ Subject: Now it's the fine tuning .... !
+ To: Piete Brooks (Postmaster) <pb@computer-lab.cambridge.ac.uk>
+
+ of Wed, 21 Jun 89 06:15:43 +0000
+
+ It was generated by mta PK in /PRMD=UK/ADMD=DBP/C=DE/
+ at Wed, 21 Jun 89 08:45:25 +0100
+
+ It was later converted to RFC 822 by: Mail-Gateway@oxbridge.ac.uk
+ at Wed, 21 Jun 89 08:45:26 +0100
+
+ Your message was not delivered to: bad-user@nowhere
+ for the following reason: Rendition problem with punctuation
+ (Umlaut failure)
+
+ -----------------------------------------------
+
+ The following information is derived from the Report
+ It may be useful for problem diagnosis:
+
+ Subject-Submission-Identifier:
+ [/PRMD=UK.AC/ADMD=Gold 400/C=GB/;148996]
+ Content-Identifier: X.400 Delivery Report
+ Content-Type: P2-1988 (22)
+ Original-Encoded-Information-Types: ia5
+ Content-Correlator: Date: Wed, 21 Jun 89 06:15:43 +0000
+ Message-ID: <8907140715.aa09015@CS.Nott.AC.UK>
+ Subject: Now it's the fine tuning .... !
+ To: Piete Brooks (Postmaster) <pb@computer-lab.cambridge.ac.uk>
+ Recipient-Info:
+ bad-user@nowhere, /S=bad-user/PRMD=nowhere/ADMD=DBP/C=DE/ ;
+ FAILURE reason Physical-Rendition-Not-Performed (3) ;
+ diagnostic Punctuation-Symbol-Loss (23) ;
+ supplementary info Umlaut failure
+
+ The Original Message follows:
+
+ Subject: Now it's the fine tuning .... !
+ Date: Wed, 21 Jun 89 06:15:43 +0000
+ From: Julian Onions <jpo@computer-science.nottingham.ac.uk>
+ To: Piete Brooks (Postmaster) <pb@computer-lab.cambridge.ac.uk>
+ Cc: bad-user@nowhere
+ Message-ID: <8907140715.aa09015@CS.Nott.AC.UK>
+
+ A short test
+
+
+
+Kille [Page 77]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+5.3.9. Probe
+
+ This is an MTS internal issue. Any probe should be serviced by the
+ gateway, as there is no equivalent RFC 822 functionality. The value
+ of the reply is dependent on whether the gateway could service an MTS
+ Message with the values specified in the probe. The reply should
+ make use of MTS.SupplementaryInformation to indicate that the probe
+ was serviced by the gateway.
+
+Appendix A - Differences with RFC 987
+
+ This appendix summarises changes between this document and RFC
+ 987/RFC 1026.
+
+1. Introduction
+
+ The model has shifted from a protocol based mapping to a service
+ based mapping. This has increased the generality of the
+ specification, and improved the model. This change affects the
+ entire document.
+
+ A restriction on scope has been added.
+
+2. Service Elements
+
+ - The new service elements of X.400 are dealt with.
+
+ - A clear distinction is made between origination and
+ reception.
+
+3. Basic Mappings
+
+ - Add teletex support.
+
+ - Add object identifier support.
+
+ - Add labelled integer support.
+
+ - Make PrintableString <-> ASCII mapping reversible.
+
+ - The printable string mapping is aligned to the NBS mapping
+ derived from RFC 987.
+
+4. Addressing
+
+ - Support for new addressing attributes.
+
+ - The message ID mapping is changed to not be table driven.
+
+
+
+Kille [Page 78]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+5. Detailed Mappings
+
+ - Define extended IPM Header, and use instead of second body
+ part for RFC 822 extensions.
+
+ - Realignment of element names.
+
+ - New syntax for reports, simplifying the header and
+ introducing a mandatory body format (the RFC 987 header
+ format was unusable).
+
+ - Drop complex autoforwarded mapping.
+
+ - Add full mapping for IP Notifications, defining a body
+ format.
+
+ - Adopt an MTS Identifier syntax in line with the O/R Address
+ syntax.
+
+ - A new format for X400 Trace representation on the RFC 822
+ side.
+
+6. Appendices
+
+ - Move Appendix on restricted 822 mappings to a separate RFC.
+
+ - Delete Phonenet and SMTP Appendixes.
+
+Appendix B - Mappings specific to the JNT Mail
+
+ This Appendix is specific to the JNT Mail Protocol. It describes
+ specific changes in the context of this protocol.
+
+1. Introduction
+
+ There are five aspects of a gateway which are JNT Mail Specific.
+ These are each given a section of this appendix.
+
+2. Domain Ordering
+
+ When interpreting and generating domains, the UK NRS domain ordering
+ must be used.
+
+3. Acknowledge-To:
+
+ This field has no direct functional equivalent in X.400. However, it
+ can be supported to an extent, and can be used to improve X.400
+ support.
+
+
+
+Kille [Page 79]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ If an Acknowledge-To: field is present when going from JNT Mail to
+ X.400, MTS.PerRecipientSubmissionFields.originator-request-
+ report.report shall be set for each recipient. If there is more that
+ one address in the Acknowledge-To: field, or if the one address is
+ not equivalent to the 822-MTS return address, then:
+
+ 1. Acknowledgement(s) should be generated by the gateway. The
+ text of these acknowledgements should indicate that they are
+ generated by the gateway.
+
+ 2. The Acknowledge-To: field should also be passed as an
+ extension heading.
+
+ When going from X.400 to JNT Mail, in cases where
+ MTA.PerRecipientMessageTransferFields.per-recipient-indicators.
+ originator-report is set, the copy of the message to that recipient
+ should have an Acknowledge-To: field containing the
+ MTS.OtherMessageDeliveryFields.originator-name. No special treatment
+ should be given when MTA.PerRecipientMessageTransferFields.per-
+ recipient-indicators. originating-MTA-report is set. No attempt
+ should be made to map Receipt notification requests onto
+ Acknowledge-To:, as no association can be guaranteed between IPMS and
+ MTS level addressing information.
+
+4. Trace
+
+ JNT Mail trace uses the Via: syntax. When going from JNT Mail to
+ X.400, a mapping similar to that for Received: is used. No
+ MTS.GlobalDomainIdentifier of the site making the trace can be
+ derived from the Via:, so a value for the gateway should be used.
+ The trace text, including the "Via:", should be unfolded, truncated
+ to MTS.ub-mta-name-length (32), and mapped to
+ MTA.InternalTraceInformationElement.mta-name. There is no JNT Mail
+ specific mapping for the reverse direction.
+
+5. Timezone specification
+
+ The extended syntax of zone defined in the JNT Mail Protocol should
+ be used in the mapping of UTCTime defined in Chapter 3.
+
+6. Lack of 822-MTS originator specification
+
+ In JNT Mail the default mapping of the
+ MTS.OtherMessageDeliveryFields.originator-name is to the Sender:
+ field. This can cause a problem when going from X.400 to JNT Mail if
+ the mapping of IPMS.Heading has already generated a Sender: field.
+ To overcome this, new extended JNT Mail field is defined. This is
+ chosen to align with the JNT recommendation for interworking with
+
+
+
+Kille [Page 80]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ full RFC 822 systems [Kille84b].
+
+ original-sender = "Original-Sender" ":" mailbox
+
+ If an IPM has no IPMS.Heading.authorising-users component and
+ IPMS.Heading.originator.formal-name is different from
+ MTS.OtherMessageDeliveryFields.originator-name, map
+ MTS.OtherMessageDeliveryFields.originator-name, onto the Sender:
+ field.
+
+ If an IPM has a IPMS.Heading.authorising-users component, and
+ IPMS.Heading.originator.formal-name is different from
+ MTS.OtherMessageDeliveryFields.originator-name,
+ MTS.OtherMessageDeliveryFields.originator-name should be mapped onto
+ the Sender: field, and IPMS.Heading.originator mapped onto the
+ Original-Sender: field.
+
+ In other cases the MTS.OtherMessageDeliveryFields.originator-name, is
+ already correctly represented.
+
+Appendix C - Mappings specific to UUCP Mail
+
+ Gatewaying of UUCP and X.400 is handled by first gatewaying the UUCP
+ address into RFC 822 syntax (using RFC 976) and then gatewaying the
+ resulting RFC 822 address into X.400. For example, an X.400 address:
+
+ Country US
+ Organisation Xerox
+ Personal Name John Smith
+
+ might be expressed from UUCP as
+
+ inthop!gate!gatehost.COM!/C=US/O=Xerox/PN=John.Smith/
+
+ (assuming gate is a UUCP-Internet gateway and gatehost.COM is an
+ Internet-X.400 gateway) or
+
+ inthop!gate!Xerox.COM!John.Smith
+
+ (assuming that Xerox.COM and /C=US/O=Xerox/ are equivalent.)
+
+ In the other direction, a UUCP address Smith@ATT.COM, integrated into
+ 822, would be handled as any other 822 address. A non-integrated
+ address such as inthop!dest!user might be handled through a pair of
+ gateways:
+
+ Country US
+ ADMD ATT
+
+
+
+Kille [Page 81]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ PRMD Internet
+ Organisation GateOrg
+ RFC-822 inthop!dest!user@gatehost.COM
+
+ or through a single X.400 to UUCP gateway:
+
+ Country US
+ ADMD ATT
+ PRMD UUCP
+ Organisation GateOrg
+ RFC-822 inthop!dest!user
+
+Appendix D - Object Identifier Assignment
+
+ An object identifier is needed for the extension IPMS element. The
+ following value should be used.
+
+ rfc-987-88 OBJECT IDENTIFIER ::=
+ {ccitt data(9) pss(2342) ucl(234219200300) rfc-987-88(200)}
+
+ id-rfc-822-field OBJECT IDENTIFIER ::= {rfc987-88 field(0)}
+
+Appendix E - BNF Summary
+
+ boolean = "TRUE" / "FALSE"
+
+
+ numericstring = *DIGIT
+
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+
+
+
+
+Kille [Page 82]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 1-9, and "-">
+
+
+ object-identifier ::= [ defined-value ] oid-comp-list
+
+ oid-comp-list ::= oid-comp oid-comp-list
+ | oid-comp
+
+ defined-value ::= key-string
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+
+
+
+Kille [Page 83]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / registered-dd-type
+ / dd-key "." std-printablestring
+ standard-type = key-string
+
+ registered-dd-type
+ = key-string
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=">
+ std-pair = "$" ps-char
+
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "."
+
+
+ global-id = std-or-address
+
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-and-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+
+
+Kille [Page 84]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+
+ action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+
+ dr-body-format = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-extra-information <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+ "It was generated by:" report-point <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "It was later converted to RFC 822 by:" mailbox <CRLF>
+ "at" date-time <CRLF> <CRLF>
+
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+
+ dr-extra-information =
+ "-----------------------------------------------" <CRLF> <CRLF>
+ "The following information is derived from the Report" <CRLF>
+
+
+
+Kille [Page 85]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ "It may be useful for problem diagnosis:" <CRLF> <CRLF>
+ drc-field-list
+
+ drc-field-list = *(drc-field <CRLF>)
+
+ drc-field = "Subject-Submission-Identifier" ":"
+ mts-msg-id
+ / "Content-Identifier" ":" printablestring
+ / "Content-Type" ":" mts-content-type
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "Originator-and-DL-Expansion-History" ":"
+ dl-history
+ / "Reporting-DL-Name" ":" mailbox
+ / "Content-Correlator" ":" content-correlator
+ / "Recipient-Info" ":" recipient-info
+
+
+ recipient-info = mailbox "," std-or ";"
+ report-type
+ [ "converted eits" encoded-info ";" ]
+ [ "originally intended recipient"
+ mailbox "," std-or ";" ]
+ [ "supplementary info" <"> printablestring <"> ";" ]
+ [ "redirection history" 1#redirection ";"
+ [ "physical forwarding address"
+ printablestring ";" ]
+
+
+ report-type = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = "delivered at" date-time ";"
+ [ "type of MTS user" labelled-integer ";" ]
+
+ drc-failure = "reason" labelled-integer ";"
+ [ "diagnostic" labelled-integer ";" ]
+
+
+ report-point = [ "mta" word "in" ] global-id
+ content-correlator = *word
+ dl-history = 1#( mailbox "(" date-time ")")
+
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+
+
+
+Kille [Page 86]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Redirection-History" ":" redirection
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Requested-Delivery-Method" ":"
+ 1*( labelled-integer )
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( oid / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifer
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ redirection = mailbox ";" "reason" "="
+ redirection-reason
+ ";" date-time
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ ipn-content-return
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt "Your message to:"
+
+
+
+Kille [Page 87]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+
+ non-receipt-reason = "Discarded" / "Auto-Forwarded"
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+
+ ms-field = "Obsoletes" ":" 1#msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Language" ":" language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#oid
+
+
+
+
+Kille [Page 88]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ importance = "low" / "normal" / "high"
+
+
+ sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+ language = 2*ALPHA [ language-description ]
+ language-description = printable-string
+
+
+ message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+
+Appendix F - Format of address mapping tables
+
+ There is a need to specify the association between the domain and
+ X.400 namespaces described in Chapter 4. The use of this association
+ leads to a better service on both sides of the gateway, and so
+ defining mappings and distributing them in the form defined in this
+ appendix is strongly encouraged.
+
+ This syntax defined is initially in table form, but the syntax is
+ defined in a manner which makes it suitable for use with domain
+ nameservices (such as the Internet Domain nameservers or the UK NRS).
+ The mapping is not symmetric, and so a separate table is specified
+ for each direction. If multiple matches are possible, the longest
+ possible match should be used.
+
+ First, an address syntax is defined, which is compatible with the
+ syntax used for 822.domains. It is intended that this syntax may be
+ used in conjunction with systems which support this form of name.
+
+ To allow the mapping of null attributes to be represented, the
+ pseudo-value "@" (not a printable string character) is used to
+ indicate omission of a level in the hierarchy. This is distinct from
+ the form including the element with no value, although a correct
+ X.400 implementation will interpret both in the same manner.
+
+ This syntax is not intended to be handled by users.
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+
+
+
+Kille [Page 89]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "."
+
+ An example usage:
+
+ ~ROLE$Big.Chief.ADMD$ATT.C$US
+ PRMD$DEC.ADMD$@.C$US
+
+ The first example illustrates quoting of a ".", and the second
+ omission of the ADMD level.
+
+ Various further restrictions are placed on the usage of dmn-or-
+ address:
+
+ 1. Only C, ADMD, PRMD, O, and OU may be used.
+
+ 2. There must be a strict ordering of all components, with the
+ most significant components on the RHS.
+
+ 3. No components may be omitted from the hierarchy, although
+ the hierarchy may terminate at any level. If the mapping is
+ to an omitted component, the "@" syntax is used.
+
+ For domain -> X.400:
+
+ domain-syntax "#" dmn-or-address "#"
+
+ Note that the trailing "#" is used for clarity, as the dmn-or-
+ address syntax can lead to values with trailing blanks. Lines
+ staring with "#" are comments.
+
+ For example:
+
+ AC.UK#PRMD$UK.AC.ADMD$GOLD 400.C$GB#
+ XEROX.COM#O$Xerox.ADMD$ATT.C$US#
+ GMD.DE#O$@.PRMD$GMD.ADMD$DBP.C$DE#
+
+ For X.400 -> domain:
+
+ dmn-or-address "#" domain-syntax "#"
+
+ For example:
+
+ #
+ # Mapping table
+
+
+
+Kille [Page 90]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ #
+ PRMD$UK.AC.ADMD$GOLD 400.C$GB#AC.UK#
+
+References
+
+ [Braden89a] Braden, R., Editor, "Requirements for Internet Hosts --
+ Application and Support", RFC 1123, USC/Information Sciences
+ Institute, October 1989.
+
+ [CCITT88a] CCITT, "CCITT Recommendations X.408", Message Handling
+ Systems: Encoded Information Type Conversion Rules, CCITT, December
+ 1988.
+
+ [CCITT/ISO88a] CCITT/ISO, "CCITT Recommendations X.400/ ISO IS
+ 10021-1", Message Handling: System and Service Overview, CCITT/ISO,
+ December 1988.
+
+ [CCITT/ISO88b] CCITT/ISO, "CCITT Recommendations X.420/ ISO IS
+ 10021-7", Message Handling Systems: Interpersonal Messaging System,
+ CCITT/ISO, December 1988.
+
+ [CCITT/ISO88c] CCITT/ISO, "CCITT Recommendations X.411/ ISO IS
+ 10021-4", Message Handling Systems: Message Transfer System: Abstract
+ Service Definition and Procedures, CCITT/ISO, December 1988.
+
+ [CCITT/ISO88d] CCITT/ISO, "Specification of Abstract Syntax Notation
+ One (ASN.1)", CCITT Recommendation X.208 / ISO IS 8824, CCITT/ISO,
+ December 1988.
+
+ [Crocker82a] Crocker, D., "Standard of the Format of ARPA Internet
+ Text Messages", RFC 822, August 1982.
+
+ [Horton86a] Horton, M., "UUCP Mail Interchange Format Standard", RFC
+ 976, February 1986.
+
+ [Kille84b] Kille, S., "Gatewaying between RFC 822 and JNT Mail", JNT
+ Mailgroup Note 15, May 1984.
+
+ [Kille84a] Kille, S., Editor, "JNT Mail Protocol (revision 1.0)",
+ Joint Network Team, Rutherford Appleton Laboratory, March 1984.
+
+ [Kille86a] Kille, S., "Mapping Between X.400 and RFC 822", UK
+ Academic Community Report (MG.19) / RFC 987, June 1986.
+
+ [Kille87a] Kille, S., "Addendum to RFC 987", UK Academic Community
+ Report (MG.23) / RFC 1026, August 1987.
+
+ [Kille89a] Kille, S., "A String Encoding of Presentation Address",
+
+
+
+Kille [Page 91]
+
+RFC 1138 Mapping X.400(88) and 822 December 1989
+
+
+ UCL Research Note 89/14, March 1989.
+
+ [Kille89b] Kille, S., "Mapping Between Full RFC 822 and RFC 822 with
+ Restricted Encoding", RFC 1137, December 1989.
+
+ [Larmouth83a] Larmouth, J., "JNT Name Registration Technical Guide",
+ Salford University Computer Centre, April 1983.
+
+ [Mockapetris87a] Mockapetris, P., "Domain Names - Concepts and
+ Facilities", RFC 1034, USC/Information Sciences Institute, November
+ 1987.
+
+ [Postel82a] Postel, J., "Simple Mail Transfer Protocol", RFC 821,
+ USC/Information Sciences Institute, August 1982.
+
+ [Rose85a] Rose M., and E. Stefferud, "Proposed Standard for Message
+ Encapsulation", RFC 934, January 1985.
+
+ [Systems85a] CEN/CENELEC/Information Technology/Working Group on
+ Private Message Handling Systems, "FUNCTIONAL STANDARD A/3222",
+ CEN/CLC/IT/WG/PMHS N 17, October 1985.
+
+Security Considerations
+
+ Security issues are not discussed in this memo.
+
+Author's Address
+
+ Steve Kille
+ University College London
+ Gower Street
+ WC1E 6BT
+ England
+
+ Phone: +44-1-380-7294
+
+ EMail: S.Kille@Cs.Ucl.AC.UK
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 92]
+ \ No newline at end of file
diff --git a/Documentation/en/rfc/rfc1148.txt b/Documentation/en/rfc/rfc1148.txt
new file mode 100644
index 00000000..f9b831a4
--- /dev/null
+++ b/Documentation/en/rfc/rfc1148.txt
@@ -0,0 +1,5267 @@
+
+
+
+
+
+
+Network Working Group S. Kille
+Request for Comments 1148 University College London
+Updates: RFCs 822, 987, 1026, 1138 March 1990
+
+
+ Mapping between X.400(1988) / ISO 10021 and RFC 822
+
+Status of this Memo
+
+ This RFC suggests an electronic mail protocol mapping for the
+ Internet community and UK Academic Community, and requests discussion
+ and suggestions for improvements. This memo does not specify an
+ Internet standard. This edition includes material lost in editing.
+ Distribution of this memo is unlimited.
+
+ This document describes a set of mappings which will enable
+ interworking between systems operating the CCITT X.400 (1988)
+ Recommendations on Message Handling Systems / ISO IEC 10021 Message
+ Oriented Text Interchange Systems (MOTIS) [CCITT/ISO88a], and systems
+ using the RFC 822 mail protocol [Crocker82a] or protocols derived
+ from RFC 822. The approach aims to maximise the services offered
+ across the boundary, whilst not requiring unduly complex mappings.
+ The mappings should not require any changes to end systems.
+
+ This document is based on RFC 987 and RFC 1026 [Kille86a, Kille87a],
+ which define a similar mapping for X.400 (1984). This document does
+ not obsolete the earlier ones, as its domain of application is
+ different.
+
+Specification
+
+ This document specifies a mapping between two protocols. This
+ specification should be used when this mapping is performed on the
+ Internet or in the UK Academic Community. This specification may be
+ modified in the light of implementation experience, but no
+ substantial changes are expected.
+
+ Table of Contents
+
+ 1. Overview ............................................... 2
+ 1.1 X.400 ................................................. 2
+ 1.2 RFC 822 ............................................... 3
+ 1.3 The need for conversion ............................... 4
+ 1.4 General approach ...................................... 4
+ 1.5 Gatewaying Model ...................................... 5
+ 1.6 RFC 987 ............................................... 7
+ 1.7 Aspects not covered ................................... 8
+ 1.8 Subsetting ............................................ 9
+
+
+
+Kille [Page 1]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 1.9 Document Structure .................................... 9
+ 1.10 Acknowledgements ..................................... 10
+ 2. Service Elements ....................................... 10
+ 2.1 The Notion of Service Across a Gateway ................ 10
+ 2.2 RFC 822 ............................................... 11
+ 2.3 X.400 ................................................. 15
+ 3. Basic Mappings ........................................ 24
+ 3.1 Notation .............................................. 24
+ 3.2 ASCII and IA5 ......................................... 25
+ 3.3 Standard Types ........................................ 25
+ 3.4 Encoding ASCII in Printable String .................... 28
+ 4. Addressing ............................................. 29
+ 4.1 A textual representation of MTS.ORAddress ............. 30
+ 4.2 Basic Representation .................................. 30
+ 4.3 EBNF.822-address <-> MTS.ORAddress .................... 34
+ 4.4 Repeated Mappings ..................................... 43
+ 4.5 Directory Names ....................................... 45
+ 4.6 MTS Mappings .......................................... 45
+ 4.7 IPMS Mappings ....... ................................. 48
+ 5. Detailed Mappings ...................................... 52
+ 5.1 RFC 822 -> X.400 ...................................... 52
+ 5.2 Return of Contents .................................... 59
+ 5.3 X.400 -> RFC 822 ...................................... 60
+ Appendix A Differences with RFC 987 ....................... 79
+ 1. Introduction ........................................... 79
+ 2. Service Elements ....................................... 80
+ 3. Basic Mappings ......................................... 80
+ 4. Addressing ............................................. 80
+ 5. Detailed Mappings ...................................... 80
+ 6. Appendices ............................................. 81
+ Appendix B Mappings specific to the JNT Mail .............. 81
+ 1. Introduction ........................................... 81
+ 2. Domain Ordering ........................................ 81
+ 3. Acknowledge-To: ........................................ 81
+ 4. Trace .................................................. 82
+ 5. Timezone specification ................................. 82
+ 6. Lack of 822-MTS originator specification ............... 82
+ Appendix C Mappings specific to UUCP Mail ................. 83
+ Appendix D Object Identifier Assignment ................... 83
+ Appendix E BNF Summary .................................... 84
+ Appendix F Format of address mapping tables ............... 91
+ References ................................................. 92
+
+Chapter 1 -- Overview
+
+1.1. X.400
+
+ This document relates to the CCITT 1988 X.400 Series Recommendations
+
+
+
+Kille [Page 2]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ / ISO IEC 10021 on the Message Oriented Text Interchange Service
+ (MOTIS). This ISO/CCITT standard is referred to in this document as
+ "X.400", which is a convenient shorthand. Any reference to the 1984
+ CCITT Recommendations will be explicit. X.400 defines an
+ Interpersonal Messaging System (IPMS), making use of a store and
+ forward Message Transfer System. This document relates to the IPMS,
+ and not to wider application of X.400. It is expected that X.400
+ will be implemented very widely.
+
+1.2. RFC 822
+
+ RFC 822 is the current specification of the messaging standard on the
+ Internet. This standard evolved with the evolution of the network
+ from the ARPANET (created by the Defense Advanced Research Projects
+ Agency) to the Internet, which now involves over 1000 networks and is
+ sponsored by DARPA, NSF, DOE, NASA, and NIH. It specifies an end to
+ end message format. It is used in conjunction with a number of
+ different message transfer protocol environments.
+
+ SMTP Networks
+
+ On the Internet and other TCP/IP networks, RFC 822 is used in
+ conjunction with two other standards: RFC 821, also known as
+ Simple Mail Transfer Protocol (SMTP) [Postel82a], and RFC 1034
+ which is a Specification for domains and a distributed name
+ service [Mockapetris87a].
+
+ UUCP Networks
+
+ UUCP is the UNIX to UNIX CoPy protocol, which is usually used
+ over dialup telephone networks to provide a simple message
+ transfer mechanism. There are some extensions to RFC 822,
+ particularly in the addressing. They use domains which conform
+ to RFC 1034, but not the corresponding domain nameservers
+ [Horton86a].
+
+ Csnet
+
+ Some portions of Csnet follow the Internet protocols. The
+ dialup portion of Csnet uses the Phonenet protocols as a
+ replacement for RFC 821. This portion uses domains which
+ conform to RFC 1034, but not the corresponding domain
+ nameservers.
+
+ Bitnet
+
+ Some parts of Bitnet and related networks use RFC 822 related
+ protocols, with EBCDIC encoding.
+
+
+
+Kille [Page 3]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ JNT Mail Networks
+
+ A number of X.25 networks, particularly those associated with
+ the UK Academic Community, use the JNT (Joint Network Team)
+ Mail Protocol, also known as Greybook [Kille84a]. This is used
+ with domains and name service specified by the JNT NRS (Name
+ Registration Scheme) [Larmouth83a].
+
+ The mappings specified here are appropriate for all of these
+ networks.
+
+1.3. The need for conversion
+
+ There is a large community using RFC 822 based protocols for mail
+ services, who will wish to communicate with users of the IPMS
+ provided by X.400 systems. This will also be a requirement in cases
+ where communities intend to make a transition to use of an X.400
+ IPMS, as conversion will be needed to ensure a smooth service
+ transition. It is expected that there will be more than one gateway,
+ and this specification will enable them to behave in a consistent
+ manner. Note that the term gateway is used to describe a component
+ performing the protocol mappings between RFC 822 and X.400. This is
+ standard usage amongst mail implementors, but should be noted
+ carefully by transport and network service implementors.
+
+ Consistency between gateways is desirable to provide:
+
+ 1. Consistent service to users.
+
+ 2. The best service in cases where a message passes through
+ multiple gateways.
+
+1.4. General approach
+
+ There are a number of basic principles underlying the details of the
+ specification. These principles are goals, and are not achieved in
+ all aspects of the specification.
+
+ 1. The specification should be pragmatic. There should not be
+ a requirement for complex mappings for "Academic" reasons.
+ Complex mappings should not be required to support trivial
+ additional functionality.
+
+ 2. Subject to 1), functionality across a gateway should be as
+ high as possible.
+
+ 3. It is always a bad idea to lose information as a result of
+ any transformation. Hence, it is a bad idea for a gateway
+
+
+
+Kille [Page 4]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ to discard information in the objects it processes. This
+ includes requested services which cannot be fully mapped.
+
+ 4. All mail gateways actually operate at exactly one level
+ above the layer on which they conceptually operate. This
+ implies that the gateway must not only be cognisant of the
+ semantics of objects at the gateway level, but also be
+ cognisant of higher level semantics. If meaningful
+ transformation of the objects that the gateway operates on
+ is to occur, then the gateway needs to understand more than
+ the objects themselves.
+
+ 5. The specification should be reversible. That is, a double
+ transformation should bring you back to where you started.
+
+1.5. Gatewaying Model
+
+1.5.1. X.400
+
+ X.400 defines the IPMS Abstract Service in X.420/ISO 10021-7,
+ [CCITT/ISO88b] which comprises of three basic services:
+
+ 1. Origination
+
+ 2. Reception
+
+ 3. Management
+
+ Management is a local interaction between the user and the IPMS, and
+ is therefore not relevant to gatewaying. The first two services
+ consist of operations to originate and receive the following two
+ objects:
+
+ 1. IPM (Interpersonal Message). This has two components: a
+ heading, and a body. The body is structured as a sequence
+ of body parts, which may be basic components (e.g., IA5
+ text, or G3 fax), or IP Messages. The heading consists of
+ fields containing end to end user information, such as
+ subject, primary recipients (To:), and importance.
+
+ 2. IPN (Inter Personal Notification). A notification about
+ receipt of a given IPM at the UA level.
+
+ The Origination service also allows for origination of a probe, which
+ is an object to test whether a given IPM could be correctly received.
+
+ The Reception service also allows for receipt of Delivery Reports
+ (DR), which indicate delivery success or failure.
+
+
+
+Kille [Page 5]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ These IPMS Services utilise the Message Transfer (MT) Abstract
+ Service [CCITT/ISO88c]. The MT Abstract Service provides the
+ following three basic services:
+
+ 1. Submission (used by IPMS Origination)
+
+ 2. Delivery (used by IPMS Reception)
+
+ 3. Administration (used by IPMS Management)
+
+ Administration is a local issue, and so does not affect this
+ standard. Submission and delivery relate primarily to the MTS
+ Message (comprising Envelope and Content), which carries an IPM or
+ IPN (or other uninterpreted contents). There is also an Envelope,
+ which includes an ID, an originator, and a list of recipients.
+ Submission also includes the probe service, which supports the IPMS
+ Probe. Delivery also includes Reports, which indicate whether a
+ given MTS Message has been delivered or not.
+
+ The MTS is REFINED into the MTA (Message Transfer Agent) Service,
+ which define the interaction between MTAs, along with the procedures
+ for distributed operation. This service provides for transfer of MTS
+ Messages, Probes, and Reports.
+
+1.5.2. RFC 822
+
+ RFC 822 is based on the assumption that there is an underlying
+ service, which is here called the 822-MTS service. The 822-MTS
+ service provides three basic functions:
+
+ 1. Identification of a list of recipients.
+
+ 2. Identification of an error return address.
+
+ 3. Transfer of an RFC 822 message.
+
+ It is possible to achieve 2) within the RFC 822 header. Some 822-MTS
+ protocols, in particular SMTP, can provide additional functionality,
+ but as these are neither mandatory in SMTP, nor available in other
+ 822-MTS protocols, they are not considered here. Details of aspects
+ specific to two 822-MTS protocols are given in Appendices B and C.
+ An RFC 822 message consists of a header, and content which is
+ uninterpreted ASCII text. The header is divided into fields, which
+ are the protocol elements. Most of these fields are analogous to P2
+ heading fields, although some are analogous to MTS Service Elements
+ or MTA Service Elements.
+
+
+
+
+
+Kille [Page 6]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+1.5.3. The Gateway
+
+ Given this functional description of the two services, the functional
+ nature of a gateway can now be considered. It would be elegant to
+ consider the 822-MTS service mapping onto the MTS Service Elements
+ and RFC 822 mapping onto an IPM, but reality just does not fit.
+ Another elegant approach would be to treat this document as the
+ definition of an X.400 Access Unit (AU). Again, reality does not
+ fit. It is necessary to consider that the IPM format definition, the
+ IPMS Service Elements, the MTS Service Elements, and MTA Service
+ Elements on one side are mapped into RFC 822 + 822-MTS on the other
+ in a slightly tangled manner. The details of the tangle will be made
+ clear in Chapter 5. Access to the MTA Service Elements is minimised.
+
+ The following basic mappings are thus defined. When going from RFC
+ 822 to X.400, an RFC 822 message and the associated 822-MTS
+ information is always mapped into an IPM (MTA, MTS, and IPMS
+ Services). Going from X.400 to RFC 822, an RFC 822 message and the
+ associated 822-MTS information may be derived from:
+
+ 1. A Report (MTA, and MTS Services)
+
+ 2. An IPN (MTA, MTS, and IPMS Services)
+
+ 3. An IPM (MTA, MTS, and IPMS Services)
+
+ Probes (MTA Service) must be processed by the gateway, as discussed
+ in Chapter 5. MTS Messages containing Content Types other than those
+ defined by the IPMS are not mapped by the gateway, and should be
+ rejected at the gateway.
+
+1.5.4. Repeated Mappings
+
+ The mappings specified here are designed to work where a message
+ traverses multiple times between X.400 and RFC 822. This is often
+ essential, particularly in the case of distribution lists. However,
+ in general, this will lead to a level of service which is the lowest
+ common denominator (approximately the services offered by RFC 822).
+ In particular, there is no expectation of additional X.400 services
+ being mapped - although this may be possible in some cases.
+
+1.6. RFC 987
+
+ Much of this work is based on the initial specification of RFC 987
+ and in its addendum RFC 1026. A basic decision is that the mapping
+ will be to the full 1988 version of X.400, and not to a 1984
+ compatible subset. This is important, to give good support to
+ communities which will utilise full X.400 at an early date. This has
+
+
+
+Kille [Page 7]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ the following implications:
+
+ - This document does not obsolete RFC 987, as it has a
+ different domain of application.
+
+ - If a gatewayed message is being transferred to a 1984
+ system, then RFC 987 should be used. If the X.400 side of
+ the gateway is a 1988 system, then it should be operated in
+ 1984 compatibility mode. There is no advantage and some
+ disadvantage in using the new mapping, and later on applying
+ X.400 downgrading rules. Note that in an environment where
+ RFC 822 is of major importance, it may be desirable for
+ downgrading to consider the case where the message was
+ originated in an RFC 822 system, and mapped according to
+ this specification.
+
+ - New features of X.400 can be used to provide a much cleaner
+ mapping than that defined in RFC 987.
+
+ Unnecessary change is usually a bad idea. Changes on the RFC 822
+ side are avoided as far as possible, so that RFC 822 users do not see
+ arbitrary differences between systems conforming to this
+ specification, and those following RFC 987. Changes on the X.400
+ side are minimised, but are more acceptable, due to the mapping onto
+ a new set of services and protocols.
+
+ A summary of changes made is given in Appendix A.
+
+1.7. Aspects not covered
+
+ There have been a number of cases where RFC 987 was used in a manner
+ which was not intended. This section is to make clear some
+ limitations of scope. In particular, this specification does not
+ specify:
+
+ - Extensions of RFC 822 to provide access to all X.400
+ services
+
+ - X.400 user interface definition
+
+ These are really coupled. To map the X.400 services, this
+ specification defines a number of extensions to RFC 822. As a side
+ effect, these give the 822 user access to SOME X.400 services.
+ However, the aim on the RFC 822 side is to preserve current service,
+ and it is intentional that access is not given to all X.400 services.
+ Thus, it will be a poor choice for X.400 implementors to use RFC
+ 987(88) as an interface - there are too many aspects of X.400 which
+ cannot be accessed through it. If a text interface is desired, a
+
+
+
+Kille [Page 8]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ specification targeted at X.400, without RFC 822 restrictions, would
+ be more appropriate.
+
+1.8. Subsetting
+
+ This proposal specifies a mapping which is appropriate to preserve
+ services in existing RFC 822 communities. Implementations and
+ specifications which subset this specification are strongly
+ discouraged.
+
+1.9. Document Structure
+
+ This document has five chapters:
+
+ 1. Overview - this chapter.
+
+ 2. Service Elements - This describes the (end user) services
+ mapped by a gateway.
+
+ 3. Basic mappings - This describes some basic notation used in
+ Chapters 3-5, the mappings between character sets, and some
+ fundamental protocol elements.
+
+ 4. Addressing - This considers the mapping between X.400 O/R
+ names and RFC 822 addresses, which is a fundamental gateway
+ component.
+
+ 5. Detailed Mappings - This describes the details of all other
+ mappings.
+
+ There are also six appendices:
+
+ A. Differences with RFC 987
+
+ B. Mappings Specific to JNT Mail
+
+ C. Mappings Specific to UUCP Mail
+
+ D. Object Identifier Assignment
+
+ E. BNF Summary
+
+ F. Format of Address Tables
+
+ WARNING:
+
+ THE REMAINDER OF THIS SPECIFICATION IS TECHNICALLY DETAILED.
+ IT WILL NOT MAKE SENSE, EXCEPT IN THE CONTEXT OF RFC 822 AND
+
+
+
+Kille [Page 9]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ X.400 (1988). DO NOT ATTEMPT TO READ THIS DOCUMENT UNLESS
+ YOU ARE FAMILIAR WITH THESE SPECIFICATIONS.
+
+1.10. Acknowledgements
+
+ This work was partly sponsored by the Joint Network Team. The
+ workshop at UCL in June 1989 to work on this specification was also
+ an IFIP WG 6.5 meeting.
+
+ The work in this specification was substantially based on RFC 987,
+ which had input from many people.
+
+ Useful comments and suggestions were made by Pete Cowen (Nottingham
+ Univ), Jim Craigie (JNT), Christian Huitema (Inria), Peter Lynch
+ (Prime), Julian Onions (Nottingham Univ), Sandy Shaw (Edinburgh
+ Univ), Einar Stefferud (NMA), and Peter Sylvester (GMD).
+
+Chapter 2 -- Service Elements
+
+ This chapter considers the services offered across a gateway built
+ according to this specification. It gives a view of the
+ functionality provided by such a gateway for communication with users
+ in the opposite domain. This chapter considers service mappings in
+ the context of SINGLE transfers only, and not repeated mappings
+ through multiple gateways.
+
+2.1. The Notion of Service Across a Gateway
+
+ RFC 822 and X.400 provide a number of services to the end user. This
+ chapter describes the extent to which each service can be supported
+ across an X.400 <-> RFC 822 gateway. The cases considered are single
+ transfers across such a gateway, although the problems of multiple
+ crossings are noted where appropriate.
+
+2.1.1. Origination of Messages
+
+ When a user originates a message, a number of services are available.
+ Some of these imply actions (e.g., delivery to a recipient), and some
+ are insertion of known data (e.g., specification of a subject field).
+ This chapter describes, for each offered service, to what extent it
+ is supported for a recipient accessed through a gateway. There are
+ three levels of support:
+
+ Supported
+ The corresponding protocol elements map well, and so the
+ service can be fully provided.
+
+
+
+
+
+Kille [Page 10]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Not Supported
+ The service cannot be provided, as there is a complete
+ mismatch.
+
+ Partial Support
+ The service can be partially fulfilled.
+
+ In the first two cases, the service is simply marked as "Supported"
+ or "Not Supported". Some explanation may be given if there are
+ additional implications, or the (non) support is not intuitive. For
+ partial support, the level of partial support is summarised. Where
+ partial support is good, this will be described by a phrase such as
+ "Supported by use of.....". A common case of this is where the
+ service is mapped onto a non- standard service on the other side of
+ the gateway, and this would have lead to support if it had been a
+ standard service. In many cases, this is equivalent to support. For
+ partial support, an indication of the mechanism is given, in order to
+ give a feel for the level of support provided. Note that this is not
+ a replacement for Chapter 5, where the mapping is fully specified.
+
+ If a service is described as supported, this implies:
+
+ - Semantic correspondence.
+
+ - No (significant) loss of information.
+
+ - Any actions required by the service element.
+
+ An example of a service gaining full support: If an RFC 822
+ originator specifies a Subject: field, this is considered to be
+ supported, as an X.400 recipient will get a subject indication.
+
+ All RFC 822 services are supported or partially supported for
+ origination. The implications of non-supported X.400 services is
+ described under X.400.
+
+2.1.2. Reception of Messages
+
+ For reception, the list of service elements required to support this
+ mapping is specified. This is really an indication of what a
+ recipient might expect to see in a message which has been remotely
+ originated.
+
+2.2. RFC 822
+
+ RFC 822 does not explicitly define service elements, as distinct from
+ protocol elements. However, all of the RFC 822 header fields, with
+ the exception of trace, can be regarded as corresponding to implicit
+
+
+
+Kille [Page 11]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ RFC 822 service elements.
+
+2.2.1. Origination in RFC 822
+
+ A mechanism of mapping, used in several cases, is to map the RFC 822
+ header into a heading extension in the IPM (InterPersonal Message).
+ This can be regarded as partial support, as it makes the information
+ available to any X.400 implementations which are interested in these
+ services. Communities which require significant RFC 822 interworking
+ should require that their X.400 User Agents are able to display these
+ heading extensions. Support for the various service elements
+ (headers) is now listed.
+
+ Date:
+ Supported.
+
+ From:
+ Supported. For messages where there is also a sender field,
+ the mapping is to "Authorising Users Indication", which has
+ subtly different semantics to the general RFC 822 usage of
+ From:.
+
+ Sender:
+ Supported.
+
+ Reply-To:
+ Supported.
+
+ To: Supported.
+
+ Cc: Supported.
+
+ Bcc: Supported.
+
+ Message-Id:
+ Supported.
+
+ In-Reply-To:
+ Supported, for a single reference. Where multiple
+ references are given, partial support is given by mapping to
+ "Cross Referencing Indication". This gives similar
+ semantics.
+
+ References:
+ Supported.
+
+ Keywords:
+ Supported by use of a heading extension.
+
+
+
+Kille [Page 12]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Subject:
+ Supported.
+
+ Comments:
+ Supported by use of an extra body part.
+
+ Encrypted:
+ Supported by use of a heading extension.
+
+ Resent-*
+ Supported by use of a heading extension. Note that
+ addresses in these fields are mapped onto text, and so are
+ not accessible to the X.400 user as addresses. In
+ principle, fuller support would be possible by mapping onto
+ a forwarded IP Message, but this is not suggested.
+
+ Other Fields
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g., "Fruit-of-the-day:") are supported by use of
+ heading extensions.
+
+2.2.2. Reception by RFC 822
+
+ This considers reception by an RFC 822 User Agent of a message
+ originated in an X.400 system and transferred across a gateway. The
+ following standard services (headers) may be present in such a
+ message:
+
+ Date:
+
+ From:
+
+ Sender:
+
+ Reply-To:
+
+ To:
+
+ Cc:
+
+ Bcc:
+
+ Message-Id:
+
+ In-Reply-To:
+
+ References:
+
+
+
+
+Kille [Page 13]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Subject:
+
+ The following non-standard services (headers) may be present. These
+ are defined in more detail in Chapter 5 (5.3.4, 5.3.6, 5.3.7):
+
+ Autoforwarded:
+
+ Content-Identifier:
+
+ Conversion:
+
+ Conversion-With-Loss:
+
+ Delivery-Date:
+
+ Discarded-X400-IPMS-Extensions:
+
+ Discarded-X400-MTS-Extensions:
+
+ DL-Expansion-History:
+
+ Deferred-Delivery:
+
+ Expiry-Date:
+
+ Importance:
+
+ Incomplete-Copy:
+
+ Language:
+
+ Latest-Delivery-Time:
+
+ Message-Type:
+
+ Obsoletes:
+
+ Original-Encoded-Information-Types:
+
+ Originator-Return-Address:
+
+ Priority:
+
+ Redirection-History:
+
+ Reply-By:
+
+ Requested-Delivery-Method:
+
+
+
+Kille [Page 14]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Sensitivity:
+
+ X400-Content-Type:
+
+ X400-MTS-Identifier:
+
+ X400-Originator:
+
+ X400-Received:
+
+ X400-Recipients:
+
+2.3. X.400
+
+2.3.1. Origination in X.400
+
+ When mapping services from X.400 to RFC 822 which are not supported
+ by RFC 822, new RFC 822 headers are defined. It is intended that
+ these fields will be registered, and that co-operating RFC 822
+ systems may use them. Where these new fields are used, and no system
+ action is implied, the service can be regarded as being partially
+ supported. Chapter 5 describes how to map X.400 services onto these
+ new headers. Other elements are provided, in part, by the gateway as
+ they cannot be provided by RFC 822.
+
+ Some service elements are marked N/A (not applicable). There are
+ five cases, which are marked with different comments:
+
+ N/A (local)
+ These elements are only applicable to User Agent / Message
+ Transfer Agent interaction and so they cannot apply to RFC
+ 822 recipients.
+
+ N/A (PDAU)
+ These service elements are only applicable where the
+ recipient is reached by use of a Physical Delivery Access
+ Unit (PDAU), and so do not need to be mapped by the gateway.
+
+ N/A (reception)
+ These services are only applicable for reception.
+
+ N/A (prior)
+ If requested, this service must be performed prior to the
+ gateway.
+
+
+
+
+
+
+
+Kille [Page 15]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ N/A (MS)
+ These services are only applicable to Message Store (i.e., a
+ local service).
+
+ Finally, some service elements are not supported. In particular, the
+ new security services are not mapped onto RFC 822. Unless otherwise
+ indicated, the behaviour of service elements marked as not supported
+ will depend on the criticality marking supplied by the user. If the
+ element is marked as critical for transfer or delivery, a non-
+ delivery notification will be generated. Otherwise, the service
+ request will be ignored.
+
+2.3.1.1. Basic Interpersonal Messaging Service
+
+ These are the mandatory IPM services as listed in Section 19.8 of
+ X.400 / ISO/IEC 10021-1, listed here in the order given. Section
+ 19.8 has cross references to short definitions of each service.
+
+ Access management
+ N/A (local).
+
+ Content Type Indication
+ Supported by a new RFC 822 header (Content-Type:).
+
+ Converted Indication
+ Supported by a new RFC 822 header (X400-Received:).
+
+ Delivery Time Stamp Indication
+ N/A (reception).
+
+ IP Message Identification
+ Supported.
+
+ Message Identification
+ Supported, by use of a new RFC 822 header
+ (X400-MTS-Identifier). This new header is required, as
+ X.400 has two message-ids whereas RFC 822 has only one (see
+ previous service).
+
+ Non-delivery Notification
+ Not supported, although in general an RFC 822 system will
+ return error reports by use of IP messages. In other
+ service elements, this pragmatic result can be treated as
+ effective support of this service element.
+
+ Original Encoded Information Types Indication
+ Supported as a new RFC 822 header
+ (Original-Encoded-Information-Types:).
+
+
+
+Kille [Page 16]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Submission Time Stamp Indication
+ Supported.
+
+ Typed Body
+ Some types supported. IA5 is fully supported.
+ ForwardedIPMessage is supported, with some loss of
+ information. Other types get some measure of support,
+ dependent on X.400 facilities for conversion to IA5. This
+ will only be done where content conversion is not
+ prohibited.
+
+ User Capabilities Registration
+ N/A (local).
+
+2.3.1.2. IPM Service Optional User Facilities
+
+ This section describes support for the optional (user selectable) IPM
+ services as listed in Section 19.9 of X.400 / ISO/IEC 10021- 1,
+ listed here in the order given. Section 19.9 has cross references to
+ short definitions of each service.
+
+ Additional Physical Rendition
+ N/A (PDAU).
+
+ Alternate Recipient Allowed
+ Not supported. There is no RFC 822 service equivalent to
+ prohibition of alternate recipient assignment (e.g., an RFC
+ 822 system may freely send an undeliverable message to a
+ local postmaster). Thus, the gateway cannot prevent
+ assignment of alternative recipients on the RFC 822 side.
+ This service really means giving the user control as to
+ whether or not an alternate recipient is allowed. This
+ specification requires transfer of messages to RFC 822
+ irrespective of this service request, and so this service is
+ not supported.
+
+ Authorising User's Indication
+ Supported.
+
+ Auto-forwarded Indication
+ Supported as new RFC 822 header (Auto-Forwarded:).
+
+ Basic Physical Rendition
+ N/A (PDAU).
+
+ Blind Copy Recipient Indication
+ Supported.
+
+
+
+
+Kille [Page 17]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Body Part Encryption Indication
+ Supported by use of a new RFC 822 header
+ (Original-Encoded-Information-Types:), although in most
+ cases it will not be possible to map the body part in
+ question.
+
+ Content Confidentiality
+ Not supported.
+
+ Content Integrity
+ Not supported.
+
+ Conversion Prohibition
+ Supported. In this case, only messages with IA5 body parts,
+ other body parts which contain only IA5, and Forwarded IP
+ Messages (subject recursively to the same restrictions),
+ will be mapped.
+
+ Conversion Prohibition in Case of Loss of Information
+ Supported.
+
+ Counter Collection
+ N/A (PDAU).
+
+ Counter Collection with Advice
+ N/A (PDAU).
+
+ Cross Referencing Indication
+ Supported.
+
+ Deferred Delivery
+ N/A (prior). This service should always be provided by the
+ MTS prior to the gateway. A new RFC 822 header
+ (Deferred-Delivery:) is provided to transfer information on
+ this service to the recipient.
+
+ Deferred Delivery Cancellation
+ N/A (local).
+
+ Delivery Notification
+ Supported. This is performed at the gateway. Thus, a
+ notification is sent by the gateway to the originator. If
+ the 822-MTS protocol is JNT Mail, a notification may also be
+ sent by the recipient UA.
+
+ Delivery via Bureaufax Service
+ N/A (PDAU).
+
+
+
+
+Kille [Page 18]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Designation of Recipient by Directory Name
+ N/A (local).
+
+ Disclosure of Other Recipients
+ Supported by use of a new RFC 822 header (X400-Recipients:).
+ This is descriptive information for the RFC 822 recipient,
+ and is not reverse mappable.
+
+ DL Expansion History Indication
+ Supported by use of a new RFC 822 header
+ (DL-Expansion-History:).
+
+ DL Expansion Prohibited
+ Distribution List means MTS supported distribution list, in
+ the manner of X.400. This service does not exist in the RFC
+ 822 world. RFC 822 distribution lists should be regarded as
+ an informal redistribution mechanism, beyond the scope of
+ this control. Messages will be sent to RFC 822,
+ irrespective of whether this service is requested.
+ Theoretically therefore, this service is supported, although
+ in practice it may appear that it is not supported.
+
+ Express Mail Service
+ N/A (PDAU).
+
+ Expiry Date Indication
+ Supported as new RFC 822 header (Expiry-Date:). In general,
+ no automatic action can be expected.
+
+ Explicit Conversion
+ N/A (prior).
+
+ Forwarded IP Message Indication
+ Supported, with some loss of information. The message is
+ forwarded in an RFC 822 body, and so can only be interpreted
+ visually.
+
+ Grade of Delivery Selection
+ N/A (PDAU)
+
+ Importance Indication
+ Supported as new RFC 822 header (Importance:).
+
+ Incomplete Copy Indication
+ Supported as new RFC 822 header (Incomplete-Copy:).
+
+ Language Indication
+ Supported as new RFC 822 header (Language:).
+
+
+
+Kille [Page 19]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Latest Delivery Designation
+ Not supported. A new RFC 822 header (Latest-Delivery-Time:)
+ is provided, which may be used by the recipient.
+
+ Message Flow Confidentiality
+ Not supported.
+
+ Message Origin Authentication
+ N/A (reception).
+
+ Message Security Labelling
+ Not supported.
+
+ Message Sequence Integrity
+ Not supported.
+
+ Multi-Destination Delivery
+ Supported.
+
+ Multi-part Body
+ Supported, with some loss of information, in that the
+ structuring cannot be formalised in RFC 822.
+
+ Non Receipt Notification Request
+ Not supported.
+
+ Non Repudiation of Delivery
+ Not supported.
+
+ Non Repudiation of Origin
+ N/A (reception).
+
+ Non Repudiation of Submission
+ N/A (local).
+
+ Obsoleting Indication
+ Supported as new RFC 822 header (Obsoletes:).
+
+ Ordinary Mail
+ N/A (PDAU).
+
+ Originator Indication
+ Supported.
+
+ Originator Requested Alternate Recipient
+ Not supported, but is placed as comment next to address
+ (X400-Recipients:).
+
+
+
+
+Kille [Page 20]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Physical Delivery Notification by MHS
+ N/A (PDAU).
+
+ Physical Delivery Notification by PDS
+ N/A (PDAU).
+
+ Physical Forwarding Allowed
+ Supported by use of a comment in a new RFC 822 header
+ (X400-Recipients:), associated with the recipient in
+ question.
+
+ Physical Forwarding Prohibited
+ Supported by use of a comment in a new RFC 822 header
+ (X400-Recipients:), associated with the recipient in
+ question.
+
+ Prevention of Non-delivery notification
+ Supported, as delivery notifications cannot be generated by
+ RFC 822. In practice, errors will be returned as IP
+ Messages, and so this service may appear not to be supported
+ (see Non-delivery Notification).
+
+ Primary and Copy Recipients Indication
+ Supported.
+
+ Probe
+ Supported at the gateway (i.e., the gateway services the
+ probe).
+
+ Probe Origin Authentication
+ N/A (reception).
+
+ Proof of Delivery
+ Not supported.
+
+ Proof of Submission
+ N/A (local).
+
+ Receipt Notification Request Indication
+ Not supported.
+
+ Redirection Allowed by Originator
+ Redirection means MTS supported redirection, in the manner
+ of X.400. This service does not exist in the RFC 822 world.
+ RFC 822 redirection (e.g., aliasing) should be regarded as
+ an informal redirection mechanism, beyond the scope of this
+ control. Messages will be sent to RFC 822, irrespective of
+ whether this service is requested. Theoretically therefore,
+
+
+
+Kille [Page 21]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ this service is supported, although in practice it may
+ appear that it is not supported.
+
+ Registered Mail
+ N/A (PDAU).
+
+ Registered Mail to Addressee in Person
+ N/A (PDAU).
+
+ Reply Request Indication
+ Supported as comment next to address.
+
+ Replying IP Message Indication
+ Supported.
+
+ Report Origin Authentication
+ N/A (reception).
+
+ Request for Forwarding Address
+ N/A (PDAU).
+
+ Requested Delivery Method
+ N/A (local). The services required must be dealt with at
+ submission time. Any such request is made available through
+ the gateway by use of a comment associated with the
+ recipient in question.
+
+ Return of Content
+ In principle, this is N/A, as non-delivery notifications are
+ not supported. In practice, most RFC 822 systems will
+ return part or all of the content along with the IP Message
+ indicating an error (see Non-delivery Notification).
+
+ Sensitivity Indication
+ Supported as new RFC 822 header (Sensitivity:).
+
+ Special Delivery
+ N/A (PDAU).
+
+ Stored Message Deletion
+ N/A (MS).
+
+ Stored Message Fetching
+ N/A (MS).
+
+ Stored Message Listing
+ N/A (MS).
+
+
+
+
+Kille [Page 22]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Stored Message Summary
+ N/A (MS).
+
+ Subject Indication
+ Supported.
+
+ Undeliverable Mail with Return of Physical Message
+ N/A (PDAU).
+
+ Use of Distribution List
+ In principle this applies only to X.400 supported
+ distribution lists (see DL Expansion Prohibited).
+ Theoretically, this service is N/A (prior). In practice,
+ because of informal RFC 822 lists, this service can be
+ regarded as supported.
+
+2.3.2. Reception by X.400
+
+2.3.2.1. Standard Mandatory Services
+
+ The following standard IPM mandatory user facilities may be required
+ for reception of RFC 822 originated mail by an X.400 UA.
+
+ Content Type Indication
+
+ Delivery Time Stamp Indication
+
+ IP Message Identification
+
+ Message Identification
+
+ Non-delivery Notification
+
+ Original Encoded Information Types Indication
+
+ Submission Time Stamp Indication
+
+ Typed Body
+
+2.3.2.2. Standard Optional Services
+
+ The following standard IPM optional user facilities may be required
+ for reception of RFC 822 originated mail by an X.400 UA.
+
+ Authorising User's Indication
+
+ Blind Copy Recipient Indication
+
+
+
+
+Kille [Page 23]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Cross Referencing Indication
+
+ Originator Indication
+
+ Primary and Copy Recipients Indication
+
+ Replying IP Message Indication
+
+ Subject Indication
+
+2.3.2.3. New Services
+
+ A new service "RFC 822 Header Field" is defined using the extension
+ facilities. This allows for any RFC 822 header field to be
+ represented. It may be present in RFC 822 originated messages, which
+ are received by an X.400 UA.
+
+Chapter 3 -- Basic Mappings
+
+3.1. Notation
+
+ The X.400 protocols are encoded in a structured manner according to
+ ASN.1, whereas RFC 822 is text encoded. To define a detailed
+ mapping, it is necessary to refer to detailed protocol elements in
+ each format. A notation to achieve this is described in this
+ section.
+
+3.1.1. RFC 822
+
+ Structured text is defined according to the Extended Backus Naur Form
+ (EBNF) defined in Section 2 of RFC 822 [Crocker82a]. In the EBNF
+ definitions used in this specification, the syntax rules given in
+ Appendix D of RFC 822 are assumed. When these EBNF tokens are
+ referred to outside an EBNF definition, they are identified by the
+ string "822." appended to the beginning of the string (e.g.,
+ 822.addr-spec). Additional syntax rules, to be used throughout this
+ specification, are defined in this chapter.
+
+ The EBNF is used in two ways.
+
+ 1. To describe components of RFC 822 messages (or of 822-MTS
+ components). In this case, the lexical analysis defined in
+ Section 3 of RFC 822 should be used. When these new EBNF
+ tokens are referred to outside an EBNF definition, they are
+ identified by the string "EBNF." appended to the beginning
+ of the string (e.g., EBNF.bilateral-info).
+
+ 2. To describe the structure of IA5 or ASCII information not in
+
+
+
+Kille [Page 24]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ an RFC 822 message. In these cases, tokens will either be
+ self delimiting, or be delimited by self delimiting tokens.
+ Comments and LWSP are not used as delimiters.
+
+3.1.2. ASN.1
+
+ An element is referred to with the following syntax, defined in EBNF:
+
+ element = service "." definition *( "." definition )
+ service = "IPMS" / "MTS" / "MTA"
+ definition = identifier / context
+ identifier = ALPHA *< ALPHA or DIGIT or "-" >
+ context = "[" 1*DIGIT "]"
+
+ The EBNF.service keys are shorthand for the following service
+ specifications:
+
+ IPMS IPMSInformationObjects defined in Annex E of X.420 / ISO
+ 10021-7.
+
+ MTS MTSAbstractService defined in Section 9 of X.411 / ISO
+ 10021-4.
+
+ MTA MTAAbstractService defined in Section 13 of X.411 / ISO
+ 10021-4.
+
+ The first EBNF.identifier identifies a type or value key in the
+ context of the defined service specification. Subsequent
+ EBNF.identifiers identify a value label or type in the context of the
+ first identifier (SET or SEQUENCE). EBNF.context indicates a context
+ tag, and is used where there is no label or type to uniquely identify
+ a component. The special EBNF.identifier keyword "value" is used to
+ denote an element of a sequence.
+
+ For example, IPMS.Heading.subject defines the subject element of the
+ IPMS heading. The same syntax is also used to refer to element
+ values. For example, MTS.EncodedInformationTypes.[0].g3Fax refers to
+ a value of MTS.EncodedInformationTypes.[0].
+
+3.2. ASCII and IA5
+
+ A gateway will interpret all IA5 as ASCII. Thus, mapping between
+ these forms is conceptual.
+
+3.3. Standard Types
+
+ There is a need to convert between ASCII text, and some of the types
+ defined in ASN.1 [CCITT/ISO88d]. For each case, an EBNF syntax
+
+
+
+Kille [Page 25]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ definition is given, for use in all of this specification, which
+ leads to a mapping between ASN.1, and an EBNF construct.
+
+ All EBNF syntax definitions of ASN.1 types are in lower case, whereas
+ ASN.1 types are referred to with the first letter in upper case.
+ Except as noted, all mappings are symmetrical.
+
+3.3.1. Boolean
+
+ Boolean is encoded as:
+
+ boolean = "TRUE" / "FALSE"
+
+3.3.2. NumericString
+
+ NumericString is encoded as:
+
+ numericstring = *DIGIT
+
+3.3.3. PrintableString
+
+ PrintableString is a restricted IA5String defined as:
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+ This can be used to represent real printable strings in EBNF.
+
+3.3.4. T.61String
+
+ In cases where T.61 strings are only used for conveying human
+ interpreted information, the aim of a mapping should be to render the
+ characters appropriately in the remote character set, rather than to
+ maximise reversibility. For these cases, the mappings to IA5 defined
+ in CCITT Recommendation X.408 (1988) should be used [CCITT/ISO88a].
+ These will then be encoded in ASCII.
+
+ There is also a need to represent Teletex Strings in ASCII, for some
+ aspects of O/R Address. For these, the following encoding is used:
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+ Common characters are mapped simply. Other octets are mapped using a
+
+
+
+Kille [Page 26]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ quoting mechanism similar to the printable string mechanism. Each
+ octet is represented as 3 decimal digits.
+
+ There are a number of places where a string may have a Teletex and/or
+ Printable String representation. The following BNF is used to
+ represent this.
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+ The natural mapping is restricted to EBNF.ps-char, in order to make
+ the full BNF easier to parse.
+
+3.3.5. UTCTime
+
+ Both UTCTime and the RFC 822 822.date-time syntax contain: Year
+ (lowest two digits), Month, Day of Month, hour, minute, second
+ (optional), and Timezone. 822.date-time also contains an optional
+ day of the week, but this is redundant. Therefore a symmetrical
+ mapping can be made between these constructs.
+
+ Note:
+ In practice, a gateway will need to parse various illegal
+ variants on 822.date-time. In cases where 822.date-time
+ cannot be parsed, it is recommended that the derived UTCTime
+ is set to the value at the time of translation.
+
+ The UTCTime format which specifies the timezone offset should be
+ used.
+
+3.3.6. Integer
+
+ A basic ASN.1 Integer will be mapped onto EBNF.numericstring. In many
+ cases ASN.1 will enumerate Integer values or use ENUMERATED. An EBNF
+ encoding labelled-integer is provided. When mapping from EBNF to
+ ASN.1, only the integer value is mapped, and the associated text is
+ discarded. When mapping from ASN.1 to EBNF, addition of an
+ appropriate text label is strongly encouraged.
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 1-9, and "-">
+
+3.3.7. Object Identifier
+
+ Object identifiers are represented in a form similar to that
+ given in ASN.1. The numbers are mandatory, to ease encoding.
+ It is recommended that as many strings as possible are used, to
+
+
+
+Kille [Page 27]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ facilitate user recognition.
+
+ object-identifier ::= [ defined-value ] oid-comp-list
+
+ oid-comp-list ::= oid-comp oid-comp-list
+ | oid-comp
+
+ defined-value ::= key-string
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+3.4. Encoding ASCII in Printable String
+
+ Some information in RFC 822 is represented in ASCII, and needs to be
+ mapped into X.400 elements encoded as printable string. For this
+ reason, a mechanism to represent ASCII encoded as PrintableString is
+ needed.
+
+ A structured subset of EBNF.printablestring is now defined. This can
+ be used to encode ASCII in the PrintableString character set.
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+ The 822.3DIGIT in EBNF.ps-encoded-char must have range 0-127, and is
+ interpreted in decimal as the corresponding ASCII character. Special
+ encodings are given for: at sign (@), percent (%), exclamation
+ mark/bang (!), double quote ("), underscore (_), left bracket ((),
+ and right bracket ()). These characters, with the exception of round
+ brackets, are not included in PrintableString, but are common in RFC
+ 822 addresses. The abbreviations will ease specification of RFC 822
+ addresses from an X.400 system. These special encodings should be
+ mapped in a case insensitive manner, but always be generated in lower
+ case.
+
+ A reversible mapping between PrintableString and ASCII can now be
+ defined. The reversibility means that some values of printable
+ string (containing round braces) cannot be generated from ASCII.
+ Therefore, this mapping must only be used in cases where the
+ printable strings may only be derived from ASCII (and will therefore
+ have a restricted domain). For example, in this specification, it is
+
+
+
+Kille [Page 28]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ only applied to a Domain defined attribute which will have been
+ generated by use of this specification and a value such as "(" would
+ not be possible.
+
+ To encode ASCII as PrintableString, the EBNF.ps-encoded syntax is
+ used, with all EBNF.ps-restricted-char mapped directly. All other
+ 822.CHAR are encoded as EBNF.ps-encoded-char.
+
+ To encode PrintableString as ASCII, parse PrintableString as
+ EBNF.ps-encoded, and then reverse the previous mapping. If the
+ PrintableString cannot be parsed, then the mapping is being applied
+ in to an inappropriate value, and an error should be given to the
+ procedure doing the mapping. In some cases, it may be preferable to
+ pass the printable string through unaltered.
+
+ Some examples are now given. Note the arrows which indicate
+ asymmetrical mappings:
+
+ PrintableString ASCII
+
+ 'a demo.' <-> 'a demo.'
+ foo(a)bar <-> foo@bar
+ (q)(u)(p)(q) <-> "_%"
+ (a) <-> @
+ (A) <-> @
+ (l)a(r) <-> (a)
+ (126) <-> ~
+ ( -> (
+ (l) <-> (
+
+Chapter 4 -- Addressing
+
+ Addressing is probably the trickiest problem of an X.400 <-> RFC 822
+ gateway. Therefore it is given a separate chapter. This chapter, as
+ a side effect, also defines a textual representation of an X.400 O/R
+ Address.
+
+ Initially, we consider an address in the (human) mail user sense of
+ "what is typed at the mailsystem to reference a mail user". A basic
+ RFC 822 address is defined by the EBNF EBNF.822-address:
+
+ 822-address = [ route ] addr-spec
+
+ In an 822-MTS protocol, the originator and each recipient should be
+ considered to be defined by such a construct. In an RFC 822 header,
+ the EBNF.822-address is encapsulated in the 822.address syntax rule,
+ and there may also be associated comments. None of this extra
+ information has any semantics, other than to the end user.
+
+
+
+Kille [Page 29]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ The basic X.400 O/R Address, used by the MTS for routing, is defined
+ by MTS.ORAddress. In IPMS, the MTS.ORAddress is encapsulated within
+ IPMS.ORDescriptor.
+
+ It can be seen that RFC 822 822.address must be mapped with
+ IPMS.ORDescriptor, and that RFC 822 EBNF.822-address must be mapped
+ with MTS.ORAddress.
+
+4.1. A textual representation of MTS.ORAddress
+
+ MTS.ORAddress is structured as a set of attribute value pairs. It is
+ clearly necessary to be able to encode this in ASCII for gatewaying
+ purposes. All aspects should be encoded, in order to guarantee
+ return of error messages, and to optimise third party replies.
+
+4.2. Basic Representation
+
+ An O/R Address has a number of structured and unstructured
+ attributes. For each unstructured attribute, a key and an encoding
+ is specified. For structured attributes, the X.400 attribute is
+ mapped onto one or more attribute value pairs. For domain defined
+ attributes, each element of the sequence will be mapped onto a triple
+ (key and two values), with each value having the same encoding. The
+ attributes are as follows, with 1984 attributes given in the first
+ part of the table. For each attribute, a reference is given,
+ consisting of the relevant sections in X.402 / ISO 10021-2, and the
+ extension identifier for 88 only attributes:
+
+Attribute (Component) Key Enc Ref Id
+
+84/88 Attributes
+
+MTS.CountryName C P 18.3.3
+MTS.AdministrationDomainName ADMD P 18.3.1
+MTS.PrivateDomainName PRMD P 18.3.21
+MTS.NetworkAddress X121 N 18.3.7
+MTS.TerminalIdentifier T-ID N 18.3.23
+MTS.OrganizationName O P/T 18.3.9
+MTS.OrganizationalUnitNames.value OU P/T 18.3.10
+MTS.NumericUserIdentifier UA-ID N 18.3.8
+MTS.PersonalName PN P/T 18.3.12
+MTS.PersonalName.surname S P/T 18.3.12
+MTS.PersonalName.given-name G P/T 18.3.12
+MTS.PersonalName.initials I P/T 18.3.12
+MTS.PersonalName
+ .generation-qualifier GQ P/T 18.3.12
+MTS.DomainDefinedAttribute.value DD P/T 18.1
+
+
+
+
+Kille [Page 30]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+88 Attributes
+
+MTS.CommonName CN P/T 18.3.2 1
+MTS.TeletexCommonName CN P/T 18.3.2 2
+MTS.TeletexOrganizationName O P/T 18.3.9 3
+MTS.TeletexPersonalName PN P/T 18.3.12 4
+MTS.TeletexPersonalName.surname S P/T 18.3.12 4
+MTS.TeletexPersonalName.given-name G P/T 18.3.12 4
+MTS.TeletexPersonalName.initials I P/T 18.3.12 4
+MTS.TeletexPersonalName
+ .generation-qualifier GQ P/T 18.3.12 4
+MTS.TeletexOrganizationalUnitNames
+ .value OU P/T 18.3.10 5
+MTS.TeletexDomainDefinedAttribute
+ .value DD P/T 18.1 6
+MTS.PDSName PD-SYSTEM P 18.3.11 7
+MTS.PhysicalDeliveryCountryName PD-C P 18.3.13 8
+MTS.PostalCode POSTCODE P 18.3.19 9
+MTS.PhysicalDeliveryOfficeName PD-OFFICE P/T 18.3.14 10
+MTS.PhysicalDeliveryOfficeNumber PD-OFFICE-NUM P/T 18.3.15 11
+MTS.ExtensionORAddressComponents PD-EXT-D P/T 18.3.4 12
+MTS.PhysicalDeliveryPersonName PD-PN P/T 18.3.17 13
+MTS.PhysicalDelivery PD-O P/T 18.3.16 14
+ OrganizationName
+MTS.ExtensionPhysicalDelivery
+ AddressComponents PD-EXT-LOC P/T 18.3.5 15
+MTS.UnformattedPostalAddress PD-ADDRESS P/T 18.3.25 16
+MTS.StreetAddress STREET P/T 18.3.22 17
+MTS.PostOfficeBoxAddress PO-BOX P/T 18.3.18 18
+MTS.PosteRestanteAddress POSTE-RESTANTE P/T 18.3.20 19
+MTS.UniquePostalName PD-UNIQUE P/T 18.3.26 20
+MTS.LocalPostalAttributes PD-LOCAL P/T 18.3.6 21
+MTS.ExtendedNetworkAddress
+ .e163-4-address.number NET-NUM N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .e163-4-address.sub-address NET-SUB N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .psap-address NET-PSAP X 18.3.7 22
+MTS.TerminalType NET-TTYPE I 18.3.24 23
+
+ The following keys identify different EBNF encodings, which are
+ associated with the ASCII representation of MTS.ORAddress.
+
+ Key Encoding
+
+ P printablestring
+ N numericstring
+ T teletex-string
+
+
+
+Kille [Page 31]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ P/T teletex-and-or-ps
+ I labelled-integer
+ X presentation-address
+
+ The BNF for presentation-address is taken from the specification "A
+ String Encoding of Presentation Address" [Kille89a].
+
+ In most cases, the EBNF encoding maps directly to the ASN.1 encoding
+ of the attribute. There are a few exceptions. In cases where an
+ attribute can be encoded as either a PrintableString or NumericString
+ (Country, ADMD, PRMD), either form should be mapped into the BNF.
+ When generating ASN.1, the NumericString encoding should be used if
+ the string contains only digits.
+
+ There are a number of cases where the P/T (teletex-and-or-ps)
+ representation is used. Where the key maps to a single attribute,
+ this choice is reflected in the encoding of the attribute (attributes
+ 10-21). For most of the 1984 attributes and common name, there is a
+ printablestring and a teletex variant. This pair of attributes is
+ mapped onto the single component here. This will give a clean
+ mapping for the common cases where only one form of the name is used.
+
+4.2.1. Encoding of Personal Name
+
+ Handling of Personal Name and Teletex Personal Name based purely on
+ the EBNF.standard-type syntax defined above is likely to be clumsy.
+ It seems desirable to utilise the "human" conventions for encoding
+ these components. A syntax is defined, which is designed to provide
+ a clean encoding for the common cases of O/R address specification
+ where:
+
+ 1. There is no generational qualifier
+
+ 2. Initials contain only letters
+
+ 3. Given Name does not contain full stop ("."), and is at least
+ two characters long.
+
+ 4. If Surname contains full stop, then it may not be in the
+ first two characters, and either initials or given name is
+ present.
+
+ The following EBNF is defined:
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+
+
+
+Kille [Page 32]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ initial = ALPHA
+
+ surname = printablestring
+
+ This can be used to map from any string containing only printable
+ string characters to an O/R address personal name. Parse the string
+ according to the EBNF. The given name and surname are assigned
+ directly. All EBNF.initial tokens are concatenated without
+ intervening full stops to generate the initials.
+
+ For an O/R address which follows the above restrictions, a string can
+ be derived in the natural manner. In this case, the mapping will be
+ reversible.
+
+ For example:
+
+ GivenName = "Marshall"
+ Surname = "Rose"
+
+ Maps with "Marshall.Rose"
+
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "M.T.Rose"
+
+ GivenName = "Marshall"
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "Marshall.M.T.Rose"
+ Note that X.400 suggest that Initials is used to encode ALL initials.
+ Therefore, the proposed encoding is "natural" when either GivenName
+ or Initials, but not both, are present. The case where both are
+ present can be encoded, but this appears to be contrived!
+
+4.2.2. Standard Encoding of MTS.ORAddress
+
+ Given this structure, we can specify a BNF representation of an O/R
+ Address.
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / registered-dd-type
+ / dd-key "." std-printablestring
+
+ standard-type = key-string
+
+
+
+Kille [Page 33]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ registered-dd-type
+ = key-string
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=">
+ std-pair = "$" ps-char
+
+ The standard-type is any key defined in the table in Section 4.2,
+ except PN, and DD. The value, after quote removal, should be
+ interpreted according to the defined encoding.
+
+ If the standard-type is PN, the value is interpreted according to
+ EBNF.encoded-pn, and the components of MTS.PersonalName and/or
+ MTS.TeletexPersonalName derived accordingly.
+
+ If dd-key is the recognised Domain Defined string (DD), then the type
+ and value should be interpreted according to the syntax implied from
+ the encoding, and aligned to either the teletex or printable string
+ form. Key and value should have the same encoding.
+
+ If value is "RFC-822", then the (printable string) Domain Defined
+ Type of "RFC-822" is assumed. This is an optimised encoding of the
+ domain defined type defined by this specification.
+
+ The matching of all keywords should be done in a case- independent
+ manner.
+
+ If the value is registered-dd-type, the value is registered with the
+ IANA and will be listed in the Assigned Numbers RFC, then the value
+ should be interpreted accordingly. This restriction maximises the
+ syntax checking which can be done at a gateway.
+
+4.3. EBNF.822-address <-> MTS.ORAddress
+
+ Ideally, the mapping specified would be entirely symmetrical and
+ global, to enable addresses to be referred to transparently in the
+ remote system, with the choice of gateway being left to the Message
+ Transfer Service. There are two fundamental reasons why this is not
+ possible:
+
+ 1. The syntaxes are sufficiently different to make this
+ awkward.
+
+
+
+
+Kille [Page 34]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 2. In the general case, there would not be the necessary
+ administrative co-operation between the X.400 and RFC 822
+ worlds, which would be needed for this to work.
+
+ Therefore, an asymmetrical mapping is defined, which can be
+ symmetrical where there is appropriate administrative control.
+
+4.3.1. X.400 encoded in RFC 822
+
+ The std-or-address syntax is used to encode O/R Address information
+ in the 822.local-part of EBNF.822-address. Further O/R Address
+ information may be associated with the 822.domain component. This
+ cannot be used in the general case, basically due to character set
+ problems, and lack of order in X.400 O/R Addresses. The only way to
+ encode the full PrintableString character set in a domain is by use
+ of the 822.domain-ref syntax (i.e., 822.atom). This is likely to
+ cause problems on many systems. The effective character set of
+ domains is in practice reduced from the RFC 822 set, by restrictions
+ imposed by domain conventions and policy.
+
+ A generic 822.address consists of a 822.local-part and a sequence of
+ 822.domains (e.g., <@domain1,@domain2:user@domain3>). All except the
+ 822.domain associated with the 822.local-part (domain3 in this case)
+ should be considered to specify routing within the RFC 822 world, and
+ will not be interpreted by the gateway (although they may have
+ identified the gateway from within the RFC 822 world).
+
+ This form of source routing is now discouraged in the Internet
+ (Host Requirements, page 58 [Braden89a]).
+
+ The 822.domain associated with the 822.local-part may also identify
+ the gateway from within the RFC 822 world. This final 822.domain may
+ be used to determine some number of O/R Address attributes. The
+ following O/R Address attributes are considered as a hierarchy, and
+ may be specified by the domain. They are (in order of hierarchy):
+
+ Country, ADMD, PRMD, Organisation, Organisational Unit
+
+ There may be multiple Organisational Units.
+
+ Associations may be defined between domain specifications, and
+ some set of attributes. This association proceeds hierarchically.
+ For example, if a domain implies ADMD, it also implies country.
+ Subdomains under this are associated according to the O/R Address
+ hierarchy. For example:
+
+ => "AC.UK" might be associated with
+ C="GB", ADMD="GOLD 400", PRMD="UK.AC"
+
+
+
+Kille [Page 35]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ then domain "R-D.Salford.AC.UK" maps with
+ C="GB", ADMD="GOLD 400", PRMD="UK.AC", O="Salford", OU="R-D"
+
+ There are three basic reasons why a domain/attribute mapping might
+ be maintained, as opposed to using simply subdomains:
+
+ 1. As a shorthand to avoid redundant X.400 information. In
+ particular, there will often be only one ADMD per country,
+ and so it does not need to be given explicitly.
+
+ 2. To deal with cases where attribute values do not fit the
+ syntax:
+
+ domain-syntax = alphanum [ *alphanumhyphen alphanum ]
+ alphanum = <ALPHA or DIGIT>
+ alphanumhyphen = <ALPHA or DIGIT or HYPHEN>
+
+ Although RFC 822 allows for a more general syntax, this
+ restricted syntax is chosen as it is the one chosen by the
+ various domain service administrations.
+
+ 3. To deal with missing elements in the hierarchy. A domain
+ may be associated with an omitted attribute in conjunction
+ with several present ones. When performing the algorithmic
+ insertion of components lower in the hierarchy, the omitted
+ value should be skipped. For example, if "HNE.EGM" is
+ associated with "C=TC", "ADMD=ECQ", "PRMD=HNE", and omitted
+ organisation, then "ZI.HNE.EGM" is mapped with "C=TC",
+ "ADMD=ECQ", "PRMD=HNE", "OU=ZI". It should be noted that
+ attributes may have null values, and that this is treated
+ separately from omitted attributes (whilst it would be bad
+ practice to treat these two cases differently, they must be
+ allowed for).
+
+ This set of mappings need only be known by the gateways relaying
+ between the RFC 822 world, and the O/R Address space associated with
+ the mapping in question. However, it is desirable (for the optimal
+ mapping of third party addresses) for all gateways to know these
+ mappings. A format for the exchange of this information is defined
+ in Appendix F.
+
+ The remaining attributes are encoded on the LHS, using the EBNF.std-
+ or-address syntax. For example:
+
+ /I=J/S=Linnimouth/GQ=5/@Marketing.Widget.COM
+
+ encodes the MTS.ORAddress consisting of:
+
+
+
+
+Kille [Page 36]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ MTS.CountryName = "TC"
+ MTS.AdministrationDomainName = "BTT"
+ MTS.OrganizationName = "Widget"
+ MTS.OrganizationalUnitNames.value = "Marketing"
+ MTS.PersonalName.surname = "Linnimouth"
+ MTS.PersonalName.initials = "J"
+ MTS.PersonalName.generation-qualifier = "5"
+
+ The first three attributes are determined by the domain Widget.COM.
+ Then, the first element of OrganizationalUnitNames is determined
+ systematically, and the remaining attributes are encoded on the LHS.
+ In an extreme case, all of the attributes will be on the LHS. As the
+ domain cannot be null, the RHS will simply be a domain indicating the
+ gateway.
+
+ The RHS (domain) encoding is designed to deal cleanly with common
+ addresses, and so the amount of information on the RHS should be
+ maximised. In particular, it covers the Mnemonic O/R Address using a
+ 1984 compatible encoding. This is seen as the dominant form of O/R
+ Address. Use of other forms of O/R Address, and teletex encoded
+ attributes will require an LHS encoding.
+
+ There is a further mechanism to simplify the encoding of common
+ cases, where the only attributes to be encoded on the LHS is a (non-
+ Teletex) Personal Name attributes which comply with the restrictions
+ of 4.2.1. To achieve this, the 822.local-part shall be encoded as
+ EBNF.encoded-pn. In the previous example, if the GenerationQualifier
+ was not present, the encoding J.Linnimouth@Marketing.Widget.COM would
+ result.
+
+ From the standpoint of the RFC 822 Message Transfer System, the
+ domain specification is simply used to route the message in the
+ standard manner. The standard domain mechanisms are are used to
+ select appropriate gateways for the corresponding O/R Address space.
+ In most cases, this will be done by registering the higher levels,
+ and assuming that the gateway can handle the lower levels.
+
+4.3.2. RFC 822 encoded in X.400
+
+ In some cases, the encoding defined above may be reversed, to give a
+ "natural" encoding of genuine RFC 822 addresses. This depends
+ largely on the allocation of appropriate management domains.
+
+ The general case is mapped by use of domain defined attributes. A
+ Domain defined type "RFC-822" is defined. The associated attribute
+ value is an ASCII string encoded according to Section 3.3.3 of this
+ specification. The interpretation of the ASCII string depends on the
+ context of the gateway.
+
+
+
+Kille [Page 37]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 1. In the context of RFC 822, and RFC 1034
+ [Crocker82a, Mockapetris87a], the string can be used
+ directly.
+
+ 2. In the context of the JNT Mail protocol, and the NRS
+ [Kille84a, Larmouth83a], the string should be interpreted
+ according to Mailgroup Note 15 [Kille84b].
+
+ 3. In the context of UUCP based systems, the string should be
+ interpreted as defined in [Horton86a].
+
+ Other O/R Address attributes will be used to identify a context in
+ which the O/R Address will be interpreted. This might be a
+ Management Domain, or some part of a Management Domain which
+ identifies a gateway MTA. For example:
+
+ C = "GB"
+ ADMD = "GOLD 400"
+ PRMD = "UK.AC"
+ O = "UCL"
+ OU = "CS"
+ "RFC-822" = "Jimmy(a)WIDGET-LABS.CO.UK"
+
+ OR
+
+ C = "TC"
+ ADMD = "Wizz.mail"
+ PRMD = "42"
+ "rfc-822" = "Postel(a)venera.isi.edu"
+
+ Note in each case the PrintableString encoding of "@" as "(a)". In
+ the second example, the "RFC-822" domain defined attribute is
+ interpreted everywhere within the (Private) Management Domain. In
+ the first example, further attributes are needed within the
+ Management Domain to identify a gateway. Thus, this scheme can be
+ used with varying levels of Management Domain co-operation.
+
+4.3.3. Component Ordering
+
+ In most cases, ordering of O/R Address components is not significant
+ for the mappings specified. However, Organisational Units (printable
+ string and teletex forms) and Domain Defined Attributes are specified
+ as SEQUENCE in MTS.ORAddress, and so their order may be significant.
+ This specification needs to take account of this:
+
+ 1. To allow consistent mapping into the domain hierarchy
+
+ 2. To ensure preservation of order over multiple mappings.
+
+
+
+Kille [Page 38]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+There are three places where an order must be specified:
+
+ 1. The text encoding (std-or-address) of MTS.ORAddress as used
+ in the local-part of an RFC 822 address. An order is needed
+ for those components which may have multiple values
+ (Organisational Unit, and Domain Defined Attributes). When
+ generating an 822.std-or-address, components of a given type
+ shall be in hierarchical order with the most significant
+ component on the RHS. If there is an Organisation
+ Attribute, it shall be to the right of any Organisational
+ Unit attributes. These requirements are for the following
+ reasons:
+
+ - Alignment to the hierarchy of other components in RFC
+ 822 addresses (thus, Organisational Units will appear
+ in the same order, whether encoded on the RHS or LHS).
+ Note the differences of JNT Mail as described in
+ Appendix B.
+
+ - Backwards compatibility with RFC 987/1026.
+
+ - To ensure that gateways generate consistent addresses.
+ This is both to help end users, and to generate
+ identical message ids.
+
+ Further, it is recommended that all other attributes are
+ generated according to this ordering, so that all attributes
+ so encoded follow a consistent hierarchy.
+
+ There will be some cases where an X.400 O/R address of this
+ encoding will be generated by an end user from external
+ information. The ordering of attributes may be inverted or
+ mixed. For this reason, the following heuristics may be
+ applied:
+
+ - If there is an Organisation attribute to the left of
+ any Org Unit attribute, assume that the hierarchy is
+ inverted.
+
+ - If an inversion of the Org Unit hierarchy generates a
+ valid address, when the preferred order does not,
+ assume that the hierarchy is inverted.
+
+ 2. For the Organisational Units (OU) in MTS.ORAddress, the
+ first OU in the SEQUENCE is the most significant, as
+ specified in X.400.
+
+ 3. For the Domain Defined Attributes in MTS.ORAddress, the
+
+
+
+Kille [Page 39]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ First Domain Defined Attribute in the SEQUENCE is the most
+ significant.
+
+ Note that although this ordering is mandatory for this
+ mapping, there are NO implications on ordering significance
+ within X.400, where this is a Management Domain issue.
+
+4.3.4. RFC 822 -> X.400
+
+ There are two basic cases:
+
+ 1. X.400 addresses encoded in RFC 822. This will also include
+ RFC 822 addresses which are given reversible encodings.
+
+ 2. "Genuine" RFC 822 addresses.
+
+ The mapping should proceed as follows, by first assuming case 1).
+
+ STAGE I.
+
+ 1. If the 822-address is not of the form:
+
+ local-part "@" domain
+
+ Go to stage II.
+
+ NOTE:It may be appropriate to reduce a source route address
+ to this form by removal of all bar the last domain. In
+ terms of the design intentions of RFC 822, this would
+ be an incorrect action. However, in most real cases,
+ it will do the "right" thing and provide a better
+ service to the end user. This is a reflection on the
+ excessive and inappropriate use of source routing in
+ RFC 822 based systems. Either approach, or the
+ intermediate approach of stripping only domain
+ references which reference the local gateway are
+ conformant to this specification.
+
+ 2. Attempt to parse EBNF.domain as:
+
+ *( domain-syntax "." ) known-domain
+
+ Where EBNF.known-domain is the longest possible match in a
+ list of supported mappings (see Appendix F). If this fails,
+ and the EBNF.domain does not explicitly identify the local
+ gateway, go to stage II. If it succeeds, allocate the
+ attributes associated with EBNF.known-domain, and
+ systematically allocate the attributes implied by each
+
+
+
+Kille [Page 40]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ EBNF.domain-syntax component. If the domain explicitly
+ identifies the gateway, allocate no attributes.
+
+ 3. If the local-part contains any characters not in
+ PrintableString, go to stage II.
+
+ 4. If the 822.local-part uses the 822.quoted-string encoding,
+ remove this quoting. Parse the (unquoted) 822.local-part
+ according to the EBNF EBNF.std-or-address. If this parse
+ fails, parse the local-part according to the EBNF
+ EBNF.encoded-pn. The result is a set of type/value pairs.
+ If the values generated conflict with those derived in step
+ 2 (e.g., a duplicated country attribute), the domain should
+ be assumed to be an RFC 987 gateway. In this case, take
+ only the LHS derived attributes. Otherwise add LHS and RHS
+ derived attributes together.
+
+ 5. Associate the EBNF.attribute-value syntax (determined from
+ the identified type) with each value, and check that it
+ conforms. If not, go to stage II.
+
+ 6. Ensure that the set of attributes conforms both to the
+ MTS.ORAddress specification and to the restrictions on this
+ set given in X.400. If not go to stage II.
+
+ 7. Build the O/R Address from this information.
+
+
+ STAGE II.
+
+ This will only be reached if the RFC 822 EBNF.822-address is not
+ a valid X.400 encoding. If the address is an 822-MTS recipient
+ address, it must be rejected, as there is a need to interpret
+ such an address in X.400. For the 822-MTS return address, and
+ any addresses in the RFC 822 header, they should now be encoded
+ as RFC 822 addresses in an X.400 O/R Name:
+
+ 1. Convert the EBNF.822-address to PrintableString, as
+ specified in Chapter 3.
+
+ 2. The "RFC-822" domain defined attribute should be generated
+ from this string.
+
+ 3. Build the rest of the O/R Address in the local Management
+ Domain agreed manner, so that the O/R Address will receive a
+ correct global interpretation.
+
+ Note that the domain defined attribute value has a maximum length
+
+
+
+Kille [Page 41]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ of MTS.ub-domain-defined-attribute-value-length (128). If this
+ is exceeded by a mapping at the MTS level, then the gateway
+ should reject the message in question. If this occurs at the
+ IPMS level, then the action should depend on the policy being
+ taken, which is discussed in Section 5.1.3.
+
+4.3.5. X.400 -> RFC 822
+
+ There are two basic cases:
+
+ 1. RFC 822 addresses encoded in X.400.
+
+ 2. "Genuine" X.400 addresses. This may include symmetrically
+ encoded RFC 822 addresses.
+
+ When a MTS Recipient O/R Address is interpreted, gatewaying will be
+ selected if there a single "RFC-822" domain defined attribute
+ present. In this case, use mapping A. For other O/R Addresses
+ which:
+
+ 1. Contain the special attribute.
+
+ AND
+
+ 2. Identifies the local gateway or any other known gateway with
+ the other attributes.
+
+ Use mapping A. In other cases, use mapping B.
+
+ NOTE:
+ A pragmatic approach would be to assume that any O/R
+ Address with the special domain defined attribute identifies
+ an RFC 822 address. This will usually work correctly, but is
+ in principle not correct.
+
+ Mapping A
+
+ 1. Map the domain defined attribute value to ASCII, as defined
+ in Chapter 3.
+
+ Mapping B
+
+ This will be used for X.400 addresses which do not use the explicit
+ RFC 822 encoding.
+
+ 1. For all string encoded attributes, remove any leading or
+ trailing spaces, and replace adjacent spaces with a single
+ space.
+
+
+
+Kille [Page 42]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 2. Noting the hierarchy specified in 4.3.1, determine the
+ maximum set of attributes which have an associated domain
+ specification. If no match is found, allocate the domain as
+ the domain specification of the local gateway, and go to
+ step 4.
+
+ 3. Following the 4.3.1 hierarchy and noting any omitted
+ components implied by the mapping tables (see Appendix F),
+ if each successive component exists, and conforms to the
+ syntax EBNF.domain-syntax (as defined in 4.3.1), allocate
+ the next subdomain. At least one attribute of the X.400
+ address should not be mapped onto subdomain, as
+ 822.local-part cannot be null.
+
+ 4. If the remaining components are personal-name components,
+ conforming to the restrictions of 4.2.1, then EBNF.encoded-
+ pn should be derived to form 822.local-part. In other cases
+ the remaining components should simply be encoded as a
+ 822.local-part using the EBNF.std-or-address syntax. If
+ necessary, the 822.quoted-string encoding should be used.
+
+ If the derived 822.local-part can only be encoded by use of
+ 822.quoted-string, then use of the mapping defined
+ in [Kille89b] may be appropriate. Use of this mapping is
+ discouraged.
+
+4.4. Repeated Mappings
+
+ The mappings defined are symmetrical and reversible across a single
+ gateway. The symmetry is particularly useful in cases of (mail
+ exploder type) distribution list expansion. For example, an X.400
+ user sends to a list on an RFC 822 system which he belongs to. The
+ received message will have the originator and any 3rd party X.400 O/R
+ Addresses in correct format (rather than doubly encoded). In cases
+ (X.400 or RFC 822) where there is common agreement on gateway
+ identification, then this will apply to multiple gateways.
+
+ When a message traverses multiple gateways, the mapping will always
+ be reversible, in that a reply can be generated which will correctly
+ reverse the path. In many cases, the mapping will also be
+ symmetrical, which will appear clean to the end user. For example,
+ if countries "AB" and "XY" have RFC 822 networks, but are
+ interconnected by X.400, the following may happen: The originator
+ specifies:
+
+
+ Joe.Soap@Widget.PTT.XY
+
+
+
+
+Kille [Page 43]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ This is routed to a gateway, which generates:
+
+ C = "XY"
+ ADMD = "PTT"
+ PRMD = "Griddle MHS Providers"
+ Organisation = "Widget Corporation"
+ Surname = "Soap"
+ Given Name = "Joe"
+
+ This is then routed to another gateway where the mapping is reversed
+ to give:
+
+ Joe.Soap@Widget.PTT.XY
+
+ Here, use of the gateway is transparent.
+
+ Mappings will only be symmetrical where mapping tables are defined.
+ In other cases, the reversibility is more important, due to the (far
+ too frequent) cases where RFC 822 and X.400 services are partitioned.
+
+ The syntax may be used to source route. THIS IS STRONGLY
+ DISCOURAGED. For example:
+
+ X.400 -> RFC 822 -> X.400
+
+ C = "UK"
+ ADMD = "Gold 400"
+ PRMD = "UK.AC"
+ "RFC-822" = "/PN=Duval/DD.Title=Manager/(a)Inria.ATLAS.FR"
+
+ This will be sent to an arbitrary UK Academic Community gateway by
+ X.400. Then it will be sent by JNT Mail to another gateway
+ determined by the domain Inria.ATLAS.FR (FR.ATLAS.Inria). This will
+ then derive the X.400 O/R Address:
+
+ C = "FR"
+ ADMD = "ATLAS"
+ PRMD = "Inria"
+ PN.S = "Duval"
+ "Title" = "Manager"
+
+ Similarly:
+ RFC 822 -> X.400 -> RFC 822
+
+ "/C=UK/ADMD=BT/PRMD=AC/RFC-822=jj(a)seismo.css.gov/"
+ @monet.berkeley.edu
+
+ This will be sent to monet.berkeley.edu by RFC 822, then to the AC
+
+
+
+Kille [Page 44]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ PRMD by X.400, and then to jj@seismo.css.gov by RFC 822.
+
+4.5. Directory Names
+
+ Directory Names are an optional part of O/R Name, along with O/R
+ Address. The RFC 822 addresses are mapped onto the O/R Address
+ component. As there is no functional mapping for the Directory Name
+ on the RFC 822 side, a textual mapping should be used. There is no
+ requirement for reversibility in terms of the goals of this
+ specification. There may be some loss of functionality in terms of
+ third party recipients where only a directory name is given, but this
+ seems preferable to the significant extra complexity of adding a full
+ mapping for Directory Names.
+
+4.6. MTS Mappings
+
+ The basic mappings at the MTS level are:
+
+ 1) 822-MTS originator ->
+ MTS.PerMessageSubmissionFields.originator-name
+ MTS.OtherMessageDeliveryFields.originator-name ->
+ 822-MTS originator
+
+ 2) 822-MTS recipient ->
+ MTS.PerRecipientMessageSubmissionFields
+ MTS.OtherMessageDeliveryFields.this-recipient-name ->
+ 822-MTS recipient
+
+ 822-MTS recipients and return addresses are encoded as EBNF.822-
+ address.
+
+ The MTS Originator is always encoded as MTS.OriginatorName, which
+ maps onto MTS.ORAddressAndOptionalDirectoryName, which in turn maps
+ onto MTS.ORName.
+
+4.6.1. RFC 822 -> X.400
+
+ From the 822-MTS Originator, use the basic ORAddress mapping, to
+ generate MTS.PerMessageSubmissionFields.originator-name (MTS.ORName),
+ without a DirectoryName.
+
+ For recipients, the following settings should be made for each
+ component of MTS.PerRecipientMessageSubmissionFields.
+
+ recipient-name
+ This should be derived from the 822-MTS recipient by the
+ basic ORAddress mapping.
+
+
+
+
+Kille [Page 45]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ originator-report-request
+ This should be set according to content return policy, as
+ discussed in Section 5.2.
+
+ explicit-conversion
+ This optional component should be omitted, as this service
+ is not needed.
+
+ extensions
+ The default value (no extensions) should be used.
+
+4.6.2. X.400 -> RFC 822
+
+ The basic functionality is to generate the 822-MTS originator and
+ recipients. There is information present on the X.400 side, which
+ cannot be mapped into analogous 822-MTS services. For this reason,
+ new RFC 822 fields are added for the MTS Originator and Recipients.
+ The information discarded at the 822-MTS level should be present in
+ these fields. There may also be the need to generate a delivery
+ report.
+
+4.6.2.1. 822-MTS Mappings
+
+ Use the basic ORAddress mapping, to generate the 822-MTS originator
+ (return address) from MTS.OtherMessageDeliveryFields.originator-name
+ (MTS.ORName). If MTS.ORName.directory-name is present, it should be
+ discarded.
+
+ The 822-MTS recipient is conceptually generated from
+ MTS.OtherMessageDeliveryFields.this-recipient-name. This is done by
+ taking MTS.OtherMessageDeliveryFields.this-recipient-name, and
+ generating an 822-MTS recipient according to the basic ORAddress
+ mapping, discarding MTS.ORName.directory-name if present. However,
+ if this model was followed exactly, there would be no possibility to
+ have multiple 822-MTS recipients on a single message. This is
+ unacceptable, and so layering is violated. The mapping needs to use
+ the MTA level information, and map each value of
+ MTA.PerRecipientMessageTransferFields.recipient-name, where the
+ responsibility bit is set, onto an 822-MTS recipient.
+
+4.6.2.2. Generation of RFC 822 Headers
+
+ Not all per-recipient information can be passed at the 822-MTS level.
+ For this reason, two new RFC 822 headers are created, in order to
+ carry this information to the RFC 822 recipient. These fields are
+ "X400-Originator:" and "X400-Recipients:".
+
+ The "X400-Originator:" field should be set to the same value as the
+
+
+
+Kille [Page 46]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 822-MTS originator. In addition, if
+ MTS.OtherMessageDeliveryFields.originator-name (MTS.ORName) contains
+ MTS.ORName.directory-name then this Directory Name should be
+ represented in an 822.comment.
+
+ Recipient names, taken from each value of
+ MTS.OtherMessageDeliveryFields.this-recipient-name and
+ MTS.OtherMessageDeliveryFields.other-recipient-names should be made
+ available to the RFC 822 user by use of the "X400-Recipients:" field.
+ By taking the recipients at the MTS level, disclosure of recipients
+ will be dealt with correctly. If any MTS.ORName.directory-name is
+ present, it should be represented in an 822.comment. If
+ MTS.OtherMessageDeliveryFields.orignally-intended-recipient-name is
+ present, then it should be represented in an associated 822.comment,
+ starting with the string "Originally Intended Recipient".
+
+ In addition, the following per-recipient services from
+ MTS.OtherMessageDeliveryFields.extensions should be represented in
+ comments if they are used. None of these services can be provided on
+ RFC 822 networks, and so in general these will be informative strings
+ associated with other MTS recipients. In some cases, string values
+ are defined. For the remainder, the string value may be chosen by
+ the implementor. If the parameter has a default value, then no
+ comment should be inserted.
+
+ requested-delivery-method
+
+ physical-forwarding-prohibited
+ "(Physical Forwarding Prohibited)".
+
+ physical-forwarding-address-request
+ "(Physical Forwarding Address Requested)".
+
+ physical-delivery-modes
+
+ registered-mail-type
+
+ recipient-number-for-advice
+
+ physical-rendition-attributes
+
+ physical-delivery-report-request
+ "(Physical Delivery Report Requested)".
+
+ proof-of-delivery-request
+ "(Proof of Delivery Requested)".
+
+
+
+
+
+Kille [Page 47]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+4.6.2.3. Delivery Report Generation
+
+ If MTA.PerRecipientMessageTransferFields.per-recipient-indicators
+ requires a positive delivery notification, this should be
+ generated by the gateway. Supplementary Information should be
+ set to indicate that the report is gateway generated.
+
+4.6.3. Message IDs (MTS)
+
+ A mapping from 822.msg-id to MTS.MTSIdentifier is defined. The
+ reverse mapping is not needed, as MTS.MTSIdentifier is always
+ mapped onto new RFC 822 fields. The value of
+ MTS.MTSIdentifier.local-part will facilitate correlation of
+ gateway errors.
+
+ To map from 822.msg-id, apply the standard mapping to
+ 822.msg-id, in order to generate an MTS.ORAddress. The Country,
+ ADMD, and PRMD components of this should be used to generate
+ MTS.MTSIdentifier.global-domain-identifier.
+ MTS.MTSIdentifier.local-identifier should be set to the
+ 822.msg-id, including the braces "<" and ">". If this string is
+ longer than MTS.ub-local-id-length (32), then it should be
+ truncated to this length.
+
+ The reverse mapping is not used in this specification. It
+ would be applicable where MTS.MTSIdentifier.local-identifier is
+ of syntax 822.msg-id, and it algorithmically identifies
+ MTS.MTSIdentifier.
+
+4.7. IPMS Mappings
+
+ All RFC 822 addresses are assumed to use the 822.mailbox syntax.
+ This should include all 822.comments associated with the lexical
+ tokens of the 822.mailbox. In the IPMS O/R Names are encoded as
+ MTS.ORName. This is used within the IPMS.ORDescriptor,
+ IPMS.RecipientSpecifier, and IPMS.IPMIdentifier. An asymmetrical
+ mapping is defined between these components.
+
+4.7.1. RFC 822 -> X.400
+
+ To derive IPMS.ORDescriptor from an RFC 822 address.
+
+ 1. Take the address, and extract an EBNF.822-address. This can
+ be derived trivially from either the 822.addr-spec or
+ 822.route-addr syntax. This is mapped to MTS.ORName as
+ described above, and used as IMPS.ORDescriptor.formal-name.
+
+ 2. A string should be built consisting of (if present):
+
+
+
+Kille [Page 48]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ - The 822.phrase component if the 822.address is an
+ 822.phrase 822.route-addr construct.
+
+ - Any 822.comments, in order, retaining the parentheses.
+
+ This string should then be encoded into T.61 us a human
+ oriented mapping (as described in Chapter 3). If the string
+ is not null, it should be assigned to
+ IPMS.ORDescriptor.free-form-name.
+
+ 3. IPMS.ORDescriptor.telephone-number should be omitted.
+
+ If IPMS.ORDescriptor is being used in IPMS.RecipientSpecifier,
+ IPMS.RecipientSpecifier.reply-request and
+ IPMS.RecipientSpecifier.notification-requests should be set to
+ default values (none and false).
+
+ If the 822.group construct is present, any included 822.mailbox
+ should be encoded as above to generate a separate IPMS.ORDescriptor.
+ The 822.group should be mapped to T.61, and a IPMS.ORDescriptor with
+ only an free-form-name component built from it.
+
+4.7.2. X.400 -> RFC 822
+
+ Mapping from IPMS.ORDescriptor to RFC 822 address. In the basic
+ case, where IPMS.ORDescriptor.formal-name is present, proceed as
+ follows.
+
+ 1. Encode IPMS.ORDescriptor.formal-name (MTS.ORName) as
+ EBNF.822-address.
+
+ 2a. If IPMS.ORDescriptor.free-form-name is present, convert it
+ to ASCII (Chapter 3), and use this as the 822.phrase
+ component of 822.mailbox using the 822.phrase 822.route-addr
+ construct.
+
+ 2b. If IPMS.ORDescriptor.free-form-name is absent. If
+ EBNF.822-address is parsed as 822.addr-spec use this as the
+ encoding of 822.mailbox. If EBNF.822-address is parsed as
+ 822.route 822.addr-spec, then a 822.phrase taken from
+ 822.local-part should be added.
+
+ 3. If IPMS.ORDescriptor.telephone-number is present, this
+ should be placed in an 822.comment, with the string "Tel ".
+ The normal international form of number should be used. For
+ example:
+
+ (Tel +44-1-387-7050)
+
+
+
+Kille [Page 49]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 4. If IPMS.ORDescriptor.formal-name.directory-name is present,
+ then a text representation should be placed in a trailing
+ 822.comment.
+
+ 5. If IPMS.RecipientSpecifier.report-request has any non-
+ default values, then an 822.comment "(Receipt Notification
+ Requested)", and/or "(Non Receipt Notification Requested)",
+ and/or "(IPM Return Requested)" should be appended to the
+ address. The effort of correlating P1 and P2 information is
+ too great to justify the gateway sending Receipt
+ Notifications.
+
+ 6. If IPMS.RecipientSpecifier.reply-request is True, an
+ 822.comment "(Reply requested)" should be appended to the
+ address.
+
+ If IPMS.ORDescriptor.formal-name is absent, IPMS.ORDescriptor.free-
+ form-name should be converted to ASCII, and used as 822.phrase within
+ the RFC 822 822.group syntax. For example:
+
+ Free Form Name ":" ";"
+
+ Steps 3-6 should then be followed.
+
+4.7.3. IP Message IDs
+
+ There is a need to map both ways between 822.msg-id and
+ IPMS.IPMIdentifier. This allows for X.400 Receipt Notifications,
+ Replies, and Cross References to reference an RFC 822 Message ID,
+ which is preferable to a gateway generated ID. A reversible and
+ symmetrical mapping is defined. This allows for good things to
+ happen when messages pass multiple times across the X.400/RFC 822
+ boundary.
+
+ An important issue with messages identifiers is mapping to the exact
+ form, as many systems use these ids as uninterpreted keys. The use
+ of table driven mappings is not always symmetrical, particularly in
+ the light of alternative domain names, and alternative management
+ domains. For this reason, a purely algorithmic mapping is used. A
+ mapping which is simpler than that for addresses can be used for two
+ reasons:
+
+ - There is no major requirement to make message IDs "natural"
+
+ - There is no issue about being able to reply to message IDs.
+ (For addresses, creating a return path which works is more
+ important than being symmetrical).
+
+
+
+
+Kille [Page 50]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ The mapping works by defining a way in which message IDs generated on
+ one side of the gateway can be represented on the other side in a
+ systematic manner. The mapping is defined so that the possibility of
+ clashes is is low enough to be treated as impossible.
+
+4.7.3.1. 822.msg-id represented in X.400
+
+ IPMS.IPMIdentifier.user is omitted. The IPMS.IPMIdentifier.user-
+ relative-identifier is set to a printable string encoding of the
+ 822.msg-id with the angle braces ("<" and ">") removed.
+
+4.7.3.2. IPMS.IPMIdentifier represented in RFC 822
+
+ The 822.domain of 822.msg-id is set to the value "MHS". The
+ 822.local-part of 822.msg-id is built as:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ with EBNF.printablestring being the IPMS.IPMIdentifier.user-
+ relative-identifier, and std-or-address being an encoding of the
+ IPMS.IPMIdentifier.user. If necessary, the 822.quoted-string
+ encoding is used. For example:
+
+ <"147*/S=Dietrich/O=Siemens/ADMD=DBP/C=DE/"@MHS>
+
+4.7.3.3. 822.msg-id -> IPMS.IPMIdentifier
+
+ If the 822.local-part can be parsed as:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ and the 822.domain is "MHS", then this ID was X.400 generated. If
+ EBNF.printablestring is present, the value is assigned to
+ IPMS.IPMIdentifier.user-relative-identifier. If EBNF.std-or-address
+ is present, the O/R Address components derived from it are used to
+ set IPMS.IPMIdentifier.user.
+
+ Otherwise, this is an RFC 822 generated ID. In this case, set
+ IPMS.IPMIdentifier.user-relative-identifier to a printable string
+ encoding of the 822.msg-id without the angle braces.
+
+4.7.3.4. IPMS.IPMIdentifier -> 822.msg-id
+
+ If IPMS.IPMIdentifier.user is absent, and IPMS.IPMIdentifier.user-
+ relative-identifier mapped to ASCII and angle braces added parses as
+ 822.msg-id, then this is an RFC 822 generated ID.
+
+ Otherwise, the ID is X.400 generated. Use the
+
+
+
+Kille [Page 51]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ IPMS.IPMIdentifier.user to generate an EBNF.std-or-address form
+ string. Build the 822.local-part of the 822.msg-id with the syntax:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ The printablestring is taken from IPMS.IPMIdentifier.user-relative-
+ identifier. Use 822.quoted-string if necessary. The 822.msg-id is
+ generated with this 822.local-part, and "MHS" as the 822.domain.
+
+4.7.3.5. Phrase form
+
+ In "Reply-To:" and "References:", the encoding 822.phrase may be used
+ as an alternative to 822.msg-id. To map from 822.phrase to
+ IPMS.IPMIdentifier, assign IPMS.IPMIdentifier.user-relative-
+ identifier to the phrase. When mapping from IPMS.IPMIdentifier for
+ "Reply-To:" and "References:", if IPMS.IPMIdentifier.user is absent
+ and IPMS.IPMIdentifier.user-relative-identifier does not parse as
+ 822.msg-id, generate an 822.phrase rather than adding the domain MHS.
+
+4.7.3.6. RFC 987 backwards compatibility
+
+ The mapping proposed here is different to that used in RFC 987, as
+ the RFC 987 mapping lead to changed message IDs in many cases.
+ Fixing the problems is preferable to retaining backwards
+ compatibility. An implementation of this standard is encouraged to
+ recognise message IDs generated by RFC 987.
+
+Chapter 5 -- Detailed Mappings
+
+ This chapter gives detailed mappings for the functions outlined in
+ Chapters 1 and 2. It makes extensive use of the notations and
+ mappings defined in Chapters 3 and 4.
+
+5.1. RFC 822 -> X.400
+
+5.1.1. Basic Approach
+
+ A single IP Message is generated. The RFC 822 headers are used to
+ generate the IPMS.Heading. The IP Message will have one IA5
+ IPMS.BodyPart containing the RFC 822 message body.
+
+ Some RFC 822 fields cannot be mapped onto a standard IPM Heading
+ field, and so an extended field is defined in Section 5.1.2. This is
+ then used for fields which cannot be mapped onto existing services.
+
+ The message is submitted to the MTS, and the services required can be
+ defined by specifying MTS.MessageSubmissionEnvelope. A few
+ parameters of the MTA Abstract service are also specified, which are
+
+
+
+Kille [Page 52]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ not in principle available to the MTS User. Use of these services
+ allows RFC 822 MTA level parameters to be carried in the analogous
+ X.400 service elements. The advantages of this mapping far outweigh
+ the layering violation.
+
+5.1.2. X.400 Extension Field
+
+ An IPMS Extension is defined:
+
+ rfc-822-field HEADING-EXTENSION
+ VALUE RFC822Field
+ ::= id-rfc-822-field
+
+ RFC822Field ::= IA5String
+
+ The Object Identifier id-rfc-822-field is defined in Appendix D.
+
+ To encode any RFC 822 Header using this extension, the RFC822Field
+ should be set to the 822.field omitting the trailing CRLF (e.g.,
+ "Fruit-Of-The-Day: Kiwi Fruit"). Structured fields should be
+ unfolded. There should be no space before the ":". The reverse
+ mapping builds the RFC 822 field in a straightforward manner.
+
+5.1.3. Generating the IPM
+
+ The IPM (IPMS Service Request) is generated according to the rules of
+ this section. The IPMS.IPM.body usually consists of one
+ IPMS.BodyPart of type IPMS.IA5TextbodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the default (ia5)
+ which contains the body of the RFC 822 message. The exception is
+ where there is a "Comments:" field in the RFC 822 header.
+
+ If no specific 1988 features are used, the IPM generated should be
+ encoded as content type 2. Otherwise, it should be encoded as
+ content type 22. The latter will always be the case if extension
+ heading fields are generated.
+
+ When generating the IPM, the issue of upper bounds must be
+ considered. At the MTS and MTA level, this specification is strict
+ about enforcing upper bounds. Three options are available at the IPM
+ level. Use of any of these options conforms to this standard.
+
+ 1. Ignore upper bounds, and generate messages in the natural
+ manner. This assumes that if any truncation is done, it
+ will happen at the recipient UA. This will maximise
+ transfer of information, but may break some recipient UAs.
+
+ 2. Reject any inbound message which would cause a message
+
+
+
+Kille [Page 53]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ violating constraints to be generated. This will be robust,
+ but may prevent useful communication.
+
+ 3. Truncate fields to the upper bounds specified in X.400.
+ This will prevent problems with UAs which enforce upper
+ bounds, but will sometimes discard useful information.
+
+ These choices have different advantages and disadvantages, and the
+ choice will depend on the exact application of the gateway.
+
+ The rest of this section concerns IPMS.IPM.heading (IPMS.Heading).
+ The only mandatory component of IPMS.Heading is the
+ IPMS.Heading.this-IPM (IPMS.IPMIdentifier). A default should be
+ generated by the gateway. With the exception of "Received:", the
+ values of multiple fields should be merged (e.g., If there are two
+ "To:" fields, then the mailboxes of both should be used).
+ Information should be generated from the standard RFC 822 Headers as
+ follows:
+
+ Date:
+ Ignore (Handled at MTS level)
+
+ Received:
+ Ignore (Handled at MTA level)
+
+ Message-Id:
+ Mapped to IPMS.Heading.this-IPM. For these, and all other
+ fields containing 822.msg-id the mappings of Chapter 4 are
+ used for each 822.msg-id.
+
+ From:
+ If Sender: is present, this is mapped to
+ IPMS.Heading.authorizing-users. If not, it is mapped to
+ IPMS.Heading.originator. For this, and other components
+ containing addresses, the mappings of Chapter 4 are used
+ for each address.
+
+ Sender:
+ Mapped to IPMS.Heading.originator.
+
+ Reply-To:
+ Mapped to IPMS.Heading.reply-recipients.
+
+ To: Mapped to IPMS.Heading.primary-recipients
+
+ Cc: Mapped to IPMS.Heading.copy-recipients.
+
+ Bcc: Mapped to IPMS.Heading.blind-copy-recipients.
+
+
+
+Kille [Page 54]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ In-Reply-To:
+ If there is one value, it is mapped to
+ IPMS.Heading.replied-to-IPM, using the 822.phrase or
+ 822.msg-id mapping as appropriate. If there are several
+ values, they are mapped to IPMS.Heading.related-IPMs, along
+ with any values from a "References:" field.
+
+ References:
+ Mapped to IPMS.Heading.related-IPMs.
+
+ Keywords:
+ Mapped onto a heading extension.
+
+ Subject:
+ Mapped to IPMS.Heading.subject. The field-body uses the
+ human oriented mapping referenced in Chapter 3 from ASCII to
+ T.61.
+
+ Comments:
+ Generate an IPMS.BodyPart of type IPMS.IA5TextbodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the
+ default (ia5), containing the value of the fields, preceded
+ by the string "Comments: ". This body part should precede
+ the other one.
+
+ Encrypted:
+ Mapped onto a heading extension.
+
+ Resent-*
+ Mapped onto a heading extension.
+
+ Note that it would be possible to use a ForwardedIPMessage
+ for these fields, but the semantics are (arguably) slightly
+ different, and it is probably not worth the effort.
+
+ Other Fields
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g., "Fruit-of-the-day:") are mapped onto a heading
+ extension, unless covered by another section or appendix of
+ this specification. The same treatment should be applied to
+ RFC 822 fields where the content of the field does not
+ conform to RFC 822 (e.g., a Date: field with unparsable
+ syntax).
+
+5.1.4. Mappings to the MTS Abstract Service
+
+ The MTS.MessageSubmissionEnvelope comprises
+ MTS.PerMessageSubmissionFields, and
+
+
+
+Kille [Page 55]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ MTS.PerRecipientMessageSubmissionFields. The mandatory parameters
+ should be defaulted as follows.
+
+ MTS.PerMessageSubmissionFields.originator-name
+ This is always generated from 822-MTS, as defined in
+ Chapter 4.
+
+ MTS.PerMessageSubmissionFields.content-type
+ Set to the value implied by the encoding of the IPM (2 or
+ 22).
+
+ MTS.PerRecipientMessageSubmissionFields.recipient-name
+ These will always be supplied from 822-MTS, as defined in
+ Chapter 4.
+
+ Optional components should be left out, and default components
+ defaulted, with two exceptions. For
+ MTS.PerMessageSubmissionFields.per-message-indicators, the following
+ settings should be made:
+
+ - Alternate recipient should be allowed, as it seems desirable
+ to maximise the opportunity for (reliable) delivery.
+
+ - Content return request should be set according to the issues
+ discussed in Section 5.2.
+
+ MTS.PerMessageSubmissionFields.original-encoded-information-types
+ should be made a set of one element
+ BuiltInEncodedInformationTypes.ia5-text.
+
+ The MTS.PerMessageSubmissionFields.content-correlator should be
+ encoded as IA5String, and contain the Subject:, Message-ID:, Date:,
+ and To: fields (if present). This should include the strings
+ "Subject:", "Date:", "To:", "Message-ID:", and appropriate folding.
+ This should be truncated to MTS.ub-content-correlator-length (512)
+ characters. In addition, if there is a "Subject:" field, the
+ MTS.PerMessageSubmissionFields.content-identifier, should be set to a
+ printable string representation of the contents of it, truncated to
+ MTS.ub-content-id-length (16). Both are used, due to the much larger
+ upper bound of the content correlator, and that the content id is
+ available in X.400(1984).
+
+5.1.5. Mappings to the MTA Abstract Service
+
+ There is a need to map directly onto some aspects of the MTA Abstract
+ service, for the following reasons:
+
+ - So the the MTS Message Identifier can be generated from the
+
+
+
+Kille [Page 56]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ RFC 822 Message-ID:.
+
+ - So that the submission date can be generated from the
+ 822.Date.
+
+ - To prevent loss of trace information.
+
+ - To prevent RFC 822/X.400 looping caused by distribution
+ lists or redirects.
+
+ The following mappings are defined.
+
+ Message-Id:
+ If this is present, the
+ MTA.PerMessageTransferFields.message-identifier should be
+ generated from it, using the mappings described in
+ Chapter 4.
+
+ Date:
+ This is used to set the first component of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement). The 822-MTS originator
+ should be mapped into an MTS.ORAddress, and used to derive
+ MTA.TraceInformationElement.global-domain-identifier. The
+ optional components of
+ MTA.TraceInformationElement.domain-supplied-information are
+ omitted, and the mandatory components are set as follows:
+
+ MTA.DomainSuppliedInformation.arrival-time
+ This is set to the date derived from Date:
+
+ MTA.DomainSuppliedInformation.routing-action
+ Set to relayed.
+
+ The first element of
+ MTA.PerMessageTransferFields.internal-trace-information
+ should be generated in an analogous manner, although this
+ may later be dropped (see the procedures for "Received:").
+
+ Received:
+ All RFC 822 trace is used to derive
+ MTA.PerMessageTransferFields.trace-information and
+ MTA.PerMessageTransferFields.internal-trace-information.
+ Processing of Received: lines should follow processing of
+ Date:, and should be done from the the bottom to the top of
+ the RFC 822 header (i.e., in chronological order). If other
+ trace elements are processed (Via:, X400-Received:), care
+ should be taken to keep the relative ordering correct. The
+
+
+
+Kille [Page 57]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ initial element of
+ MTA.PerMessageTransferFields.trace-information will be
+ generated already (from Date:).
+
+ Consider the Received: field in question. If the "by" part
+ of the received is present, use it to derive an
+ MTS.GlobalDomainIdentifier. If this is different from the
+ one in the last element of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement.global-domain-identifier)
+ create a new MTA.TraceInformationElement, and optionally
+ remove
+ MTA.PerMessageTransferFields.internal-trace-information.
+ This removal should be done in cases where the message is
+ being transferred to another MD where there is no bilateral
+ agreement to preserve internal trace beyond the local MD.
+ The trace creation is as for internal trace described below,
+ except that no MTA field is needed.
+
+ Then add a new element (MTA.InternalTraceInformationElement)
+ to MTA.PerMessageTransferFields.internal-trace-information,
+ creating this if needed. This shall be done, even if
+ inter-MD trace is created. The
+ MTA.InternalTraceInformationElement.global-domain-identifier
+ should be set to the value derived. The
+ MTA.InternalTraceInformationElement.mta-supplied-information
+ (MTA.MTASuppliedInformation) should be set as follows:
+
+ MTA.MTASuppliedInformation.arrival-time
+ Derived from the date of the Received: line
+
+ MTA.MTASuppliedInformation.routing-action
+ Set to relayed
+
+ The MTA.InternalTraceInformationElement.mta-name should be
+ taken from the "by" component of the "Received:" field,
+ truncated to MTS.ub-mta-name-length (32). For example:
+
+ Received: from computer-science.nottingham.ac.uk by
+ vs6.Cs.Ucl.AC.UK via Janet with NIFTP id aa03794;
+ 28 Mar 89 16:38 GMT
+
+ Generates the string:
+
+ vs6.Cs.Ucl.AC.UK
+
+ Note that before transferring the message to some ADMDs, additional
+ trace stripping may be required, as the implied path through multiple
+
+
+
+Kille [Page 58]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ MDs would violate ADMD policy.
+
+ Two extended fields must be mapped, in order to prevent looping.
+ "DL-Expansion-History:" is mapped to
+ MTA.PerMessageTransferFields.extensions.dl-expansion-history.
+ "Redirection-History:" is mapped to
+ MTA.PerRecipientMessageTransferFields.extensions.redirection-history.
+
+5.1.6. Mapping New Fields
+
+ This specification defines a number of new fields for Reports,
+ Notifications and IP Messages in Section 5.3. As this specification
+ only aims to preserve existing services, a gateway conforming to this
+ specification does not need to map these fields to X.400, with the
+ exception of "DL-Expansion-History" and "Redirection-History"
+ described in the previous section. However, it is usually desirable
+ and beneficial to do so, particularly to facilitate support of a
+ message traversing multiple gateways. These mappings may be onto
+ MTA, MTS, or IPMS services.
+
+5.2. Return of Contents
+
+ It is not clear how widely supported the X.400 return of contents
+ service will be. Experience with X.400(1984) suggests that support
+ of this service may not be universal. As this service is expected in
+ the RFC 822 world, two approaches are specified. The choice will
+ depend on the use of X.400 return of contents withing the X.400
+ community being serviced by the gateway.
+
+ In environments where return of contents is widely supported, content
+ return can be requested as a service. The content return service can
+ then be passed back to the end (RFC 822) user in a straightforward
+ manner.
+
+ In environments where return of contents is not widely supported, a
+ gateway must make special provision to handle return of contents.
+ For every message passing from RFC 822 -> X.400, content return
+ request will not be requested, and report request always will be.
+ When the delivery report comes back, the gateway can note that the
+ message has been delivered to the recipient(s) in question. If a
+ non-delivery report is received, a meaningful report (containing some
+ or all of the original message) can be sent to the 822-MTS
+ originator. If no report is received for a recipient, a (timeout)
+ failure notice should be sent to the 822-MTS originator. The gateway
+ may retransmit the X.400 message if it wishes. When this approach is
+ taken, routing must be set up so that error reports are returned
+ through the same MTA. This approach may be difficult to use in
+ conjunction with some routing strategies.
+
+
+
+Kille [Page 59]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+5.3. X.400 -> RFC 822
+
+5.3.1. Basic Approach
+
+ A single RFC 822 message is generated from the incoming IP Message,
+ Report, or IP Notification. All IPMS.BodyParts are mapped onto a
+ single RFC 822 body. Other services are mapped onto RFC 822 header
+ fields. Where there is no appropriate existing field, new fields are
+ defined for IPMS, MTS and MTA services.
+
+ The gateway mechanisms will correspond to MTS Delivery. As with
+ submission, there are aspects where the MTA (transfer) services are
+ also used. In particular, there is an optimisation to allow for
+ multiple 822-MTS recipients.
+
+5.3.2. RFC 822 Settings
+
+ An RFC 822 Service requires to have a number of mandatory fields in
+ the RFC 822 Header. Some 822-MTS services mandate specification of
+ an 822-MTS Originator. Even in cases where this is optional, it is
+ usually desirable to specify a value. The following defaults are
+ defined, which should be used if the mappings specified do not derive
+ a value:
+
+ 822-MTS Originator
+ If this is not generated by the mapping (e.g., for a
+ Delivery Report), a value pointing at a gateway
+ administrator should be assigned.
+
+ Date:
+ A value will always be generated
+
+ From:If this is not generated by the mapping, it should be
+ assigned equal to the 822-MTS Originator. If this is
+ gateway generated, an appropriate 822.phrase should be
+ added.
+
+ At least one recipient field
+ If no recipient fields are generated, a field "To: list:;",
+ should be added.
+
+ This will ensure minimal RFC 822 compliance. When generating RFC
+ 822 headers, folding should be used in an appropriate manner.
+
+
+
+
+
+
+
+
+Kille [Page 60]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+5.3.3. Basic Mappings
+
+5.3.3.1. Encoded Information Types
+
+ This mapping from MTS.EncodedInformationTypes is needed in
+ several disconnected places. EBNF is defined as follows:
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+ MTS.EncodedInformationTypes is mapped onto EBNF.encoded-info.
+ MTS.EncodedInformationTypes.non-basic-parameters is ignored. Built
+ in types are mapped onto fixed strings (compatible with X.400(1984)
+ and RFC 987), and other types are mapped onto EBNF.object-identifier.
+
+5.3.3.2. Global Domain Identifier
+
+ The following simple EBNF is used to represent
+ MTS.GlobalDomainIdentifier:
+
+ global-id = std-or-address
+
+ This is encoded using the std-or-address syntax, for the attributes
+ within the Global Domain Identifier.
+
+5.3.4. Mappings from the IP Message
+
+ Consider that an IPM has to be mapped to RFC 822. The IPMS.IPM
+ comprises an IPMS.IPM.heading and IPMS.IPM.body. The heading is
+ considered first. Some EBNF for new fields is defined:
+
+ ipms-field = "Obsoletes" ":" 1#msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+
+
+
+Kille [Page 61]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Language" ":" language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#oid
+
+
+
+ importance = "low" / "normal" / "high"
+
+
+ sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+ language = 2*ALPHA [ language-description ]
+ language-description = printable-string
+
+
+ message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+ The mappings and actions for the IPMS.Heading is now specified for
+ each element. Addresses, and Message Identifiers are mapped
+ according to Chapter 4. Other mappings are explained, or are
+ straightforward (algorithmic).
+
+ IPMS.Heading.this-IPM
+ Mapped to "Message-ID:".
+
+ IPMS.Heading.originator
+ If IPMS.Heading.authorizing-users is present this is mapped
+ to Sender:, if not to "From:".
+
+ IPMS.Heading.authorizing-users
+ Mapped to "From:".
+
+ IPMS.Heading.primary-recipients
+ Mapped to "To:".
+
+ IPMS.Heading.copy-recipients
+ Mapped to "Cc:".
+
+ IPMS.Heading.blind-copy-recipients
+ Mapped to "Bcc:".
+
+ IPMS.Heading.replied-to-ipm
+ Mapped to "In-Reply-To:".
+
+
+
+Kille [Page 62]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ IPMS.Heading.obsoleted-IPMs
+ Mapped to the extended RFC 822 field "Obsoletes:"
+
+ IPMS.Heading.related-IPMs
+ Mapped to "References:".
+
+ IPMS.Heading.subject
+ Mapped to "Subject:". The contents are converted to ASCII
+ (as defined in Chapter 3). Any CRLF are not mapped, but
+ are used as points at which the subject field must be
+ folded.
+
+ IPMS.Heading.expiry-time
+ Mapped to the extended RFC 822 field "Expiry-Date:".
+
+ IPMS.Heading.reply-time
+ Mapped to the extended RFC 822 field "Reply-By:".
+
+ IPMS.Heading.reply-recipients
+ Mapped to "Reply-To:".
+
+ IPMS.Heading.importance
+ Mapped to the extended RFC 822 field "Importance:".
+
+ IPMS.Heading.sensitivity
+ Mapped to the extended RFC 822 field "Sensitivity:".
+
+ IPMS.Heading.autoforwarded
+ Mapped to the extended RFC 822 field "Autoforwarded:".
+
+ The standard extensions (Annex H of X.420 / ISO 10021-7) are mapped
+ as follows:
+
+ incomplete-copy
+ Mapped to the extended RFC 822 field "Incomplete-Copy:".
+
+ language
+ Mapped to the extended RFC 822 field "Language:", filling in
+ the two letter code. If possible, the language-description
+ should be filled in with a human readable description of the
+ language.
+
+ If the RFC 822 extended header is found, this should be mapped onto
+ an RFC 822 header, as described in Section 5.1.2.
+
+ If a non-standard extension is found, it should be discarded, unless
+ the gateway understands the extension and can perform an appropriate
+ mapping onto an RFC 822 header field. If extensions are discarded,
+
+
+
+Kille [Page 63]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ the list should be indicated in the extended RFC 822 field
+ "Discarded-X400-IPMS-Extensions:".
+
+ The IPMS.Body is mapped into the RFC 822 message body. Each
+ IPMS.BodyPart is converted to ASCII as follows:
+
+ IPMS.IA5Text
+ The mapping is straightforward (see Chapter 3).
+
+ IPMS.MessageBodyPart
+ The X.400 -> RFC 822 mapping should be recursively applied,
+ to generate an RFC 822 Message. If present, the
+ IPMS.MessageBodyPart.parameters.delivery-envelope should be
+ used for the MTS Abstract Service Mappings. If present, the
+ IPMS.MessageBodyPart.parameters.delivery-time should be
+ mapped to the extended RFC 822 field "Delivery-Date:".
+
+ Other
+ If other body parts can be mapped to IA5, either by use of
+ mappings defined in X.408 [CCITT88a], or by other reasonable
+ mappings, this should be done unless content conversion is
+ prohibited.
+
+ If some or all of the body parts cannot be converted there are three
+ options. All of these conform to this standard. A different choice
+ may be made for the case where no body part can be converted:
+
+ 1. The first option is to reject the message, and send a non-
+ delivery notification. This must always be done if
+ conversion is prohibited.
+
+ 2. The second option is to map a missing body part to something
+ of the style:
+
+ *********************************
+
+ There was a foobar here
+
+ The widget gateway ate it
+
+ *********************************
+
+ This will allow some useful information to be transferred.
+ As the recipient is a human (IPMS), then suitable action
+ should be available.
+
+ 3. Finally both can be done. In this case, the supplementary
+ information in the (positive) Delivery Report should make
+
+
+
+Kille [Page 64]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ clear that something was sent on to the recipient with
+ substantial loss of information.
+
+ Where there is more than one IPMS.BodyPart, the mapping defined by
+ Rose and Stefferud in [Rose85a], should be used to map the separate
+ IPMS.BodyParts in the single RFC 822 message body. If this is done,
+ a "Message-Type:" field with value "Multiple part" should be added,
+ which will indicate to a receiving gateway that the message may be
+ unfolded according to RFC 934.
+
+ For backwards compatibility with RFC 987, the following procedures
+ should also be followed. If there are two IA5 body parts, and the
+ first starts with the string "RFC-822-Headers:" as the first line,
+ then the remainder of this body part should be appended to the RFC
+ 822 header.
+
+5.3.5. Mappings from an IP Notification
+
+ A message is generated, with the following fields:
+
+ From:
+ Set to the MTS.MessageDeliveryEnvelope.other-
+ fields.originator-name.
+
+ To: Set to the IPMS.IPN.ipm-originator.
+
+ Subject:
+ Set to something of the form "X.400 Inter-Personal Receipt
+ Notification".
+
+ Message-Type:
+ Set to "InterPersonal Notification"
+
+ References:
+ Set to IPMS.IPN.subject-ipm
+
+ The following EBNF is defined for the body of the Message. This
+ format is defined to ensure that all information from an
+ interpersonal notification is available to the end user in a uniform
+ manner.
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ ipn-content-return
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+
+
+
+Kille [Page 65]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt "Your message to:"
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+ non-receipt-reason = "Discarded" / "Auto-Forwarded"
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+ The mappings for elements of the common fields of IPMS.IPN
+ (IPMS.CommonFields) onto this structure and the message header are:
+
+ subject-ipm
+ Mapped to "References:"
+
+
+
+
+Kille [Page 66]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ ipm-originator
+ Mapped to "To:".
+
+ ipm-preferred-recipient
+ Mapped to EBNF.preferred-recipient
+
+ conversion-eits
+ Mapped to EBNF.encoded-info in EBNF.ipn-extra-information
+
+ The mappings for elements of IPMS.IPN.non-receipt-fields
+ (IPMS.NonReceiptFields) are:
+
+ non-receipt-reason
+ Used to select between EBNF.ipn-discarded and
+ EBNF.ipn-auto-forwarded
+
+ discard-reason
+ Mapped to EBNF.discard-reason
+
+ auto-forward-comment
+ Mapped to EBNF.auto-comment
+
+ returned-ipm
+ If present, the second option of EBNF.ipn-content-return
+ should be chosen, and an RFC 822 mapping of the message
+ included. Otherwise the first option should be chosen.
+
+ The mappings for elements of IPMS.IPN.receipt-fields
+ (IPMS.ReceiptFields) are:
+
+ receipt-time
+ Mapped to EBNF.receipt-time
+
+ acknowledgement-mode
+ Mapped to EBNF.acknowledgement-mode
+
+ suppl-receipt-info
+ Mapped to EBNF.ipn-suppl
+
+ An example notification is:
+
+ From: Steve Kille <steve@cs.ucl.ac.uk>
+ To: Julian Onions <jpo@computer-science.nottingham.ac.uk>
+ Subject: X400 Inter-personal Receipt Notification
+ Message-Type: InterPersonal Notification
+ References: <1229.614418325@UK.AC.NOTT.CS>
+ Date: Wed, 21 Jun 89 08:45:25 +0100
+
+
+
+
+Kille [Page 67]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Your message to: Steve Kille <steve@cs.ucl.ac.uk>
+ was automatically forwarded.
+ The following comment was made:
+ Sent on to a random destination
+
+ The following information types were converted: g3fax
+
+ The Original Message is not available
+
+5.3.6. Mappings from the MTS Abstract Service
+
+ This section describes the MTS mappings for User Messages (IPM and
+ IPN). This mapping is defined by specifying the mapping of
+ MTS.MessageDeliveryEnvelope. The following extensions to RFC 822 are
+ defined to support this mapping:
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Redirection-History" ":" redirection
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Requested-Delivery-Method" ":"
+ 1*( labelled-integer )
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( oid / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifer
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ redirection = mailbox ";" "reason" "="
+ redirection-reason
+ ";" date-time
+
+
+
+Kille [Page 68]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+
+ The mappings for each element of MTS.MessageDeliveryEnvelope can
+ now be considered.
+
+ MTS.MessageDeliveryEnvelope.message-delivery-identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:".
+
+ MTS.MessageDeliveryEnvelope.message-delivery-time
+ Discarded, as this time will be represented in an
+ appropriate trace element.
+
+ The mappings for elements of
+ MTS.MessageDeliveryEnvelope.other-fields
+ (MTS.OtherMessageDeliveryFields) are:
+
+ content-type
+ Mapped to the extended RFC 822 field "X400-Content-Type:".
+ The string "P2" is for backwards compatibility with RFC 987.
+ If the content type is 22, then a labelled-integer encoding
+ should be used.
+
+ originator-name
+ Mapped to the 822-MTS originator, and to the extended RFC
+ 822 field "X400-Originator:". This is described in
+ Section 4.6.2.
+
+ original-encoded-information-types
+ Mapped to the extended RFC 822 field
+ "Original-Encoded-Information-Types:".
+
+ priority
+ Mapped to the extended RFC 822 field "Priority:".
+
+ delivery-flags
+ If the conversion-prohibited bit is set, add an extended RFC
+ 822 field "Conversion:".
+
+ this-recipient-name and other-recipient-names
+ These fields are used together, to generate the extended RFC
+ 822 field "X400-Recipients:". Note that the latter will
+ only be present if disclosure of recipients is allowed.
+
+ originally-intended-recipient-name
+ Mapped to a comment associated with the recipient in
+
+
+
+Kille [Page 69]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ question, as described in Section 4.6.2.2.
+
+ converted-encoded-information-types
+ Discarded, as it will always be IA5 only.
+
+ message-submission-time
+ Mapped to Date:.
+
+ content-identifier
+ Mapped to the extended RFC 822 field "Content-Identifier:".
+
+ If any extensions
+ (MTS.MessageDeliveryEnvelope.other-fields.extensions) are
+ present, and they are marked as critical for transfer or
+ delivery, then the message should be rejected. The extensions
+ (MTS.MessageDeliveryEnvelope.other-fields.extensions) are mapped
+ as follows.
+
+ conversion-with-loss-prohibited
+ If set to
+ MTS.ConversionWithLossProhibited.conversion-with-loss-prohibited,
+ then add the extended RFC 822 field "Conversion-With-Loss:".
+
+ requested-delivery-method
+ Mapped to the extended RFC 822 field
+ "Requested-Delivery-Method:".
+
+ originator-return-address
+ Mapped to the extended RFC 822 field
+ "Originator-Return-Address:".
+
+ physical-forwarding-address-request
+ physical-delivery-modes
+ registered-mail-type
+ recipient-number-for-advice
+ physical-rendition-attributes
+ physical-delivery-report-request
+ physical-forwarding-prohibited
+
+ These elements are only appropriate for physical delivery. They
+ are represented as comments in the "X400-Recipients:" field, as
+ described in Section 4.6.2.2.
+
+ originator-certificate
+ message-token
+ content-confidentiality-algorithm-identifier
+ content-integrity-check
+ message-origin-authentication-check
+
+
+
+Kille [Page 70]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ message-security-label
+ proof-of-delivery-request
+
+ These elements imply use of security services not available in the
+ RFC 822 environment. If they are marked as critical for transfer
+ or delivery, then the message should be rejected. Otherwise they
+ should be discarded.
+
+ redirection-history
+ Each element is mapped to an extended RFC 822 field
+ "Redirection-History:". They should be ordered in the
+ message header, so that the most recent redirection comes
+ first (same order as trace).
+
+ dl-expansion-history
+ Each element is mapped to the extended RFC 822 field
+ "DL-Expansion-History:". They should be ordered in the
+ message header, so that the most recent expansion comes
+ first (same order as trace).
+
+ If any MTS (or MTA) Extensions not specified in X.400 are present,
+ and they are marked as critical for transfer or delivery, then the
+ message should be rejected. If they are not so marked, they can
+ safely be discarded. The list of discarded fields should be
+ indicated in the extended header "Discarded-X400-MTS-Extensions:".
+
+5.3.7. Mappings from the MTA Abstract Service
+
+ There are some mappings at the MTA Abstract Service level which are
+ done for IPM and IPN. These can be derived from
+ MTA.MessageTransferEnvelope. The reasons for the mappings at this
+ level, and the violation of layering are:
+
+ - Allowing for multiple recipients to share a single RFC 822
+ message.
+
+ - Making the X.400 trace information available on the RFC 822
+ side.
+
+ - Making any information on deferred delivery available.
+
+ The 822-MTS recipients should be calculated from the full list of
+ X.400 recipients. This is all of the members of
+ MTA.MessageTransferEnvelope.per-recipient-fields being passed
+ through the gateway, where the responsibility bit is set. In
+ some cases, a different RFC 822 message would be calculated for
+ each recipient. If this is due to differing service requests for
+ each recipient, then a different message should be generated.
+
+
+
+Kille [Page 71]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ If it is due only to the request for non-disclosure of
+ recipients, then the "X400-Recipients:" field should be omitted,
+ and only one message sent.
+
+ The following EBNF is defined for extended RFC 822 headers:
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-and-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+
+ action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+ If MTA.PerMessageTransferFields.deferred-delivery-time is present,
+ use it to generate a Deferred-Delivery: field. For some reason,
+ X.400 does not make this information available at the MTS level on
+ delivery. X.400 profiles, and in particular the CEN/CENELEC profile
+ for X.400(1984) [Systems85a], specify that this element must be
+ supported at the first MTA. If it is not, the function may
+ optionally be implemented by the gateway: that is, the gateway should
+ hold the message until the time specified in the protocol element.
+ Thus, it is expected that the value of this element will often be in
+ the past. For this reason, the extended RFC 822 field is primarily
+ for information.
+
+ Merge MTA.PerMessageTransferFields.trace-information, and
+ MTA.PerMessageTransferFields.internal-trace-information to produce a
+ single ordered trace list. If Internal trace from other management
+ domains has not been stripped, this may require complex interleaving.
+ Use this to generate a sequence of "X400-Received:" fields. The only
+ difference between external trace and internal trace will be the
+
+
+
+Kille [Page 72]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ extra MTA information in internal trace elements.
+
+ When generating an RFC 822 message all trace fields (X400- Received
+ and Received) should be at the beginning of the header, before any
+ other fields. Trace should be in chronological order, with the most
+ recent element at the front of the message. A simple example trace
+ (external) is:
+
+ X400-Received: by /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ; Relayed ;
+ Tue, 20 Jun 89 19:25:11 +0100
+
+ A more complex example (internal):
+
+ X400-Received: by mta UK.AC.UCL.CS in
+ /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ;
+ deferred until Tue, 20 Jun 89 14:24:22 +0100 ;
+ converted (undefined, g3fax) ";" attempted /ADMD=Foo/C=GB/ ;
+ Relayed, Expanded, Redirected ; Tue, 20 Jun 89 19:25:11 +0100
+
+5.3.8. Mappings from Report Delivery
+
+ Delivery reports are mapped at the MTS service level. This means
+ that only reports destined for the MTS user will be mapped. Some
+ additional services are also taken from the MTA service.
+
+5.3.8.1. MTS Mappings
+
+ A Delivery Report service will be represented as
+ MTS.ReportDeliveryEnvelope, which comprises of per-report-fields
+ (MTS.PerReportDeliveryFields) and per-recipient-fields.
+
+ A message should be generated with the following fields:
+
+ From:
+ An administrator at the gateway system. This is also the
+ 822-MTS originator.
+
+ To: A mapping of the
+ MTA.ReportTransferEnvelope.report-destination-name. This is
+ also the 822-MTS recipient.
+
+ Message-Type:
+ Set to "Delivery Report".
+
+ Subject:
+ Something of the form "X.400 Delivery Report".
+
+ The format of the body of the message is defined to ensure that all
+
+
+
+Kille [Page 73]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ information is conveyed to the RFC 822 user in a consistent manner.
+ This gives a summary of critical information, and then a full listing
+ of all parameters:
+
+
+ dr-body-format = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-extra-information <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+ "It was generated by:" report-point <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "It was later converted to RFC 822 by:" mailbox <CRLF>
+ "at" date-time <CRLF> <CRLF>
+
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+
+ dr-extra-information =
+ "-----------------------------------------------" <CRLF> <CRLF>
+ "The following information is derived from the Report" <CRLF>
+ "It may be useful for problem diagnosis:" <CRLF> <CRLF>
+ drc-field-list
+
+ drc-field-list = *(drc-field <CRLF>)
+
+ drc-field = "Subject-Submission-Identifier" ":"
+ mts-msg-id
+ / "Content-Identifier" ":" printablestring
+
+
+
+Kille [Page 74]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ / "Content-Type" ":" mts-content-type
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "Originator-and-DL-Expansion-History" ":"
+ dl-history
+ / "Reporting-DL-Name" ":" mailbox
+ / "Content-Correlator" ":" content-correlator
+ / "Recipient-Info" ":" recipient-info
+ / "Subject-Intermediate-Trace-Information" ":"
+ x400-trace
+
+
+ recipient-info = mailbox "," std-or ";"
+ report-type
+ [ "converted eits" encoded-info ";" ]
+ [ "originally intended recipient"
+ mailbox "," std-or ";" ]
+ [ "last trace" [ encoded-info ] date-time ";" ]
+ [ "supplementary info" <"> printablestring <"> ";" ]
+ [ "redirection history" 1#redirection ";"
+ [ "physical forwarding address"
+ printablestring ";" ]
+
+
+ report-type = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = "delivered at" date-time ";"
+ [ "type of MTS user" labelled-integer ";" ]
+
+ drc-failure = "reason" labelled-integer ";"
+ [ "diagnostic" labelled-integer ";" ]
+
+ report-point = [ "mta" word "in" ] global-id
+ content-correlator = *word
+ dl-history = 1#( mailbox "(" date-time ")")
+
+ The format is defined as a fixed definition. The only exception is
+ that the EBNF.drc-fields should follow RFC 822 folding rules.
+
+ The elements of MTS.ReportDeliveryEnvelope.per-report-fields are
+ mapped as follows onto extended RFC 822 fields:
+
+ subject-submission-identifier
+ Mapped to EBNF.drc-field (Subject-Submission-Identifier)
+
+ content-identifier
+ Mapped to EBNF.drc-field (Content-Identifier)
+
+
+
+Kille [Page 75]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ content-type
+ Mapped to EBNF.drc-field (Content-Type)
+
+ original-encoded-information-types
+ Mapped to EBNF.drc-field (Encoded-Info)
+
+ The extensions from
+ MTS.ReportDeliveryEnvelope.per-report-fields.extensions are
+ mapped as follows:
+
+ originator-and-DL-expansion-history
+ Mapped to EBNF.drc-field (Originator-and-DL-Expansion-
+ History)
+
+ reporting-DL-name
+ Mapped to EBNF.drc-field (Reporting-DL-Name)
+
+ content-correlator
+ Mapped to EBNF.content-correlator, provided that the
+ encoding is IA5String (this should always be the case).
+ This is used in EBNF.dr-summary and EBNF.drc-field-list.
+ In the former, LWSP may be added, in order to improve the
+ layout of the message.
+
+ message-security-label
+ reporting-MTA-certificate
+ report-origin-authentication-check
+
+ These security parameters should not be present. If they are,
+ they should be discarded in preference to discarding the whole
+ report.
+
+ For each element of MTS.ReportDeliveryEnvelope.per-recipient-fields,
+ a value of EBNF.dr-recipient, and an EBNF.drc-field (Recipient-Info)
+ should be generated. The components are mapped as follows.
+
+ actual-recipient-name
+ Used to generate the first EBNF.mailbox and EBNF.std-or in
+ EBNF.recipient-info. Both RFC 822 and X.400 forms are
+ given, as there may be a problem in the mapping tables. It
+ also generates the EBNF.mailbox in EBNF.dr-recip-success or
+ EBNF.dr-recip-failure.
+
+ report
+ If it is MTS.Report.delivery, then set EBNF.dr-recipient to
+ EBNF.dr-recip-success, and similarly set EBNF.report-type,
+ filling in EBNF.drc-success. If it is a failure, set
+ EBNF.dr-recipient to EBNF.dr-recip-failure, making a human
+
+
+
+Kille [Page 76]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ interpretation of the reason and diagnostic codes, and
+ including any supplementary information. EBNF.drc-failure
+ should be filled in systematically.
+
+ converted-encoded-information-types
+ Set EBNF.drc-field ("converted eits")
+
+ originally-intended-recipient
+ Set the second ("originally intended recipient") mailbox
+
+ and
+
+ std-or in EBNF.drc-field.
+
+ supplementary-info
+ Set EBNF.drc-field ("supplementary info"), and include this
+ information in EBNF.dr-recip-failure.
+
+ redirection-history
+ Set EBNF.drc-field ("redirection history")
+
+ physical-forwarding-address
+ Set ENBF.drc-field ("physical forwarding address")
+
+ recipient-certificate
+ Discard
+
+ proof-of-delivery
+ Discard
+
+ Any unknown extensions should be discarded, irrespective of
+ criticality.
+
+ The original message should be included in the delivery port. The
+ original message will usually be available at the gateway, as
+ discussed in Section 5.2.
+
+5.3.8.2. MTA Mappings
+
+ The single 822-MTS recipient is constructed from
+ MTA.ReportTransferEnvelope.report-destination-name, using the
+ mappings of Chapter 4. Unlike with a user message, this information
+ is not available at the MTS level.
+
+ The following additional mappings should be made:
+
+ MTA.ReportTransferEnvelope.report-destination-name
+ This should be used to generate the To: field.
+
+
+
+Kille [Page 77]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ MTA.ReportTransferEnvelope.identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:".
+ It may also be used to derive a "Message-Id:" field.
+
+ MTA.ReportTransferEnvelope.trace-information
+ and
+
+ MTA.ReportTransferEnvelope.internal-trace-information
+ Mapped onto the extended RFC 822 field "X400-Received:", as
+ described in Section 5.3.7. The first element should also
+ be used to generate the "Date:" field, and the
+ EBNF.failure-point.
+
+ MTA.PerRecipientReportTransferFields.last-trace-information
+ Mapped to EBNF.recipient-info (last trace)
+ MTA.PerReportTransferFields.subject-intermediate-trace-information
+ Mapped to EBNF.drc-field (subject-Intermediate-Trace-Information).
+ These fields should be ordered so that the most recent trace element
+ comes first.
+
+5.3.8.3. Example Delivery Report
+
+ This is an example, of a moderately complex report.
+
+ From: The Postmaster <postmaster@cs.ucl.ac.uk>
+ To: jpo@computer-science.nottingham.ac.uk
+ Subject: X.400 Delivery Report
+ Message-Type: Delivery Report
+ Date: Wed, 21 Jun 89 08:45:25 +0100
+ X400-MTS-Identifier: /PRMD=UK.AC/ADMD=Gold 400/C=GB/;13412345235
+
+ This report relates to your message:
+ Date: Wed, 21 Jun 89 06:15:43 +0000
+ Message-ID: <8907140715.aa09015@CS.Nott.AC.UK>
+ Subject: Now it's the fine tuning .... !
+ To: Piete Brooks (Postmaster) <pb@computer-lab.cambridge.ac.uk>
+
+ of Wed, 21 Jun 89 06:15:43 +0000
+
+ It was generated by mta PK in /PRMD=UK/ADMD=DBP/C=DE/
+ at Wed, 21 Jun 89 08:45:25 +0100
+
+ It was later converted to RFC 822 by: Mail-Gateway@oxbridge.ac.uk
+ at Wed, 21 Jun 89 08:45:26 +0100
+
+ Your message was not delivered to: bad-user@nowhere
+ for the following reason: Rendition problem with punctuation
+ (Umlaut failure)
+
+
+
+Kille [Page 78]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ -----------------------------------------------
+
+ The following information is derived from the Report
+ It may be useful for problem diagnosis:
+
+ Subject-Submission-Identifier:
+ [/PRMD=UK.AC/ADMD=Gold 400/C=GB/;148996]
+ Content-Identifier: X.400 Delivery Report
+ Content-Type: P2-1988 (22)
+ Original-Encoded-Information-Types: ia5
+ Content-Correlator: Date: Wed, 21 Jun 89 06:15:43 +0000
+ Message-ID: <8907140715.aa09015@CS.Nott.AC.UK>
+ Subject: Now it's the fine tuning .... !
+ To: Piete Brooks (Postmaster) <pb@computer-lab.cambridge.ac.uk>
+ Recipient-Info:
+ bad-user@nowhere, /S=bad-user/PRMD=nowhere/ADMD=DBP/C=DE/ ;
+ FAILURE reason Physical-Rendition-Not-Performed (3) ;
+ diagnostic Punctuation-Symbol-Loss (23) ;
+ supplementary info Umlaut failure
+
+ The Original Message follows:
+
+ Subject: Now it's the fine tuning .... !
+ Date: Wed, 21 Jun 89 06:15:43 +0000
+ From: Julian Onions <jpo@computer-science.nottingham.ac.uk>
+ To: Piete Brooks (Postmaster) <pb@computer-lab.cambridge.ac.uk>
+ Cc: bad-user@nowhere
+ Message-ID: <8907140715.aa09015@CS.Nott.AC.UK>
+
+ A short test
+
+5.3.9. Probe
+
+ This is an MTS internal issue. Any probe should be serviced by the
+ gateway, as there is no equivalent RFC 822 functionality. The value
+ of the reply is dependent on whether the gateway could service an MTS
+ Message with the values specified in the probe. The reply should
+ make use of MTS.SupplementaryInformation to indicate that the probe
+ was serviced by the gateway.
+
+Appendix A - Differences with RFC 987
+
+ This appendix summarises changes between this document and RFC
+ 987/RFC 1026.
+
+1. Introduction
+
+ The model has shifted from a protocol based mapping to a service
+
+
+
+Kille [Page 79]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ based mapping. This has increased the generality of the
+ specification, and improved the model. This change affects the
+ entire document.
+
+ A restriction on scope has been added.
+
+2. Service Elements
+
+ - The new service elements of X.400 are dealt with.
+
+ - A clear distinction is made between origination and
+ reception.
+
+3. Basic Mappings
+
+ - Add teletex support.
+
+ - Add object identifier support.
+
+ - Add labelled integer support.
+
+ - Make PrintableString <-> ASCII mapping reversible.
+
+ - The printable string mapping is aligned to the NBS mapping
+ derived from RFC 987.
+
+4. Addressing
+
+ - Support for new addressing attributes.
+
+ - The message ID mapping is changed to not be table driven.
+
+5. Detailed Mappings
+
+ - Define extended IPM Header, and use instead of second body
+ part for RFC 822 extensions.
+
+ - Realignment of element names.
+
+ - New syntax for reports, simplifying the header and
+ introducing a mandatory body format (the RFC 987 header
+ format was unusable).
+
+ - Drop complex autoforwarded mapping.
+
+ - Add full mapping for IP Notifications, defining a body
+ format.
+
+
+
+
+Kille [Page 80]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ - Adopt an MTS Identifier syntax in line with the O/R Address
+ syntax.
+
+ - A new format for X400 Trace representation on the RFC 822
+ side.
+
+6. Appendices
+
+ - Move Appendix on restricted 822 mappings to a separate RFC.
+
+ - Delete Phonenet and SMTP Appendixes.
+
+Appendix B - Mappings specific to the JNT Mail
+
+ This Appendix is specific to the JNT Mail Protocol. It describes
+ specific changes in the context of this protocol.
+
+1. Introduction
+
+ There are five aspects of a gateway which are JNT Mail Specific.
+ These are each given a section of this appendix.
+
+2. Domain Ordering
+
+ When interpreting and generating domains, the UK NRS domain ordering
+ must be used.
+
+3. Acknowledge-To:
+
+ This field has no direct functional equivalent in X.400. However, it
+ can be supported to an extent, and can be used to improve X.400
+ support.
+
+ If an Acknowledge-To: field is present when going from JNT Mail to
+ X.400, MTS.PerRecipientSubmissionFields.originator-request-
+ report.report shall be set for each recipient. If there is more that
+ one address in the Acknowledge-To: field, or if the one address is
+ not equivalent to the 822-MTS return address, then:
+
+ 1. Acknowledgement(s) should be generated by the gateway. The
+ text of these acknowledgements should indicate that they are
+ generated by the gateway.
+
+ 2. The Acknowledge-To: field should also be passed as an
+ extension heading.
+
+ When going from X.400 to JNT Mail, in cases where
+ MTA.PerRecipientMessageTransferFields.per-recipient-indicators.
+
+
+
+Kille [Page 81]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ originator-report is set, the copy of the message to that recipient
+ should have an Acknowledge-To: field containing the
+ MTS.OtherMessageDeliveryFields.originator-name. No special treatment
+ should be given when MTA.PerRecipientMessageTransferFields.per-
+ recipient-indicators. originating-MTA-report is set. No attempt
+ should be made to map Receipt notification requests onto
+ Acknowledge-To:, as no association can be guaranteed between IPMS and
+ MTS level addressing information.
+
+4. Trace
+
+ JNT Mail trace uses the Via: syntax. When going from JNT Mail to
+ X.400, a mapping similar to that for Received: is used. No
+ MTS.GlobalDomainIdentifier of the site making the trace can be
+ derived from the Via:, so a value for the gateway should be used.
+ The trace text, including the "Via:", should be unfolded, truncated
+ to MTS.ub-mta-name-length (32), and mapped to
+ MTA.InternalTraceInformationElement.mta-name. There is no JNT Mail
+ specific mapping for the reverse direction.
+
+5. Timezone specification
+
+ The extended syntax of zone defined in the JNT Mail Protocol should
+ be used in the mapping of UTCTime defined in Chapter 3.
+
+6. Lack of 822-MTS originator specification
+
+ In JNT Mail the default mapping of the
+ MTS.OtherMessageDeliveryFields.originator-name is to the Sender:
+ field. This can cause a problem when going from X.400 to JNT Mail if
+ the mapping of IPMS.Heading has already generated a Sender: field.
+ To overcome this, new extended JNT Mail field is defined. This is
+ chosen to align with the JNT recommendation for interworking with
+ full RFC 822 systems [Kille84b].
+
+ original-sender = "Original-Sender" ":" mailbox
+
+ If an IPM has no IPMS.Heading.authorising-users component and
+ IPMS.Heading.originator.formal-name is different from
+ MTS.OtherMessageDeliveryFields.originator-name, map
+ MTS.OtherMessageDeliveryFields.originator-name, onto the Sender:
+ field.
+
+ If an IPM has a IPMS.Heading.authorising-users component, and
+ IPMS.Heading.originator.formal-name is different from
+ MTS.OtherMessageDeliveryFields.originator-name,
+ MTS.OtherMessageDeliveryFields.originator-name should be mapped onto
+ the Sender: field, and IPMS.Heading.originator mapped onto the
+
+
+
+Kille [Page 82]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ Original-Sender: field.
+
+ In other cases the MTS.OtherMessageDeliveryFields.originator-name, is
+ already correctly represented.
+
+Appendix C - Mappings specific to UUCP Mail
+
+ Gatewaying of UUCP and X.400 is handled by first gatewaying the UUCP
+ address into RFC 822 syntax (using RFC 976) and then gatewaying the
+ resulting RFC 822 address into X.400. For example, an X.400 address:
+
+ Country US
+ Organisation Xerox
+ Personal Name John Smith
+
+ might be expressed from UUCP as
+
+ inthop!gate!gatehost.COM!/C=US/O=Xerox/PN=John.Smith/
+
+ (assuming gate is a UUCP-Internet gateway and gatehost.COM is an
+ Internet-X.400 gateway) or
+
+ inthop!gate!Xerox.COM!John.Smith
+
+ (assuming that Xerox.COM and /C=US/O=Xerox/ are equivalent.)
+
+ In the other direction, a UUCP address Smith@ATT.COM, integrated into
+ 822, would be handled as any other 822 address. A non-integrated
+ address such as inthop!dest!user might be handled through a pair of
+ gateways:
+
+ Country US
+ ADMD ATT
+ PRMD Internet
+ Organisation GateOrg
+ RFC-822 inthop!dest!user@gatehost.COM
+
+ or through a single X.400 to UUCP gateway:
+
+ Country US
+ ADMD ATT
+ PRMD UUCP
+ Organisation GateOrg
+ RFC-822 inthop!dest!user
+
+Appendix D - Object Identifier Assignment
+
+ An object identifier is needed for the extension IPMS element. The
+
+
+
+Kille [Page 83]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ following value should be used.
+
+ rfc-987-88 OBJECT IDENTIFIER ::=
+ {ccitt data(9) pss(2342) ucl(234219200300) rfc-987-88(200)}
+
+ id-rfc-822-field OBJECT IDENTIFIER ::= {rfc987-88 field(0)}
+
+Appendix E - BNF Summary
+
+ boolean = "TRUE" / "FALSE"
+
+
+ numericstring = *DIGIT
+
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 1-9, and "-">
+
+
+ object-identifier ::= [ defined-value ] oid-comp-list
+
+
+
+Kille [Page 84]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ oid-comp-list ::= oid-comp oid-comp-list
+ | oid-comp
+
+ defined-value ::= key-string
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / registered-dd-type
+ / dd-key "." std-printablestring
+ standard-type = key-string
+
+ registered-dd-type
+ = key-string
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+
+
+
+Kille [Page 85]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=">
+ std-pair = "$" ps-char
+
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "."
+
+
+ global-id = std-or-address
+
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-and-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+
+ action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+
+ dr-body-format = dr-summary <CRLF>
+ dr-recipients <CRLF>
+
+
+
+Kille [Page 86]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ dr-extra-information <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+ "It was generated by:" report-point <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "It was later converted to RFC 822 by:" mailbox <CRLF>
+ "at" date-time <CRLF> <CRLF>
+
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+
+ dr-extra-information =
+ "-----------------------------------------------" <CRLF> <CRLF>
+ "The following information is derived from the Report" <CRLF>
+
+ "It may be useful for problem diagnosis:" <CRLF> <CRLF>
+ drc-field-list
+
+ drc-field-list = *(drc-field <CRLF>)
+
+ drc-field = "Subject-Submission-Identifier" ":"
+ mts-msg-id
+ / "Content-Identifier" ":" printablestring
+ / "Content-Type" ":" mts-content-type
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "Originator-and-DL-Expansion-History" ":"
+ dl-history
+
+
+
+Kille [Page 87]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ / "Reporting-DL-Name" ":" mailbox
+ / "Content-Correlator" ":" content-correlator
+ / "Recipient-Info" ":" recipient-info
+
+
+ recipient-info = mailbox "," std-or ";"
+ report-type
+ [ "converted eits" encoded-info ";" ]
+ [ "originally intended recipient"
+ mailbox "," std-or ";" ]
+ [ "supplementary info" <"> printablestring <"> ";" ]
+ [ "redirection history" 1#redirection ";"
+ [ "physical forwarding address"
+ printablestring ";" ]
+
+
+ report-type = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = "delivered at" date-time ";"
+ [ "type of MTS user" labelled-integer ";" ]
+
+ drc-failure = "reason" labelled-integer ";"
+ [ "diagnostic" labelled-integer ";" ]
+
+
+ report-point = [ "mta" word "in" ] global-id
+ content-correlator = *word
+ dl-history = 1#( mailbox "(" date-time ")")
+
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Redirection-History" ":" redirection
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Requested-Delivery-Method" ":"
+ 1*( labelled-integer )
+ / "Delivery-Date" ":" date-time
+
+
+
+Kille [Page 88]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( oid / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifer
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ redirection = mailbox ";" "reason" "="
+ redirection-reason
+ ";" date-time
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ ipn-content-return
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt "Your message to:"
+
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+
+
+
+Kille [Page 89]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+
+ non-receipt-reason = "Discarded" / "Auto-Forwarded"
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+
+ ms-field = "Obsoletes" ":" 1#msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Language" ":" language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#oid
+
+ importance = "low" / "normal" / "high"
+
+
+ sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+ language = 2*ALPHA [ language-description ]
+ language-description = printable-string
+
+
+ message-type = "Delivery Report"
+
+
+
+Kille [Page 90]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+
+Appendix F - Format of address mapping tables
+
+ There is a need to specify the association between the domain and
+ X.400 namespaces described in Chapter 4. The use of this association
+ leads to a better service on both sides of the gateway, and so
+ defining mappings and distributing them in the form defined in this
+ appendix is strongly encouraged.
+
+ This syntax defined is initially in table form, but the syntax is
+ defined in a manner which makes it suitable for use with domain
+ nameservices (such as the Internet Domain nameservers or the UK NRS).
+ The mapping is not symmetric, and so a separate table is specified
+ for each direction. If multiple matches are possible, the longest
+ possible match should be used.
+
+ First, an address syntax is defined, which is compatible with the
+ syntax used for 822.domains. It is intended that this syntax may be
+ used in conjunction with systems which support this form of name.
+
+ To allow the mapping of null attributes to be represented, the
+ pseudo-value "@" (not a printable string character) is used to
+ indicate omission of a level in the hierarchy. This is distinct from
+ the form including the element with no value, although a correct
+ X.400 implementation will interpret both in the same manner.
+
+ This syntax is not intended to be handled by users.
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "."
+
+ An example usage:
+
+ ~ROLE$Big.Chief.ADMD$ATT.C$US
+ PRMD$DEC.ADMD$@.C$US
+
+
+
+Kille [Page 91]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ The first example illustrates quoting of a ".", and the second
+ omission of the ADMD level.
+
+ Various further restrictions are placed on the usage of dmn-or-
+ address:
+
+ 1. Only C, ADMD, PRMD, O, and OU may be used.
+
+ 2. There must be a strict ordering of all components, with the
+ most significant components on the RHS.
+
+ 3. No components may be omitted from the hierarchy, although
+ the hierarchy may terminate at any level. If the mapping is
+ to an omitted component, the "@" syntax is used.
+
+ For domain -> X.400:
+
+ domain-syntax "#" dmn-or-address "#"
+
+ Note that the trailing "#" is used for clarity, as the dmn-or-
+ address syntax can lead to values with trailing blanks. Lines
+ staring with "#" are comments.
+
+ For example:
+
+ AC.UK#PRMD$UK.AC.ADMD$GOLD 400.C$GB#
+ XEROX.COM#O$Xerox.ADMD$ATT.C$US#
+ GMD.DE#O$@.PRMD$GMD.ADMD$DBP.C$DE#
+
+ For X.400 -> domain:
+
+ dmn-or-address "#" domain-syntax "#"
+
+ For example:
+
+ #
+ # Mapping table
+ #
+ PRMD$UK.AC.ADMD$GOLD 400.C$GB#AC.UK#
+
+References
+
+ [Braden89a] Braden, R., Editor, "Requirements for Internet Hosts --
+ Application and Support", RFC 1123, USC/Information Sciences
+ Institute, October 1989.
+
+ [CCITT88a] CCITT, "CCITT Recommendations X.408", Message Handling
+ Systems: Encoded Information Type Conversion Rules, CCITT, December
+
+
+
+Kille [Page 92]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ 1988.
+
+ [CCITT/ISO88a] CCITT/ISO, "CCITT Recommendations X.400/ ISO IS
+ 10021-1", Message Handling: System and Service Overview, CCITT/ISO,
+ December 1988.
+
+ [CCITT/ISO88b] CCITT/ISO, "CCITT Recommendations X.420/ ISO IS
+ 10021-7", Message Handling Systems: Interpersonal Messaging System,
+ CCITT/ISO, December 1988.
+
+ [CCITT/ISO88c] CCITT/ISO, "CCITT Recommendations X.411/ ISO IS
+ 10021-4", Message Handling Systems: Message Transfer System: Abstract
+ Service Definition and Procedures, CCITT/ISO, December 1988.
+
+ [CCITT/ISO88d] CCITT/ISO, "Specification of Abstract Syntax Notation
+ One (ASN.1)", CCITT Recommendation X.208 / ISO IS 8824, CCITT/ISO,
+ December 1988.
+
+ [Crocker82a] Crocker, D., "Standard of the Format of ARPA Internet
+ Text Messages", RFC 822, August 1982.
+
+ [Horton86a] Horton, M., "UUCP Mail Interchange Format Standard", RFC
+ 976, February 1986.
+
+ [Kille84b] Kille, S., "Gatewaying between RFC 822 and JNT Mail", JNT
+ Mailgroup Note 15, May 1984.
+
+ [Kille84a] Kille, S., Editor, "JNT Mail Protocol (revision 1.0)",
+ Joint Network Team, Rutherford Appleton Laboratory, March 1984.
+
+ [Kille86a] Kille, S., "Mapping Between X.400 and RFC 822", UK
+ Academic Community Report (MG.19) / RFC 987, June 1986.
+
+ [Kille87a] Kille, S., "Addendum to RFC 987", UK Academic Community
+ Report (MG.23) / RFC 1026, August 1987.
+
+ [Kille89a] Kille, S., "A String Encoding of Presentation Address",
+ UCL Research Note 89/14, March 1989.
+
+ [Kille89b] Kille, S., "Mapping Between Full RFC 822 and RFC 822 with
+ Restricted Encoding", RFC 1137, December 1989.
+
+ [Larmouth83a] Larmouth, J., "JNT Name Registration Technical Guide",
+ Salford University Computer Centre, April 1983.
+
+ [Mockapetris87a] Mockapetris, P., "Domain Names - Concepts and
+ Facilities", RFC 1034, USC/Information Sciences Institute, November
+ 1987.
+
+
+
+Kille [Page 93]
+
+RFC 1148 Mapping X.400(88) and 822 March 1990
+
+
+ [Postel82a] Postel, J., "Simple Mail Transfer Protocol", RFC 821,
+ USC/Information Sciences Institute, August 1982.
+
+ [Rose85a] Rose M., and E. Stefferud, "Proposed Standard for Message
+ Encapsulation", RFC 934, January 1985.
+
+ [Systems85a] CEN/CENELEC/Information Technology/Working Group on
+ Private Message Handling Systems, "FUNCTIONAL STANDARD A/3222",
+ CEN/CLC/IT/WG/PMHS N 17, October 1985.
+
+Security Considerations
+
+ Security issues are not discussed in this memo.
+
+Author's Address
+
+ Steve Kille
+ University College London
+ Gower Street
+ WC1E 6BT
+ England
+
+ Phone: +44-1-380-7294
+
+ EMail: S.Kille@Cs.Ucl.AC.UK
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 94]
+ \ No newline at end of file
diff --git a/Documentation/en/rfc/rfc1327.txt b/Documentation/en/rfc/rfc1327.txt
new file mode 100644
index 00000000..06e3e237
--- /dev/null
+++ b/Documentation/en/rfc/rfc1327.txt
@@ -0,0 +1,6331 @@
+
+
+
+
+
+
+Network Working Group S. Hardcastle-Kille
+Request for Comments: 1327 University College London
+Obsoletes: RFCs 987, 1026, 1138, 1148 May 1992
+Updates: RFC 822
+
+
+ Mapping between X.400(1988) / ISO 10021 and RFC 822
+
+Status of this Memo
+
+ This RFC specifies an IAB standards track protocol for the Internet
+ community, and requests discussion and suggestions for improvements.
+ Please refer to the current edition of the "IAB Official Protocol
+ Standards" for the standardization state and status of this protocol.
+ Distribution of this memo is unlimited.
+
+Abstract
+
+ This document describes a set of mappings which will enable
+ interworking between systems operating the CCITT X.400 1988)
+ Recommendations on Message Handling Systems / ISO IEC 10021 Message
+ Oriented Text Interchange Systems (MOTIS) [CCITT/ISO88a], and systems
+ using the RFC 822 mail protocol [Crocker82a] or protocols derived
+ from RFC 822. The approach aims to maximise the services offered
+ across the boundary, whilst not requiring unduly complex mappings.
+ The mappings should not require any changes to end systems. This
+ document is a revision based on RFCs 987, 1026, 1138, and 1148
+ [Kille86a,Kille87a] which it obsoletes.
+
+ This document specifies a mapping between two protocols. This
+ specification should be used when this mapping is performed on the
+ DARPA Internet or in the UK Academic Community. This specification
+ may be modified in the light of implementation experience, but no
+ substantial changes are expected.
+
+Table of Contents
+
+ 1 - Overview ...................................... 3
+ 1.1 - X.400 ......................................... 3
+ 1.2 - RFC 822 ....................................... 3
+ 1.3 - The need for conversion ....................... 4
+ 1.4 - General approach .............................. 4
+ 1.5 - Gatewaying Model .............................. 5
+ 1.6 - X.400 (1984) .................................. 8
+ 1.7 - Compatibility with previous versions .......... 8
+ 1.8 - Aspects not covered ........................... 8
+ 1.9 - Subsetting .................................... 9
+ 1.10 - Document Structure ............................ 9
+
+
+
+Hardcastle-Kille [Page 1]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 1.11 - Acknowledgements .............................. 9
+ 2 - Service Elements .............................. 10
+ 2.1 - The Notion of Service Across a Gateway ........ 10
+ 2.2 - RFC 822 ....................................... 11
+ 2.3 - X.400 ......................................... 15
+ 3 - Basic Mappings ................................ 24
+ 3.1 - Notation ...................................... 24
+ 3.2 - ASCII and IA5 ................................. 26
+ 3.3 - Standard Types ................................ 26
+ 3.4 - Encoding ASCII in Printable String ............ 28
+ 4 - Addressing .................................... 30
+ 4.1 - A textual representation of MTS.ORAddress ..... 30
+ 4.2 - Basic Representation .......................... 31
+ 4.3 - EBNF.822-address <-> MTS.ORAddress ............ 36
+ 4.4 - Repeated Mappings ............................. 48
+ 4.5 - Directory Names ............................... 50
+ 4.6 - MTS Mappings .................................. 50
+ 4.7 - IPMS Mappings ................................. 55
+ 5 - Detailed Mappings ............................. 59
+ 5.1 - RFC 822 -> X.400 .............................. 59
+ 5.2 - Return of Contents ............................ 67
+ 5.3 - X.400 -> RFC 822 .............................. 67
+ Appendix A - Mappings Specific to SMTP ..................... 91
+ Appendix B - Mappings specific to the JNT Mail ............. 91
+ 1 - Introduction .................................. 91
+ 2 - Domain Ordering ............................... 91
+ 3 - Addressing .................................... 91
+ 4 - Acknowledge-To: .............................. 91
+ 5 - Trace ......................................... 92
+ 6 - Timezone specification ........................ 92
+ 7 - Lack of 822-MTS originator specification ...... 92
+ Appendix C - Mappings specific to UUCP Mail ................ 93
+ Appendix D - Object Identifier Assignment .................. 94
+ Appendix E - BNF Summary ................................... 94
+ Appendix F - Format of address mapping tables .............. 101
+ 1 - Global Mapping Information .................... 101
+ 2 - Syntax Definitions ............................ 102
+ 3 - Table Lookups ................................. 103
+ 4 - Domain -> O/R Address format .................. 104
+ 5 - O/R Address -> Domain format .................. 104
+ 6 - Domain -> O/R Address of Gateway table ........ 104
+ Appendix G - Mapping with X.400(1984) ...................... 105
+ Appendix H - RFC 822 Extensions for X.400 access ........... 106
+ Appendix I - Conformance ................................... 106
+ Appendix J - Change History: RFC 987, 1026, 1138, 1148 ..... 107
+ 1 - Introduction .................................. 108
+ 2 - Service Elements .............................. 108
+ 3 - Basic Mappings ................................ 108
+
+
+
+Hardcastle-Kille [Page 2]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 4 - Addressing .................................... 108
+ 5 - Detailed Mappings ............................. 109
+ 6 - Appendices .................................... 109
+ Appendix K - Change History: RFC 1148 to this Document ..... 109
+ 1 - General ....................................... 109
+ 2 - Basic Mappings ................................ 110
+ 3 - Addressing .................................... 110
+ 4 - Detailed Mappings ............................. 110
+ 5 - Appendices .................................... 110
+ References ................................................. 111
+ Security Considerations .................................... 113
+ Author's Address ........................................... 113
+
+Chapter 1 -- Overview
+
+1.1. X.400
+
+ This document relates to the CCITT 1988 X.400 Series Recommendations
+ / ISO IEC 10021 on the Message Oriented Text Interchange Service
+ (MOTIS). This ISO/CCITT standard is referred to in this document as
+ "X.400", which is a convenient shorthand. Any reference to the 1984
+ CCITT Recommendations will be explicit. X.400 defines an
+ Interpersonal Messaging System (IPMS), making use of a store and
+ forward Message Transfer System. This document relates to the IPMS,
+ and not to wider application of X.400. It is expected that X.400
+ will be implemented very widely.
+
+1.2. RFC 822
+
+ RFC 822 evolved as a messaging standard on the DARPA (the US Defense
+ Advanced Research Projects Agency) Internet. It specifies and end to
+ end message format. It is used in conjunction with a number of
+ different message transfer protocol environments.
+
+ SMTP Networks
+ On the DARPA Internet and other TCP/IP networks, RFC 822 is
+ used in conjunction with two other standards: RFC 821, also
+ known as Simple Mail Transfer Protocol (SMTP) [Postel82a],
+ and RFC 920 which is a Specification for domains and a
+ distributed name service [Postel84a].
+
+ UUCP Networks
+ UUCP is the UNIX to UNIX CoPy protocol, which is usually
+ used over dialup telephone networks to provide a simple
+ message transfer mechanism. There are some extensions to
+ RFC 822, particularly in the addressing. They use domains
+ which conform to RFC 920, but not the corresponding domain
+ nameservers [Horton86a].
+
+
+
+Hardcastle-Kille [Page 3]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Bitnet
+ Some parts of Bitnet and related networks use RFC 822
+ related protocols, with EBCDIC encoding.
+
+ JNT Mail Networks
+ A number of X.25 networks, particularly those associated
+ with the UK Academic Community, use the JNT (Joint Network
+ Team) Mail Protocol, also known as Greybook [Kille84a].
+ This is used with domains and name service specified by the
+ JNT NRS (Name Registration Scheme) [Larmouth83a].
+
+ The mappings specified here are appropriate for all of these
+ networks.
+
+1.3. The need for conversion
+
+ There is a large community using RFC 822 based protocols for mail
+ services, who will wish to communicate with users of the IPMS
+ provided by X.400 systems. This will also be a requirement in cases
+ where communities intend to make a transition to use of an X.400
+ IPMS, as conversion will be needed to ensure a smooth service
+ transition. It is expected that there will be more than one gateway,
+ and this specification will enable them to behave in a consistent
+ manner. Note that the term gateway is used to describe a component
+ performing the protocol mappings between RFC 822 and X.400. This is
+ standard usage amongst mail implementors, but should be noted
+ carefully by transport and network service implementors.
+
+ Consistency between gateways is desirable to provide:
+
+ 1. Consistent service to users.
+
+ 2. The best service in cases where a message passes through
+ multiple gateways.
+
+1.4. General approach
+
+ There are a number of basic principles underlying the details of the
+ specification. These principles are goals, and are not achieved in
+ all aspects of the specification.
+
+ 1. The specification should be pragmatic. There should not be
+ a requirement for complex mappings for "Academic" reasons.
+ Complex mappings should not be required to support trivial
+ additional functionality.
+
+ 2. Subject to 1), functionality across a gateway should be as
+ high as possible.
+
+
+
+Hardcastle-Kille [Page 4]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 3. It is always a bad idea to lose information as a result of
+ any transformation. Hence, it is a bad idea for a gateway
+ to discard information in the objects it processes. This
+ includes requested services which cannot be fully mapped.
+
+ 4. All mail gateways actually operate at exactly one level
+ above the layer on which they conceptually operate. This
+ implies that the gateway must not only be cognisant of the
+ semantics of objects at the gateway level, but also be
+ cognisant of higher level semantics. If meaningful
+ transformation of the objects that the gateway operates on
+ is to occur, then the gateway needs to understand more than
+ the objects themselves.
+
+ 5. Subject to 1), the specification should be reversible. That
+ is, a double transformation should bring you back to where
+ you started.
+
+1.5. Gatewaying Model
+
+1.5.1. X.400
+
+ X.400 defines the IPMS Abstract Service in X.420/ISO 10021-7,
+ [CCITT/ISO88b] which comprises of three basic services:
+
+ 1. Origination
+
+ 2. Reception
+
+ 3. Management
+
+ Management is a local interaction between the user and the IPMS, and
+ is therefore not relevant to gatewaying. The first two services
+ consist of operations to originate and receive the following two
+ objects:
+
+ 1. IPM (Interpersonal Message). This has two components: a
+ heading, and a body. The body is structured as a sequence
+ of body parts, which may be basic components (e.g., IA5
+ text, or G3 fax), or IP Messages. The heading consists of
+ fields containing end to end user information, such as
+ subject, primary recipients (To:), and importance.
+
+ 2. IPN (Inter Personal Notification). A notification about
+ receipt of a given IPM at the UA level.
+
+ The Origination service also allows for origination of a probe, which
+ is an object to test whether a given IPM could be correctly received.
+
+
+
+Hardcastle-Kille [Page 5]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ The Reception service also allows for receipt of Delivery Reports
+ DR), which indicate delivery success or failure.
+
+ These IPMS Services utilise the Message Transfer (MT) Abstract
+ Service [CCITT/ISO88c]. The MT Abstract Service provides the
+ following three basic services:
+
+ 1. Submission (used by IPMS Origination)
+
+ 2. Delivery (used by IPMS Reception)
+
+ 3. Administration (used by IPMS Management)
+
+ Administration is a local issue, and so does not affect this
+ standard. Submission and delivery relate primarily to the MTS
+ Message (comprising Envelope and Content), which carries an IPM or
+ IPN (or other uninterpreted contents). There is also an Envelope,
+ which includes an ID, an originator, and a list of recipients.
+ Submission also includes the probe service, which supports the IPMS
+ Probe. Delivery also includes Reports, which indicate whether a given
+ MTS Message has been delivered or not.
+
+ The MTS is REFINED into the MTA (Message Transfer Agent) Service,
+ which defines the interaction between MTAs, along with the procedures
+ for distributed operation. This service provides for transfer of MTS
+ Messages, Probes, and Reports.
+
+1.5.2. RFC 822
+
+ RFC 822 is based on the assumption that there is an underlying
+ service, which is here called the 822-MTS service. The 822-MTS
+ service provides three basic functions:
+
+ 1. Identification of a list of recipients.
+
+ 2. Identification of an error return address.
+
+ 3. Transfer of an RFC 822 message.
+
+ It is possible to achieve 2) within the RFC 822 header. Some 822-MTS
+ protocols, in particular SMTP, can provide additional functionality,
+ but as these are neither mandatory in SMTP, nor available in other
+ 822-MTS protocols, they are not considered here. Details of aspects
+ specific to two 822-MTS protocols are given in Appendices B and C.
+ An RFC 822 message consists of a header, and content which is
+ uninterpreted ASCII text. The header is divided into fields, which
+ are the protocol elements. Most of these fields are analogous to P2
+ heading fields, although some are analogous to MTS Service Elements
+
+
+
+Hardcastle-Kille [Page 6]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ or MTA Service Elements.
+
+1.5.3. The Gateway
+
+ Given this functional description of the two services, the functional
+ nature of a gateway can now be considered. It would be elegant to
+ consider the 822-MTS service mapping onto the MTS Service Elements
+ and RFC 822 mapping onto an IPM, but reality just does not fit.
+ Another elegant approach would be to treat this document as the
+ definition of an X.400 Access Unit (AU). Again, reality does not
+ fit. It is necessary to consider that the IPM format definition, the
+ IPMS Service Elements, the MTS Service Elements, and MTA Service
+ Elements on one side are mapped into RFC 822 + 822-MTS on the other
+ in a slightly tangled manner. The details of the tangle will be made
+ clear in Chapter 5. Access to the MTA Service Elements is minimised.
+
+ The following basic mappings are thus defined. When going from RFC
+ 822 to X.400, an RFC 822 message and the associated 822-MTS
+ information is always mapped into an IPM (MTA, MTS, and IPMS
+ Services). Going from X.400 to RFC 822, an RFC 822 message and the
+ associated 822-MTS information may be derived from:
+
+ 1. A Report (MTA, and MTS Services)
+
+ 2. An IPN (MTA, MTS, and IPMS services)
+
+ 3. An IPM (MTA, MTS, and IPMS services)
+
+ Probes (MTA Service) must be processed by the gateway, as discussed
+ in Chapter 5. MTS Messages containing Content Types other than those
+ defined by the IPMS are not mapped by the gateway, and should be
+ rejected at the gateway.
+
+1.5.4. Repeated Mappings
+
+ The primary goal of this specification is to support single mappings,
+ so that X.400 and RFC 822 users can communicate with maximum
+ functionality.
+
+ The mappings specified here are designed to work where a message
+ traverses multiple times between X.400 and RFC 822. This is often
+ essential, particularly in the case of distribution lists. However,
+ in general, this will lead to a level of service which is the lowest
+ common denominator (approximately the services offered by RFC 822).
+
+ Some RFC 822 networks may wish to use X.400 as an interconnection
+ mechanism (typically for policy reasons), and this is fully
+ supported.
+
+
+
+Hardcastle-Kille [Page 7]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Where an X.400 messages transfers to RFC 822 and then back to X.400,
+ there is no expectation of X.400 services which do not have an
+ equivalent service in standard RFC 822 being preserved - although
+ this may be possible in some cases.
+
+1.6. X.400 (1984)
+
+ Much of this work is based on the initial specification of RFC 987
+ and in its addendum RFC 1026, which defined a mapping between
+ X.400(1984) and RFC 822. A basic decision is that the mapping
+ defined in this document is to the full 1988 version of X.400, and
+ not to a 1984 compatible subset. New features of X.400(1988) can be
+ used to provide a much cleaner mapping than that defined in RFC 987.
+ This is important, to give good support to communities which will
+ utilise full X.400 at an early date. To interwork with 1984
+ systems, Appendix G shall be followed.
+
+ If a message is being transferred to an X.400(1984) system by way of
+ X.400(1988) MTA it will give a slightly better service to follow the
+ rules of Appendix G.
+
+1.7. Compatibility with previous versions
+
+ The changes between this and older versions of the document are given
+ in Appendices I and J. These are RFCs 987, 1026, 1138, and 1148.
+ This document is a revision of RFC 1148 [Kille90a]. As far as
+ possible, changes have been made in a compatible fashion.
+
+1.8. Aspects not covered
+
+ There have been a number of cases where RFC 987 was used in a manner
+ which was not intended. This section is to make clear some
+ limitations of scope. In particular, this specification does not
+ specify:
+
+ - Extensions of RFC 822 to provide access to all X.400
+ services
+
+ - X.400 user interface definition
+
+ - Mapping X.400 to extended versions of RFC 822, with support
+ for multimedia content.
+
+ The first two of these are really coupled. To map the X.400
+ services, this specification defines a number of extensions to RFC
+ 822. As a side effect, these give the 822 user access to SOME X.400
+ services. However, the aim on the RFC 822 side is to preserve
+ current service, and it is intentional that access is not given to
+
+
+
+Hardcastle-Kille [Page 8]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ all X.400 services. Thus, it will be a poor choice for X.400
+ implementors to use RFC 987(88) as an interface - there are too many
+ aspects of X.400 which cannot be accessed through it. If a text
+ interface is desired, a specification targeted at X.400, without RFC
+ 822 restrictions, would be more appropriate. Some optional and
+ limited extensions in this area have proved useful, and are defined
+ in Appendix H.
+
+1.9. Subsetting
+
+ This proposal specifies a mapping which is appropriate to preserve
+ services in existing RFC 822 communities. Implementations and
+ specifications which subset this specification are strongly
+ discouraged.
+
+1.10. Document Structure
+
+ This document has five chapters:
+
+ 1. Overview - this chapter.
+
+ 2. Service Elements - This describes the (end user) services
+ mapped by a gateway.
+
+ 3. Basic mappings - This describes some basic notation used in
+ Chapters 3-5, the mappings between character sets, and some
+ fundamental protocol elements.
+
+ 4. Addressing - This considers the mapping between X.400 O/R
+ names and RFC 822 addresses, which is a fundamental gateway
+ component.
+
+ 5. Detailed Mappings - This describes the details of all other
+ mappings.
+
+ There are also eleven appendices.
+
+ WARNING:
+ THE REMAINDER OF THIS SPECIFICATION IS TECHNICALLY DETAILED.
+ IT WILL NOT MAKE SENSE, EXCEPT IN THE CONTEXT OF RFC 822 AND
+ X.400 (1988). DO NOT ATTEMPT TO READ THIS DOCUMENT UNLESS
+ YOU ARE FAMILIAR WITH THESE SPECIFICATIONS.
+
+1.11. Acknowledgements
+
+ The work in this specification was substantially based on RFC 987 and
+ RFC 1148, which had input from many people, who are credited in the
+ respective documents.
+
+
+
+Hardcastle-Kille [Page 9]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ A number of comments from people on RFC 1148 lead to this document.
+ In particular, there were comments and suggestions from: Maurice
+ Abraham (HP); Harald Alvestrand (Sintef); Peter Cowen (X-Tel); Jim
+ Craigie (JNT); Ella Gardener (MITRE); Christian Huitema (Inria); Erik
+ Huizer (SURFnet); Neil Jones DEC); Ignacio Martinez (IRIS); Julian
+ Onions (X-Tel); Simon Poole (SWITCH); Clive Roberts (Data General);
+ Pete Vanderbilt SUN); Alan Young (Concurrent).
+
+Chapter 2 - Service Elements
+
+ This chapter considers the services offered across a gateway built
+ according to this specification. It gives a view of the
+ functionality provided by such a gateway for communication with users
+ in the opposite domain. This chapter considers service mappings in
+ the context of SINGLE transfers only, and not repeated mappings
+ through multiple gateways.
+
+2.1. The Notion of Service Across a Gateway
+
+ RFC 822 and X.400 provide a number of services to the end user. This
+ chapter describes the extent to which each service can be supported
+ across an X.400 <-> RFC 822 gateway. The cases considered are single
+ transfers across such a gateway, although the problems of multiple
+ crossings are noted where appropriate.
+
+2.1.1. Origination of Messages
+
+ When a user originates a message, a number of services are available.
+ Some of these imply actions (e.g., delivery to a recipient), and some
+ are insertion of known data (e.g., specification of a subject field).
+ This chapter describes, for each offered service, to what extent it
+ is supported for a recipient accessed through a gateway. There are
+ three levels of support:
+
+ Supported
+ The corresponding protocol elements map well, and so the
+ service can be fully provided.
+
+ Not Supported
+ The service cannot be provided, as there is a complete
+ mismatch.
+
+ Partial Support
+ The service can be partially fulfilled.
+
+ In the first two cases, the service is simply marked as Supported" or
+ "Not Supported". Some explanation may be given if there are
+ additional implications, or the (non) support is not intuitive. For
+
+
+
+Hardcastle-Kille [Page 10]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ partial support, the level of partial support is summarised. Where
+ partial support is good, this will be described by a phrase such as
+ "Supported by use of.....". A common case of this is where the
+ service is mapped onto a non- standard service on the other side of
+ the gateway, and this would have lead to support if it had been a
+ standard service. In many cases, this is equivalent to support. For
+ partial support, an indication of the mechanism is given, in order to
+ give a feel for the level of support provided. Note that this is not
+ a replacement for Chapter 5, where the mapping is fully specified.
+
+ If a service is described as supported, this implies:
+
+ - Semantic correspondence.
+
+ - No (significant) loss of information.
+
+ - Any actions required by the service element.
+
+ An example of a service gaining full support: If an RFC 822
+ originator specifies a Subject: field, this is considered to be
+ supported, as an X.400 recipient will get a subject indication.
+
+ In many cases, the required action will simply be to make the
+ information available to the end user. In other cases, actions may
+ imply generating a delivery report.
+
+ All RFC 822 services are supported or partially supported for
+ origination. The implications of non-supported X.400 services is
+ described under X.400.
+
+2.1.2. Reception of Messages
+
+ For reception, the list of service elements required to support this
+ mapping is specified. This is really an indication of what a
+ recipient might expect to see in a message which has been remotely
+ originated.
+
+2.2. RFC 822
+
+ RFC 822 does not explicitly define service elements, as distinct from
+ protocol elements. However, all of the RFC 822 header fields, with
+ the exception of trace, can be regarded as corresponding to implicit
+ RFC 822 service elements.
+
+2.2.1. Origination in RFC 822
+
+ A mechanism of mapping, used in several cases, is to map the RFC 822
+ header into a heading extension in the IPM (InterPersonal Message).
+
+
+
+Hardcastle-Kille [Page 11]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ This can be regarded as partial support, as it makes the information
+ available to any X.400 implementations which are interested in these
+ services. Communities which require significant RFC 822 interworking
+ are recommended to require that their X.400 User Agents are able to
+ display these heading extensions. Support for the various service
+ elements (headers) is now listed.
+
+ Date:
+ Supported.
+
+ From:
+ Supported. For messages where there is also a sender field,
+ the mapping is to "Authorising Users Indication", which has
+ subtly different semantics to the general RFC 822 usage of
+ From:.
+
+ Sender:
+ Supported.
+
+ Reply-To:
+ Supported.
+
+ To: Supported.
+
+ Cc: Supported.
+
+ Bcc: Supported.
+
+ Message-Id:
+ Supported.
+
+ In-Reply-To:
+ Supported, for a single reference. Where multiple
+ references are given, partial support is given by mapping to
+ "Cross Referencing Indication". This gives similar
+ semantics.
+
+ References:
+ Supported.
+
+ Keywords:
+ Supported by use of a heading extension.
+
+ Subject:
+ Supported.
+
+ Comments:
+ Supported by use of an extra body part.
+
+
+
+Hardcastle-Kille [Page 12]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Encrypted:
+ Supported by use of a heading extension.
+
+ Resent-*
+ Supported by use of a heading extension. Note that
+ addresses in these fields are mapped onto text, and so are
+ not accessible to the X.400 user as addresses. In
+ principle, fuller support would be possible by mapping onto
+ a forwarded IP Message, but this is not suggested.
+
+ Other Fields
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g., "Fruit-of-the-day:") are supported by use of
+ heading extensions.
+
+2.2.2. Reception by RFC 822
+
+ This considers reception by an RFC 822 User Agent of a message
+ originated in an X.400 system and transferred across a gateway. The
+ following standard services (headers) may be present in such a
+ message:
+
+ Date:
+
+ From:
+
+ Sender:
+
+ Reply-To:
+
+ To:
+
+ Cc:
+
+ Bcc:
+
+ Message-Id:
+
+ In-Reply-To:
+
+ References:
+
+ Subject:
+
+ The following non-standard services (headers) may be present. These
+ are defined in more detail in Chapter 5 (5.3.4, 5.3.6, 5.3.7):
+
+
+
+
+
+Hardcastle-Kille [Page 13]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Autoforwarded:
+
+ Content-Identifier:
+
+ Conversion:
+
+ Conversion-With-Loss:
+
+ Delivery-Date:
+
+ Discarded-X400-IPMS-Extensions:
+
+ Discarded-X400-MTS-Extensions:
+
+ DL-Expansion-History:
+
+ Deferred-Delivery:
+
+ Expiry-Date:
+
+ Importance:
+
+ Incomplete-Copy:
+
+ Language:
+
+ Latest-Delivery-Time:
+
+ Message-Type:
+
+ Obsoletes:
+
+ Original-Encoded-Information-Types:
+
+ Originator-Return-Address:
+
+ Priority:
+
+ Reply-By:
+
+ Requested-Delivery-Method:
+
+ Sensitivity:
+
+ X400-Content-Type:
+
+ X400-MTS-Identifier:
+
+
+
+
+Hardcastle-Kille [Page 14]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ X400-Originator:
+
+ X400-Received:
+
+ X400-Recipients:
+
+2.3. X.400
+
+2.3.1. Origination in X.400
+
+ When mapping services from X.400 to RFC 822 which are not supported
+ by RFC 822, new RFC 822 headers are defined. It is intended that
+ these fields will be registered, and that co- operating RFC 822
+ systems may use them. Where these new fields are used, and no system
+ action is implied, the service can be regarded as being partially
+ supported. Chapter 5 describes how to map X.400 services onto these
+ new headers. Other elements are provided, in part, by the gateway as
+ they cannot be provided by RFC 822.
+
+ Some service elements are marked N/A (not applicable). There are
+ five cases, which are marked with different comments:
+
+ N/A (local)
+ These elements are only applicable to User Agent / Message
+ Transfer Agent interaction and so they cannot apply to RFC
+ 822 recipients.
+
+ N/A (PDAU)
+ These service elements are only applicable where the
+ recipient is reached by use of a Physical Delivery Access
+ Unit (PDAU), and so do not need to be mapped by the gateway.
+
+ N/A (reception)
+ These services are only applicable for reception.
+
+ N/A (prior)
+ If requested, this service must be performed prior to the
+ gateway.
+
+ N/A (MS)
+ These services are only applicable to Message Store (i.e., a
+ local service).
+
+ Finally, some service elements are not supported. In particular, the
+ new security services are not mapped onto RFC 822. Unless otherwise
+ indicated, the behaviour of service elements marked as not supported
+ will depend on the criticality marking supplied by the user. If the
+ element is marked as critical for transfer or delivery, a non-
+
+
+
+Hardcastle-Kille [Page 15]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ delivery notification will be generated. Otherwise, the service
+ request will be ignored.
+
+2.3.1.1. Basic Interpersonal Messaging Service
+
+ These are the mandatory IPM services as listed in Section 19.8 of
+ X.400 / ISO/IEC 10021-1, listed here in the order given. Section 19.8
+ has cross references to short definitions of each service.
+
+ Access management
+ N/A (local).
+
+ Content Type Indication
+ Supported by a new RFC 822 header (Content-Type:).
+
+ Converted Indication
+ Supported by a new RFC 822 header (X400-Received:).
+
+ Delivery Time Stamp Indication
+ N/A (reception).
+
+ IP Message Identification
+ Supported.
+
+ Message Identification
+ Supported, by use of a new RFC 822 header
+ (X400-MTS-Identifier). This new header is required, as
+ X.400 has two message-ids whereas RFC 822 has only one (see
+ previous service).
+
+ Non-delivery Notification
+ Not supported, although in general an RFC 822 system will
+ return error reports by use of IP messages. In other
+ service elements, this pragmatic result can be treated as
+ effective support of this service element.
+
+ Original Encoded Information Types Indication
+ Supported as a new RFC 822 header
+ (Original-Encoded-Information-Types:).
+
+ Submission Time Stamp Indication
+ Supported.
+
+ Typed Body
+ Some types supported. IA5 is fully supported.
+ ForwardedIPMessage is supported, with some loss of
+ information. Other types get some measure of support,
+ dependent on X.400 facilities for conversion to IA5. This
+
+
+
+Hardcastle-Kille [Page 16]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ will only be done where content conversion is not
+ prohibited.
+
+ User Capabilities Registration
+ N/A (local).
+
+2.3.1.2. IPM Service Optional User Facilities
+
+ This section describes support for the optional (user selectable) IPM
+ services as listed in Section 19.9 of X.400 / ISO/IEC 10021- 1,
+ listed here in the order given. Section 19.9 has cross references to
+ short definitions of each service.
+
+ Additional Physical Rendition
+ N/A (PDAU).
+
+ Alternate Recipient Allowed
+ Not supported. There is no RFC 822 service equivalent to
+ prohibition of alternate recipient assignment (e.g., an RFC
+ 822 system may freely send an undeliverable message to a
+ local postmaster). Thus, the gateway cannot prevent
+ assignment of alternative recipients on the RFC 822 side.
+ This service really means giving the user control as to
+ whether or not an alternate recipient is allowed. This
+ specification requires transfer of messages to RFC 822
+ irrespective of this service request, and so this service is
+ not supported.
+
+ Authorising User's Indication
+ Supported.
+
+ Auto-forwarded Indication
+ Supported as new RFC 822 header (Auto-Forwarded:).
+
+ Basic Physical Rendition
+ N/A (PDAU).
+
+ Blind Copy Recipient Indication
+ Supported.
+
+ Body Part Encryption Indication
+ Supported by use of a new RFC 822 header
+ (Original-Encoded-Information-Types:), although in most
+ cases it will not be possible to map the body part in
+ question.
+
+ Content Confidentiality
+ Not supported.
+
+
+
+Hardcastle-Kille [Page 17]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Content Integrity
+ Not supported.
+
+ Conversion Prohibition
+ Supported. In this case, only messages with IA5 body parts,
+ other body parts which contain only IA5, and Forwarded IP
+ Messages (subject recursively to the same restrictions),
+ will be mapped.
+
+ Conversion Prohibition in Case of Loss of Information
+ Supported.
+
+ Counter Collection
+ N/A (PDAU).
+
+ Counter Collection with Advice
+ N/A (PDAU).
+
+ Cross Referencing Indication
+ Supported.
+
+ Deferred Delivery
+ N/A (prior). This service should always be provided by the
+ MTS prior to the gateway. A new RFC 822 header
+ Deferred-Delivery:) is provided to transfer information on
+ this service to the recipient.
+
+Deferred Delivery Cancellation
+ N/A (local).
+
+Delivery Notification
+ Supported. This is performed at the gateway. Thus, a
+ notification is sent by the gateway to the originator. If
+ the 822-MTS protocol is JNT Mail, a notification may also be
+ sent by the recipient UA.
+
+Delivery via Bureaufax Service
+ N/A (PDAU).
+
+Designation of Recipient by Directory Name
+ N/A (local).
+
+Disclosure of Other Recipients
+ Supported by use of a new RFC 822 header (X400-Recipients:).
+ This is descriptive information for the RFC 822 recipient,
+ and is not reverse mappable.
+
+
+
+
+
+Hardcastle-Kille [Page 18]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+DL Expansion History Indication
+ Supported by use of a new RFC 822 header
+ DL-Expansion-History:).
+
+DL Expansion Prohibited
+ Distribution List means MTS supported distribution list, in
+ the manner of X.400. This service does not exist in the RFC
+ 822 world. RFC 822 distribution lists should be regarded as
+ an informal redistribution mechanism, beyond the scope of
+ this control. Messages will be sent to RFC 822,
+ irrespective of whether this service is requested.
+ Theoretically therefore, this service is supported, although
+ in practice it may appear that it is not supported.
+
+Express Mail Service
+ N/A (PDAU).
+
+Expiry Date Indication
+ Supported as new RFC 822 header (Expiry-Date:). In general,
+ no automatic action can be expected.
+
+Explicit Conversion
+ N/A (prior).
+
+Forwarded IP Message Indication
+ Supported, with some loss of information. The message is
+ forwarded in an RFC 822 body, and so can only be interpreted
+ visually.
+
+Grade of Delivery Selection
+ N/A (PDAU)
+
+Importance Indication
+ Supported as new RFC 822 header (Importance:).
+
+Incomplete Copy Indication
+ Supported as new RFC 822 header (Incomplete-Copy:).
+
+Language Indication
+ Supported as new RFC 822 header (Language:).
+
+Latest Delivery Designation
+ Not supported. A new RFC 822 header (Latest-Delivery-Time:)
+ is provided, which may be used by the recipient.
+
+Message Flow Confidentiality
+ Not supported.
+
+
+
+
+Hardcastle-Kille [Page 19]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Message Origin Authentication
+ N/A (reception).
+
+Message Security Labelling
+ Not supported.
+
+Message Sequence Integrity
+ Not supported.
+
+Multi-Destination Delivery
+ Supported.
+
+Multi-part Body
+ Supported, with some loss of information, in that the
+ structuring cannot be formalised in RFC 822.
+
+Non Receipt Notification Request
+ Not supported.
+
+Non Repudiation of Delivery
+ Not supported.
+
+Non Repudiation of Origin
+ N/A (reception).
+
+Non Repudiation of Submission
+ N/A (local).
+
+Obsoleting Indication
+ Supported as new RFC 822 header (Obsoletes:).
+
+Ordinary Mail
+ N/A (PDAU).
+
+Originator Indication
+ Supported.
+
+Originator Requested Alternate Recipient
+ Not supported, but is placed as comment next to address
+ X400-Recipients:).
+
+Physical Delivery Notification by MHS
+ N/A (PDAU).
+
+Physical Delivery Notification by PDS
+ N/A (PDAU).
+
+
+
+
+
+Hardcastle-Kille [Page 20]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Physical Forwarding Allowed
+ Supported by use of a comment in a new RFC 822 header
+ X400-Recipients:), associated with the recipient in
+ question.
+
+Physical Forwarding Prohibited
+ Supported by use of a comment in a new RFC 822 header
+ X400-Recipients:), associated with the recipient in
+ question.
+
+Prevention of Non-delivery notification
+ Supported, as delivery notifications cannot be generated by
+ RFC 822. In practice, errors will be returned as IP
+ Messages, and so this service may appear not to be supported
+ see Non-delivery Notification).
+
+Primary and Copy Recipients Indication
+ Supported
+
+Probe
+ Supported at the gateway (i.e., the gateway services the
+ probe).
+
+Probe Origin Authentication
+ N/A (reception).
+
+Proof of Delivery
+ Not supported.
+
+Proof of Submission
+ N/A (local).
+
+Receipt Notification Request Indication
+ Not supported.
+
+Redirection Allowed by Originator
+ Redirection means MTS supported redirection, in the manner
+ of X.400. This service does not exist in the RFC 822 world.
+ RFC 822 redirection (e.g., aliasing) should be regarded as
+ an informal redirection mechanism, beyond the scope of this
+ control. Messages will be sent to RFC 822, irrespective of
+ whether this service is requested. Theoretically therefore,
+ this service is supported, although in practice it may
+ appear that it is not supported.
+
+Registered Mail
+ N/A (PDAU).
+
+
+
+
+Hardcastle-Kille [Page 21]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Registered Mail to Addressee in Person
+ N/A (PDAU).
+
+Reply Request Indication
+ Supported as comment next to address.
+
+Replying IP Message Indication
+ Supported.
+
+Report Origin Authentication
+ N/A (reception).
+
+Request for Forwarding Address
+ N/A (PDAU).
+
+Requested Delivery Method
+ N/A (local). The services required must be dealt with at
+ submission time. Any such request is made available through
+ the gateway by use of a comment associated with the
+ recipient in question.
+
+Return of Content
+ In principle, this is N/A, as non-delivery notifications are
+ not supported. In practice, most RFC 822 systems will
+ return part or all of the content along with the IP Message
+ indicating an error (see Non-delivery Notification).
+
+Sensitivity Indication
+ Supported as new RFC 822 header (Sensitivity:).
+
+Special Delivery
+ N/A (PDAU).
+
+Stored Message Deletion
+ N/A (MS).
+
+Stored Message Fetching
+ N/A (MS).
+
+Stored Message Listing
+ N/A (MS).
+
+Stored Message Summary
+ N/A (MS).
+
+Subject Indication
+ Supported.
+
+
+
+
+Hardcastle-Kille [Page 22]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Undeliverable Mail with Return of Physical Message
+ N/A (PDAU).
+
+Use of Distribution List
+ In principle this applies only to X.400 supported
+ distribution lists (see DL Expansion Prohibited).
+ Theoretically, this service is N/A (prior). In practice,
+ because of informal RFC 822 lists, this service can be
+ regarded as supported.
+
+2.3.2. Reception by X.400
+
+2.3.2.1. Standard Mandatory Services
+
+ The following standard IPM mandatory user facilities are required
+ for reception of RFC 822 originated mail by an X.400 UA.
+
+ Content Type Indication
+
+ Delivery Time Stamp Indication
+
+ IP Message Identification
+
+ Message Identification
+
+ Non-delivery Notification
+
+ Original Encoded Information Types Indication
+
+ Submission Time Stamp Indication
+
+ Typed Body
+
+2.3.2.2. Standard Optional Services
+
+ The following standard IPM optional user facilities are required for
+ reception of RFC 822 originated mail by an X.400 UA.
+
+ Authorising User's Indication
+
+ Blind Copy Recipient Indication
+
+ Cross Referencing Indication
+
+ Originator Indication
+
+ Primary and Copy Recipients Indication
+
+
+
+
+Hardcastle-Kille [Page 23]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Replying IP Message Indication
+
+ Subject Indication
+
+2.3.2.3. New Services
+
+ A new service "RFC 822 Header Field" is defined using the extension
+ facilities. This allows for any RFC 822 header field to be
+ represented. It may be present in RFC 822 originated messages, which
+ are received by an X.400 UA.
+
+Chapter 3 Basic Mappings
+
+3.1. Notation
+
+ The X.400 protocols are encoded in a structured manner according to
+ ASN.1, whereas RFC 822 is text encoded. To define a detailed
+ mapping, it is necessary to refer to detailed protocol elements in
+ each format. A notation to achieve this is described in this
+ section.
+
+3.1.1. RFC 822
+
+ Structured text is defined according to the Extended Backus Naur Form
+ (EBNF) defined in Section 2 of RFC 822 [Crocker82a]. In the EBNF
+ definitions used in this specification, the syntax rules given in
+ Appendix D of RFC 822 are assumed. When these EBNF tokens are
+ referred to outside an EBNF definition, they are identified by the
+ string "822." appended to the beginning of the string (e.g.,
+ 822.addr-spec). Additional syntax rules, to be used throughout this
+ specification, are defined in this chapter.
+
+ The EBNF is used in two ways.
+
+ 1. To describe components of RFC 822 messages (or of 822-MTS
+ components). In this case, the lexical analysis defined in
+ Section 3 of RFC 822 shall be used. When these new EBNF
+ tokens are referred to outside an EBNF definition, they are
+ identified by the string "EBNF." appended to the beginning
+ of the string (e.g., EBNF.importance).
+
+ 2. To describe the structure of IA5 or ASCII information not in
+ an RFC 822 message. In these cases, tokens will either be
+ self delimiting, or be delimited by self delimiting tokens.
+ Comments and LWSP are not used as delimiters, except for the
+ following cases, where LWSP may be inserted according to RFC
+ 822 rules.
+
+
+
+
+Hardcastle-Kille [Page 24]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ - Around the ":" in all headers
+
+ - EBNF.labelled-integer
+
+ - EBNF.object-identifier
+
+ - EBNF.encoded-info
+
+ RFC 822 folding rules are applied to all headers.
+
+3.1.2. ASN.1
+
+ An element is referred to with the following syntax, defined in EBNF:
+
+ element = service "." definition *( "." definition )
+ service = "IPMS" / "MTS" / "MTA"
+ definition = identifier / context
+ identifier = ALPHA *< ALPHA or DIGIT or "-" >
+ context = "[" 1*DIGIT "]"
+
+ The EBNF.service keys are shorthand for the following service
+ specifications:
+
+ IPMS IPMSInformationObjects defined in Annex E of X.420 / ISO
+ 10021-7.
+
+ MTS MTSAbstractService defined in Section 9 of X.411 / ISO
+ 10021-4.
+
+ MTA MTAAbstractService defined in Section 13 of X.411 / ISO
+ 10021-4.
+
+ The first EBNF.identifier identifies a type or value key in the
+ context of the defined service specification. Subsequent
+ EBNF.identifiers identify a value label or type in the context of the
+ first identifier (SET or SEQUENCE). EBNF.context indicates a context
+ tag, and is used where there is no label or type to uniquely identify
+ a component. The special EBNF.identifier keyword "value" is used to
+ denote an element of a sequence.
+
+ For example, IPMS.Heading.subject defines the subject element of the
+ IPMS heading. The same syntax is also used to refer to element
+ values. For example,
+
+ MTS.EncodedInformationTypes.[0].g3Fax refers to a value of
+ MTS.EncodedInformationTypes.[0] .
+
+
+
+
+
+Hardcastle-Kille [Page 25]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+3.2. ASCII and IA5
+
+ A gateway will interpret all IA5 as ASCII. Thus, mapping between
+ these forms is conceptual.
+
+3.3. Standard Types
+
+ There is a need to convert between ASCII text, and some of the types
+ defined in ASN.1 [CCITT/ISO88d]. For each case, an EBNF syntax
+ definition is given, for use in all of this specification, which
+ leads to a mapping between ASN.1, and an EBNF construct. All EBNF
+ syntax definitions of ASN.1 types are in lower case, whereas ASN.1
+ types are referred to with the first letter in upper case. Except as
+ noted, all mappings are symmetrical.
+
+3.3.1. Boolean
+
+ Boolean is encoded as:
+
+ boolean = "TRUE" / "FALSE"
+
+3.3.2. NumericString
+
+ NumericString is encoded as:
+
+ numericstring = *DIGIT
+
+3.3.3. PrintableString
+
+ PrintableString is a restricted IA5String defined as:
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+ This can be used to represent real printable strings in EBNF.
+
+3.3.4. T.61String
+
+ In cases where T.61 strings are only used for conveying human
+ interpreted information, the aim of a mapping is to render the
+ characters appropriately in the remote character set, rather than to
+ maximise reversibility. For these cases, the mappings to IA5 defined
+ in CCITT Recommendation X.408 (1988) shall be used [CCITT/ISO88a].
+ These will then be encoded in ASCII.
+
+
+
+
+Hardcastle-Kille [Page 26]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ There is also a need to represent Teletex Strings in ASCII, for some
+ aspects of O/R Address. For these, the following encoding is used:
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+ Common characters are mapped simply. Other octets are mapped using a
+ quoting mechanism similar to the printable string mechanism. Each
+ octet is represented as 3 decimal digits.
+
+ There are a number of places where a string may have a Teletex and/or
+ Printable String representation. The following BNF is used to
+ represent this.
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+ The natural mapping is restricted to EBNF.ps-char, in order to make
+ the full BNF easier to parse.
+
+3.3.5. UTCTime
+
+ Both UTCTime and the RFC 822 822.date-time syntax contain: Year
+ (lowest two digits), Month, Day of Month, hour, minute, second
+ (optional), and Timezone. 822.date-time also contains an optional
+ day of the week, but this is redundant. Therefore a symmetrical
+ mapping can be made between these constructs.
+
+ Note:
+ In practice, a gateway will need to parse various illegal
+ variants on 822.date-time. In cases where 822.date-time
+ cannot be parsed, it is recommended that the derived UTCTime
+ is set to the value at the time of translation.
+
+ When mapping to X.400, the UTCTime format which specifies the
+ timezone offset shall be used.
+
+ When mapping to RFC 822, the 822.date-time format shall include a
+ numeric timezone offset (e.g., +0000).
+
+ When mapping time values, the timezone shall be preserved as
+ specified. The date shall not be normalised to any other timezone.
+
+3.3.6. Integer
+
+ A basic ASN.1 Integer will be mapped onto EBNF.numericstring. In
+ many cases ASN.1 will enumerate Integer values or use ENUMERATED. An
+ EBNF encoding labelled-integer is provided. When mapping from EBNF to
+
+
+
+Hardcastle-Kille [Page 27]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ ASN.1, only the integer value is mapped, and the associated text is
+ discarded. When mapping from ASN.1 to EBNF, addition of an
+ appropriate text label is strongly encouraged.
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 0-9, and "-">
+
+
+3.3.7. Object Identifier
+
+ Object identifiers are represented in a form similar to that given in
+ ASN.1. The order is the same as for ASN.1 (big-endian). The numbers
+ are mandatory, and used when mapping from the ASCII to ASN.1. The
+ key-strings are optional. It is recommended that as many strings as
+ possible are generated when mapping from ASN.1 to ASCII, to
+ facilitate user recognition.
+
+ object-identifier ::= oid-comp object-identifier
+ | oid-comp
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+An example representation of an object identifier is:
+
+ joint-iso-ccitt(2) mhs (6) ipms (1) ep (11) ia5-text (0)
+
+ or
+
+ (2) (6) (1)(11)(0)
+
+3.4. Encoding ASCII in Printable String
+
+ Some information in RFC 822 is represented in ASCII, and needs to be
+ mapped into X.400 elements encoded as printable string. For this
+ reason, a mechanism to represent ASCII encoded as PrintableString is
+ needed.
+
+ A structured subset of EBNF.printablestring is now defined. This
+ shall be used to encode ASCII in the PrintableString character set.
+
+
+
+
+
+
+
+
+
+
+Hardcastle-Kille [Page 28]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+ The 822.3DIGIT in EBNF.ps-encoded-char must have range 0-127, and is
+ interpreted in decimal as the corresponding ASCII character. Special
+ encodings are given for: at sign (@), percent (%), exclamation
+ mark/bang (!), double quote ("), underscore (_), left bracket ((),
+ and right bracket ()). These characters, with the exception of round
+ brackets, are not included in PrintableString, but are common in RFC
+ 822 addresses. The abbreviations will ease specification of RFC 822
+ addresses from an X.400 system. These special encodings shall be
+ interpreted in a case insensitive manner, but always generated in
+ lower case.
+
+ A reversible mapping between PrintableString and ASCII can now be
+ defined. The reversibility means that some values of printable
+ string (containing round braces) cannot be generated from ASCII.
+ Therefore, this mapping must only be used in cases where the
+ printable strings may only be derived from ASCII (and will therefore
+ have a restricted domain). For example, in this specification, it is
+ only applied to a Domain Defined Attribute which will have been
+ generated by use of this specification and a value such as "(" would
+ not be possible.
+
+ To encode ASCII as PrintableString, the EBNF.ps-encoded syntax is
+ used, with all EBNF.ps-restricted-char mapped directly. All other
+ 822.CHAR are encoded as EBNF.ps-encoded-char.
+
+ To encode PrintableString as ASCII, parse PrintableString as
+ EBNF.ps-encoded, and then reverse the previous mapping. If the
+ PrintableString cannot be parsed, then the mapping is being applied
+ in to an inappropriate value, and an error shall be given to the
+ procedure doing the mapping. In some cases, it may be preferable to
+ pass the printable string through unaltered.
+
+
+
+
+
+
+
+
+
+
+Hardcastle-Kille [Page 29]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Some examples are now given. Note the arrows which indicate
+ asymmetrical mappings:
+
+ PrintableString ASCII
+
+ 'a demo.' <-> 'a demo.'
+ foo(a)bar <-> foo@bar
+ (q)(u)(p)(q) <-> "_%"
+ (a) <-> @
+ (A) -> @
+ (l)a(r) <-> (a)
+ (126) <-> ~
+ ( -> (
+ (l) <-> (
+
+Chapter 4 - Addressing
+
+ Addressing is probably the trickiest problem of an X.400 <-> RFC 822
+ gateway. Therefore it is given a separate chapter. This chapter, as
+ a side effect, also defines a textual representation of an X.400 O/R
+ Address.
+
+ Initially we consider an address in the (human) mail user sense of
+ "what is typed at the mailsystem to reference a mail user". A basic
+ RFC 822 address is defined by the EBNF EBNF.822-address:
+
+ 822-address = [ route ] addr-spec
+
+ In an 822-MTS protocol, the originator and each recipient are
+ considered to be defined by such a construct. In an RFC 822 header,
+ the EBNF.822-address is encapsulated in the 822.address syntax rule,
+ and there may also be associated comments. None of this extra
+ information has any semantics, other than to the end user.
+
+ The basic X.400 O/R Address, used by the MTS for routing, is defined
+ by MTS.ORAddress. In IPMS, the MTS.ORAddress is encapsulated within
+ IPMS.ORDescriptor.
+
+ It can be seen that RFC 822 822.address must be mapped with
+ IPMS.ORDescriptor, and that RFC 822 EBNF.822-address must be mapped
+ with MTS.ORAddress.
+
+4.1. A textual representation of MTS.ORAddress
+
+ MTS.ORAddress is structured as a set of attribute value pairs. It is
+ clearly necessary to be able to encode this in ASCII for gatewaying
+ purposes. All components shall be encoded, in order to guarantee
+ return of error messages, and to optimise third party replies.
+
+
+
+Hardcastle-Kille [Page 30]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+4.2. Basic Representation
+
+ An O/R Address has a number of structured and unstructured
+ attributes. For each unstructured attribute, a key and an encoding
+ is specified. For structured attributes, the X.400 attribute is
+ mapped onto one or more attribute value pairs. For domain defined
+ attributes, each element of the sequence will be mapped onto a triple
+ (key and two values), with each value having the same encoding. The
+ attributes are as follows, with 1984 attributes given in the first
+ part of the table. For each attribute, a reference is given,
+ consisting of the relevant sections in X.402 / ISO 10021-2, and the
+ extension identifier for 88 only attributes:
+
+ Attribute (Component) Key Enc Ref Id
+
+84/88 Attributes
+
+MTS.CountryName C P 18.3.3
+MTS.AdministrationDomainName ADMD P 18.3.1
+MTS.PrivateDomainName PRMD P 18.3.21
+MTS.NetworkAddress X121 N 18.3.7
+MTS.TerminalIdentifier T-ID P 18.3.23
+MTS.OrganizationName O P/T 18.3.9
+MTS.OrganizationalUnitNames.value OU P/T 18.3.10
+MTS.NumericUserIdentifier UA-ID N 18.3.8
+MTS.PersonalName PN P/T 18.3.12
+MTS.PersonalName.surname S P/T 18.3.12
+MTS.PersonalName.given-name G P/T 18.3.12
+MTS.PersonalName.initials I P/T 18.3.12
+MTS.PersonalName
+ .generation-qualifier GQ P/T 18.3.12
+MTS.DomainDefinedAttribute.value DD P/T 18.1
+
+88 Attributes
+
+MTS.CommonName CN P/T 18.3.2 1
+MTS.TeletexCommonName CN P/T 18.3.2 2
+MTS.TeletexOrganizationName O P/T 18.3.9 3
+MTS.TeletexPersonalName PN P/T 18.3.12 4
+MTS.TeletexPersonalName.surname S P/T 18.3.12 4
+MTS.TeletexPersonalName.given-name G P/T 18.3.12 4
+MTS.TeletexPersonalName.initials I P/T 18.3.12 4
+MTS.TeletexPersonalName
+ .generation-qualifier GQ P/T 18.3.12 4
+MTS.TeletexOrganizationalUnitNames
+ .value OU P/T 18.3.10 5
+MTS.TeletexDomainDefinedAttribute
+ .value DD P/T 18.1 6
+
+
+
+Hardcastle-Kille [Page 31]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+MTS.PDSName PD-SERVICE P 18.3.11 7
+MTS.PhysicalDeliveryCountryName PD-C P 18.3.13 8
+MTS.PostalCode PD-CODE P 18.3.19 9
+MTS.PhysicalDeliveryOfficeName PD-OFFICE P/T 18.3.14 10
+MTS.PhysicalDeliveryOfficeNumber PD-OFFICE-NUM P/T 18.3.15 11
+MTS.ExtensionORAddressComponents PD-EXT-ADDRESS P/T 18.3.4 12
+MTS.PhysicalDeliveryPersonName PD-PN P/T 18.3.17 13
+MTS.PhysicalDeliveryOrganizationName PD-O P/T 18.3.16 14
+MTS.ExtensionPhysicalDelivery
+ AddressComponents PD-EXT-DELIVERY P/T 18.3.5 15
+MTS.UnformattedPostalAddress PD-ADDRESS P/T 18.3.25 16
+MTS.StreetAddress PD-STREET P/T 18.3.22 17
+MTS.PostOfficeBoxAddress PD-BOX P/T 18.3.18 18
+MTS.PosteRestanteAddress PD-RESTANTE P/T 18.3.20 19
+MTS.UniquePostalName PD-UNIQUE P/T 18.3.26 20
+MTS.LocalPostalAttributes PD-LOCAL P/T 18.3.6 21
+MTS.ExtendedNetworkAddress
+ .e163-4-address.number NET-NUM N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .e163-4-address.sub-address NET-SUB N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .psap-address NET-PSAP X 18.3.7 22
+MTS.TerminalType T-TY I 18.3.24 23
+
+ The following keys identify different EBNF encodings, which are
+ associated with the ASCII representation of MTS.ORAddress.
+
+ Key Encoding
+
+ P printablestring
+ N numericstring
+ T teletex-string
+ P/T teletex-and-or-ps
+ I labelled-integer
+ X presentation-address
+
+ The BNF for presentation-address is taken from the specification "A
+ String Encoding of Presentation Address" [Kille89a].
+
+ In most cases, the EBNF encoding maps directly to the ASN.1 encoding
+ of the attribute. There are a few exceptions. In cases where an
+ attribute can be encoded as either a PrintableString or NumericString
+ (Country, ADMD, PRMD), either form is mapped into the BNF. When
+ generating ASN.1, the NumericString encoding shall be used if the
+ string contains only digits.
+
+ There are a number of cases where the P/T (teletex-and-or-ps)
+ representation is used. Where the key maps to a single attribute,
+
+
+
+Hardcastle-Kille [Page 32]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ this choice is reflected in the encoding of the attribute (attributes
+ 10-21). For most of the 1984 attributes and common name, there is a
+ printablestring and a teletex variant. This pair of attributes is
+ mapped onto the single component here. This will give a clean
+ mapping for the common cases where only one form of the name is used.
+
+ Recently, ISO has undertaken work to specify a string form of O/R
+ Address [CCITT/ISO91a]. This has specified a number of string
+ keywords for attributes. As RFC 1148 was an input to this work, many
+ of the keywords are the same. To increase compatability, the
+ following alternative values shall be recognised when mapping from
+ RFC 822 to X.400. These shall not be generated when mapping from
+ X.400 to RFC 822.
+
+ Keyword Alternative
+
+ ADMD A
+ PRMD P
+ GQ Q
+ X121 X.121
+ UA-ID N-ID
+ PD-OFFICE-NUMBER PD-OFFICE NUMBER
+
+ When mapping from RFC 822 to X.400, the keywords: OU1, OU2, OU3, and
+ OU4, shall be recognised. If these are present, no keyword OU
+ shall be present. These will be treated as ordered values of OU.
+
+4.2.1. Encoding of Personal Name
+
+ Handling of Personal Name and Teletex Personal Name based purely on
+ the EBNF.standard-type syntax defined above is likely to be clumsy.
+ It seems desirable to utilise the "human" conventions for encoding
+ these components. A syntax is defined, which is designed to provide
+ a clean encoding for the common cases of O/R Address specification
+ where:
+
+ 1. There is no generational qualifier
+
+ 2. Initials contain only letters
+
+ 3. Given Name does not contain full stop ("."), and is at least
+ two characters long.
+
+ 4. Surname does not contain full stop in the first two
+ characters.
+
+ 5 If Surname is the only component, it does not contain full
+ stop.
+
+
+
+Hardcastle-Kille [Page 33]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ The following EBNF is defined:
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+ This is used to map from any string containing only printable string
+ characters to an O/R address personal name. To map from a string to
+ O/R Address components, parse the string according to the EBNF. The
+ given name and surname are assigned directly. All EBNF.initial
+ tokens are concatenated without intervening full stops to generate
+ the initials component.
+
+ For an O/R address which follows the above restrictions, a string is
+ derived in the natural manner. In this case, the mapping will be
+ reversible.
+
+ For example:
+
+ GivenName = "Marshall"
+ Surname = "Rose"
+
+ Maps with "Marshall.Rose"
+
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "M.T.Rose"
+
+ GivenName = "Marshall"
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "Marshall.M.T.Rose"
+
+ Note that X.400 suggest that Initials is used to encode ALL initials.
+ Therefore, the defined encoding is "natural" when either GivenName or
+ Initials, but not both, are present. The case where both are present
+ can be encoded, but this appears to be contrived!
+
+4.2.2. Standard Encoding of MTS.ORAddress
+
+ Given this structure, we can specify a BNF representation of an O/R
+ Address.
+
+
+
+Hardcastle-Kille [Page 34]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / registered-dd-type
+ / dd-key "." std-printablestring
+ standard-type = key-string
+
+ registered-dd-type
+ = key-string
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=">
+ std-pair = "$" ps-char
+
+ The standard-type is any key defined in the table in Section 4.2,
+ except PN, and DD. The BNF leads to a set of attribute/value pairs.
+ The value is interpreted according to the EBNF encoding defined in
+ the table.
+
+ If the standard-type is PN, the value is interpreted according to
+ EBNF.encoded-pn, and the components of MTS.PersonalName and/or
+ MTS.TeletexPersonalName derived accordingly.
+
+ If dd-key is the recognised Domain Defined string (DD), then the type
+ and value are interpreted according to the syntax implied from the
+ encoding, and aligned to either the teletex or printable string form.
+ Key and value shall have the same encoding.
+
+ If value is "RFC-822", then the (printable string) Domain Defined
+ Type of "RFC-822" is assumed. This is an optimised encoding of the
+ domain defined type defined by this specification.
+
+ The matching of all keywords shall be done in a case-independent
+ manner.
+
+ EBNF.std-or-address uses the characters "/" and "=" as delimiters.
+ Domain Defined Attributes and any value may contain these characters.
+ A quoting mechanism, using the non-printable string "$" is used to
+ allow these characters to be represented.
+
+ If the value is registered-dd-type, and the value is registered at
+ the Internet Assigned Numbers Authority (IANA) as an accepted Domain
+ Defined Attribute type, then the value shall be interpreted
+
+
+
+Hardcastle-Kille [Page 35]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ accordingly. This restriction maximises the syntax checking which
+ can be done at a gateway.
+
+4.3. EBNF.822-address <-> MTS.ORAddress
+
+ Ideally, the mapping specified would be entirely symmetrical and
+ global, to enable addresses to be referred to transparently in the
+ remote system, with the choice of gateway being left to the Message
+ Transfer Service. There are two fundamental reasons why this is not
+ possible:
+
+ 1. The syntaxes are sufficiently different to make this
+ awkward.
+
+ 2. In the general case, there would not be the necessary
+ administrative co-operation between the X.400 and RFC 822
+ worlds, which would be needed for this to work.
+
+ Therefore, an asymmetrical mapping is defined, which can be
+ symmetrical where there is appropriate administrative control.
+
+4.3.1. X.400 encoded in RFC 822
+
+ The std-or-address syntax is used to encode O/R Address information
+ in the 822.local-part of EBNF.822-address. In some cases, further
+ O/R Address information is associated with the 822.domain component.
+ This cannot be used in the general case, due to character set
+ problems, and to the variants of X.400 O/R Addresses which use
+ different attribute types. The only way to encode the full
+ PrintableString character set in a domain is by use of the
+ 822.domain-ref syntax (i.e. 822.atom). This is likely to cause
+ problems on many systems. The effective character set of domains is
+ in practice reduced from the RFC 822 set, by restrictions imposed by
+ domain conventions and policy, and by restrictions in RFC 821.
+
+ A generic 822.address consists of a 822.local-part and a sequence of
+ 822.domains (e.g., <@domain1,@domain2:user@domain3>). All except the
+ 822.domain associated with the 822.local-part (domain3 in this case)
+ are considered to specify routing within the RFC 822 world, and will
+ not be interpreted by the gateway (although they may have identified
+ the gateway from within the RFC 822 world).
+
+ The 822.domain associated with the 822.local-part identifies the
+ gateway from within the RFC 822 world. This final 822.domain may be
+ used to determine some number of O/R Address attributes, where this
+ does not conflict with the first role. RFC 822 routing to gateways
+ will usually be set up to facilitate the 822.domain being used for
+ both purposes. The following O/R Address attributes are considered
+
+
+
+Hardcastle-Kille [Page 36]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ as a hierarchy, and may be specified by the domain. They are (in
+ order of hierarchy):
+
+ Country, ADMD, PRMD, Organisation, Organisational Unit
+
+ There may be multiple Organisational Units.
+
+ A global mapping is defined between domain specifications, and some
+ set of attributes. This association proceeds hierarchically. For
+ example, if a domain implies ADMD, it also implies country.
+ Subdomains under this are associated according to the O/R Address
+ hierarchy. For example:
+
+ => "AC.UK" might be associated with
+ C="GB", ADMD="GOLD 400", PRMD="UK.AC"
+
+ then domain "R-D.Salford.AC.UK" maps with
+ C="GB", ADMD="GOLD 400", PRMD="UK.AC", O="Salford", OU="R-D"
+
+ There are three basic reasons why a domain/attribute mapping might be
+ maintained, as opposed to using simply subdomains:
+
+ 1. As a shorthand to avoid redundant X.400 information. In
+ particular, there will often be only one ADMD per country,
+ and so it does not need to be given explicitly.
+
+ 2. To deal with cases where attribute values do not fit the
+ syntax:
+
+ domain-syntax = alphanum [ *alphanumhyphen alphanum ]
+ alphanum = <ALPHA or DIGIT>
+ alphanumhyphen = <ALPHA or DIGIT or HYPHEN>
+
+
+ Although RFC 822 allows for a more general syntax, this
+ restricted syntax is chosen as it is the one chosen by the
+ various domain service administrations.
+
+ 3. To deal with missing elements in the hierarchy. A domain
+ may be associated with an omitted attribute in conjunction
+ with several present ones. When performing the algorithmic
+ insertion of components lower in the hierarchy, the omitted
+ value shall be skipped. For example, if "HNE.EGM" is
+ associated with "C=TC", "ADMD=ECQ", "PRMD=HNE", and omitted
+ organisation, then "ZI.HNE.EGM" is mapped with "C=TC",
+ "ADMD=ECQ", "PRMD=HNE", "OU=ZI". Attributes may have null
+ values, and this is treated separately from omitted
+ attributes (whilst it would be bad practice to treat these
+
+
+
+Hardcastle-Kille [Page 37]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ two cases differently, they must be allowed for).
+
+ This set of mappings needs be known by the gateways relaying between
+ the RFC 822 world, and the O/R Address space associated with the
+ mapping in question. There needs to be a single global definition of
+ this set of mappings. A mapping implies an adminstrative equivalence
+ between the two parts of the namespaces which are mapped together.
+ To correctly route in all cases, it is necessary for all gateways to
+ know the mapping. To facilitate distribution of a global set of
+ mappings, a format for the exchange of this information is defined in
+ Appendix F.
+
+ The remaining attributes are encoded on the LHS, using the EBNF.std-
+ or-address syntax. For example:
+
+ /I=J/S=Linnimouth/GQ=5/@Marketing.Widget.COM
+
+ encodes the MTS.ORAddress consisting of:
+
+ MTS.CountryName = "TC"
+ MTS.AdministrationDomainName = "BTT"
+ MTS.OrganizationName = "Widget"
+ MTS.OrganizationalUnitNames.value = "Marketing"
+ MTS.PersonalName.surname = "Linnimouth"
+ MTS.PersonalName.initials = "J"
+ MTS.PersonalName.generation-qualifier = "5"
+
+ The first three attributes are determined by the domain Widget.COM.
+ Then, the first element of OrganizationalUnitNames is determined
+ systematically, and the remaining attributes are encoded on the LHS.
+ In an extreme case, all of the attributes will be on the LHS. As the
+ domain cannot be null, the RHS will simply be a domain indicating the
+ gateway.
+
+ The RHS (domain) encoding is designed to deal cleanly with common
+ addresses, and so the amount of information on the RHS is maximised.
+ In particular, it covers the Mnemonic O/R Address using a 1984
+ compatible encoding. This is seen as the dominant form of O/R
+ Address. Use of other forms of O/R Address, and teletex encoded
+ attributes will require an LHS encoding.
+
+ There is a further mechanism to simplify the encoding of common
+ cases, where the only attributes to be encoded on the LHS is a (non-
+ Teletex) Personal Name attributes which comply with the restrictions
+ of 4.2.1. To achieve this, the 822.local-part shall be encoded as
+ EBNF.encoded-pn. In the previous example, if the GenerationQualifier
+ was not present in the previous example O/R Address, it would map
+ with the RFC 822 address: J.Linnimouth@Marketing.Widget.COM.
+
+
+
+Hardcastle-Kille [Page 38]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ From the standpoint of the RFC 822 Message Transfer System, the
+ domain specification is simply used to route the message in the
+ standard manner. The standard domain mechanisms are used to select
+ appropriate gateways for the corresponding O/R Address space. In
+ most cases, this will be done by registering the higher levels, and
+ assuming that the gateway can handle the lower levels.
+
+4.3.2. RFC 822 encoded in X.400
+
+ In some cases, the encoding defined above may be reversed, to give a
+ "natural" encoding of genuine RFC 822 addresses. This depends
+ largely on the allocation of appropriate management domains.
+
+ The general case is mapped by use of domain defined attributes. A
+ Domain defined type "RFC-822" is defined. The associated attribute
+ value is an ASCII string encoded according to Section 3.3.3 of this
+ specification. The interpretation of the ASCII string depends on the
+ context of the gateway.
+
+ 1. In the context of RFC 822, and RFC 920
+ [Crocker82a,Postel84a], the string can be used directly.
+
+ 2. In the context of the JNT Mail protocol, and the NRS
+ [Kille84a,Larmouth83a], the string shall be interpreted
+ according to Mailgroup Note 15 [Kille84b].
+
+ 3. In the context of UUCP based systems, the string shall be
+ interpreted as defined in [Horton86a].
+
+ Other O/R Address attributes will be used to identify a context in
+ which the O/R Address will be interpreted. This might be a
+ Management Domain, or some part of a Management Domain which
+ identifies a gateway MTA. For example:
+
+ C = "GB"
+ ADMD = "GOLD 400"
+ PRMD = "UK.AC"
+ O = "UCL"
+ OU = "CS"
+ "RFC-822" = "Jimmy(a)WIDGET-LABS.CO.UK"
+
+ OR
+
+ C = "TC"
+ ADMD = "Wizz.mail"
+ PRMD = "42"
+ "rfc-822" = "postel(a)venera.isi.edu"
+
+
+
+
+Hardcastle-Kille [Page 39]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Note in each case the PrintableString encoding of "@" as "(a)". In
+ the second example, the "RFC-822" domain defined attribute is
+ interpreted everywhere within the (Private) Management Domain. In
+ the first example, further attributes are needed within the
+ Management Domain to identify a gateway. Thus, this scheme can be
+ used with varying levels of Management Domain co-operation.
+
+ There is a limit of 128 characters in the length of value of a domain
+ defined attribute, and an O/R Address can have a maxmimum of four
+ domain defined attributes. Where the printable string generated from
+ the RFC 822 address exceeeds this value, additional domain defined
+ attributes are used to enable up to 512 characters to be encoded.
+ These attributes shall be filled completely before the next one is
+ started. The DDA keywords are: RFC822C1; RFC822C2; RFC822C3.
+ Longer addresses cannot be encoded.
+
+ There is, analagous with 4.3.1, a means to associate parts of the O/R
+ Address hierarchy with domains. There is an analogous global
+ mapping, which in most cases will be the inverse of the domain to O/R
+ address mapping. The mapping is maintained separately, as there may
+ be differences (e.g., two alternate domain names map to the same set
+ of O/R address components).
+
+4.3.3. Component Ordering
+
+ In most cases, ordering of O/R Address components is not significant
+ for the mappings specified. However, Organisational Units (printable
+ string and teletex forms) and Domain Defined Attributes are specified
+ as SEQUENCE in MTS.ORAddress, and so their order may be significant.
+ This specification needs to take account of this:
+
+ 1. To allow consistent mapping into the domain hierarchy
+
+ 2. To ensure preservation of order over multiple mappings.
+
+ There are three places where an order is specified:
+
+ 1. The text encoding (std-or-address) of MTS.ORAddress as used
+ in the local-part of an RFC 822 address. An order is needed
+ for those components which may have multiple values
+ (Organisational Unit, and Domain Defined Attributes). When
+ generating an 822.std-or-address, components of a given type
+ shall be in hierarchical order with the most significant
+ component on the RHS. If there is an Organisation
+ Attribute, it shall be to the right of any Organisational
+ Unit attributes. These requirements are for the following
+ reasons:
+
+
+
+
+Hardcastle-Kille [Page 40]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ - Alignment to the hierarchy of other components in RFC
+ 822 addresses (thus, Organisational Units will appear
+ in the same order, whether encoded on the RHS or LHS).
+ Note the differences of JNT Mail as described in
+ Appendix B.
+
+ - Backwards compatibility with RFC 987/1026.
+
+ - To ensure that gateways generate consistent addresses.
+ This is both to help end users, and to generate
+ identical message ids.
+
+ Further, it is recommended that all other attributes are
+ generated according to this ordering, so that all attributes
+ so encoded follow a consistent hierarchy. When generating
+ 822.msg-id, this order shall be followed.
+
+ 2. For the Organisational Units (OU) in MTS.ORAddress, the
+ first OU in the SEQUENCE is the most significant, as
+ specified in X.400.
+
+ 3. For the Domain Defined Attributes in MTS.ORAddress, the
+ First Domain Defined Attribute in the SEQUENCE is the most
+ significant.
+
+ Note that although this ordering is mandatory for this
+ mapping, there are NO implications on ordering significance
+ within X.400, where this is a Management Domain issue.
+
+4.3.4. RFC 822 -> X.400
+
+ There are two basic cases:
+
+ 1. X.400 addresses encoded in RFC 822. This will also include
+ RFC 822 addresses which are given reversible encodings.
+
+ 2. "Genuine" RFC 822 addresses.
+
+ The mapping shall proceed as follows, by first assuming case 1).
+
+STAGE I.
+
+ 1. If the 822-address is not of the form:
+
+ local-part "@" domain
+
+ take the domain which will be routed on and apply step 2 of
+ stage 1 to derive (a possibly null) set of attributes. Then
+
+
+
+Hardcastle-Kille [Page 41]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ go to stage II.
+
+ NOTE:It may be appropriate to reduce a source route address
+ to this form by removal of all bar the last domain. In
+ terms of the design intentions of RFC 822, this would
+ be an incorrect action. However, in most real cases,
+ it will do the "right" thing and provide a better
+ service to the end user. This is a reflection on the
+ excessive and inappropriate use of source routing in
+ RFC 822 based systems. Either approach, or the
+ intermediate approach of stripping only domain
+ references which reference the local gateway are
+ conformant to this specification.
+
+ 2. Attempt to parse EBNF.domain as:
+
+ *( domain-syntax "." ) known-domain
+
+ Where EBNF.known-domain is the longest possible match in the
+ set of globally defined mappings (see Appendix F). If this
+ fails, and the EBNF.domain does not explicitly identify the
+ local gateway, go to stage II. If the domain explicitly
+ identifies the gateway, allocate no attributes. Otherwise,
+ allocate the attributes associated with EBNF.known-domain.
+ For each component, systematically allocate the attribute
+ implied by each EBNF.domain-syntax component in the order:
+ C, ADMD, PRMD, O, OU. Note that if the mapping used
+ identifies an "omitted attribute", then this attribute
+ should be omitted in the systematic allocation. If this new
+ component exceed an upper bound (ADMD: 16; PRMD: 16; O: 64;
+ OU: 32) or it would lead to more than four OUs, then go to
+ stage II with the attributes derived.
+
+ At this stage, a set of attributes has been derived, which
+ will give appropriate routing within X.400. If any of the
+ later steps of Stage I force use of Stage II, then these
+ attributes should be used in Stage II.
+
+ 3. If the 822.local-part uses the 822.quoted-string encoding,
+ remove this quoting. If this unquoted 822.local-part has
+ leading space, trailing space, or two adjacent space go to
+ stage II.
+
+ 4. If the unquoted 822.local-part contains any characters not
+ in PrintableString, go to stage II.
+
+ 5. Parse the (unquoted) 822.local-part according to the EBNF
+ EBNF.std-or-address. Checking of upper bounds should not be
+
+
+
+Hardcastle-Kille [Page 42]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ done at this point. If this parse fails, parse the local-
+ part according to the EBNF EBNF.encoded-pn. If this parse
+ fails, go to stage II. The result is a set of type/value
+ pairs. If the set of attributes leads to an address of any
+ form other than mnemonic form, then only these attributes
+ should be taken. If (for mnemonic form) the values generated
+ conflict with those derived in step 2 (e.g., a duplicated
+ country attribute), the domain is assumed to be a remote
+ gateway. In this case, take only the LHS derived
+ attributes, together with any RHS dericed attributes which
+ are more significant thant the most signicant attribute
+ which is duplicated (e.g., if there is a duplicate PRMD, but
+ no LHS derived ADMD and country, then the ADMD and country
+ should be taken from the RHS). therwise add LHS and RHS
+ derived attributes together.
+
+ 6. Associate the EBNF.attribute-value syntax (determined from
+ the identified type) with each value, and check that it
+ conforms. If not, go to stage II.
+
+ 7. Ensure that the set of attributes conforms both to the
+ MTS.ORAddress specification and to the restrictions on this
+ set given in X.400, and that no upper bounds are exceeded
+ for any attribute. If not go to stage II.
+
+ 8. Build the O/R Address from this information.
+
+STAGE II.
+
+ This will only be reached if the RFC 822 EBNF.822-address is not a
+ valid X.400 encoding. This implies that the address must refer to a
+ recipient on an RFC 822 system. Such addresses shall be encoded in
+ an X.400 O/R Address using a domain defined attribute.
+
+ 1. Convert the EBNF.822-address to PrintableString, as
+ specified in Chapter 3.
+
+ 2. Generate the "RFC-822" domain defined attribute from this
+ string.
+
+ 3. Build the rest of the O/R Address in the manner described
+ below.
+
+ It may not be possible to encode the domain defined attribute due to
+ length restrictions. If the limit is exceeded by a mapping at the
+ MTS level, then the gateway shall reject the message in question. If
+ this occurs at the IPMS level, then the action will depend on the
+ policy being taken for IPMS encoding, which is discussed in Section
+
+
+
+Hardcastle-Kille [Page 43]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 5.1.3.
+
+ If Stage I has identified a set of attributes, use these to build the
+ remainder of the address. The administrative equivalence of the
+ mappings will ensure correct routing throug X.400 to a gateway back
+ to RFC 822.
+
+ If Stage I has not identified a set of attributes, the remainder of
+ the O/R address effectively identifies a source route to a gateway
+ from the X.400 side. There are three cases, which are handled
+ differently:
+
+ 822-MTS Return Address
+ This shall be set up so that errors are returned through the
+ same gateway. Therefore, the O/R Address of the local
+ gateway shall be used.
+
+ IPMS Addresses
+ These are optimised for replying. In general, the message
+ may end up anywhere within the X.400 world, and so this
+ optimisation identifies a gateway appropriate for the RFC
+ 822 address being converted. The 822.domain to which the
+ address would be routed is used to select an appropriate
+ gateway. A globally defined set of mappings is used, which
+ identifies (the O/R Address components of) appropriate
+ gateways for parts of the domain namespace. The longest
+ possible match on the 822.domain defines which gateway to
+ use. The table format for distribution of this information
+ is defined in Appendix F.
+
+ This global mapping is used for parts of the RFC 822
+ namespace which do not have an administrative equivalence
+ with any part of the X.400 namespace, but for which it is
+ desirable to identify a preferred X.400 gateway in order to
+ optimise routing.
+
+ If no mapping is found for the 822.domain, a default value
+ (typically that of the local gateway) is used. It is never
+ appropriate to ignore the globally defined mappings. In
+ some cases, it may be appropriate to locally override the
+ globally defined mappings (e.g., to identify a gateway close
+ to a recipient of the message). This is likely to be where
+ the global mapping identifies a public gateway, and the
+ local gateway has an agreement with a private gateway which
+ it prefers to use.
+
+ 822-MTS Recipient
+ As the RFC 822 and X.400 worlds are fully connected, there
+
+
+
+Hardcastle-Kille [Page 44]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ is no technical reason for this situation to occur. In some
+ cases, routing may be configured to connect two parts of the
+ RFC 822 world using X.400. The information that this part
+ of the domain space should be routed by X.400 rather than
+ remaining within the RFC 822 world will be configured
+ privately into the gateway in question. The O/R address
+ shall then be generated in the same manner as for an IPMS
+ address, using the globally defined mappings. It is to
+ support this case that the definition of the global domain
+ to gateway mapping is important, as the use of this mapping
+ will lead to a remote X.400 address, which can be routed by
+ X.400 routing procedures. The information in this mapping
+ shall not be used as a basis for deciding to convert a
+ message from RFC 822 to X.400.
+
+4.3.4.1. Heuristics for mapping RFC 822 to X.400
+
+ RFC 822 users will often use an LHS encoded address to identify an
+ X.400 recipient. Because the syntax is fairly complex, a number of
+ heuristics may be applied to facilitate this form of usage. A
+ gateway should take care not to be overly "clever" with heuristics,
+ as this may cause more confusion than a more mechanical approach.
+ The heuristics are as follows:
+
+ 1. Ignore the omission of a trailing "/" in the std-or syntax.
+
+ 2. If there is no ADMD component, and both country and PRMD are
+ present, the value of /ADMD= / (single space) is assumed.
+
+ 3. Parse the unquoted local part according to the EBNF colon-
+ or-address. This may facilitate users used to this
+ delimiter.
+
+ colon-or-address = 1*(attribute "=" value ";" *(LWSP-char))
+
+ The remaining heuristic relates to ordering of address components.
+ The ordering of attributes may be inverted or mixed. For this
+ reason, the following heuristics may be applied:
+
+ 4. If there is an Organisation attribute to the left of any Org
+ Unit attribute, assume that the hierarchy is inverted.
+
+4.3.5. X.400 -> RFC 822
+
+ There are two basic cases:
+
+ 1. RFC 822 addresses encoded in X.400.
+
+
+
+
+Hardcastle-Kille [Page 45]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 2. "Genuine" X.400 addresses. This may include symmetrically
+ encoded RFC 822 addresses.
+
+ When a MTS Recipient O/R Address is interpreted, gatewaying will be
+ selected if there is a single "RFC-822" domain defined attribute
+ present and the local gateway is identified by the remainder of the
+ O/R Address. In this case, use mapping A. For other O/R Addresses
+ which
+
+ 1. Contain the special attribute.
+
+ AND
+
+ 2. Identifies the local gateway or any other known gateway with
+ the other attributes.
+
+ use mapping A. In other cases, use mapping B.
+
+ NOTE:
+ A pragmatic approach would be to assume that any O/R
+ Address with the special domain defined attribute identifies
+ an RFC 822 address. This will usually work correctly, but is
+ in principle not correct. Use of this approach is
+ conformant to this specification.
+
+Mapping A
+
+ 1. Map the domain defined attribute value to ASCII, as defined
+ in Chapter 3.
+
+Mapping B
+
+ This is used for X.400 addresses which do not use the explicit RFC
+ 822 encoding.
+
+ 1. For all string encoded attributes, remove any leading or
+ trailing spaces, and replace adjacent spaces with a single
+ space.
+
+ The only attribute which is permitted to have zero length is
+ the ADMD. This should be mapped onto a single space.
+
+ These transformations are for lookup only. If an
+ EBNF.std-or-address mapping is used as in 4), then the
+ orginal values should be used.
+
+ 2. Map numeric country codes to the two letter values.
+
+
+
+
+Hardcastle-Kille [Page 46]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 3. Noting the hierarchy specified in 4.3.1 and including
+ omitted attributes, determine the maximum set of attributes
+ which have an associated domain specification in the
+ globally defined mapping. If no match is found, allocate
+ the domain as the domain specification of the local gateway,
+ and go to step 5.
+
+ Note: It might be appropriate to use a non-local domain.
+ This would be selected by a global mapping analagous to
+ the one described at the end of 4.3.4. This is not
+ done, primarily because use of RFC 822 to connect X.400
+ systems is not expected to be significant.
+
+ In cases where the address refers to an X.400 UA, it is
+ important that the generated domain will correctly route to
+ a gateway. In general, this is achieved by carefully co-
+ ordinating RFC 822 routing with the definition of the global
+ mappings, as there is no easy way for the gateway to make
+ this check. One rule that shall be used is that domains
+ with only one component will not route to a gateway. If the
+ generated domain does not route correctly, the address is
+ treated as if no match is found.
+
+ 4. The mapping identified in 3) gives a domain, and an O/R
+ address prefix. Follow the hierarchy: C, ADMD, PRMD, O, OU.
+ For each successive component below the O/R address prefix,
+ which conforms to the syntax EBNF.domain-syntax (as defined
+ in 4.3.1), allocate the next subdomain. At least one
+ attribute of the X.400 address shall not be mapped onto
+ subdomain, as 822.local-part cannot be null. If there are
+ omitted attributes in the O/R address prefix, these will
+ have correctly and uniquely mapped to a domain component.
+ Where there is an attribute omitted below the prefix, all
+ attributes remaining in the O/R address shall be encoded on
+ the LHS. This is to ensure a reversible mapping. For
+ example, if the is an addres /S=XX/O=YY/ADMD=A/C=NN/ and a
+ mapping for /ADMD=A/C=NN/ is used, then /S=XX/O=YY/ is
+ encoded on the LHS.
+
+ 5. If the address is not mnemonic form (form 1 variant 1),
+ then all of the attributes in the address should be encoded
+ on the LHS in EBNF.std-or-address syntax, as described
+ below.
+
+ For addresses of mnemonic form, if the remaining components
+ are personal-name components, conforming to the restrictions
+ of 4.2.1, then EBNF.encoded-pn is derived to form
+ 822.local-part. In other cases the remaining components are
+
+
+
+Hardcastle-Kille [Page 47]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ simply encoded as 822.local-part using the
+ EBNF.std-or-address syntax. If necessary, the
+ 822.quoted-string encoding is used. The following are
+ examples of legal quoting: "a b".c@x; "a b.c"@x. Either
+ form may be generated, but the latter is preferred.
+
+ If the derived 822.local-part can only be encoded by use of
+ 822.quoted-string, then use of the mapping defined
+ in [Kille89b] may be appropriate. Use of this mapping is
+ discouraged.
+
+4.4. Repeated Mappings
+
+ There are two types of repeated mapping:
+
+ 1. A recursive mapping, where the repeat is within one gateway
+
+ 2 A source route, where the repetition occurs across multiple
+ gateways
+
+4.4.1. Recursive Mappings
+
+ It is possible to supply an address which is recurive at a single
+ gateway. For example:
+
+ C = "XX"
+ ADMD = "YY"
+ O = "ZZ"
+ "RFC-822" = "Smith(a)ZZ.YY.XX"
+
+ This is mapped first to an RFC 822 address, and then back to the
+ X.400 address:
+
+ C = "XX"
+ ADMD = "YY"
+ O = "ZZ"
+ Surname = "Smith"
+
+ In some situations this type of recursion may be frequent. It is
+ important that where this occurs, that no unnecessary protocol
+ conversion occurs. This will minimise loss of service.
+
+4.4.2. Source Routes
+
+ The mappings defined are symmetrical and reversible across a single
+ gateway. The symmetry is particularly useful in cases of (mail
+ exploder type) distribution list expansion. For example, an X.400
+ user sends to a list on an RFC 822 system which he belongs to. The
+
+
+
+Hardcastle-Kille [Page 48]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ received message will have the originator and any 3rd party X.400 O/R
+ Addresses in correct format (rather than doubly encoded). In cases
+ (X.400 or RFC 822) where there is common agreement on gateway
+ identification, then this will apply to multiple gateways.
+
+ When a message traverses multiple gateways, the mapping will always
+ be reversible, in that a reply can be generated which will correctly
+ reverse the path. In many cases, the mapping will also be
+ symmetrical, which will appear clean to the end user. For example,
+ if countries "AB" and "XY" have RFC 822 networks, but are
+ interconnected by X.400, the following may happen: The originator
+ specifies:
+
+ Joe.Soap@Widget.PTT.XY
+
+ This is routed to a gateway, which generates:
+
+ C = "XY"
+ ADMD = "PTT"
+ PRMD = "Griddle MHS Providers"
+ Organisation = "Widget Corporation"
+ Surname = "Soap"
+ Given Name = "Joe"
+
+ This is then routed to another gateway where the mapping is reversed
+ to give:
+
+ Joe.Soap@Widget.PTT.XY
+
+ Here, use of the gateway is transparent.
+
+ Mappings will only be symmetrical where mapping tables are defined.
+ In other cases, the reversibility is more important, due to the (far
+ too frequent) cases where RFC 822 and X.400 services are partitioned.
+
+ The syntax may be used to source route. THIS IS STRONGLY
+ DISCOURAGED. For example:
+
+ X.400 -> RFC 822 -> X.400
+
+ C = "UK"
+ ADMD = "Gold 400"
+ PRMD = "UK.AC"
+ "RFC-822" = "/PN=Duval/DD.Title=Manager/(a)Inria.ATLAS.FR"
+
+ This will be sent to an arbitrary UK Academic Community gateway by
+ X.400. Then it will be sent by JNT Mail to another gateway
+ determined by the domain Inria.ATLAS.FR (FR.ATLAS.Inria). This will
+
+
+
+Hardcastle-Kille [Page 49]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ then derive the X.400 O/R Address:
+
+ C = "FR"
+ ADMD = "ATLAS"
+ PRMD = "Inria"
+ PN.S = "Duval"
+ "Title" = "Manager"
+
+ Similarly:
+ RFC 822 -> X.400 -> RFC 822
+
+"/C=UK/ADMD=BT/PRMD=AC/RFC-822=jj(a)seismo.css.gov/"@monet.berkeley.edu
+
+ This will be sent to monet.berkeley.edu by RFC 822, then to the AC
+ PRMD by X.400, and then to jj@seismo.css.gov by RFC 822.
+
+4.5. Directory Names
+
+ Directory Names are an optional part of O/R Name, along with O/R
+ Address. The RFC 822 addresses are mapped onto the O/R Address
+ component. As there is no functional mapping for the Directory Name
+ on the RFC 822 side, a textual mapping is used. There is no
+ requirement for reversibility in terms of the goals of this
+ specification. There may be some loss of functionality in terms of
+ third party recipients where only a directory name is given, but this
+ seems preferable to the significant extra complexity of adding a full
+ mapping for Directory Names.
+
+ Note:There is ongoing work on specification of a "user friendly"
+ format for directory names. If this is adopted as an
+ internet standard, it will be recommended, but not required,
+ for use here.
+
+4.6. MTS Mappings
+
+ The basic mappings at the MTS level are:
+
+ 1) 822-MTS originator ->
+ MTS.PerMessageSubmissionFields.originator-name
+ MTS.OtherMessageDeliveryFields.originator-name ->
+ 822-MTS originator
+
+ 2) 822-MTS recipient ->
+ MTS.PerRecipientMessageSubmissionFields
+ MTS.OtherMessageDeliveryFields.this-recipient-name ->
+ 822-MTS recipient
+
+ 822-MTS recipients and return addresses are encoded as EBNF.822-
+
+
+
+Hardcastle-Kille [Page 50]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ address.
+
+ The MTS Originator is always encoded as MTS.OriginatorName, which
+ maps onto MTS.ORAddressAndOptionalDirectoryName, which in turn maps
+ onto MTS.ORName.
+
+4.6.1. RFC 822 -> X.400
+
+ From the 822-MTS Originator, use the basic ORAddress mapping, to
+ generate MTS.PerMessageSubmissionFields.originator-name (MTS.ORName),
+ without a DirectoryName.
+
+ For recipients, the following settings are made for each component of
+ MTS.PerRecipientMessageSubmissionFields.
+
+ recipient-name
+ This is derived from the 822-MTS recipient by the basic
+ ORAddress mapping.
+
+ originator-report-request
+ This is be set according to content return policy, as
+ discussed in Section 5.2.
+
+ explicit-conversion
+ This optional component is omitted, as this service is not
+ needed
+
+ extensions
+ The default value (no extensions) is used
+
+4.6.2. X.400 -> RFC 822
+
+ The basic functionality is to generate the 822-MTS originator and
+ recipients. There is information present on the X.400 side, which
+ cannot be mapped into analogous 822-MTS services. For this reason,
+ new RFC 822 fields are added for the MTS Originator and Recipients.
+ The information discarded at the 822-MTS level will be present in
+ these fields. In some cases a (positive) delivery report will be
+ generated.
+
+4.6.2.1. 822-MTS Mappings
+
+ Use the basic ORAddress mapping, to generate the 822-MTS originator
+ (return address) from MTS.OtherMessageDeliveryFields.originator-name
+ (MTS.ORName). If MTS.ORName.directory-name is present, it is
+ discarded. (Note that it will be presented to the user, as described
+ in 4.6.2.2).
+
+
+
+
+Hardcastle-Kille [Page 51]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ The 822-MTS recipient is conceptually generated from
+ MTS.OtherMessageDeliveryFields.this-recipient-name. This is done by
+ taking MTS.OtherMessageDeliveryFields.this-recipient-name, and
+ generating an 822-MTS recipient according to the basic ORAddress
+ mapping, discarding MTS.ORName.directory-name if present. However,
+ if this model was followed exactly, there would be no possibility to
+ have multiple 822-MTS recipients on a single message. This is
+ unacceptable, and so layering is violated. The mapping needs to use
+ the MTA level information, and map each value of
+ MTA.PerRecipientMessageTransferFields.recipient-name, where the
+ responsibility bit is set, onto an 822-MTS recipient.
+
+4.6.2.2. Generation of RFC 822 Headers
+
+ Not all per-recipient information can be passed at the 822-MTS level.
+ For this reason, two new RFC 822 headers are created, in order to
+ carry this information to the RFC 822 recipient. These fields are
+ "X400-Originator:" and "X400-Recipients:".
+
+ The "X400-Originator:" field is set to the same value as the 822-MTS
+ originator. In addition, if
+ MTS.OtherMessageDeliveryFields.originator-name (MTS.ORName) contains
+ MTS.ORName.directory-name then this Directory Name shall be
+ represented in an 822.comment.
+
+ Recipient names, taken from each value of
+ MTS.OtherMessageDeliveryFields.this-recipient-name and
+ MTS.OtherMessageDeliveryFields.other-recipient-names are made
+ available to the RFC 822 user by use of the "X400-Recipients:" field.
+ By taking the recipients at the MTS level, disclosure of recipients
+ will be dealt with correctly. However, this conflicts with a desire
+ to optimise mail transfer. There is no problem when disclosure of
+ recipients is allowed. Similarly, there is no problem if there is
+ only one RFC 822 recipient, as the "X400-Recipients field is only
+ given one address.
+
+ There is a problem if there are multiple RFC 822 recipients, and
+ disclosure of recipients is prohibited. Two options are allowed:
+
+ 1. Generate one copy of the message for each RFC 822 recipient,
+ with the "X400-Recipients field correctly set to the
+ recipient of that copy. This is functionally correct, but
+ is likely to be more expensive.
+
+ 2. Discard the per-recipient information, and insert a field:
+
+ X400-Recipients: non-disclosure:;
+
+
+
+
+Hardcastle-Kille [Page 52]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ This is the recommended option.
+
+ A third option of ignoring the disclosure flag is not allowed. If
+ any MTS.ORName.directory-name is present, it shall be represented in
+ an 822.comment.
+
+ If MTS.OtherMessageDeliveryFields.orignally-intended-recipient-name
+ is present, then there has been redirection, or there has been
+ distribution list expansion. Distribution list expansion is a per-
+ message option, and the information associated with this is
+ represented by the "DL-Expansion-History:" field descrined in Section
+ 5.3.6. Other information is represented in an 822.comment associated
+ associated with MTS.OtherMessageDeliveryFields.this-recipient-name,
+ The message may be delivered to different RFC 822 recipients, and so
+ several addresses in the "X400-Recipients:" field may have such
+ comments. The non-commented recipient is the RFC 822 recipient. The
+ EBNF of the comment is:
+
+
+ redirect-comment =
+ [ "Originally To:" ] mailbox "Redirected"
+ [ "Again" ] "on" date-time
+ "To:" redirection-reason
+
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+
+ It is derived from
+ MTA.PerRecipientMessageTransferFields.extension.redirection-history.
+ An example of this is:
+
+ X400-Recipients: postmaster@widget.com (Originally To:
+ sales-manager@sales.widget.com Redirected
+ on Thu, 30 May 91 14:39:40 +0100 To: Originator Assigned
+ Alternate Recipient postmaster@sales.widget.com Redirected
+ Again on Thu, 30 May 91 14:41:20 +0100 To: Recipient MD
+ Assigned Alternate Recipient)
+
+ In addition, the following per-recipient services from
+ MTS.OtherMessageDeliveryFields.extensions are represented in comments
+ if they are used. None of these services can be provided on RFC 822
+ networks, and so in general these will be informative strings
+ associated with other MTS recipients. In some cases, string values
+ are defined. For the remainder, the string value shall be chosen by
+ the implementor. If the parameter has a default value, then no
+ comment shall be inserted when the parameter has that default value.
+
+
+
+Hardcastle-Kille [Page 53]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ requested-delivery-method
+
+ physical-forwarding-prohibited
+ "(Physical Forwarding Prohibited)".
+
+ physical-forwarding-address-request
+ "(Physical Forwarding Address Requested)".
+
+ physical-delivery-modes
+
+ registered-mail-type
+
+ recipient-number-for-advice
+
+ physical-rendition-attributes
+
+ physical-delivery-report-request
+ "(Physical Delivery Report Requested)".
+
+ proof-of-delivery-request
+ "(Proof of Delivery Requested)".
+
+4.6.2.3. Delivery Report Generation
+
+ If MTA.PerRecipientMessageTransferFields.per-recipient-indicators
+ requires a positive delivery notification, this shall be generated by
+ the gateway. Supplementary Information shall be set to indicate that
+ the report is gateway generated. This information shall include the
+ name of the gateway generating the report.
+
+4.6.3. Message IDs (MTS)
+
+ A mapping from 822.msg-id to MTS.MTSIdentifier is defined. The
+ reverse mapping is not needed, as MTS.MTSIdentifier is always mapped
+ onto new RFC 822 fields. The value of MTS.MTSIdentifier.local-part
+ will facilitate correlation of gateway errors.
+
+ To map from 822.msg-id, apply the standard mapping to 822.msg-id, in
+ order to generate an MTS.ORAddress. The Country, ADMD, and PRMD
+ components of this are used to generate MTS.MTSIdentifier.global-
+ domain-identifier. MTS.MTSIdentifier.local-identifier is set to the
+ 822.msg-id, including the braces "<" and ">". If this string is
+ longer than MTS.ub-local-id-length (32), then it is truncated to this
+ length.
+
+ The reverse mapping is not used in this specification. It would be
+ applicable where MTS.MTSIdentifier.local-identifier is of syntax
+ 822.msg-id, and it algorithmically identifies MTS.MTSIdentifier.
+
+
+
+Hardcastle-Kille [Page 54]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+4.7. IPMS Mappings
+
+ All RFC 822 addresses are assumed to use the 822.mailbox syntax.
+ This includes all 822.comments associated with the lexical tokens of
+ the 822.mailbox. In the IPMS O/R Names are encoded as MTS.ORName.
+ This is used within the IPMS.ORDescriptor, IPMS.RecipientSpecifier,
+ and IPMS.IPMIdentifier. An asymmetrical mapping is defined between
+ these components.
+
+4.7.1. RFC 822 -> X.400
+
+ To derive IPMS.ORDescriptor from an RFC 822 address.
+
+ 1. Take the address, and extract an EBNF.822-address. This can
+ be derived trivially from either the 822.addr-spec or
+ 822.route-addr syntax. This is mapped to MTS.ORName as
+ described above, and used as IMPS.ORDescriptor.formal-name.
+
+ 2. A string shall be built consisting of (if present):
+
+ - The 822.phrase component if the 822.address is an
+ 822.phrase 822.route-addr construct.
+
+ - Any 822.comments, in order, retaining the parentheses.
+
+ This string is then encoded into T.61 use a human oriented
+ mapping (as described in Chapter 3). If the string is not
+ null, it is assigned to IPMS.ORDescriptor.free-form-name.
+
+ 3. IPMS.ORDescriptor.telephone-number is omitted.
+
+ If IPMS.ORDescriptor is being used in IPMS.RecipientSpecifier,
+ IPMS.RecipientSpecifier.reply-request and
+ IPMS.RecipientSpecifier.notification-requests are set to default
+ values (none and false).
+
+ If the 822.group construct is present, any included 822.mailbox is
+ encoded as above to generate a separate IPMS.ORDescriptor. The
+ 822.group is mapped to T.61, and a IPMS.ORDescriptor with only an
+ free-form-name component built from it.
+
+4.7.2. X.400 -> RFC 822
+
+ Mapping from IPMS.ORDescriptor to RFC 822 address. In the basic
+ case, where IPMS.ORDescriptor.formal-name is present, proceed as
+ follows.
+
+ 1. Encode IPMS.ORDescriptor.formal-name (MTS.ORName) as
+
+
+
+Hardcastle-Kille [Page 55]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ EBNF.822-address.
+
+ 2a. If IPMS.ORDescriptor.free-form-name is present, convert it
+ to ASCII (Chapter 3), and use this as the 822.phrase
+ component of 822.mailbox using the 822.phrase 822.route-addr
+ construct.
+
+ 2b. If IPMS.ORDescriptor.free-form-name is absent. If
+ EBNF.822-address is parsed as 822.addr-spec use this as the
+ encoding of 822.mailbox. If EBNF.822-address is parsed as
+ 822.route 822.addr-spec, then a 822.phrase taken from
+ 822.local-part is added.
+
+ 3. If IPMS.ORDescriptor.telephone-number is present, this is
+ placed in an 822.comment, with the string "Tel ". The
+ normal international form of number is used. For example:
+
+ (Tel +44-1-387-7050)
+
+ 4. If IPMS.ORDescriptor.formal-name.directory-name is present,
+ then a text representation is placed in a trailing
+ 822.comment.
+
+ 5. If IPMS.RecipientSpecifier.report-request has any non-
+ default values, then an 822.comment "(Receipt Notification
+ Requested)", and/or "(Non Receipt Notification Requested)",
+ and/or "(IPM Return Requested)" is appended to the address.
+ If both receipt and non-receipt notfications are requested,
+ the comment relating to the latter may be omitted, to make
+ the RFC 822 address cleaner. The effort of correlating P1
+ and P2 information is too great to justify the gateway
+ sending Receipt Notifications.
+
+ 6. If IPMS.RecipientSpecifier.reply-request is True, an
+ 822.comment "(Reply requested)" is appended to the address.
+
+ If IPMS.ORDescriptor.formal-name is absent, IPMS.ORDescriptor.free-
+ form-name is converted to ASCII, and used as 822.phrase within the
+ RFC 822 822.group syntax. For example:
+
+ Free Form Name ":" ";"
+
+ Steps 3-6 are then followed.
+
+4.7.3. IP Message IDs
+
+ There is a need to map both ways between 822.msg-id and
+ IPMS.IPMIdentifier. This allows for X.400 Receipt Notifications,
+
+
+
+Hardcastle-Kille [Page 56]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Replies, and Cross References to reference an RFC 822 Message ID,
+ which is preferable to a gateway generated ID. A reversible and
+ symmetrical mapping is defined. This allows for good things to
+ happen when messages pass multiple times across the X.400/RFC 822
+ boundary.
+
+ An important issue with messages identifiers is mapping to the exact
+ form, as many systems use these ids as uninterpreted keys. The use
+ of table driven mappings is not always symmetrical, particularly in
+ the light of alternative domain names, and alternative management
+ domains. For this reason, a purely algorithmic mapping is used. A
+ mapping which is simpler than that for addresses can be used for two
+ reasons:
+
+ - There is no major requirement to make message IDs "natural"
+
+ - There is no issue about being able to reply to message IDs.
+ (For addresses, creating a return path which works is more
+ important than being symmetrical).
+
+ The mapping works by defining a way in which message IDs generated on
+ one side of the gateway can be represented on the other side in a
+ systematic manner. The mapping is defined so that the possibility of
+ clashes is is low enough to be treated as impossible.
+
+4.7.3.1. 822.msg-id represented in X.400
+
+ IPMS.IPMIdentifier.user is omitted. The IPMS.IPMIdentifier.user-
+ relative-identifier is set to a printable string encoding of the
+ 822.msg-id with the angle braces ("<" and ">") removed. The upper
+ bound on this component is 64. The options for handling this are
+ discussed in Section 5.1.3.
+
+4.7.3.2. IPMS.IPMIdentifier represented in RFC 822
+
+ The 822.domain of 822.msg-id is set to the value "MHS". The
+ 822.local-part of 822.msg-id is built as
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ with EBNF.printablestring being the IPMS.IPMIdentifier.user-
+ relative-identifier, and std-or-address being an encoding of the
+ IPMS.IPMIdentifier.user. If necessary, the 822.quoted-string
+ encoding is used. For example:
+
+ <"147*/S=Dietrich/O=Siemens/ADMD=DBP/C=DE/"@MHS>
+
+
+
+
+
+Hardcastle-Kille [Page 57]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+4.7.3.3. 822.msg-id -> IPMS.IPMIdentifier
+
+ If the 822.local-part can be parsed as:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ and the 822.domain is "MHS", then this ID was X.400 generated. If
+ EBNF.printablestring is present, the value is assigned to
+ IPMS.IPMIdentifier.user-relative-identifier. If EBNF.std-or-address
+ is present, the O/R Address components derived from it are used to
+ set IPMS.IPMIdentifier.user.
+
+ Otherwise, this is an RFC 822 generated ID. In this case, set
+ IPMS.IPMIdentifier.user-relative-identifier to a printable string
+ encoding of the 822.msg-id without the angle braces.
+
+4.7.3.4. IPMS.IPMIdentifier -> 822.msg-id
+
+ If IPMS.IPMIdentifier.user is absent, and IPMS.IPMIdentifier.user-
+ relative-identifier mapped to ASCII and angle braces added parses as
+ 822.msg-id, then this is an RFC 822 generated ID.
+
+ Otherwise, the ID is X.400 generated. Use the
+ IPMS.IPMIdentifier.user to generate an EBNF.std-or-address form
+ string. Build the 822.local-part of the 822.msg-id with the syntax:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ The printablestring is taken from IPMS.IPMIdentifier.user-relative-
+ identifier. Use 822.quoted-string if necessary. The 822.msg-id is
+ generated with this 822.local-part, and "MHS" as the 822.domain.
+
+4.7.3.5. Phrase form
+
+ In "InReply-To:" and "References:", the encoding 822.phrase may be
+ used as an alternative to 822.msg-id. To map from 822.phrase to
+ IPMS.IPMIdentifier, assign IPMS.IPMIdentifier.user-relative-
+ identifier to the phrase. When mapping from IPMS.IPMIdentifier for
+ "In-Reply-To:" and "References:", if IPMS.IPMIdentifier.user is
+ absent and IPMS.IPMIdentifier.user-relative-identifier does not parse
+ as 822.msg-id, generate an 822.phrase rather than adding the domain
+ MHS.
+
+4.7.3.6. RFC 987 backwards compatibility
+
+ The mapping defined here is different to that used in RFC 987, as the
+ RFC 987 mapping lead to changed message IDs in many cases. Fixing
+ the problems is preferable to retaining backwards compatibility. An
+
+
+
+Hardcastle-Kille [Page 58]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ implementation of this standard is encouraged to recognise message
+ IDs generated by RFC 987. This is not required.
+
+ RFC 987 generated encodings may be recognised as follows. When
+ mapping from X.400 to RFC 822, if the IPMS.IPMIdentifier.user-
+ relative-identifier is "RFC-822" the id is RFC 987 generated. When
+ mapping from RFC 822 to X.400, if the 822.domain is not "MHS", and
+ the 822.local-part can be parsed as
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ then it is RFC 987 generated. In each of these cases, it is
+ recommended to follow the RFC 987 rules.
+
+Chapter 5 - Detailed Mappings
+
+ This chapter specifies detailed mappings for the functions outlined
+ in Chapters 1 and 2. It makes extensive use of the notations and
+ mappings defined in Chapters 3 and 4.
+
+5.1. RFC 822 -> X.400
+
+5.1.1. Basic Approach
+
+ A single IP Message is generated from an RFC 822 message The RFC 822
+ headers are used to generate the IPMS.Heading. The IP Message will
+ have one IA5 IPMS.BodyPart containing the RFC 822 message body.
+
+ Some RFC 822 fields cannot be mapped onto a standard IPM Heading
+ field, and so an extended field is defined in Section 5.1.2. This is
+ then used for fields which cannot be mapped onto existing services.
+
+ The message is submitted to the MTS, and the services required can be
+ defined by specifying MTS.MessageSubmissionEnvelope. A few
+ parameters of the MTA Abstract service are also specified, which are
+ not in principle available to the MTS User. Use of these services
+ allows RFC 822 MTA level parameters to be carried in the analogous
+ X.400 service elements. The advantages of this mapping far outweigh
+ the layering violation.
+
+5.1.2. X.400 Extension Field
+
+ An IPMS Extension is defined:
+
+ rfc-822-field HEADING-EXTENSION
+ VALUE RFC822FieldList
+ ::= id-rfc-822-field-list
+
+
+
+
+Hardcastle-Kille [Page 59]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ RFC822FieldList ::= SEQUENCE OF RFC822Field
+
+ RFC822Field ::= IA5String
+
+ The Object Identifier id-rfc-822-field-list is defined in Appendix D.
+
+ To encode any RFC 822 Header using this extension, an RFC822Field
+ element is built using the 822.field omitting the trailing CRLF
+ (e.g., "Fruit-Of-The-Day: Kiwi Fruit"). Structured fields shall be
+ unfolded. There shall be no space before the ":". The reverse
+ mapping builds the RFC 822 field in a straightforward manner. This
+ RFC822Field is appended to the RFC822FieldList, which is added to the
+ IPM Heading as an extension field.
+
+5.1.3. Generating the IPM
+
+ The IPM (IPMS Service Request) is generated according to the rules of
+ this section. The IPMS.IPM.body usually consists of one IPMS.BodyPart
+ of type IPMS.IA5TextBodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the default (ia5)
+ which contains the body of the RFC 822 message. The exception is
+ where there is a "Comments:" field in the RFC 822 header.
+
+ If no specific 1988 features are used, the IPM generated is encoded
+ as content type 2. Otherwise, it is encoded as content type 22. The
+ latter will always be the case if extension heading fields are
+ generated.
+
+ When generating the IPM, the issue of upper bounds must be
+ considered. At the MTS and MTA level, this specification is strict
+ about enforcing upper bounds. Three options are available at the IPM
+ level. Use of any of these options conforms to this standard.
+
+ 1. Ignore upper bounds, and generate messages in the natural
+ manner. This assumes that if any truncation is done, it
+ will happen at the recipient UA. This will maximise
+ transfer of information, but is likely break some recipient
+ UAs.
+
+ 2. Reject any inbound message which would cause a message
+ violating constraints to be generated. This will be robust,
+ but may prevent useful communication.
+
+ 3. Truncate fields to the upper bounds specified in X.400.
+
+ This will prevent problems with UAs which enforce upper
+ bounds, but will sometimes discard useful information.
+
+
+
+
+Hardcastle-Kille [Page 60]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ If the Free Form name is truncated, it may lead to breaking
+ RFC 822 comments, which will cause an awkward reverse
+ mapping.
+
+ These options have different advantages and disadvantages, and the
+ choice will depend on the exact application of the gateway.
+
+ The rest of this section concerns IPMS.IPM.heading (IPMS.Heading).
+ The only mandatory component of IPMS.Heading is the
+ IPMS.Heading.this-IPM (IPMS.IPMIdentifier). A default is generated
+ by the gateway. With the exception of "Received:", the values of
+ multiple fields are merged (e.g., If there are two "To:" fields, then
+ the mailboxes of both are merged to generate a single list which is
+ used in the IPMS.Heading.primary-recipients. Information shall be
+ generated from the standard RFC 822 Headers as follows:
+
+ Date:
+ Ignore (Handled at MTS level)
+
+ Received:
+ Ignore (Handled at MTA level)
+
+ Message-Id:
+ Mapped to IPMS.Heading.this-IPM. For these, and all other
+ fields containing 822.msg-id the mappings of Chapter 4 are
+ used for each 822.msg-id.
+
+ From:
+ If Sender: is present, this is mapped to
+ IPMS.Heading.authorizing-users. If not, it is mapped to
+ IPMS.Heading.originator. For this, and other components
+ containing addresses, the mappings of Chapter 4 are used for
+ each address.
+
+ Sender:
+ Mapped to IPMS.Heading.originator.
+
+ Reply-To:
+ Mapped to IPMS.Heading.reply-recipients.
+
+ To: Mapped to IPMS.Heading.primary-recipients
+
+ Cc: Mapped to IPMS.Heading.copy-recipients.
+
+ Bcc: Mapped to IPMS.Heading.blind-copy-recipients if there is at
+ least one BCC: recipient. If there are no recipients in
+ this field, it should be mapped to a zero length sequence.
+
+
+
+
+Hardcastle-Kille [Page 61]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ In-Reply-To:
+ If there is one value, it is mapped to
+ IPMS.Heading.replied-to-IPM, using the 822.phrase or
+ 822.msg-id mapping as appropriate. If there are several
+ values, they are mapped to IPMS.Heading.related-IPMs, along
+ with any values from a "References:" field.
+
+ References:
+ Mapped to IPMS.Heading.related-IPMs.
+
+ Keywords:
+ Mapped onto a heading extension.
+
+ Subject:
+ Mapped to IPMS.Heading.subject. The field-body uses the
+ human oriented mapping referenced in Chapter 3 from ASCII to
+ T.61.
+
+ Comments:
+ Generate an IPMS.BodyPart of type IPMS.IA5TextBodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the
+ default (ia5), containing the value of the fields, preceded
+ by the string "Comments: ". This body part shall precede
+ the other one.
+
+ Encrypted:
+ Mapped onto a heading extension.
+
+ Resent-*
+ Mapped onto a heading extension.
+
+ Note that it would be possible to use a ForwardedIPMessage
+ for these fields, but the semantics are (arguably) slightly
+ different, and it is probably not worth the effort.
+
+ Other Fields
+
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g., "Fruit-of-the-day:") are mapped onto a heading
+ extension, unless covered by another section or appendix of
+ this specification. The same treatment is applied to RFC
+ 822 fields where the content of the field does not conform
+ to RFC 822 (e.g., a Date: field with unparseable syntax).
+
+5.1.4. Mappings to the MTS Abstract Service
+
+ The MTS.MessageSubmissionEnvelope comprises
+ MTS.PerMessageSubmissionFields, and
+
+
+
+Hardcastle-Kille [Page 62]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ MTS.PerRecipientMessageSubmissionFields. The mandatory parameters
+ are defaulted as follows.
+
+ MTS.PerMessageSubmissionFields.originator-name
+ This is always generated from 822-MTS, as defined in
+ Chapter 4.
+
+ MTS.PerMessageSubmissionFields.content-type
+ Set to the value implied by the encoding of the IPM (2 or
+ 22).
+
+ MTS.PerRecipientMessageSubmissionFields.recipient-name
+ These will always be supplied from 822-MTS, as defined in
+ Chapter 4.
+
+ Optional components are omitted, and default components defaulted.
+ This means that disclosure of recipients is prohibited and conversion
+ is allowed. There are two exceptions to the defaulting. For
+ MTS.PerMessageSubmissionFields.per-message-indicators, the following
+ settings are made:
+
+ - Alternate recipient is allowed, as it seems desirable to
+ maximise the opportunity for (reliable) delivery.
+
+ - Content return request is set according to the issues
+ discussed in Section 5.2.
+
+ MTS.PerMessageSubmissionFields.original-encoded-information-types is
+ a set of one element BuiltInEncodedInformationTypes.ia5-text.
+
+ The MTS.PerMessageSubmissionFields.content-correlator is encoded as
+ IA5String, and contains the Subject:, Message-ID:, Date:, and
+
+ To: fields (if present). This includes the strings "Subject:",
+ "Date:", "To:", "Message-ID:", and appropriate folding. This shall
+ be truncated to MTS.ub-content-correlator-length (512) characters.
+ In addition, if there is a "Subject:" field, the
+ MTS.PerMessageSubmissionFields.content-identifier, is set to a
+ printable string representation of the contents of it. If the
+ length of this string is greater than MTS.ub-content-id-length (16),
+ it should be truncated to 13 characters and the string "..."
+ appended. Both are used, due to the much larger upper bound of the
+ content correlator, and that the content id is available in
+ X.400(1984).
+
+5.1.5. Mappings to the MTA Abstract Service
+
+ There is a need to map directly onto some aspects of the MTA Abstract
+
+
+
+Hardcastle-Kille [Page 63]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ service, for the following reasons:
+
+ - So the the MTS Message Identifier can be generated from the
+ RFC 822 Message-ID:.
+
+ - So that the submission date can be generated from the
+ 822.Date.
+
+ - To prevent loss of trace information
+
+ - To prevent RFC 822/X.400 looping caused by distribution
+ lists or redirects
+
+ The following mappings are defined.
+
+ Message-Id:
+ If this is present, the
+ MTA.PerMessageTransferFields.message-identifier is generated
+ from it, using the mappings described in Chapter 4.
+
+ Date:
+ This is used to set the first component of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement). The 822-MTS originator is
+ mapped into an MTS.ORAddress, and used to derive
+ MTA.TraceInformationElement.global-domain-identifier. The
+ optional components of
+ MTA.TraceInformationElement.domain-supplied-information are
+ omitted, and the mandatory components are set as follows:
+
+ MTA.DomainSuppliedInformation.arrival-time
+ This is set to the date derived from Date:
+
+ MTA.DomainSuppliedInformation.routing-action
+ Set to relayed.
+
+ The first element of
+ MTA.PerMessageTransferFields.internal-trace-information is
+ generated in an analogous manner, although this can be
+ dropped later in certain circumstances (see the procedures
+ for "Received:"). The
+ MTA.InternalTraceInformationElement.mta-name is derived from
+ the 822.domain in the 822 MTS Originator address.
+
+ Received:
+ All RFC 822 trace is used to derive
+ MTA.PerMessageTransferFields.trace-information and
+ MTA.PerMessageTransferFields.internal-trace-information.
+
+
+
+Hardcastle-Kille [Page 64]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Processing of Received: lines follows processing of Date:,
+ and is be done from the the bottom to the top of the RFC 822
+ header (i.e., in chronological order). When other trace
+ elements are processed (X400-Received: in all cases and Via:
+ if Appendix B is supported), the relative ordering shall be
+ retained correctly. The initial element of
+ MTA.PerMessageTransferFields.trace-information will be
+ generated already (from Date:), unless the message has
+ previously been in X.400, when it will be derived from the
+ X.400 trace information.
+
+ Consider the Received: field in question. If the "by" part
+ of the received is present, use it to derive an
+ MTS.GlobalDomainIdentifier. If this is different from the
+ one in the last element of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement.global-domain-identifier)
+ create a new MTA.TraceInformationElement, and optionally
+ remove
+ MTA.PerMessageTransferFields.internal-trace-information.
+ This removal shall be done in cases where the message is
+ being transferred to another MD where there is no bilateral
+ agreement to preserve internal trace beyond the local MD.
+ The trace creation is as for internal trace described below,
+ except that no MTA field is needed.
+
+ Then add a new element (MTA.InternalTraceInformationElement)
+ to MTA.PerMessageTransferFields.internal-trace-information,
+ creating this if needed. This shall be done, even if
+ inter-MD trace is created. The
+ MTA.InternalTraceInformationElement.global-domain-identifier
+ is set to the value derived. The
+ MTA.InternalTraceInformationElement.mta-supplied-information
+ (MTA.MTASuppliedInformation) is set as follows:
+
+ MTA.MTASuppliedInformation.arrival-time
+ Derived from the date of the Received: line
+
+ MTA.MTASuppliedInformation.routing-action
+ Set to relayed
+
+ The MTA.InternalTraceInformationElement.mta-name is taken
+ from the "by" component of the "Received:" field, truncated
+ to MTS.ub-mta-name-length (32). For example:
+
+ Received: from computer-science.nottingham.ac.uk by
+ vs6.Cs.Ucl.AC.UK via Janet with NIFTP id aa03794;
+ 28 Mar 89 16:38 GMT
+
+
+
+Hardcastle-Kille [Page 65]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Generates the string
+
+ vs6.Cs.Ucl.AC.UK
+
+ Note that before transferring the message to some ADMDs, additional
+ trace stripping may be required, as the implied path through multiple
+ MDs would violate ADMD policy. This will depend on bilateral
+ agreement with the ADMD.
+
+5.1.6. Mapping New Fields
+
+ This specification defines a number of new fields for Reports,
+ Notifications and IP Messages in Section 5.3. As this specification
+ only aims to preserve existing services, a gateway conforming to this
+ specification does not need to map all of these fields to X.400.
+
+ Two extended fields must be mapped, in order to prevent looping.
+ "DL-Expansion-History:" is mapped to
+
+ MTA.PerMessageTransferFields.extensions.dl-expansion-history X400-
+ Received: must be mapped to MTA.PerMessageTransferFields.trace-
+ information and MTA.PerMessageTransferFields.internal-trace-
+ information. In cases where X400-Received: is present, the usual
+ mapping of Date: to generate the first element of trace should not be
+ done. This is because the message has come from X.400, and so the
+ first element of trace can be taken from the first X400-Received:.
+
+ Some field that shall not be mapped, and should be discarded. The
+ following cannot be mapped back:
+
+ - Discarded-X400-MTS-Extensions:
+
+ - Message-Type:
+
+ - Discarded-X400-IPMS-Extensions:
+
+ If Message-Type: is set to "Multiple Part", then the messge is
+ encoded according to RFC 934, and this may be mapped on to the
+ corresponding X.400 structures.
+
+ The following may cause problems, due to other information not being
+ mapped back (e.g., extension numbers), or due to changes made on the
+ RFC 822 side due to list expansion:
+
+ - X400-Content-Type:
+
+ - X400-Originator:
+
+
+
+
+Hardcastle-Kille [Page 66]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ - X400-Recipients:
+
+ - X400-MTS-Identifier:
+
+ Other fields may be either discarded or mapped to X.400. It is
+ usually desirable and beneficial to do map, particularly to
+ facilitate support of a message traversing multiple gateways. These
+ mappings may be onto MTA, MTS, or IPMS services. The level of
+ support for this reverse mapping should be indicated in the gateway
+ conformace statement.
+
+5.2. Return of Contents
+
+ It is not clear how widely supported the X.400 return of contents
+ service will be. Experience with X.400(1984) suggests that support
+ of this service may not be universal. As this service is expected in
+ the RFC 822 world, two approaches are specified. The choice will
+ depend on the use of X.400 return of contents withing the X.400
+ community being serviced by the gateway.
+
+ In environments where return of contents is widely supported, content
+ return can be requested as a service. The content return service can
+ then be passed back to the end (RFC 822) user in a straightforward
+ manner.
+
+ In environments where return of contents is not widely supported, a
+ gateway must make special provision to handle return of contents.
+ For every message passing from RFC 822 -> X.400, content return
+ request will not be requested, and report request always will be.
+ When the delivery report comes back, the gateway can note that the
+ message has been delivered to the recipient(s) in question. If a
+ non-delivery report is received, a meaningful report (containing some
+ or all of the original message) can be sent to the 822-MTS
+ originator. If no report is received for a recipient, a (timeout)
+ failure notice shall be sent to the 822-MTS originator. The gateway
+ may retransmit the X.400 message if it wishes. When this approach is
+ taken, routing must be set up so that error reports are returned
+ through the same MTA. This approach may be difficult to use in
+ conjunction with some routing strategies.
+
+5.3. X.400 -> RFC 822
+
+5.3.1. Basic Approach
+
+ A single RFC 822 message is generated from the incoming IP Message,
+ Report, or IP Notification. All IPMS.BodyParts are mapped onto a
+ single RFC 822 body. Other services are mapped onto RFC 822 header
+ fields. Where there is no appropriate existing field, new fields are
+
+
+
+Hardcastle-Kille [Page 67]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ defined for IPMS, MTS and MTA services.
+
+ The gateway mechanisms will correspond to MTS Delivery. As with
+ submission, there are aspects where the MTA (transfer) services are
+ also used. In particular, there is an optimisation to allow for
+ multiple 822-MTS recipients.
+
+5.3.2. RFC 822 Settings
+
+ An RFC 822 Service requires to have a number of mandatory fields in
+ the RFC 822 Header. Some 822-MTS services mandate specification of
+ an 822-MTS Originator. Even in cases where this is optional, it is
+ usually desirable to specify a value. The following defaults are
+ defined, which shall be used if the mappings specified do not derive
+ a value:
+
+ 822-MTS Originator
+ If this is not generated by the mapping (e.g., for a
+ Delivery Report), a value pointing at a gateway
+ administrator shall be assigned.
+
+ Date:
+ A value will always be generated
+
+ From:If this is not generated by the mapping, it is assigned
+ equal to the 822-MTS Originator. If this is gateway
+ generated, an appropriate 822.phrase shall be added.
+
+ At least one recipient field
+ If no recipient fields are generated, a field "To: list:;",
+ shall be added.
+
+ This will ensure minimal RFC 822 compliance. When generating RFC 822
+ headers, folding may be used. It is recommended to do this,
+ following the guidelines of RFC 822.
+
+5.3.3. Basic Mappings
+
+5.3.3.1. Encoded Information Types
+
+ This mapping from MTS.EncodedInformationTypes is needed in several
+ disconnected places. EBNF is defined as follows:
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+
+
+
+Hardcastle-Kille [Page 68]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+ MTS.EncodedInformationTypes is mapped onto EBNF.encoded-info.
+ MTS.EncodedInformationTypes.non-basic-parameters is ignored. Built
+ in types are mapped onto fixed strings (compatible with X.400(1984)
+ and RFC 987), and other types are mapped onto EBNF.object-identifier.
+
+5.3.3.2. Global Domain Identifier
+
+ The following simple EBNF is used to represent
+ MTS.GlobalDomainIdentifier:
+
+ global-id = std-or-address
+
+ This is encoded using the std-or-address syntax, for the attributes
+ within the Global Domain Identifier.
+
+5.3.4. Mappings from the IP Message
+
+ Consider that an IPM has to be mapped to RFC 822. The IPMS.IPM
+ comprises an IPMS.IPM.heading and IPMS.IPM.body. The heading is
+ considered first. Some EBNF for new fields is defined:
+
+ ipms-field = "Obsoletes" ":" 1#msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Language" ":" language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#oid
+
+
+
+ importance = "low" / "normal" / "high"
+
+
+ sensitivity = "Personal" / "Private" /
+
+
+
+Hardcastle-Kille [Page 69]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ "Company-Confidential"
+
+ language = 2*ALPHA [ language-description ]
+ language-description = printable-string
+
+
+
+ message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+ The mappings and actions for the IPMS.Heading is now specified for
+ each element. Addresses, and Message Identifiers are mapped
+ according to Chapter 4. Other mappings are explained, or are
+ straightforward (algorithmic). If a field with addresses contains
+ zero elements, it should be discarded, execpt for
+ IPMS.Heading.blind-copy-recipients, which can be mapped onto BCC:
+ (the only RFC 822 field which allows zero recipients).
+
+ IPMS.Heading.this-IPM
+ Mapped to "Message-ID:".
+
+ IPMS.Heading.originator
+ If IPMS.Heading.authorizing-users is present this is mapped
+ to Sender:, if not to "From:".
+
+ IPMS.Heading.authorizing-users
+ Mapped to "From:".
+
+ IPMS.Heading.primary-recipients
+ Mapped to "To:".
+
+ IPMS.Heading.copy-recipients
+ Mapped to "Cc:".
+
+ IPMS.Heading.blind-copy-recipients
+ Mapped to "Bcc:".
+
+ IPMS.Heading.replied-to-ipm
+ Mapped to "In-Reply-To:".
+
+ IPMS.Heading.obsoleted-IPMs
+ Mapped to the extended RFC 822 field "Obsoletes:"
+
+ IPMS.Heading.related-IPMs
+ Mapped to "References:".
+
+
+
+
+
+Hardcastle-Kille [Page 70]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ IPMS.Heading.subject
+ Mapped to "Subject:". The contents are converted to ASCII
+ (as defined in Chapter 3). Any CRLF are not mapped, but are
+ used as points at which the subject field must be folded.
+
+ IPMS.Heading.expiry-time
+ Mapped to the extended RFC 822 field "Expiry-Date:".
+
+ IPMS.Heading.reply-time
+ Mapped to the extended RFC 822 field "Reply-By:".
+
+ IPMS.Heading.reply-recipients
+ Mapped to "Reply-To:".
+
+ IPMS.Heading.importance
+ Mapped to the extended RFC 822 field "Importance:".
+
+ IPMS.Heading.sensitivity
+ Mapped to the extended RFC 822 field "Sensitivity:".
+
+ IPMS.Heading.autoforwarded
+ Mapped to the extended RFC 822 field "Autoforwarded:".
+
+ The standard extensions (Annex H of X.420 / ISO 10021-7) are
+ mapped as follows:
+
+ incomplete-copy
+ Mapped to the extended RFC 822 field "Incomplete-Copy:".
+
+ language
+ Mapped to the extended RFC 822 field "Language:", filling in
+ the two letter code. The language-description may filled in
+ with a human readable description of the language, and it is
+ recommended to do this.
+
+ If the RFC 822 extended header is found, this shall be mapped onto an
+ RFC 822 header, as described in Section 5.1.2.
+
+ If a non-standard extension is found, it shall be discarded, unless
+ the gateway understands the extension and can perform an appropriate
+ mapping onto an RFC 822 header field. If extensions are discarded,
+ the list is indicated in the extended RFC 822 field "Discarded-X400-
+ IPMS-Extensions:".
+
+ The IPMS.Body is mapped into the RFC 822 message body. Each
+ IPMS.BodyPart is converted to ASCII as follows:
+
+
+
+
+
+Hardcastle-Kille [Page 71]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ IPMS.IA5Text
+ The mapping is straightforward (see Chapter 3).
+
+ IPMS.MessageBodyPart
+ The X.400 -> RFC 822 mapping is recursively applied, to
+ generate an RFC 822 Message. If present, the
+ IPMS.MessageBodyPart.parameters.delivery-envelope is used
+ for the MTS Abstract Service Mappings. If present, the
+ IPMS.MessageBodyPart.parameters.delivery-time is mapped to
+ the extended RFC 822 field "Delivery-Date:".
+
+ Other
+ If other body parts can be mapped to IA5, either by use of
+ mappings defined in X.408 [CCITT88a], or by other reasonable
+ mappings, this shall be done unless content conversion is
+ prohibited.
+
+ If some or all of the body parts cannot be converted there are three
+ options. All of these conform to this standard. A different choice
+ may be made for the case where no body part can be converted:
+
+ 1. The first option is to reject the message, and send a non-
+ delivery notification. This must always be done if
+ conversion is prohibited.
+
+ 2. The second option is to map a missing body part to something
+ of the style:
+
+ *********************************
+
+ There was a foobarhere
+
+ The widget gateway ate it
+
+ *********************************
+
+ This will allow some useful information to be transferred.
+ As the recipient is likely to be a human (IPMS), then
+ suitable action will usually be possible.
+
+ 3. Finally both may be done. In this case, the supplementary
+ information in the (positive) Delivery Report shall make
+ clear that something was sent on to the recipient with
+ substantial loss of information.
+
+ Where there is more than one IPMS.BodyPart, the mapping defined by
+ Rose and Stefferud in [Rose85a], is used to map the separate
+ IPMS.BodyParts in the single RFC 822 message body. If this is done,
+
+
+
+Hardcastle-Kille [Page 72]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ a "Message-Type:" field with value "Multiple part" shall be added,
+ which will indicate to a receiving gateway that the message may be
+ unfolded according to RFC 934.
+
+ Note:There is currently work ongoing to produce an upgrade to RFC
+ 934, which also allows for support of body parts with non-
+ ASCII content (MIME). When this work is released as an RFC,
+ this specification will be updated to refer to it instead
+ for RFC 934.
+
+ For backwards compatibility with RFC 987, the following procedures
+ shall also be followed. If there are two IA5 body parts, and the
+ first starts with the string "RFC-822-Headers:" as the first line,
+ then the remainder of this body part shall be appended to the RFC 822
+ header.
+
+ An example message, illustrating a number of aspects is given below.
+
+Return-Path:<@mhs-relay.ac.uk:stephen.harrison@gosip-uk.hmg.gold-400.gb>
+Received: from mhs-relay.ac.uk by bells.cs.ucl.ac.uk via JANET
+ with NIFTP id <7906-0@bells.cs.ucl.ac.uk>;
+ Thu, 30 May 1991 18:24:55 +0100
+X400-Received: by mta "mhs-relay.ac.uk" in
+ /PRMD=uk.ac/ADMD= /C=gb/; Relayed;
+ Thu, 30 May 1991 18:23:26 +0100
+X400-Received: by /PRMD=HMG/ADMD=GOLD 400/C=GB/; Relayed;
+ Thu, 30 May 1991 18:20:27 +0100
+Message-Type: Multiple Part
+Date: Thu, 30 May 1991 18:20:27 +0100
+X400-Originator: Stephen.Harrison@gosip-uk.hmg.gold-400.gb
+X400-MTS-Identifier:
+ [/PRMD=HMG/ADMD=GOLD 400/C=GB/;PC1000-910530172027-57D8]
+Original-Encoded-Information-Types: ia5, undefined
+X400-Content-Type: P2-1984 (2)
+Content-Identifier: Email Problems
+From: Stephen.Harrison@gosip-uk.hmg.gold-400.gb (Tel +44 71 217 3487)
+Message-ID: <PC1000-910530172027-57D8*@MHS>
+To: Jim Craigie <NTIN36@gec-b.rutherford.ac.uk>
+ (Receipt Notification Requested) (Non Receipt Notification Requested),
+ Tony Bates <tony@ean-relay.ac.uk> (Receipt Notification Requested),
+ Steve Kille <S.Kille@cs.ucl.ac.uk> (Receipt Notification Requested)
+Subject: Email Problems
+Sender: Stephen.Harrison@gosip-uk.hmg.gold-400.gb
+
+
+------------------------------ Start of body part 1
+
+Hope you gentlemen.......
+
+
+
+Hardcastle-Kille [Page 73]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Regards,
+
+Stephen Harrison
+UK GOSIP Project
+
+------------------------------ Start of forwarded message 1
+
+From: Urs Eppenberger <Eppenberger@verw.switch.ch>
+Message-ID:
+ <562*/S=Eppenberger/OU=verw/O=switch/PRMD=SWITCH/ADMD=ARCOM/C=CH/@MHS>
+To: "Stephen.Harrison" <Stephen.Harrison@gosip-uk.hmg.gold-400.gb>
+Cc: kimura@bsdarc.bsd.fc.nec.co.jp
+Subject: Response to Email link
+
+
+- ------------------------------ Start of body part 1
+
+Dear Mr Harrison......
+
+
+- ------------------------------ End of body part 1
+
+------------------------------ End of forwarded message 1
+
+5.3.5. Mappings from an IP Notification
+
+ A message is generated, with the following fields:
+
+ From:
+ Set to the IPMS.IPN.ipn-originator.
+
+ To: Set to the recipient from MTS.MessageSubmissionEnvelope.
+ If there have been redirects, the original address should be
+ used.
+
+ Subject:
+ Set to the string "X.400 Inter-Personal Notification" for a
+ receipt notification and to "X.400 Inter-Personal
+ Notification (failure)" for a non-receipt notification.
+
+ Message-Type:
+ Set to "InterPersonal Notification"
+
+ References:
+ Set to IPMS.IPN.subject-ipm
+
+ The following EBNF is defined for the body of the Message. This
+ format is defined to ensure that all information from an
+
+
+
+Hardcastle-Kille [Page 74]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ interpersonal notification is available to the end user in a uniform
+ manner.
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ [ ipn-content-return ]
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt "Your message to:"
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated"
+
+
+
+
+Hardcastle-Kille [Page 75]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+ The mappings for elements of the common fields of IPMS.IPN
+ (IPMS.CommonFields) onto this structure and the message header are:
+
+ subject-ipm
+ Mapped to "References:"
+
+ ipn-originator
+ Mapped to "From:".
+
+ ipn-preferred-recipient
+ Mapped to EBNF.preferred-recipient
+
+ conversion-eits
+ Mapped to EBNF.encoded-info in EBNF.ipn-extra-information
+
+ The mappings for elements of IPMS.IPN.non-receipt-fields
+ (IPMS.NonReceiptFields) are:
+
+ non-receipt-reason
+ Used to select between EBNF.ipn-discarded and
+ EBNF.ipn-auto-forwarded
+
+ discard-reason
+ Mapped to EBNF.discard-reason
+
+ auto-forward-comment
+ Mapped to EBNF.auto-comment
+
+ returned-ipm
+ This applies only to non-receipt notifications.
+ EBNF.ipn-content-return should always be omitted for receipt
+ notifications, and always be present in non-receipt
+ notifications. If present, the second option of
+ EBNF.ipn-content-return is chosen, and an RFC 822 mapping of
+ the message included. Otherwise the first option is chosen.
+
+ The mappings for elements of IPMS.IPN.receipt-fields
+ (IPMS.ReceiptFields) are:
+
+ receipt-time
+ Mapped to EBNF.receipt-time
+
+ acknowledgement-mode
+ Mapped to EBNF.acknowledgement-mode
+
+
+
+
+
+Hardcastle-Kille [Page 76]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ suppl-receipt-info
+ Mapped to EBNF.ipn-suppl
+
+ An example notification is:
+
+ From: Steve Kille <steve@cs.ucl.ac.uk>
+ To: Julian Onions <jpo@computer-science.nottingham.ac.uk>
+ Subject: X.400 Inter-personal Notification
+ Message-Type: InterPersonal Notification
+ References: <1229.614418325@UK.AC.NOTT.CS>
+ Date: Wed, 21 Jun 89 08:45:25 +0100
+
+ Your message to: Steve Kille <steve@cs.ucl.ac.uk>
+ was automatically forwarded.
+ The following comment was made:
+ Sent on to a random destination
+
+ The following information types were converted: g3fax
+
+5.3.6. Mappings from the MTS Abstract Service
+
+ This section describes the MTS mappings for User Messages (IPM and
+ IPN). This mapping is defined by specifying the mapping of
+ MTS.MessageDeliveryEnvelope. The following extensions to RFC 822 are
+ defined to support this mapping:
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Requested-Delivery-Method" ":"
+ 1*( labelled-integer )
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( oid / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+
+
+Hardcastle-Kille [Page 77]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifer
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ The mappings for each element of MTS.MessageDeliveryEnvelope can now
+ be considered.
+
+ MTS.MessageDeliveryEnvelope.message-delivery-identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:".
+
+ MTS.MessageDeliveryEnvelope.message-delivery-time
+ Discarded, as this time will be represented in an
+ appropriate trace element.
+
+ The mappings for elements of
+ MTS.MessageDeliveryEnvelope.other-fields
+ (MTS.OtherMessageDeliveryFields) are:
+
+ content-type
+ Mapped to the extended RFC 822 field "X400-Content-Type:".
+ The string "P2" is retained for backwards compatibility with
+ RFC 987. This shall not be generated, and either the
+ EBNF.labelled-integer or EBNF.object-identifier encoding
+ used.
+
+ originator-name
+ Mapped to the 822-MTS originator, and to the extended RFC
+ 822 field "X400-Originator:". This is described in
+ Section 4.6.2.
+
+ original-encoded-information-types
+ Mapped to the extended RFC 822 field
+ "Original-Encoded-Information-Types:".
+
+ priority
+ Mapped to the extended RFC 822 field "Priority:".
+
+ delivery-flags
+ If the conversion-prohibited bit is set, add an extended RFC
+ 822 field "Conversion:".
+
+ this-recipient-name and other-recipient-names
+
+ originally-intended-recipient-name
+ The handling of these elements is described in
+ Section 4.6.2.
+
+
+
+
+Hardcastle-Kille [Page 78]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ converted-encoded-information-types
+ Discarded, as it will always be IA5 only.
+
+ message-submission-time
+ Mapped to Date:.
+
+ content-identifier
+ Mapped to the extended RFC 822 field "Content-Identifier:".
+
+ If any extensions (MTS.MessageDeliveryEnvelope.other-
+ fields.extensions) are present, and they are marked as critical for
+ transfer or delivery, then the message shall be rejected. The
+ extensions (MTS.MessageDeliveryEnvelope.other-fields.extensions) are
+ mapped as follows.
+
+ conversion-with-loss-prohibited
+ If set to
+ MTS.ConversionWithLossProhibited.conversion-with-loss-prohibited,
+ then add the extended RFC 822 field "Conversion-With-Loss:".
+
+ requested-delivery-method
+ Mapped to the extended RFC 822 field
+ "Requested-Delivery-Method:".
+
+ originator-return-address
+ Mapped to the extended RFC 822 field
+ "Originator-Return-Address:".
+
+ physical-forwarding-address-request
+ physical-delivery-modes
+ registered-mail-type
+ recipient-number-for-advice
+ physical-rendition-attributes
+ physical-delivery-report-request
+ physical-forwarding-prohibited
+
+
+ These elements are only appropriate for physical delivery.
+ They are represented as comments in the "X400-Recipients:"
+ field, as described in Section 4.6.2.2.
+
+ originator-certificate
+ message-token
+ content-confidentiality-algorithm-identifier
+ content-integrity-check
+ message-origin-authentication-check
+ message-security-label
+ proof-of-delivery-request
+
+
+
+Hardcastle-Kille [Page 79]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ These elements imply use of security services not available
+ in the RFC 822 environment. If they are marked as critical
+ for transfer or delivery, then the message shall be
+ rejected. Otherwise they are discarded.
+
+ redirection-history
+ This is described in Section 4.6.2.
+
+ dl-expansion-history
+ Each element is mapped to the extended RFC 822 field
+ "DL-Expansion-History:". They shall be ordered in the
+ message header, so that the most recent expansion comes
+ first (same order as trace).
+
+ If any MTS (or MTA) Extensions not specified in X.400 are present,
+ and they are marked as critical for transfer or delivery, then the
+ message shall be rejected. If they are not so marked, they can
+ safely be discarded. The list of discarded fields shall be indicated
+ in the extended header "Discarded-X400-MTS-Extensions:".
+
+5.3.7. Mappings from the MTA Abstract Service
+
+ There are some mappings at the MTA Abstract Service level which are
+ done for IPM and IPN. These can be derived from
+ MTA.MessageTransferEnvelope. The reasons for the mappings at this
+ level, and the violation of layering are:
+
+ - Allowing for multiple recipients to share a single RFC 822
+ message
+
+ - Making the X.400 trace information available on the RFC 822
+ side
+
+ - Making any information on deferred delivery available
+
+ The 822-MTS recipients are calculated from the full list of X.400
+ recipients. This is all of the members of
+ MTA.MessageTransferEnvelope.per-recipient-fields being passed through
+ the gateway, where the responsibility bit is set. In some cases, a
+ different RFC 822 message would be calculated for each recipient, due
+ to differing service requests for each recipient. As discussed in
+ 4.6.2..2, this specification allows either for multiple messages to
+ be generated, or for the per- recipient information to be discarded.
+
+ The following EBNF is defined for extended RFC 822 headers:
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+
+
+
+Hardcastle-Kille [Page 80]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ / "Latest-Delivery-Time" ":" date-time
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-or-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+ md-or-mta = "MD" global-id
+ / "MTA" mta
+
+ Action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+ Note the EBNF.mta is encoded as 822.word. If the character set does
+ no allow encoding as 822.atom, the 822.quoted-string encoding is
+ used.
+
+ If MTA.PerMessageTransferFields.deferred-delivery-time is present, it
+ is used to generate a Deferred-Delivery: field. For some reason,
+ X.400 does not make this information available at the MTS level on
+ delivery. X.400 profiles, and in particular the CEN/CENELEC profile
+ for X.400(1984) [Systems85a], specify that this element must be
+ supported at the first MTA. If it is not, the function may
+ optionally be implemented by the gateway: that is, the gateway may
+ hold the message until the time specified in the protocol element.
+ Thus, the value of this element will usually be in the past. For
+ this reason, the extended RFC 822 field is primarily for information.
+
+ Merge MTA.PerMessageTransferFields.trace-information, and
+ MTA.PerMessageTransferFields.internal-trace-information to produce a
+ single ordered trace list. If Internal trace from other management
+ domains has not been stripped, this may require complex interleaving.
+ Where an element of internal trace and external trace are identical,
+ except for the MTA in the internal trace, only the internal trace
+ element shall be presented. Use this to generate a sequence of
+ "X400-Received:" fields. The only difference between external trace
+ and internal trace will be the extra MTA information in internal
+ trace elements.
+
+
+
+Hardcastle-Kille [Page 81]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ When generating an RFC 822 message all trace fields (X400-Received
+ and Received) shall be at the beginning of the header, before any
+ other fields. Trace shall be in chronological order, with the most
+ recent element at the front of the message. This ordering is
+ determined from the order of the fields, not from timestamps in the
+ trace, as there is no guarantee of clock synchronisation. A simple
+ example trace (external) is:
+
+ X400-Received: by /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ; Relayed ;
+ Tue, 20 Jun 89 19:25:11 +0100
+
+ A more complex example (internal):
+
+ X400-Received: by mta "UK.AC.UCL.CS"
+ in /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ;
+ deferred until Tue, 20 Jun 89 14:24:22 +0100 ;
+ converted (undefined, g3fax) ";" attempted /ADMD=Foo/C=GB/ ;
+ Relayed, Expanded, Redirected ; Tue, 20 Jun 89 19:25:11 +0100
+
+5.3.8. Mappings from Report Delivery
+
+ Delivery reports are mapped at the MTS service level. This means
+ that only reports destined for the MTS user will be mapped. Some
+ additional services are also taken from the MTA service.
+
+5.3.8.1. MTS Mappings
+
+ A Delivery Report service will be represented as
+ MTS.ReportDeliveryEnvelope, which comprises of per-report-fields
+ (MTS.PerReportDeliveryFields) and per-recipient-fields.
+
+ A message is generated with the following fields:
+
+ From:
+ An administrator at the gateway system. This is also the
+ 822-MTS originator.
+
+ To: A mapping of the
+ MTA.ReportTransferEnvelope.report-destination-name. This is
+ also the 822-MTS recipient.
+
+ Message-Type:
+ Set to "Delivery Report".
+
+ Subject:
+ The EBNF for the subject line is:
+
+
+
+
+
+Hardcastle-Kille [Page 82]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ subject-line = "Delivery-Report" "(" status ")"
+ [ "for" destination ]
+
+ status = "success" / "failure" / "success and failures"
+
+ destination = mailbox / "MTA" word
+
+ The format of the body of the message is defined to ensure that all
+ information is conveyed to the RFC 822 user in a consistent manner.
+ The format is structured as if it was a message coming from X.400,
+ with the description in one body part, and a forwarded message
+ (return of content) in the second. This structure is useful to the
+ RFC 822 recipient, as it enables the original message to be
+ extracted. The first body part is structured as follows:
+
+1. A few lines giving keywords to indicate the original
+ message.
+
+2. A human summary of the status of each recipient being
+ reported on.
+
+3. A clearly marked section which contains detailed information
+ extracted from the report. This is marked clearly, as it
+ will not be comprehensible to the average user. It is
+ retained, as it may be critical to diagnosing an obscure
+ problem.
+
+ This section may be omitted in positive DRs, and it is
+ recommended that this is appropriate for most gateways.
+
+ dr-body-format = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-administrator-info-envelope <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+
+
+
+Hardcastle-Kille [Page 83]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+
+ dr-administrator-info-envelope = 3*( "*" text <CRLF> )
+
+
+ dr-administrator-info =
+ "**** The following information is directed towards"
+ "the local administrator" <CRLF>
+ "**** and is not intended for the end user" <CRLF> <CRLF>
+ "DR generated by:" report-point <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "Converted to RFC 822 at" mta <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "Delivery Report Contents:" <CRLF> <CRLF>
+ drc-field-list <CRLF>
+ "***** End of administration information"
+
+ drc-field-list = *(drc-field <CRLF>)
+
+ drc-field = "Subject-Submision-Identifier" ":"
+ mts-msg-id
+ / "Content-Identifier" ":" printablestring
+ / "Content-Type" ":" mts-content-type
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "Originator-and-DL-Expansion-History" ":"
+ dl-history
+ / "Reporting-DL-Name" ":" mailbox
+ / "Content-Correlator" ":" content-correlator
+ / "Recipient-Info" ":" recipient-info
+ / "Subject-Intermediate-Trace-Information" ":"
+ x400-trace
+
+
+ recipient-info = mailbox "," std-or ";"
+ report-type
+ [ "converted eits" encoded-info ";" ]
+ [ "originally intended recipient"
+ mailbox "," std-or ";" ]
+ [ "last trace" [ encoded-info ] date-time ";" ]
+
+
+
+Hardcastle-Kille [Page 84]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ [ "supplementary info" <"> printablestring <"> ";" ]
+ [ "redirection history" 1#redirection ";"
+ [ "physical forwarding address"
+ printablestring ";" ]
+
+
+ report-type = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = "delivered at" date-time ";"
+ [ "type of MTS user" labelled-integer ";" ]
+
+ drc-failure = "reason" labelled-integer ";"
+ [ "diagnostic" labelled-integer ";" ]
+
+
+ report-point = [ "mta" word "in" ] global-id
+ content-correlator = *word
+ dl-history = 1#( mailbox "(" date-time ")")
+
+ The format is defined as a fixed definition of an the outer level
+ (EBNF.dr-body-format). The element EBNF.dr-administrator-info-
+ envelope, provides a means of encapsulating a section of the header
+ in a manner which is clear to the end user. Each line of this
+ section begins with "*". Each element of EBNF.text within %EBNF.dr-
+ administrator-info-envelope must not contain <CRLF>. This is used to
+ wrap up EBNF.dr-administrator-info, which will generate a sequenece
+ of lines not starting with "*". EBNF.drc-fields may be folded using
+ the RFC 822 folding rules.
+
+ The elements of MTS.ReportDeliveryEnvelope.per-report-fields are
+ mapped as follows onto extended RFC 822 fields:
+
+ subject-submission-identifier
+ Mapped to EBNF.drc-field (Subject-Submission-Identifier)
+
+ content-identifier
+ Mapped to EBNF.drc-field (Content-Identifier). This should
+ also be used in EBNF.dr-summary if there is no Content
+ Correlator present.
+
+ content-type
+ Mapped to EBNF.drc-field (Content-Type)
+
+ original-encoded-information-types
+ Mapped to EBNF.drc-field (Encoded-Info)
+
+
+
+
+
+Hardcastle-Kille [Page 85]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ The extensions from MTS.ReportDeliveryEnvelope.per-report-
+ fields.extensions are mapped as follows:
+
+ originator-and-DL-expansion-history
+ Mapped to EBNF.drc-field (Originator-and-DL-Expansion-
+ History)
+
+ reporting-DL-name
+ Mapped to EBNF.drc-field (Reporting-DL-Name)
+
+ content-correlator
+ Mapped to EBNF.content-correlator, provided that the
+ encoding is IA5String (this will always be the case). This
+ is used in EBNF.dr-summary and EBNF.drc-field-list. In the
+ former, LWSP may be added, in order to improve the layout of
+ the message.
+
+ message-security-label reporting-MTA-certificate report-origin-
+ authentication-check
+
+ These security parameters will not be present unless there
+ is an error in a remote MTA. If they are present, they
+ shall be discarded in preference to discarding the whole
+ report.
+
+ For each element of MTS.ReportDeliveryEnvelope.per-recipient-fields,
+ a value of EBNF.dr-recipient, and an EBNF.drc-field (Recipient-Info)
+ is generated. The components are mapped as follows.
+
+ actual-recipient-name
+ Used to generate the first EBNF.mailbox and EBNF.std-or in
+ EBNF.recipient-info. Both RFC 822 and X.400 forms are
+ given, as there may be a problem in the mapping tables. It
+ also generates the EBNF.mailbox in EBNF.dr-recip-success or
+ EBNF.dr-recip-failure.
+
+ report
+ If it is MTS.Report.delivery, then set EBNF.dr-recipient to
+ EBNF.dr-recip-success, and similarly set EBNF.report-type,
+ filling in EBNF.drc-success. If it is a failure, set
+ EBNF.dr-recipient to EBNF.dr-recip-failure, making a human
+ interpretation of the reason and diagnostic codes, and
+ including any supplementary information. EBNF.drc-failure
+ is filled in systematically.
+
+ converted-encoded-information-types
+ Set EBNF.drc-field ("converted eits")
+
+
+
+
+Hardcastle-Kille [Page 86]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ originally-intended-recipient
+ Set the second ("originally intended recipient") mailbox and
+ std-or in EBNF.drc-field.
+
+ supplementary-info
+ Set EBNF.drc-field ("supplementary info"), and include this
+ information in EBNF.dr-recip-failure.
+
+ redirection-history
+ Set EBNF.drc-field ("redirection history")
+
+ physical-forwarding-address
+ Set ENBF.drc-field ("physical forwarding address")
+
+ recipient-certificate
+ Discard
+
+ proof-of-delivery
+ Discard
+
+ Any unknown extensions shall be discarded, irrespective of
+ criticality.
+
+ The original message, or an extract from it, shall be included in the
+ delivery port if it is available. The original message will usually
+ be available at the gateway, as discussed in Section 5.2. If the
+ original message is available, but of erroneous format, a dump of the
+ ASN.1 may be included. This is recommended, but not required.
+
+5.3.8.2. MTA Mappings
+
+ The single 822-MTS recipient is constructed from
+ MTA.ReportTransferEnvelope.report-destination-name, using the
+ mappings of Chapter 4. Unlike with a user message, this information
+ is not available at the MTS level.
+
+ The following additional mappings are made:
+
+ MTA.ReportTransferEnvelope.report-destination-name
+ This is used to generate the To: field.
+
+ MTA.ReportTransferEnvelope.identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:".
+ It may also be used to derive a "Message-Id:" field.
+
+ MTA.ReportTransferEnvelope.trace-information
+ and
+
+
+
+
+Hardcastle-Kille [Page 87]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ MTA.ReportTransferEnvelope.internal-trace-information
+ Mapped onto the extended RFC 822 field "X400-Received:", as
+ described in Section 5.3.7. The first element is also used
+ to generate the "Date:" field, and the EBNF.report-point.
+
+ MTA.PerRecipientReportTransferFields.last-trace-information
+ Mapped to EBNF.recipient-info (last trace)
+
+ MTA.PerReportTransferFields.subject-intermediate-trace-
+ information Mapped to EBNF.drc-field (Subject-Intermediate-
+ Trace-Information). These fields are ordered so that the
+ most recent trace element comes first.
+
+5.3.8.3. Example Delivery Reports
+
+ Example Delivery Report 1:
+
+ Return-Path: <postmaster@cs.ucl.ac.uk>
+ Received: from cs.ucl.ac.uk by bells.cs.ucl.ac.uk
+ via Delivery Reports Channel id <27699-0@bells.cs.ucl.ac.uk>;
+ Thu, 7 Feb 1991 15:48:39 +0000
+ From: UCL-CS MTA <postmaster@cs.ucl.ac.uk>
+ To: S.Kille@cs.ucl.ac.uk
+ Subject: Delivery Report (failure) for H.Hildegard@bbn.com
+ Message-Type: Delivery Report
+ Date: Thu, 7 Feb 1991 15:48:39 +0000
+ Message-ID: <"bells.cs.u.694:07.01.91.15.48.34"@cs.ucl.ac.uk>
+ Content-Identifier: Greetings.
+
+
+ ------------------------------ Start of body part 1
+
+ This report relates to your message: Greetings.
+ of Thu, 7 Feb 1991 15:48:20 +0000
+
+ Your message was not delivered to
+ H.Hildegard@bbn.com for the following reason:
+ Bad Address
+ MTA 'bbn.com' gives error message (USER) Unknown user
+ name in "H.Hildegard@bbn.com"
+
+
+***** The following information is directed towards the local
+***** administrator and is not intended for the end user
+*
+* DR generated by mta bells.cs.ucl.ac.uk
+* in /PRMD=uk.ac/ADMD=gold 400/C=gb/
+* at Thu, 7 Feb 1991 15:48:34 +0000
+
+
+
+Hardcastle-Kille [Page 88]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+*
+* Converted to RFC 822 at bells.cs.ucl.ac.uk
+* at Thu, 7 Feb 1991 15:48:40 +0000
+*
+ ..... continued on next page
+
+* Delivery Report Contents:
+*
+* Subject-Submission-Identifier:
+* [/PRMD=uk.ac/ADMD=gold 400/C=gb/;<1803.665941698@UK.AC.UCL.CS>]
+* Content-Identifier: Greetings.
+* Subject-Intermediate-Trace-Information:
+ /PRMD=uk.ac/ADMD=gold 400/C=gb/;
+* arrival Thu, 7 Feb 1991 15:48:20 +0000 action Relayed
+
+* Subject-Intermediate-Trace-Information:
+ /PRMD=uk.ac/ADMD=gold 400/C=gb/;
+* arrival Thu, 7 Feb 1991 15:48:18 +0000 action Relayed
+* Recipient-Info: H.Hildegard@bbn.com,
+* /RFC-822=H.Hildegard(a)bbn.com/OU=cs/O=ucl
+ /PRMD=uk.ac/ADMD=gold 400/C=gb/;
+* FAILURE reason Unable-To-Transfer (1);
+* diagnostic Unrecognised-ORName (0);
+* last trace (ia5) Thu, 7 Feb 1991 15:48:18 +0000;
+* supplementary info "MTA 'bbn.com' gives error message (USER)
+* Unknown user name in "H.Hildegard@bbn.com"";
+****** End of administration information
+
+The Original Message follows:
+
+
+------------------------------ Start of forwarded message 1
+
+Received: from glenlivet.cs.ucl.ac.uk by bells.cs.ucl.ac.uk
+ with SMTP inbound id <27689-0@bells.cs.ucl.ac.uk>;
+ Thu, 7 Feb 1991 15:48:21 +0000
+To: H.Hildegard@bbn.com
+Subject: Greetings.
+Phone: +44-71-380-7294
+Date: Thu, 07 Feb 91 15:48:18 +0000
+Message-ID: <1803.665941698@UK.AC.UCL.CS>
+From: Steve Kille <S.Kille@cs.ucl.ac.uk>
+
+
+Steve
+
+------------------------------ End of forwarded message 1
+Example Delivery Report 2:
+
+
+
+Hardcastle-Kille [Page 89]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Return-Path: <postmaster@cs.ucl.ac.uk>
+Received: from cs.ucl.ac.uk by bells.cs.ucl.ac.uk
+ via Delivery Reports Channel id <27718-0@bells.cs.ucl.ac.uk>;
+ Thu, 7 Feb 1991 15:49:11 +0000
+X400-Received: by mta bells.cs.ucl.ac.uk in
+ /PRMD=uk.ac/ADMD=gold 400/C=gb/;
+ Relayed; Thu, 7 Feb 1991 15:49:08 +0000
+X400-Received: by /PRMD=DGC/ADMD=GOLD 400/C=GB/; Relayed;
+ Thu, 7 Feb 1991 15:48:40 +0000
+From: UCL-CS MTA <postmaster@cs.ucl.ac.uk>
+To: S.Kille@cs.ucl.ac.uk
+Subject: Delivery Report (failure) for
+ j.nosuchuser@dle.cambridge.DGC.gold-400.gb
+Message-Type: Delivery Report
+Date: Thu, 7 Feb 1991 15:49:11 +0000
+Message-ID: <"DLE/910207154840Z/000"@cs.ucl.ac.uk>
+Content-Identifier: A useful mess...
+
+This report relates to your message: A useful mess...
+Your message was not delivered to
+ j.nosuchuser@dle.cambridge.DGC.gold-400.gb
+ for the following reason:
+ Bad Address
+ DG 21187: (CEO POA) Unknown addressee.
+
+
+***** The following information is directed towards the local
+***** administrator and is not intended for the end user
+*
+* DR generated by /PRMD=DGC/ADMD=GOLD 400/C=GB/
+* at Thu, 7 Feb 1991 15:48:40 +0000
+*
+* Converted to RFC 822 at bells.cs.ucl.ac.uk
+* at Thu, 7 Feb 1991 15:49:12 +0000
+*
+* Delivery Report Contents:
+*
+* Subject-Submission-Identifier:
+* [/PRMD=uk.ac/ADMD=gold 400/C=gb/;<1796.665941626@UK.AC.UCL.CS>]
+* Content-Identifier: A useful mess...
+* Recipient-Info: j.nosuchuser@dle.cambridge.DGC.gold-400.gb,
+* /I=j/S=nosuchuser/OU=dle/O=cambridge/PRMD=DGC/ADMD=GOLD 400/C=GB/;
+* FAILURE reason Unable-To-Transfer (1);
+* diagnostic Unrecognised-ORName (0);
+* supplementary info "DG 21187: (CEO POA) Unknown addressee.";
+****** End of administration information
+
+The Original Message is not available
+
+
+
+Hardcastle-Kille [Page 90]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+5.3.9. Probe
+
+ This is an MTS internal issue. Any probe shall be serviced by the
+ gateway, as there is no equivalent RFC 822 functionality. The value
+ of the reply is dependent on whether the gateway could service an MTS
+ Message with the values specified in the probe. The reply shall make
+ use of MTS.SupplementaryInformation to indicate that the probe was
+ serviced by the gateway.
+
+Appendix A - Mappings Specific to SMTP
+
+ This Appendix is specific to the Simple Mail Transfer Protocol (RFC
+ 821). It describes specific changes in the context of this protocol.
+ When servicing a probe, as described in section 5.3.9, use may be
+ made of the SMTP VRFY command to increase the accuracy of information
+ contained in the delivery report.
+
+Appendix B - Mappings specific to the JNT Mail
+
+ This Appendix is specific to the JNT Mail Protocol. It describes
+ specific changes in the context of this protocol.
+
+ 1. Introduction
+
+ There are five aspects of a gateway which are JNT Mail Specific.
+ These are each given a section of this appendix.
+
+ 2. Domain Ordering
+
+ When interpreting and generating domains, the UK NRS domain
+ ordering shall be used, both in headers, and in text generated for
+ human description.
+
+ 3. Addressing
+
+ A gateway which maps to JNT Mail should recognise the Domain
+ Defined Attribute JNT-MAIL. The value associated with this
+ attribute should be interpreted according to the JNT Mail
+ Specification. This DDA shall never be generated by a gateway.
+ For this reason, the overflow mechanism is not required.
+
+ 4. Acknowledge-To:
+
+ This field has no direct functional equivalent in X.400. However,
+ it can be supported to an extent, and can be used to improve X.400
+ support.
+
+ If an Acknowledge-To: field is present when going from JNT Mail to
+
+
+
+Hardcastle-Kille [Page 91]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ X.400, there are two different situations. The first case is
+ where there is one address in the Acknowledge-To: field, and it is
+ equal to the 822-MTS return address. In this case, the
+ MTS.PerRecipientSubmissionFields.originator-request-report.report
+ shall be set for each recipient, and the Acknowledge-To: field
+ discarded. Here, X.400 can provide the equivalent service.
+
+ In all other cases two actions are taken.
+
+ 1. Acknowledgement(s) may be generated by the gateway. The
+ text of these acknowledgements shall indicate that they are
+ generated by the gateway, and do not correspond to delivery.
+
+ 2. The Acknowledge-To: field shall be passed as an extension
+ heading.
+
+ When going from X.400 to JNT Mail, in cases where
+ MTA.PerRecipientMessageTransferFields.per-recipient-indicators.
+ originator-report bit is set for all recipients (i.e., there is a
+ user request for a positive delivery report for every recipeint),
+ generate an Acknowledge-To: field containing the
+ MTS.OtherMessageDeliveryFields.originator-name. Receipt
+ notification requests are not mapped onto Acknowledge-To:, as no
+ association can be guaranteed between IPMS and MTS level
+ addressing information.
+
+ 5. Trace
+
+ JNT Mail trace uses the Via: syntax. When going from JNT Mail to
+ X.400, a mapping similar to that for Received: is used. No
+ MTS.GlobalDomainIdentifier of the site making the trace can be
+ derived from the Via:, so a value for the gateway is used. The
+ trace text, including the "Via:", is unfolded, truncated to
+ MTS.ub-mta-name-length (32), and mapped to
+ MTA.InternalTraceInformationElement.mta-name. There is no JNT
+ Mail specific mapping for the reverse direction.
+
+ 6. Timezone specification
+
+ The extended syntax of zone defined in the JNT Mail Protocol shall
+ be used in the mapping of UTCTime defined in Chapter 3.
+
+ 7. Lack of 822-MTS originator specification
+
+ In JNT Mail the default mapping of the
+ MTS.OtherMessageDeliveryFields.originator-name is to the Sender:
+ field. This can cause a problem when going from X.400 to JNT Mail
+ if the mapping of IPMS.Heading has already generated a Sender:
+
+
+
+Hardcastle-Kille [Page 92]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ field. To overcome this, new extended JNT Mail field is defined.
+ This is chosen to align with the JNT recommendation for
+ interworking with full RFC 822 systems [Kille84b].
+
+ original-sender = "Original-Sender" ":" mailbox
+
+ If an IPM has no IPMS.Heading.authorizing-users component and
+ IPMS.Heading.originator.formal-name is different from
+ MTS.OtherMessageDeliveryFields.originator-name, map
+ MTS.OtherMessageDeliveryFields.originator-name, onto the Sender:
+ field.
+
+ If an IPM has a IPMS.Heading.authorizing-users component, and
+ IPMS.Heading.originator.formal-name is different from
+ MTS.OtherMessageDeliveryFields.originator-name,
+ MTS.OtherMessageDeliveryFields.originator-name is mapped onto the
+ Sender: field, and IPMS.Heading.originator mapped onto the
+ Original-Sender: field.
+
+ In other cases the MTS.OtherMessageDeliveryFields.originator-name,
+ is already correctly represented.
+
+Appendix C - Mappings specific to UUCP Mail
+
+ Gatewaying of UUCP and X.400 is handled by first gatewaying the UUCP
+ address into RFC 822 syntax (using RFC 976) and then gatewaying the
+ resulting RFC 822 address into X.400. For example, an X.400 address
+
+ Country US
+ Organisation Xerox
+ Personal Name John Smith
+
+ might be expressed from UUCP as
+
+ inthop!gate!gatehost.COM!/C=US/O=Xerox/PN=John.Smith/
+
+ (assuming gate is a UUCP-ARPA gateway and gatehost.COM is an ARPA-
+ X.400 gateway) or
+
+ inthop!gate!Xerox.COM!John.Smith
+
+ (assuming that Xerox.COM and /C=US/O=Xerox/ are equivalent.)
+
+ In the other direction, a UUCP address Smith@ATT.COM, integrated into
+ 822, would be handled as any other 822 address. A non-integrated
+ address such as inthop!dest!user might be handled through a pair of
+ gateways:
+
+
+
+
+Hardcastle-Kille [Page 93]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Country US
+ ADMD ATT
+ PRMD ARPA
+ Organisation GateOrg
+ RFC-822 inthop!dest!user@gatehost.COM
+
+ or through a single X.400 to UUCP gateway:
+
+ Country US
+ ADMD ATT
+ PRMD UUCP
+ Organisation GateOrg
+ RFC-822 inthop!dest!user
+
+Appendix D - Object Identifier Assignment
+
+ An object identifier is needed for the extension IPMS element. The
+ following value shall be used.
+
+ rfc-987-88 OBJECT IDENTIFIER ::=
+ {ccitt data(9) pss(2342) ucl(234219200300) rfc-987-88(200)}
+
+ id-rfc-822-field-list OBJECT IDENTIFIER ::= {rfc987-88 field(1)}
+
+Appendix E - BNF Summary
+
+ boolean = "TRUE" / "FALSE"
+
+
+ numericstring = *DIGIT
+
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+
+
+Hardcastle-Kille [Page 94]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 0-9, and "-">
+
+ object-identifier ::= oid-comp object-identifier
+ | oid-comp
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / registered-dd-type
+
+
+
+Hardcastle-Kille [Page 95]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ / dd-key "." std-printablestring
+ standard-type = key-string
+
+ registered-dd-type
+ = key-string
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=">
+ std-pair = "$" ps-char
+
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "\."
+
+
+ global-id = std-or-address
+
+
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-or-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+
+
+Hardcastle-Kille [Page 96]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ md-or-mta = "MD" global-id
+ / "MTA" mta
+
+ Action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+ dr-body-format = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-administrator-info-envelope <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+
+ dr-administrator-info-envelope = 3*( "*" text <CRLF> )
+
+
+ dr-administrator-info =
+ "**** The following information is directed towards"
+ "the local administrator" <CRLF>
+ "**** and is not intended for the end user" <CRLF> <CRLF>
+ "DR generated by:" report-point <CRLF>
+ "at" date-time <CRLF> <CRLF>
+ "Converted to RFC 822 at" mta <CRLF>
+ "at" date-time <CRLF> <CRLF>
+
+
+
+Hardcastle-Kille [Page 97]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ "Delivery Report Contents:" <CRLF> <CRLF>
+ drc-field-list <CRLF>
+ "***** End of administration information"
+
+ drc-field-list = *(drc-field <CRLF>)
+
+ drc-field = "Subject-Submision-Identifier" ":"
+ mts-msg-id
+ / "Content-Identifier" ":" printablestring
+ / "Content-Type" ":" mts-content-type
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "Originator-and-DL-Expansion-History" ":"
+ dl-history
+ / "Reporting-DL-Name" ":" mailbox
+ / "Content-Correlator" ":" content-correlator
+ / "Recipient-Info" ":" recipient-info
+ / "Subject-Intermediate-Trace-Information" ":"
+ x400-trace
+
+
+ recipient-info = mailbox "," std-or ";"
+ report-type
+ [ "converted eits" encoded-info ";" ]
+ [ "originally intended recipient"
+ mailbox "," std-or ";" ]
+ [ "last trace" [ encoded-info ] date-time ";" ]
+ [ "supplementary info" <"> printablestring <"> ";" ]
+ [ "redirection history" 1#redirection ";"
+ [ "physical forwarding address"
+ printablestring ";" ]
+
+
+ report-type = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = "delivered at" date-time ";"
+ [ "type of MTS user" labelled-integer ";" ]
+
+ drc-failure = "reason" labelled-integer ";"
+ [ "diagnostic" labelled-integer ";" ]
+
+
+ report-point = [ "mta" word "in" ] global-id
+ content-correlator = *word
+ dl-history = 1#( mailbox "(" date-time ")")
+
+
+
+
+
+Hardcastle-Kille [Page 98]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Requested-Delivery-Method" ":"
+ 1*( labelled-integer )
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( oid / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifer
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ [ ipn-content-return ]
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt "Your message to:"
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+
+
+
+Hardcastle-Kille [Page 99]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+ <CRLF> <CRLF> message
+
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+
+ ipms-field = "Obsoletes" ":" 1#msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Language" ":" language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#oid
+
+
+
+ importance = "low" / "normal" / "high"
+
+
+ sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+ language = 2*ALPHA [ language-description ]
+
+
+
+Hardcastle-Kille [Page 100]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ language-description = printable-string
+
+
+
+ message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+ redirect-comment =
+ [ "Originally To:" ] mailbox "Redirected"
+ [ "Again" ] "on" date-time
+ "To:" redirection-reason
+
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+
+
+ subject-line = "Delivery-Report" "(" status ")"
+ [ "for" destination ]
+
+ status = "success" / "failure" / "success and failures"
+
+ destination = mailbox / "MTA" word
+
+
+ extended-heading =
+ "Prevent-NonDelivery-Report" ":"
+ / "Generate-Delivery-Report" ":"
+ / "Alternate-Recipient" ":" prohibition
+ / "Disclose-Recipients" ":" prohibition
+ / "Content-Return" ":" prohibition
+
+Appendix F - Format of address mapping tables
+
+ 1. Global Mapping Information
+
+ The consistent operation of gateways which follow this
+ specification relies of the existence of three globally defined
+ mappings:
+
+ 1. Domain Name Space -> O/R Address Space
+
+ 2. O/R Address Space -> Domain Name Space
+
+ 3. Domain Name Space -> O/R Address of preferred gateway
+
+
+
+
+Hardcastle-Kille [Page 101]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ All gateways conforming to this specification shall have access to
+ these mappings. The gateway may use standardised or private
+ mechanisms to access this mapping information.
+
+ One means of distributing this information is in three files.
+ This appendix defines a format for these files. Other
+ standardised mechanisms to distribute the mapping information are
+ expected. In particular, mechanisms for using the Domain Name
+ Scheme, and X.500 are planned.
+
+ The definition of global mapping information is being co-
+ ordinated by the COSINE-MHS project, on behalf of the Internet and
+ other X.400 and RFC 822 users. For information on accessing this
+ information contact:
+
+ COSINE MHS Project Team
+ SWITCH
+ Weinbergstrasse 18
+ 8001 Zuerich
+ Switzerland
+
+ tel: +41 1 262 3143
+ fax: +41 1 262 3151
+ email:
+ C=ch;ADMD=arcom;PRMD=switch;O=switch;OU=cosine-mhs;
+ S=project-team
+ or
+ project-team@cosine-mhs.switch.ch
+
+ 2. Syntax Definitions
+
+ An address syntax is defined, which is compatible with the syntax
+ used for 822.domains. By representing the O/R addresses as
+ domains, all lookups can be mechanically implemented as domain ->
+ domain mappings. This syntax defined is initially for use in
+ table format, but the syntax is defined in a manner which makes it
+ suitable to be adapted for use with the Domain Name Service.
+ This syntax allows for a general representation of O/R addresses,
+ so that it can be used in other applications. Not all attributes
+ are used in the table formats defined.
+
+ To allow the mapping of null attributes to be represented, the
+ pseudo-value "@" (not a printable string character) is used to
+ indicate omission of a level in the hierarchy. This is distinct
+ from the form including the element with no value, although a
+ correct X.400 implementation will interpret both in the same
+ manner.
+
+
+
+
+Hardcastle-Kille [Page 102]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ This syntax is not intended to be handled by users.
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "\."
+
+ An example usage:
+
+ ~ROLE$Big\.Chief.ADMD$ATT.C$US
+ PRMD$DEC.ADMD$@.C$US
+
+ The first example illustrates quoting of a ".", and the second
+ omission of the ADMD level. There must be a strict ordering of all
+ components in this table, with the most significant components on
+ the RHS. This allows the encoding to be treated as a domain.
+
+ Various further restrictions are placed on the usage of dmn-or-
+ address in the address space mapping tables.
+
+ 1. Only C, ADMD, PRMD, O, and up to four OUs may be used.
+
+ 2. No components shall be omitted from this hierarchy, although
+ the hierarchy may terminate at any level. If the mapping is
+ to an omitted component, the "@" syntax is used.
+
+ 3. Table Lookups
+
+ When determining a match, there are aspects which apply to all
+ lookups. Matches are always case independent. The key for all
+ three tables is a domain. The longest possible match shall be
+ obtained. Suppose the table has two entries with the following
+ keys:
+
+ K.L
+ J.K.L
+
+ Domain "A.B.C" will not return any matches. Domain "I.J.K.L" will
+ match the entry "J.K.L:.
+
+
+
+
+
+Hardcastle-Kille [Page 103]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 4. Domain -> O/R Address format
+
+ The BNF is:
+
+ domain-syntax "#" dmn-or-address "#"
+
+ Note that the trailing "#" is used for clarity, as the dmn-or-
+ address syntax might lead to values with trailing blanks. Lines
+ staring with "#" are comments.
+
+ For example:
+ AC.UK#PRMD$UK\.AC.ADMD$GOLD 400.C$GB#
+ XEROX.COM#O$Xerox.ADMD$ATT.C$US#
+ GMD.DE#O$@.PRMD$GMD.ADMD$DBP.C$DE#
+
+ A domain is looked up to determine the top levels of an O/R
+ Address. Components of the domain which are not matched are used
+ to build the remainder of the O/R address, as described in Section
+ 4.3.4.
+
+ 5. O/R Address -> Domain format
+
+ The syntax of this table is:
+
+ dmn-or-address "#" domain-syntax "#"
+
+
+ For example:
+
+ #
+ # Mapping table
+ #
+ PRMD$UK\.AC.ADMD$GOLD 400.C$GB#AC.UK#
+
+ The O/R Address is used to generate a domain key. It is important
+ to order the components correctly, and to fill in missing
+ components in the hierarchy. Use of this mapping is described in
+ Section 4.3.2.
+
+ 6. Domain -> O/R Address of Gateway table
+
+ This uses the same format as the domain -> O/R address mapping.
+ In this case, the two restrictions (omitted components and
+ restrictions on components) do not apply. Use of this mapping is
+ described in Section 4.3.4.
+
+
+
+
+
+
+Hardcastle-Kille [Page 104]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Appendix G - Mapping with X.400(1984)
+
+ This appendix defines modification to the mapping for use with
+ X.400(1984).
+
+ The X.400(1984) protocols are a proper subset of X.400(1988). When
+ mapping from X.400(1984) to RFC 822, no changes to this specification
+ are needed.
+
+ When mapping from RFC 822 to X.400(1984), no use can be made of 1988
+ specific features. No use of such features is made at the MTS
+ level. One feature is used at the IPMS level, and this must be
+ replaced by the RFC 987 approach. All header information which would
+ usually be mapped into the rfc-822-heading-list extension, together
+ with any Comments: field in the RFC 822 header is mapped into a
+ single IA5 body part, which is the first body part in the message.
+ This body part will start with the string "RFC-822-Headers:" as the
+ first line. The headers then follow this line. This specification
+ requires correct reverse mapping of this format, either from 1988 or
+ 1984.
+
+ In an environment where RFC 822 is of major importance, it may be
+ desirable for downgrading to consider the case where the message was
+ originated in an RFC 822 system, and mapped according to this
+ specification. The rfc-822-heading-list extension may be mapped
+ according to this appendix.
+
+ When parsing std-or, the following restrictions must be observed:
+
+ - Only the 84/88 attributes identified in the table in
+ Section 4.2 are present.
+
+ - No teletex encoding is allowed.
+
+ If an address violates this, it should be treated as an RFC 822
+ address, which will usually lead to encoding as a DDA "RFC-822".
+
+ It is possible that null attributes may be present in an O/R Address.
+ This is not legal in 1988, except for ADMD where the case is
+ explicitly described in Section 4.3.5. Null attributes are
+ deprecated (the attribute should be omitted), and should therefore be
+ unusual. However, some systems generate them and rely on them.
+ Therefore, any null attribute shall be enoded using the std-or
+ encoding (e.g., /O=/).
+
+ If a non-Teletex Common Name (CN) is present, it should be mapped
+ onto a Domain Defined Attribute "Common". This is in line with RFC
+ 1328 on X.400 1988 to 1984 downgrading [Hardcastle-K92].
+
+
+
+Hardcastle-Kille [Page 105]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+Appendix H - RFC 822 Extensions for X.400 access
+
+ This appendix defines a number of optional mappings which may be
+ provided to give access from RFC 822 to a number of X.400 services.
+ These mappings are beyond the basic scope of this specification.
+ There has been a definite demand to use extended RFC 822 as a
+ mechanism to acccess X.400, and these extensions provide access to
+ certain features. If this functionality is provided, this appendix
+ shall be followed. The following headings are defined:
+
+ extended-heading =
+ "Prevent-NonDelivery-Report" ":"
+ / "Generate-Delivery-Report" ":"
+ / "Alternate-Recipient" ":" prohibition
+ / "Disclose-Recipients" ":" prohibition
+ / "Content-Return" ":" prohibition
+
+ Prevent-NonDelivery-Report and Generate-Delivery-Report allow setting
+ of MTS.PerRecipientSubmissionFields.originator-report-request. The
+ setting will be the same for all recipients.
+
+ Alternate-Recipient, Disclose-Recipients, and Content-Return allow
+ for override of the default settings for MTS.PerMessageIndicators.
+
+Appendix I - Conformance
+
+ This appendix defines a number of options, which a conforming gateway
+ should specify. Conformance to this specification shall not be
+ claimed if any of the mandatory features are not implemented. In
+ particular:
+
+ - Formats for all fields shall be followed.
+
+ - Formats for subject lines, delivery reports and IPNs shall
+ be followed. A system which followed the syntax, but
+ translated text into a language other than english would be
+ conformant.
+
+ - RFC 1137 shall not be followed when mapping to SMTP or to
+ JNT Mail
+
+ - All mappings of trace shall be implemented.
+
+ - There must be a mechanism to access all three global
+ mappings.
+
+ A gateway should specify:
+
+
+
+
+Hardcastle-Kille [Page 106]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ - Which 822-MTS protocols are supported. The relevant
+ appendices must be followed to claim support of a given
+ protocol: SMTP (A); JNT Mail (B); UUCP (C).
+
+ - Which X.400 versions are supported (84 and/or 88).
+
+ - The means by which it can access the global mappings.
+ Currently, the tables of the formats define in Appendix F
+ is the only means available.
+
+ - The approach taken when upper bounds are exceeded at the IPM
+ level (5.1.3)
+
+ - The approach taken to return of contents (5.2)
+
+ - The approach taken to body parts which cannot be converted
+ (5.3.4)
+
+ - The approach taken to multiple copies vs non-disclosure
+ (4.6.2.2)
+
+ The following are optional parts of this specification. A conforming
+ implementation should specify which of these it supports.
+
+ - Generation of extended RFC 822 fields is mandatory.
+ Optionally, they may be parsed and mapped back to X.400. A
+ gateway should should indicate if this is done.
+
+ - Support for the extension mappings of Appendix H.
+
+ - Support for returning illegal format content in a delivery
+ report
+
+ - Which address interpretation heuristics are supported
+ (4.3.4.1)
+
+ - If RFC 987 generated message ids are handled in a backwards
+ compatible manner (4.7.3.6)
+
+Appendix J - Change History: RFC 987, 1026, 1138, 1148
+
+ RFC 987 was the original document, and contained the key elements of
+ this specification. It was specific to X.400(1984). RFC 1026
+ specified a small number of necessary changes to RFC 987.
+
+ RFC 1138 was based on the RFC 987 work. It contained an editorial
+ error, and was reissued a few months later as RFC 1148. RFC 1148
+ will be referred to here, as it is the document which is widely
+
+
+
+Hardcastle-Kille [Page 107]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ referred to elsewhere. The major goal of RFC 1148 was to upgrade RFC
+ 987 to X.400(1988). It did this, but did not obsolete RFC 987, which
+ was recommended for use with X.400(1984). This appendix summarises
+ the changes made in going from RFC 987 to RFC 1148.
+
+ RFC 1148 noted the following about its upgrade from RFC 987:
+ Unnecessary change is usually a bad idea. Changes on the RFC 822
+ side are avoided as far as possible, so that RFC 822 users do not
+ see arbitrary differences between systems conforming to this
+ specification, and those following RFC 987. Changes on the X.400
+ side are minimised, but are more acceptable, due to the mapping onto
+ a new set of services and protocols.
+
+ 1. Introduction
+
+ The model has shifted from a protocol based mapping to a service
+ based mapping. This has increased the generality of the
+ specification, and improved the model. This change affects the
+ entire document.
+
+ A restriction on scope has been added.
+
+ 2. Service Elements
+
+ - The new service elements of X.400 are dealt with.
+
+ - A clear distinction is made between origination and
+ reception
+
+ 3. Basic Mappings
+
+ - Add teletex support
+
+ - Add object identifier support
+
+ - Add labelled integer support
+
+ - Make PrintableString <-> ASCII mapping reversible
+
+ - The printable string mapping is aligned to the NBS mapping
+ derived from RFC 987.
+
+ 4. Addressing
+
+ - Support for new addressing attributes
+
+ - The message ID mapping is changed to not be table driven
+
+
+
+
+Hardcastle-Kille [Page 108]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 5. Detailed Mappings
+
+ - Define extended IPM Header, and use instead of second body
+ part for RFC 822 extensions
+
+ - Realignment of element names
+
+ - New syntax for reports, simplifying the header and
+ introducing a mandatory body format (the RFC 987 header
+ format was unusable)
+
+ - Drop complex autoforwarded mapping
+
+ - Add full mapping for IP Notifications, defining a body
+ format
+
+ - Adopt an MTS Identifier syntax in line with the O/R Address
+ syntax
+
+ - A new format for X400 Trace representation on the RFC 822
+ side
+
+ 6. Appendices
+
+ - Move Appendix on restricted 822 mappings to a separate RFC
+
+ - Delete Phonenet and SMTP Appendixes
+
+Appendix K - Change History: RFC 1148 to this Document
+
+ 1. General
+
+ - The scope of the document was changed to cover X.400(1984),
+ and so obsolete RFC 987.
+
+ - Changes were made to allow usage to connect RFC 822 networks
+ using X.400
+
+ - Text was tightened to be clear about optional and mandatory
+ aspects
+
+ - A good deal of clarification
+
+ - A number of minor EBNF errors
+
+ - Better examples are given
+
+ - Further X.400 upper bounds are handled correctly
+
+
+
+Hardcastle-Kille [Page 109]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ 2. Basic Mappings
+
+ - The encoding of object identifier is changed slightly
+
+ 3. Addressing
+
+ - A global mapping of domain to preferred gateway is
+ introduced.
+
+ - An overflow mechanism is defined for RFC 822 addresses of
+ greater than 128 bytes.
+
+ - Changes were made to improve compatability with the PDAM on
+ writing O/R Addresses.
+
+ + The PD and Terminal Type keywords were aligned to the
+ PDAM. It is believed that minimal use has been made of
+ the RFC 1148 keywords.
+
+ + P and A are allowed as alternate keys for PRMD and ADMD
+
+ + Where keywords are different, the PDAM keywords are
+ alternatives on input. This is mandatory.
+
+ 4. Detailed Mappings
+
+ - The format of the Subject: lines is defined.
+
+ - Illegal use (repetition) of the heading EXTENSION is
+ corrected, and a new object identifier assigned.
+
+ - The Delivery Report format is extensively revised in light
+ of operational experience.
+
+ - The handling of redirects is significantly changed, as the
+ previous mechanism did not work.
+
+ 5. Appendices
+
+ - An SMTP appendix is added, allowing optional use of the VRFY
+ command to improve probe information.
+
+ - Handling of JNT Mail Acknowledge-To is changed slightly.
+
+ - A DDA JNT-MAIL is allowed on input.
+
+ - The format definitions of Appendix F are explained further,
+ and a third table definition added.
+
+
+
+Hardcastle-Kille [Page 110]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ - An appendix on use with X.400(1984) is added.
+
+ - Optional extensions are defined to give RFC 822 access to
+ further X.400 facilities.
+
+ - An appendix on conformance is added.
+
+References
+
+ CCITT88a.
+ CCITT, "CCITT Recommendations X.408," Message Handling
+ Systems: Encoded Information Type Conversion Rules, December
+ 1988.
+
+ CCITT/ISO88a.
+ CCITT/ISO, "CCITT Recommendations X.400/ ISO IS 10021-1,"
+ Message Handling: System and Service Overview , December
+ 1988.
+
+ CCITT/ISO88b.
+ CCITT/ISO, "CCITT Recommendations X.420/ ISO IS 10021-7,"
+ Message Handling Systems: Interpersonal Messaging System,
+ December 1988.
+
+ CCITT/ISO88c.
+ CCITT/ISO, "CCITT Recommendations X.411/ ISO IS 10021-4,"
+ Message Handling Systems: Message Transfer System: Abstract
+ Service Definition and Procedures, December 1988.
+
+ CCITT/ISO88d.
+ CCITT/ISO, "Specification of Abstract Syntax Notation One
+ (ASN.1)," CCITT Recommendation X.208 / ISO IS 8824, December
+ 1988.
+
+ CCITT/ISO91a.
+ CCITT/ISO, "Representation of O/R Addresses for Human
+ Usage," PDAM to CCITT X.401 / ISO/IEC 10021-2, February
+ 1991.
+
+ Crocker82a.
+ Crocker, D., "Standard of the Format of ARPA Internet Text
+ Messages," RFC 822, UDEL, August 1982.
+
+ Hardcastle-K92.
+ Hardcastle-Kille, S., "X.400 1988 to 1984 downgrading," RFC
+ 1328, UCL, May 1992.
+
+
+
+
+
+Hardcastle-Kille [Page 111]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Horton86a.
+ Horton, M., "UUCP Mail Interchange Format Standard," RFC
+ 976, February 1986.
+
+ Kille84b.
+ Kille, S., "Gatewaying between RFC 822 and JNT Mail," JNT
+ Mailgroup Note 15, May 1984.
+
+ Kille84a.
+ Kille, S., (Editor), JNT Mail Protocol (revision 1.0), Joint
+ Network Team, Rutherford Appleton Laboratory, March 1984.
+
+ Kille86a.
+ Kille, S., "Mapping Between X.400 and RFC 822," UK Academic
+ Community Report (MG.19) / RFC 987, June 1986.
+
+ Kille87a.
+ Kille, S., "Addendum to RFC 987," UK Academic Community
+ Report (MG.23) / RFC 1026, August 1987.
+
+ Kille89a.
+ Kille, S., "A String Encoding of Presentation Address," UCL
+ Research Note 89/14, March 1989.
+
+ Kille89b.
+ Kille, S., "Mapping between full RFC 822 and RFC 822 with
+ restricted encoding," RFC 1137, October 1989.
+
+ Kille90a.
+ Kille, S., "Mapping Between X.400(1988) / ISO 10021 and RFC
+ 822," RFC 1148, March 1990.
+
+ Larmouth83a.
+ Larmouth, J., "JNT Name Registration Technical Guide,"
+ Salford University Computer Centre, April 1983.
+
+ Postel84a.
+ Postel J., and J. Reynolds, "Domain Requirements," RFC 920,
+ USC/Information Sciences Institute, October 1984.
+
+ Postel82a.
+ Postel, J., "Simple Mail Transfer Protocol", RFC 821,
+ USC/Information Sciences Institute, August 1982.
+
+ Rose85a.
+ Rose M., and E. Stefferud, "Proposed Standard for Message
+ Encapsulation," RFC 934, January 1985.
+
+
+
+
+Hardcastle-Kille [Page 112]
+
+RFC 1327 Mapping between X.400(1988) and RFC 822 May 1992
+
+
+ Systems85a.
+ CEN/CENELEC/Information Technology/Working Group on Private
+ Message Handling Systems, "FUNCTIONAL STANDARD A/3222,"
+ CEN/CLC/IT/WG/PMHS N 17, October 1985.
+
+SECURITY CONSIDERATIONS
+
+ Security issues are not discussed in this memo.
+
+AUTHOR'S ADDRESS
+
+ Steve Hardcastle-Kille
+ Department of Computer Science
+ University College London
+ Gower Street
+ WC1E 6BT
+ England
+
+ Phone: +44-71-380-7294
+ EMail: S.Kille@CS.UCL.AC.UK
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hardcastle-Kille [Page 113]
+ \ No newline at end of file
diff --git a/Documentation/en/rfc/rfc1495.txt b/Documentation/en/rfc/rfc1495.txt
new file mode 100644
index 00000000..fd1faf98
--- /dev/null
+++ b/Documentation/en/rfc/rfc1495.txt
@@ -0,0 +1,619 @@
+
+
+
+
+
+
+Network Working Group H. Alvestrand
+Request for Comments: 1495 SINTEF DELAB
+Updates: 1327 S. Kille
+ ISODE Consortium
+ R. Miles
+ Soft*Switch, Inc.
+ M. Rose
+ Dover Beach Consulting, Inc.
+ S. Thompson
+ Soft*Switch, Inc.
+ August 1993
+
+ Mapping between X.400 and RFC-822 Message Bodies
+
+Status of this Memo
+
+ This RFC specifies an IAB standards track protocol for the Internet
+ community, and requests discussion and suggestions for improvements.
+ Please refer to the current edition of the "IAB Official Protocol
+ Standards" for the standardization state and status of this protocol.
+ Distribution of this memo is unlimited.
+
+Table of Contents
+
+ 1. Introduction ............................................. 1
+ 2. Approach ................................................. 2
+ 3. Mapping between X.400 and RFC-822 Message Bodies ......... 3
+ 3.1 Mapping from X.400 to RFC-822 ........................... 4
+ 3.2 Mapping from RFC-822 to X.400 ........................... 5
+ 3.2.1 Asymmetric Mappings .................................... 6
+ 3.2.1.1 Message/External-Body ................................ 6
+ 3.2.1.2 Message/Partial ...................................... 6
+ 3.2.1.3 Nested Multipart Content-types ....................... 6
+ 3.2.2 Multipart IPMS Heading Extension ....................... 7
+ 4. Mapping between X.400 and RFC-822 Message Headers ........ 7
+ 5. OID Assignments .......................................... 9
+ 6. Security Considerations .................................. 9
+ 7. Authors' Addresses ....................................... 10
+ 8. References ............................................... 11
+
+1. Introduction
+
+ The Internet community is a large collection of networks under
+ autonomous administration, but sharing a core set of protocols.
+ These are known as the Internet suite of protocols (or simply
+ "TCP/IP").
+
+ Use of electronic-mail in the Internet is defined primarily by one
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 1]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+ document, STD-11, RFC-822 [1], which defines the standard format for
+ the exchange of messages. RFC-822 has proven immensely popular; in
+ fact, the 822-connected Internet, is larger than the scope of the
+ IP-connected Internet.
+
+ The framework provided by RFC-822 allows for memo-based textual
+ messages. Each message consists of two parts: the headers and the
+ body. The headers are analogous to the structured fields found in an
+ inter-office memo, whilst the body is free-form. Both parts are
+ encoded using ASCII.
+
+ Recently, the Internet Engineering Task Force (IETF) has developed an
+ document called,
+
+ Multipurpose Internet Mail Extensions
+
+ or MIME RFC-1341. The title is actually misleading. MIME defines
+ structure for Internet message bodies. It is not an extension to
+ RFC-822.
+
+ Independently of this, the International standards community
+ developed a different framework in 1984 (some say that's the
+ problem). This framework is known as the OSI Message Handling System
+ (MHS) or sometimes X.400.
+
+ Since the introduction of X.400(84), there has been work ongoing for
+ defining mappings between MHS and RFC-822. The most recent work in
+ this area is RFC-1327 [3], which focuses primarily on translation of
+ envelope and headers. This document is complimentary to RFC-1327 as
+ it focuses on translation of the message body. The mappings defined
+ are largely symmetrical with respect to MIME and MHS structuring
+ semantics, although the MIME semantics are somewhat richer. In order
+ to provide for reversible transformations, MHS heading extensions are
+ used to carry the additional MIME semantics.
+
+ Please send comments to the MIME-MHS mailing list:
+ <mime-mhs@surfnet.nl>.
+
+2. Approach
+
+ The mappings have been specifically designed to provide optimal
+ behavior for three different scenarios:
+
+ (1) Allow a MIME user and an MHS user to exchange an arbitrary binary
+ content;
+
+ (2) Allow MIME content-types to "tunnel" through an MHS relay that
+ is, two MIME users can exchange content-types without loss
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 2]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+ through an MHS relay); and,
+
+ (3) Allow MHS body parts to "tunnel" through a MIME relay that is,
+ two MHS users can exchange body parts without loss through a MIME
+ relay).
+
+ Other, related, scenarios can also be easily accommodated.
+
+ To facilitate the mapping process, the Internet Assigned Numbers
+ Authority (IANA) maintains a table termed the "IANA MHS/MIME
+ Equivalence Table". Once an enterprise has registered an OID to
+ describe an MHS body part, it should complete a corresponding
+ registry with the IANA for a MIME content-type/subtype. In practice,
+ the corresponding content-type will be "application", with an
+ appropriate choice of sub-type and possible parameters. If a new
+ MIME content-type/subtype is registered with the IANA without a
+ corresponding entry in the Equivalence Table, the IANA will assign it
+ an OID, from the arc defined in this memo. See [4], section 5 for
+ details.
+
+ The companion document, "Equivalences between 1988 X.400 and RFC-822
+ Message Bodies"[4], defines the initial configuration of this table.
+ The mappings described in both this document and the companion
+ document use the notational conventions of RFC-1327.
+
+3. Mapping between X.400 and RFC-822 Message Bodies
+
+ MHS messages are comprised of an IPMS.heading and an IPMS.body. The
+ IPMS.Body is a sequence of IPMS.BodyParts. An IPMS.BodyPart may be a
+ nested message (IPMS.MessageBodyPart).
+
+ A MIME message consists of headers and a content. For the purpose of
+ discussion, the content may be structured (multipart or message), or
+ atomic (otherwise). An element of a structured content may be a
+ message or a content. Both message and structured content have
+ subtypes which do not have direct analogies in MHS.
+
+ The mapping between X.400 and RFC-822 message bodies which this
+ document defines is symmetrical for the following cases:
+
+ (1) any atomic body part
+
+ (2) multipart: digest and mixed subtypes
+
+ (3) message/rfc822
+
+ RFC-1327 specifies the mappings for headers. Section 4 describes how
+ those mappings are modified by this document. When mapping between
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 3]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+ an MHS body and a MIME content, the following algorithm is used:
+
+3.1. Mapping from X.400 to RFC-822
+
+ This section replaces the text in RFC-1327 starting at the bottom of
+ page 84,
+
+ The IPMS.Body is mapped into the RFC-822 message body. Each
+ IPMS.BodyPart is converted to ASCII as follows:
+
+ and continuing up to and including page 86 of Section 5.3.4 of RFC-
+ 1327.
+
+ If the IPMS.Body
+
+ Body ::=
+ SEQUENCE OF
+ BodyPart
+
+ consists of a single body part, then the RFC-822 message body is
+ constructed as the MIME content corresponding to that body part.
+
+ If the body part is an IPMS.MessageBodyPart (forwarded IPM), the
+ mapping is applied recursively. Otherwise, to map a specific MHS
+ body part to a MIME content-type, the IANA MHS/MIME Equivalence table
+ is consulted. If the MHS body part is not identified in this table,
+ then the body-part is mapped onto an "application/x400-bp" content,
+ as specified in [4].
+
+ If the IPMS.Body consists of more than one body part, then the RFC-
+ 822 message body is constructed as a
+
+ multipart/mixed
+
+ content-type, unless all of the body parts are messages, in which
+ case it is mapped to a
+
+ multipart/digest
+
+ content-type. Each component of the multipart content-type
+ corresponds to a IPMS.BodyPart, preserving the ordering of the body
+ parts in the IPMS.Body.
+
+ There is one case which gets special treatement. If the IPMS.Body
+ consists solely of a single IA5Text body part, then the RFC822
+ message body is NOT marked as a MIME content. This prevents RFC822
+ mailers from invoking MIME function unnecessarily.
+
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 4]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+3.2. Mapping from RFC-822 to X.400
+
+ First, replace the first paragraph of Section 5.1.3 on page 72 of
+ RFC-1327 to read as:
+
+ The IPM (IPMS Service Request) is generated according to the
+ rules of this section. The IPMS.body usually consists of one
+ IPMS.BodyPart of type
+
+ IPMS.IA5TextBodyPart
+
+ with
+ IPMS.IA5TextBodyPart.parameters.repertoire
+
+ set to the default (ia5), which contains the body of the RFC-822
+ message. However, if the 822.MIME-Version header field is
+ present, a special algorithm is used to generate the IPMS.body.
+
+
+ Second, replace the "Comments:" paragraph on page 74 to reads as:
+
+ Comments:
+
+ If an 822.MIME-Version header field is not present,
+ generate an IPMS.Bodypart of type
+
+ IPMS.IA5TextBodyPart
+
+ with
+
+ IPMS.IA5TextBodyPart.parameters.repertoire
+
+ set to the default (ia5), containing the value of
+ the fields, preceded by the string "Comments: ".
+ This body part shall preceed the other one.
+
+ Third, add the remainder of this section to the end of Section 5.1.3
+ of RFC-1327.
+
+ If the 822.MIME-Version header field is present, the following
+ mapping rules are used to generate the IPMS.body.
+
+ If the MIME content-type is one of:
+
+ (1) any atomic body part
+
+ (2) multipart: digest and mixed subtypes
+
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 5]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+ (3) message/rfc822
+
+ then the symmetric mapping applies as described in Section 6.1. Note
+ that the multipart content-types should be marked with the
+ IPMS.HeadingExtension described below.
+
+ Otherwise, three cases remain, which are discussed in turn.
+
+3.2.1. Asymmetric Mappings
+
+3.2.1.1. Message/External-Body
+
+ This is mapped into a mime-body-part, as specified in [4].
+
+3.2.1.2. Message/Partial
+
+ This is mapped onto a message, and the following heading extension is
+ used. The extension is derived from the message/partial parameters:
+
+ partial-message HEADING-EXTENSION
+ VALUE PartialMessage
+ ::= id-hex-partial-message
+
+ PartialMessage ::=
+ SEQUENCE {
+ number INTEGER,
+ total INTEGER,
+ id IA5String
+ }
+
+ If this heading is present when mapping from MHS to MIME, then a
+ message/partial should be generated.
+
+3.2.1.3. Nested Multipart Content-types
+
+ In MIME, a multipart content refers to a set of content-types, not a
+ message with a set of content-types. However, a nested multipart
+ content will always be mapped to an IPMS.MessageBodyPart, with an
+ IPMS.BodyPart for each contained content-type.
+
+ The only mandatory field in the heading is the IPMS.this-IPM, which
+ must always be generated (by the gateway). A IPMS.subject field
+ should also be generated where there is no "real" heading. This will
+ present useful information to the non-MIME capable X.400(88) and to
+ all X.400(84) UAs.
+
+
+
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 6]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+ The IPM.subject fields for the various types are:
+
+ mixed: "Multipart Message"
+ alternative: "Alternate Body Parts containing the same information"
+ digest: "Message Digest"
+ parallel: "Body Parts to be interpreted in parallel"
+
+3.2.2. Multipart IPMS Heading Extension
+
+ The following IPMS.HeadingExtension should be generated for all
+ multipart content-types, with the enumerated value set according to
+ the subtype:
+
+ multipart-message HEADING-EXTENSION
+ VALUE MultipartType
+ ::= id-hex-multipart-message
+
+ MultipartType ::=
+ ENUMERATED {
+ mixed(1),
+ alternative(2),
+ digest(3),
+ parallel(4)
+ }
+
+ If this heading is present when mapping from MHS to MIME, then the
+ appropriate multipart content-type should be generated.
+
+4. Mapping between X.400 and RFC-822 Message Headers
+
+ Replace the first paragraph of Section 3.3.4 on page 26 of RFC-1327
+ to read as:
+ In cases where T.61 strings are used only for conveying human-
+ interpreted information, the aim of this mapping is to render
+ the characters appropriately in the remote character set, rather
+ than to maximize reversibility. For these cases, the following
+ steps are followed to find an appropriate encoding:
+
+ 1) If all the characters in the string are contained within the
+ ASCII repertoire, the string is simply copied.
+
+ 2) If all the characters in the string are from an IANA-
+ registered character set, then the appropriate encoded-word(s)
+ according to [5] are generated instead.
+
+ 3) If the characters in the string are from a character set
+ which is not registered with the IANA, then the mappings to IA5
+ defined in CCITT Recommendation X.408 (1988) shall be used
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 7]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+ [CCITT/ISO88a]. These will then be encoded in ASCII.
+
+ This approach will only be used for human-readable information
+ (Subject and FreeForm Name).
+
+ When mapping from an RFC-822 header, when an encoded-word (as
+ defined in [5]) is encountered:
+
+ 1) If all the characters contained therein are mappable to T.61,
+ the string content shall be converted into T.61.
+
+ 2) Otherwise, the encoded-word shall be copied directly into the
+ T.61 string.
+
+ Modify procedure "2a" on page 56 of RFC-1327 to read as:
+ If the IPMS.ORDescriptor.free-form-name is present, convert it
+ to ASCII or T.61 (Section 3.3.4), and use this as the 822.phrase
+ component of the 822.mailbox construct.
+
+ Modify the final paragraph of procedure "2" on page 55 of RFC-1327 to
+ read as:
+ The string is then encoded into T.61 or ASCII using a human-
+ oriented mapping (as described in Section 3.3.4). If the string
+ is not null, it is assigned to IPMS.ORDescriptor.free-form.name.
+
+ Modify the second paragraph of procedure "3" on page 55 of RFC-1327
+ to read as:
+ If the 822.group construct is present, any included 822.mailbox
+ is encoded as above to generate a separate IPMS.ORDescriptor.
+ The 822.group is mapped to T.61 or ASCII (as described in
+ Section 3.3.4), and an IPMS.ORDescriptor with only an free-
+ form-name component is built from it.
+
+ Modify procedure "822.Subject" on page 62 of RFC-1327 to read as:
+
+ Mapped to IMPS.Heading.subject. The field-body uses the human-
+ oriented mapping referenceed in Section 3.3.4.
+
+ Modify procedure "IPMS.Heading.subject" on page 71 of RFC-1327 to
+ read as:
+ Mapped to "Subject:". The contents are converted to ASCII or
+ T.61 (Section 3.3.4). Any CRLF are not mapped, but are used as
+ points at which the subject field must be folded.
+
+
+
+
+
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 8]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+5. OID Assignments
+
+ MIME-MHS DEFINITIONS ::= BEGIN
+
+
+ mail OBJECT IDENTIFIER ::= { internet 7 }
+
+ mime-mhs OBJECT IDENTIFIER ::= { mail 1 }
+
+ mime-mhs-headings OBJECT IDENTIFIER ::= { mime-mhs 1 }
+
+ id-hex-partial-message OBJECT IDENTIFIER ::=
+ { mime-mhs-headings 1 }
+
+ id-hex-multipart-message OBJECT IDENTIFIER ::=
+ { mime-mhs-headings 2 }
+
+
+ mime-mhs-bodies OBJECT IDENTIFIER ::= { mime-mhs 2 }
+
+
+ END
+
+6. Security Considerations
+
+ There are no explicit security provisions in this document. However,
+ a warning is in order. This document maps two mechanisms between
+ RFC822 and X.400 that could cause problems. The first is the
+ transfer of binary files. The inherent risks are well known and
+ won't be reiterated here. The second is the propagation of strong
+ content typing. The typing can be used to automatically "launch" or
+ initiate applications against those contents. Any such launching
+ leaves the invoker vulnerable to application-specific viruses; for
+ example, a spreadsheet macro or Postscript command that deletes
+ files. See [2], Section 7.4.2 for a Postscript-specific discussion
+ of this issue.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 9]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+7. Authors' Addresses
+
+ Harald Tveit Alvestrand
+ SINTEF DELAB
+ N-7034 Trondheim
+ NORWAY
+
+ EMail: Harald.Alvestrand@delab.sintef.no
+
+
+ Steve Kille
+ ISODE Consortium
+ P.O. Box 505
+ London
+ SW11 1DX
+ England
+
+ Phone: +44-71-223-4062
+ EMail: S.Kille@ISODE.COM
+
+
+ Robert S. Miles
+ Soft*Switch, Inc.
+ 640 Lee Road
+ Wayne, PA 19087
+
+ Phone: (215) 640-7556
+ EMail: rsm@spyder.ssw.com
+
+
+ Marshall T. Rose
+ Dover Beach Consulting, Inc.
+ 420 Whisman Court
+ Mountain View, CA 94043-2186
+ US
+
+ Phone: +1 415 968 1052
+ Fax: +1 415 968 2510
+ EMail: mrose@dbc.mtview.ca.us
+
+
+ Steven J. Thompson
+ Soft*Switch, Inc.
+ 640 Lee Road
+ Wayne, PA 19087
+
+ Phone: (215) 640-7556
+ EMail: sjt@gateway.ssw.com
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 10]
+
+RFC 1495 MHS/RFC-822 Message Body Mapping August 1993
+
+
+8. References
+
+ [1] Crocker, D., "Standard for the Format of ARPA Internet Text
+ Messages", STD 11, RFC 822, UDEL, August 1982.
+
+ [2] Borenstein, N., and N. Freed, "MIME: Mechanisms for Specifying
+ and Describing the Format of Internet Message Bodies", RFC 1341,
+ Bellcore, Innosoft, June 1992.
+
+ [3] Hardcastle-Kille, S., "Mapping between X.400(1988) / ISO 10021
+ and RFC-822", RFC 1327, University College London, May 1992.
+
+ [4] Alvestrand, H., and S. Thompson, "Equivalences between 1988 X.400
+ and RFC-822 Message Bodies", RFC 1494, SINTEF DELAB, Soft*Switch,
+ Inc., August 1993.
+
+ [5] Moore, K., "Representation of Non-ASCII Text in Internet Message
+ Headers Message Bodies", RFC 1342, University of Tennesse, June
+ 1992.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Alvestrand, Kille, Miles, Rose & Thompson [Page 11]
+ \ No newline at end of file
diff --git a/Documentation/en/rfc/rfc2156.txt b/Documentation/en/rfc/rfc2156.txt
new file mode 100644
index 00000000..215f05f1
--- /dev/null
+++ b/Documentation/en/rfc/rfc2156.txt
@@ -0,0 +1,8067 @@
+
+
+
+
+
+
+Network Working Group S. Kille
+Request for Comments: 2156 Isode Ltd.
+Obsoletes: 987, 1026, 1138, 1148, 1327, 1495 January 1998
+Updates: 822
+Category: Standards Track
+
+
+ MIXER (Mime Internet X.400 Enhanced Relay):
+ Mapping between X.400 and RFC 822/MIME
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
+
+Table of Contents
+
+ 1 - Overview ...................................... 3
+ 1.1 - X.400 ......................................... 3
+ 1.2 - RFC 822 and MIME .............................. 3
+ 1.3 - The need for conversion ....................... 4
+ 1.4 - General approach .............................. 4
+ 1.5 - Gatewaying Model .............................. 5
+ 1.6 - Support of X.400 (1984) ....................... 8
+ 1.7 - X.400 (1992) .................................. 8
+ 1.8 - MIME .......................................... 8
+ 1.9 - Body Parts .................................... 8
+ 1.10 - Local and Global Scenarios .................... 9
+ 1.11 - Compatibility with previous versions .......... 10
+ 1.12 - Aspects not covered ........................... 10
+ 1.13 - Subsetting .................................... 11
+ 1.14 - Specification Language ........................ 11
+ 1.15 - Related Specifications ........................ 11
+ 1.16 - Document Structure ............................ 12
+ 1.17 - Acknowledgements .............................. 12
+ 2 - Service Elements .............................. 13
+ 2.1 - The Notion of Service Across a Gateway ........ 13
+ 2.2 - RFC 822 ....................................... 15
+ 2.3 - X.400 ......................................... 18
+ 3 - Basic Mappings ................................ 27
+ 3.1 - Notation ...................................... 27
+
+
+
+Kille Standards Track [Page 1]
+
+RFC 2156 MIXER January 1998
+
+
+ 3.2 - ASCII and IA5 ................................. 29
+ 3.3 - Standard Types ................................ 29
+ 3.4 - Encoding ASCII in Printable String ............ 33
+ 3.5 - RFC 1522 ...................................... 34
+ 4 - Addressing and Message IDs .................... 35
+ 4.1 - A textual representation of MTS.ORAddress ..... 36
+ 4.2 - Global Address Mapping ........................ 43
+ 4.3 - EBNF.822-address <-> MTS.ORAddress ............ 46
+ 4.4 - Repeated Mappings ............................. 59
+ 4.5 - Directory Names ............................... 62
+ 4.6 - MTS Mappings .................................. 62
+ 4.7 - IPMS Mappings ................................. 67
+ 5 - Detailed Mappings ............................. 71
+ 5.1 - RFC 822 -> X.400: Detailed Mappings ........... 71
+ 5.2 - Return of Contents ............................ 86
+ 5.3 - X.400 -> RFC 822: Detailed Mappings ........... 86
+ Appendix A - Mappings Specific to SMTP ..................... 114
+ 1 - Probes ........................................ 114
+ 2 - Long Lines .................................... 114
+ 3 - SMTP Extensions ............................... 114
+ 3.1 - SMTP Extension mapping to X.400 ............... 114
+ 3.2 - X.400 Mapping to SMTP Extensions .............. 115
+ Appendix B - Mapping with X.400(1984) ...................... 116
+ Appendix C - RFC 822 Extensions for X.400 access ........... 118
+ Appendix D - Object Identifier Assignment .................. 119
+ Appendix E - BNF Summary ................................... 120
+ Appendix F - Text format for MCGAM distribution ............ 127
+ 1 - Text Formats .................................. 127
+ 2 - Mechanisms to register and to distribute
+ MCGAMs ........................................ 127
+ 3 - Syntax Definitions ............................ 128
+ 4 - Table Lookups ................................. 129
+ 5 - Domain -> OR Address MCGAM format ............. 129
+ 6 - OR Address -> Domain MCGAM format ............. 129
+ 7 - Domain -> OR Address of Preferred Gateway
+ table ......................................... 130
+ 8 - OR Addresss -> domain of Preferred Gateway
+ table ......................................... 130
+ Appendix G - Conformance ................................... 131
+ Appendix H - Change History: RFC 987, 1026, 1138, 1148
+ ............................................... 133
+ 1 - Introduction .................................. 133
+ 2 - Service Elements .............................. 133
+ 3 - Basic Mappings ................................ 133
+ 4 - Addressing .................................... 134
+ 5 - Detailed Mappings ............................. 134
+ 6 - Appendices .................................... 134
+ Appendix I - Change History: RFC 1148 to RFC 1327 .......... 135
+
+
+
+Kille Standards Track [Page 2]
+
+RFC 2156 MIXER January 1998
+
+
+ 1 - General ....................................... 135
+ 2 - Basic Mappings ................................ 135
+ 3 - Addressing .................................... 135
+ 4 - Detailed Mappings ............................. 135
+ 5 - Appendices .................................... 136
+ Appendix J - Change History: RFC 1327 to this Document
+ ............................................... 137
+ 1 - General ....................................... 137
+ 2 - Service Elements .............................. 137
+ 3 - Basic Mappings ................................ 137
+ 4 - Addressing .................................... 137
+ 5 - Detailed Mappings ............................. 138
+ 6 - Appendices .................................... 138
+ Appendix L - ASN.1 Summary ................................. 139
+ Security Considerations .................................... 141
+ Author's Address ........................................... 141
+ References ................................................. 141
+ Full Copyright Statement ................................... 144
+
+Chapter 1 -- Overview
+
+1.1. X.400
+
+ This document relates primarily to the ITU-T 1988 and 1992 X.400
+ Series Recommendations / ISO IEC 10021 International Standard. This
+ ISO/ITU-T standard is referred to in this document as "X.400", which
+ is a convenient shorthand. Any reference to the 1984 Recommendations
+ will be explicit. Any mappings relating to elements which are in the
+ 1992 version and not in the 1988 version will be noted explicitly.
+ X.400 defines an Interpersonal Messaging System (IPMS), making use of
+ a store and forward Message Transfer System. This document relates
+ to the IPMS, and not to wider application of X.400, such as EDI as
+ defined in X.435.
+
+1.2. RFC 822 and MIME
+
+ RFC 822 evolved as a messaging standard on the DARPA (the US Defense
+ Advanced Research Projects Agency) Internet. RFC 822 specifies an
+ end to end message format, consisting of a header and an unstructured
+ text body. MIME (Multipurpose Internet Mail Extensions) specifies a
+ structured message body format for use with RFC 822. The term "RFC
+ 822" is used in this document to refer to the combination of MIME and
+ RFC 822. RFC 822 and MIME are used in conjunction with a number of
+ different message transfer protocol environments. The core of the
+ MIXER specification is designed to work with any supporting message
+ transfer protocol.
+
+
+
+
+
+Kille Standards Track [Page 3]
+
+RFC 2156 MIXER January 1998
+
+
+ One transfer protocol, SMTP, is of particular importance and is
+ covered in MIXER. On the Internet and other TCP/IP networks, RFC 822
+ is used in conjunction with RFC 821, also known as Simple Mail
+
+ Transfer Protocol (SMTP) [30], in a manner conformant with the host
+ requirements specification [10]. Use of MIXER with SMTP is defined
+ in Appendix A.
+
+1.3. The need for conversion
+
+ There is a large community using RFC 822 based protocols for mail
+ services, who will wish to communicate with users of the IPMS
+ provided by X.400 systems. This will also be a requirement in cases
+ where communities intend to make a transition between the different
+ technologies, as conversion will be needed to ensure a smooth service
+ transition. It is expected that there will be more than one gateway,
+ and this specification will enable them to behave in a consistent
+ manner. Note that the term gateway is used to describe a component
+ performing the mapping between RFC 822 and X.400. This is standard
+ usage amongst mail implementors, but differs from that used by
+ transport and network service implementors.
+
+ Consistency between gateways is desirable to provide:
+
+ 1. Consistent service to users.
+
+ 2. The best service in cases where a message passes through
+ multiple gateways.
+
+1.4. General approach
+
+ There are a number of basic principles underlying the details of the
+ specification. These principles are goals, and are not achieved in
+ all aspects of the specification.
+
+ 1. The specification should be pragmatic. There should not be
+ a requirement for complex mappings for "Academic" reasons.
+ Complex mappings should not be required to support trivial
+ additional functionality.
+
+ 2. Subject to 1), functionality across a gateway should be as
+ high as possible.
+
+ 3. It is always a bad idea to lose information as a result of
+ any transformation. Hence, it is a bad idea for a gateway
+ to discard information in the objects it processes. This
+ includes requested services which cannot be fully mapped.
+
+
+
+
+Kille Standards Track [Page 4]
+
+RFC 2156 MIXER January 1998
+
+
+ 4. Mail gateways operate at a level above the layer on which
+ they perform mappings. This implies that the gateway shall
+ not only be cognisant of the semantics of objects at the
+ gateway level, but also be cognisant of higher level
+ semantics. If meaningful transformation of the objects that
+ the gateway operates on is to occur, then the gateway needs
+ to understand more than the objects themselves.
+
+ 5. Subject to 1), the mapping should be reversible. That is, a
+ double transformation should bring you back to where you
+ started.
+
+1.5. Gatewaying Model
+
+1.5.1. X.400
+
+ X.400 defines the IPMS Abstract Service in X.420 , [11] which
+ comprises of three basic services:
+
+ 1. Origination
+
+ 2. Reception
+
+ 3. Management
+
+ Management is a local interaction between the user and the IPMS, and
+ is therefore not relevant to gatewaying. The first two services
+ consist of operations to originate and receive the following two
+ objects:
+
+ 1. IPM (Interpersonal Message). This has two components: a
+ heading, and a body. The body is structured as a sequence
+ of body parts, which may be basic components (e.g., IA5
+ text, or G3 fax), or forwarded Interpersonal Messages. The
+ heading consists of fields containing end to end user
+ information, such as subject, primary recipients (To:), and
+ importance.
+
+ 2. IPN (Inter Personal Notification). A notification about
+ receipt of a given IPM at the UA level.
+
+ The Origination service also allows for origination of a probe, which
+ is an object to test whether a given IPM could be correctly received.
+
+ The Reception service also allows for receipt of Delivery Reports
+ (DR), which indicate delivery success or failure.
+
+
+
+
+
+Kille Standards Track [Page 5]
+
+RFC 2156 MIXER January 1998
+
+
+ These IPMS Services utilise the Message Transfer System (MTS)
+ Abstract Service [12]. The MTS Abstract Service provides the
+ following three basic services:
+
+ 1. Submission (used by IPMS Origination)
+
+ 2. Delivery (used by IPMS Reception)
+
+ 3. Administration (used by IPMS Management)
+
+ Administration is a local issue, and so does not affect this
+ standard. Submission and delivery relate primarily to the MTS
+ Message (comprising Envelope and Content), which carries an IPM or
+ IPN (or other uninterpreted contents). The Envelope includes a
+ message identifier, an originator, and a list of recipients.
+ Submission also includes the probe service, which supports the MTS
+ Probe. Delivery also includes Reports, which indicate whether a given
+ MTS Message has been delivered or not (or for a probe if delivery
+ would have happened).
+
+ The MTS is provided by MTAs which interact using the MTA (Message
+ Transfer Agent) Service, which defines the interaction between MTAs,
+ along with the procedures for distributed operation. This service
+ provides for transfer of MTS Messages, Probes, and Reports.
+
+1.5.2. RFC 822
+
+ RFC 822 is based on the assumption that there is an underlying
+ service, which is here called the 822-MTS service. The 822-MTS
+ service provides three basic functions:
+
+ 1. Identification of a list of recipients.
+
+ 2. Identification of an error return address.
+
+ 3. Transfer of an RFC 822 message.
+
+ It is possible to achieve 2) within the RFC 822 header.
+
+ This specification will be used most commonly with SMTP as the 822-
+ MTS service. The core MIXER specification is written so that it does
+ not rely on non-basic 822-MTS services. Use of non-basic SMTP
+ services is described in Appendix A. The core of this document is
+ written using SMTP terminology for 822-MTS services.
+
+ An RFC 822 message consists of a header, and content which is
+ uninterpreted ASCII text. The header is divided into fields, which
+ are the protocol elements. Most of these fields are analogous to IPM
+
+
+
+Kille Standards Track [Page 6]
+
+RFC 2156 MIXER January 1998
+
+
+ heading fields, although some are analogous to MTS Service Elements
+ or MTA Service Elements.
+
+ RFC 822 supports delivery status notifications by use of the NOTARY
+ mechanisms [28].
+
+1.5.3. The Gateway
+
+ Given this functional description of the two services, the functional
+ nature of a gateway can now be considered. It would be elegant to
+ consider the SMTP (822-MTS) service mapping onto the MTS Service
+ Elements and RFC 822 mapping onto an IPM, but there is a not a clear
+ match between these services. Another elegant approach would be to
+ treat this document as the definition of an X.400 Access Unit (AU).
+ In this case, the abstraction level is too high, and some necessary
+ mapping function is lost. It is necessary to consider that the IPM
+ format definition, the IPMS Service Elements, the MTS Service
+ Elements, and MTA Service Elements on one side are mapped into RFC
+ 822 + SMTP on the other in a slightly tangled manner. The details of
+ the tangle will be made clear in Chapter 5. Access to the MTA
+ Service Elements is minimised.
+
+ The following basic mappings are thus defined. When going from RFC
+ 822 to X.400, an RFC 822 message and the associated SMTP information
+ is always mapped into an IPM (MTA, MTS, and IPMS Services) and a
+ Delivery Status Notification is mapped onto a Report. Going from
+ X.400 to RFC 822, an RFC 822 message and the associated SMTP
+ information may be derived from:
+
+ 1. An IPN (MTA, MTS, and IPMS services)
+
+ 2. An IPM (MTA, MTS, and IPMS services)
+
+ A Report (MTA, and MTS Services) is mapped onto a delivery status
+ notification.
+
+ Probes (MTA Service) shall be processed by the gateway, as discussed
+ in Chapter 5. MTS Messages containing Content Types other than those
+ defined by the IPMS are not mapped by the gateway, and shall be
+ rejected at the gateway if no other gatewaying procedure is defined.
+
+ This specification is concerned with X.400 IPMS. Future
+ specifications may defined mappings for other X.400 content types.
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 7]
+
+RFC 2156 MIXER January 1998
+
+
+1.5.4. Repeated Mappings
+
+ The primary goal of this specification is to support single mappings,
+ so that X.400 and RFC 822 users can communicate with maximum
+ functionality.
+
+ The mappings specified here are designed to work where a message
+ traverses multiple times between X.400 and RFC 822. This is often
+ essential, particularly in the case of distribution lists. However,
+ in general, this will lead to a level of service which is the lowest
+ common denominator (approximately the services offered by RFC 822).
+
+ Some RFC 822 networks may wish to use X.400 as an interconnection
+ mechanism (typically for policy reasons), and this is fully
+ supported.
+
+ Where an X.400 message transfers to RFC 822 and then back to X.400,
+ there is no expectation of X.400 services which do not have an
+ equivalent service in standard RFC 822 being preserved - although
+ this may be possible in some cases.
+
+1.6. Support of X.400 (1984)
+
+ The MIXER definition is based on the initial specification of RFC 987
+ and in its addendum RFC 1026, which defined a mapping between
+ X.400(1984) and RFC 822. The core MIXER mapping is defined using the
+ full 1988 version of X.400, and not to a 1984 compatible subset. New
+ features of X.400(1988) can be used to provide a much cleaner mapping
+ than that defined in RFC 987. To interwork with 1984 systems,
+ Appendix B shall be followed.
+
+ If a message is being transferred to an X.400(1984) system by way of
+ X.400(1988) MTA it will give a slightly better service to follow the
+ rules of Appendix B, than to downgrade without this knowledge.
+ Downgrading specifications which supplement those specified in X.400
+ (X.419) are given in RFC 1328 [22] and RFC 1496 (HARPOON) [5].
+
+1.7. X.400 (1992)
+
+ X.400 (1992) features are not used by the core of this mapping, and
+ so there is not an equivalent downgrade problem.
+
+1.8. MIME
+
+ MIME format messages are generated by this mapping. As MIME messages
+ are fully RFC 822 compliant, this will not cause problems with
+ systems which are not MIME capable.
+
+
+
+
+Kille Standards Track [Page 8]
+
+RFC 2156 MIXER January 1998
+
+
+1.9. Body Parts
+
+ MIME and X.400 IPMS can both carry arbitrary body parts. MIME defines
+ a mechanism for adding new body parts, and new body parts are
+ registered with the IANA. X.400 defines a mechanism adding new body
+ parts, usually referred to as Body Part 15. Extensions are defined
+ by Object Identifiers, so there is no requirement for a central body
+ part registration authority. The Electronic Messaging Association
+ (EMA) maintains a list of some commonly used body parts. The EMA has
+ specified a mechanism to use the File Transfer Body Part (FTBP) as a
+ more generic means to support message attachments. This approach is
+ gaining widespread commercial support.
+
+ The mapping between X.400 and MIME body parts is defined in the
+ companion MIXER specification, referenced here as RFC 2157 [8]. This
+ document is an update of RFC 1494 [6].
+
+ Editor's Note:
+ References to 2157 will be resolved as these two
+ documents are expected to progress in parallel.
+
+ These two specifications together form the complete MIXER Mapping.
+
+1.10. Local and Global Scenarios
+
+ There are two basic scenarios for X.400/MIME interworking:
+
+ Global Scenario
+
+ There are two global mail networks (Internet/MIME and X.400),
+ interconnected by multiple gateways. Objects may be transferred
+ over multiple gateways, and so it is important that gateways
+ behave in a coherent fashion. MIXER is critical to support this
+ scenario.
+
+ Local Scenario
+
+ A gateway is used to connect a closed community to a global mail
+ network (this could be enforced by connectivity or gateway
+ authorisation policy). This is a common commercial scenario.
+ MIXER is useful to support this scenario, as it allows an industry
+ standard provision of service, but this could be supported by
+ something which was MIXER-like.
+
+ A solution for the global scenario will work for the local scenario.
+ However, there are aspects of MIXER which have significant
+ implementation or deployment effort (the global mapping is the major
+ one, but there are other details too) which and are needed to support
+
+
+
+Kille Standards Track [Page 9]
+
+RFC 2156 MIXER January 1998
+
+
+ the global scenario, but are not needed in the local scenario.
+
+ Note that the local scenario may be the driving force for most
+ deployments, and support of the global scenario may be an important
+ secondary goal.
+
+ There is also a transition effect. Gateways which are initially
+ deployed in a strict local scenario situation start to find
+ themselves in a global scenario. A common case is ADMD provided
+ gateways, which are targeted strictly at the local scenario. In
+ practice they soon start to operate in the global scenario, because
+ of distribution lists and messages exchanged with X.400 users that
+ are not customers of the ADMD. At this point, users are hurt by the
+ restrictions of a local scenario gateway.
+
+ Note that conformance to MIXER applies to an instantiation of a
+ gateway, not just an implementation (although clearly it is critical
+ that the implementation is capable of being operated in a conformant
+ manner).
+
+ MIXER's conformance target is the global scenario, and the
+ specification of MIXER defines operation in this way.
+
+1.11. Compatibility with previous versions
+
+ The changes between this and older versions of the document are given
+ in Appendices H, I and J. These are RFCs 987, 1026, 1138, 1148 and
+ 1327. This document is a revision of RFC 1327 [21]. As far as
+ possible, changes have been made in a compatible fashion.
+
+1.12. Aspects not covered
+
+ There have been a number of cases where previous versions of this
+ document were used in a manner which was not intended. This section
+ is to make clear some limitations of scope. In particular, this
+ specification does not specify:
+
+ - Extensions of RFC 822 to provide access to all X.400
+ services
+
+ - X.400 user interface definition
+
+ These are really coupled. To map the X.400 services, this
+ specification defines a number of extensions to RFC 822. As a side
+ effect, these give the 822 user access to SOME X.400 services.
+ However, the aim on the RFC 822 side is to preserve current service,
+ and it is intentional that access is not given to all X.400 services.
+ Thus, it will be a poor choice for X.400 implementors to use MIXER as
+
+
+
+Kille Standards Track [Page 10]
+
+RFC 2156 MIXER January 1998
+
+
+ an interface - there are too many aspects of X.400 which cannot be
+ accessed through it. If a text interface is desired, a specification
+ targeted at X.400, without RFC 822 restrictions, would be more
+ appropriate. Some optional and limited extensions in this area have
+ proved useful, and are defined in Appendix C.
+
+1.13. Subsetting
+
+ This proposal specifies a mapping which is appropriate to preserve
+ services in existing RFC 822 communities. Implementations and
+ specifications which subset this specification are non-conformant and
+ strongly discouraged.
+
+1.14. Specification Language
+
+ ISO and Internet standards have clear definitions as to the style of
+ language used. This specification maps between ISO/ITU-T protocol
+ and Internet protocols. This document uses ISO terminology for the
+ following reasons:
+
+ 1. This was done in previous versions.
+
+ 2. ISO language may be mechanically converted to Internet
+ language, but not vice versa.
+
+ The key elements of the ISO rules are:
+
+ 1. All mandatory features shall clearly be indicated by
+ imperative statements or the word "shall" or "shall not".
+
+ 2. Optional features shall be indicated by the word "may".
+
+ 3. The word "should" and the phrase "may not" shall not be
+ used.
+
+ In some cases the specification issues guidance on use of optional
+ features, by use of the the phrase word "recommended" or "not
+ recommended".
+
+ To interpet this document according to Internet rules, replace every
+ occurrence of "shall" with "must".
+
+1.15. Related Specifications
+
+ Mappings between Mail-11 and X.400 and Mail-11 and RFC 822 are
+ described in RFC 2162, using mappings related to those defined here
+ [2].
+
+
+
+
+Kille Standards Track [Page 11]
+
+RFC 2156 MIXER January 1998
+
+
+1.16. Document Structure
+
+ This document has five chapters:
+
+ 1. Overview - this chapter.
+
+ 2. Service Elements - This describes the (end user) services
+ mapped by a gateway.
+
+ 3. Basic mappings - This describes some basic notation used in
+ Chapters 3-5, the mappings between character sets, and some
+ fundamental protocol elements.
+
+ 4. Addressing - This considers the mapping between X.400 OR
+ names and RFC 822 addresses, which is a fundamental gateway
+ component.
+
+ 5. Detailed Mappings - This describes the details of all other
+ mappings.
+
+ There are also ten appendices.
+
+ WARNING:
+
+ THE REMAINDER OF THIS SPECIFICATION IS TECHNICALLY DETAILED. IT
+ WILL NOT MAKE SENSE, EXCEPT IN THE CONTEXT OF RFC 822 AND X.400
+ (1988). DO NOT ATTEMPT TO READ THIS DOCUMENT UNLESS YOU ARE
+ FAMILIAR WITH THESE SPECIFICATIONS.
+
+1.17. Acknowledgements
+
+ The work in this specification was substantially based on RFC 987 and
+ RFC 1148, which had input from many people, who are credited in the
+ respective documents.
+
+ A number of comments from people on RFC 1148 lead to RFC 1327. In
+ particular, there were comments and suggestions from: Maurice Abraham
+ (HP); Harald Alvestrand (Sintef); Peter Cowen (X-Tel); Jim Craigie
+ (JNT); Ella Gardner (MITRE); Christian Huitema (Inria); Erik Huizer
+ (SURFnet); Neil Jones (DEC); Ignacio Martinez (IRIS); Julian Onions
+ (X-Tel); Simon Poole (SWITCH); Clive Roberts (Data General); Pete
+ Vanderbilt (SUN); Alan Young (Concurrent).
+
+ RFC 1327 has been widely adopted, and a review team was formed. This
+ comprised of: Urs Eppenberger (SWITCH)(Chair); Claudio Allocchio
+ (INFN); Harald Alvestrand (UNINETT); Dave Crocker (Brandenburg); Ned
+ Freed (Innosoft); Erik Huizer (SURFnet); Steve Kille (Isode); Peter
+ Sylvester (GC Tech).
+
+
+
+Kille Standards Track [Page 12]
+
+RFC 2156 MIXER January 1998
+
+
+ Harald Alvestrand also supplied the tables mapping DSN status codes
+ with X.400 codes. Ned Freed defined parts of the File Transfer Body
+ Part mapping.
+
+ Comment and input has also been received from: Bengt Ackzell (Generic
+ Systems); Samir Albadine (Transpac); Mark Boyes (DEC); Larry Campbell
+ (Boston Software Works); Jacqui Caren (Cray); Allan Cargille (MCI);
+ Kevin Carrosso (Innosoft); Charlie Combs (OIW); Jim Craigie (Net-
+ Tel); Eamon Doyle (Isocor); Efifion Edem (SITA); Jyrki Heikkinen
+ (ICL); Edward Hibbert (DCL); Jeroun Houttin (Terena); Kevin Jordan
+ (CDS); Paul Kingsnorth (DEC); Carl-Uno Manros (Manros Consulting);
+ Suzan Mendes (Telis); Robert Miles (Softswitch); Roger Mizumorri
+ (Enterprise Solutions Ltd); Keith Moore (University of Tennessee);
+ Ruth Moulton (Net-Tel) Michel Musy (Bull); Kenji Nonaka (NTT): The
+ OIW MHSIG; Tom Oliphant (SWITCH); Julian Onions (NEXOR); Jacob Palme
+ (KTH); Olivier Paridaens (ULB); Mary la Roche (Citicorp); John
+ Setsaas (Maxware); Russell Sharpe (DCL); Patrick Soulier (CCETT);
+ Eftimios Tsigros (Universite Libre de Bruxelles); Sean Turner (IECA);
+ Mark Wahl (Isode); David Wilson (Isode); Bill Wohler (Worldtalk);
+ Alan Young (Isode); Alain Zahm (Telis).
+
+Chapter 2 - Service Elements
+
+ This chapter considers the services offered across a gateway built
+ according to this specification. It gives a view of the
+ functionality provided by such a gateway for communication with users
+ in the opposite domain. This chapter considers service mappings in
+ the context of SINGLE transfers only, and not repeated mappings
+ through multiple gateways.
+
+2.1. The Notion of Service Across a Gateway
+
+ RFC 822 and X.400 provide a number of services to the end user. This
+ chapter describes the extent to which each service can be supported
+ across an X.400 <-> RFC 822 gateway. The cases considered are single
+ transfers across such a gateway, although the problems of multiple
+ crossings are noted where appropriate.
+
+2.1.1. Origination of Messages
+
+ When a user originates a message, a number of services are available.
+ Some of these imply actions (e.g., delivery to a recipient), and some
+ are insertion of known data (e.g., specification of a subject field).
+ This chapter describes, for each offered service, to what extent it
+ is supported for a recipient accessed through a gateway. There are
+ three levels of support:
+
+
+
+
+
+Kille Standards Track [Page 13]
+
+RFC 2156 MIXER January 1998
+
+
+ Supported
+ The corresponding protocol elements map well, and so the service
+ can be fully provided.
+
+ Not Supported
+ The service cannot be provided, as there is a complete mismatch.
+
+ Partial Support
+ The service can be partially fulfilled.
+
+ In the first two cases, the service is simply marked as "Supported"
+ or "Not Supported". Some explanation may be given if there are
+ additional implications, or the (non) support is not intuitive. For
+ partial support, the level of partial support is summarised. Where
+ partial support is good, this will be described by a phrase such as
+ "Supported by use of.....". A common case of this is where the
+ service is mapped onto a non-standard service on the other side of
+ the gateway, and this would have lead to support if it had been a
+ standard service. In many cases, this is equivalent to support. For
+ partial support, an indication of the mechanism is given, in order to
+ give a feel for the level of support provided. Note that this is not
+ a replacement for Chapter 5, where the mapping is fully specified.
+
+ If a service is described as supported, this implies:
+
+ - Semantic correspondence.
+
+ - No (significant) loss of information.
+
+ - Any actions required by the service element.
+
+ An example of a service gaining full support: If an RFC 822
+ originator specifies a Subject: field, this is considered to be
+ supported, as an X.400 recipient will get a subject indication.
+
+ In many cases, the required action will simply be to make the
+ information available to the end user. In other cases, actions may
+ imply generating a delivery report.
+
+ All RFC 822 services are supported or partially supported for
+ origination. The implications of non-supported X.400 services is
+ described under X.400.
+
+2.1.2. Reception of Messages
+
+ For reception, the list of service elements required to support this
+ mapping is specified. This is really an indication of what a
+ recipient might expect to see in a message which has been remotely
+
+
+
+Kille Standards Track [Page 14]
+
+RFC 2156 MIXER January 1998
+
+
+ originated.
+
+2.2. RFC 822
+
+ RFC 822 does not explicitly define service elements, as distinct from
+ protocol elements. However, all of the RFC 822 header fields, with
+ the exception of trace, can be regarded as corresponding to implicit
+ RFC 822 service elements.
+
+2.2.1. Origination in RFC 822
+
+ A mechanism of mapping, used in several cases, is to map the RFC 822
+ header into a heading extension in the IPM (InterPersonal Message).
+ This can be regarded as partial support, as it makes the information
+ available to any X.400 implementations which are interested in these
+ services. Communities which require significant RFC 822 interworking
+ are recommended to require that their X.400 User Agents are able to
+ display these heading extensions. Support for the various service
+ elements (headers) is now listed.
+
+ Date:
+ Supported.
+
+ From:
+ Supported. For messages where there is also a sender field,
+ the mapping is to "Authorising Users Indication", which has
+ subtly different semantics to the general RFC 822 usage of
+ From:.
+
+ Sender: Supported.
+
+ Reply-To: Supported.
+
+ To: Supported.
+
+ Cc: Supported.
+
+ Bcc: Supported.
+
+ Message-Id: Supported.
+
+ In-Reply-To:
+ Supported, for a single reference. Where multiple references are
+ given, partial support is given by mapping to "Cross Referencing
+ Indication". This gives similar semantics.
+
+ References: Supported.
+
+
+
+
+Kille Standards Track [Page 15]
+
+RFC 2156 MIXER January 1998
+
+
+ Keywords: Supported by use of a heading extension.
+
+ Subject: Supported.
+
+ Comments: Supported by use of a heading extension.
+
+ Encrypted: Supported by use of a heading extension.
+
+ Content-Language: Supported.
+
+ Resent-*
+
+ Supported by use of a heading extension. Note that addresses in
+ these fields are mapped onto text, and so are not accessible to
+ the X.400 user as addresses. In principle, fuller support would
+ be possible by mapping onto a forwarded IP Message, but this is
+ not suggested.
+
+ Other Fields
+
+ In particular X-* fields, and "illegal" fields in common usage
+ (e.g., "Fruit-of-the-day:") are supported by use of heading
+ extensions.
+
+ MIME introduces a number of headings. Support is defined in RFC
+ 2157.
+
+2.2.2. Reception by RFC 822
+
+ This considers reception by an RFC 822 User Agent of a message
+ originated in an X.400 system and transferred across a gateway. The
+ following standard services (headers) may be present in such a
+ message:
+
+ Date:
+
+ From:
+
+ Sender:
+
+ Reply-To:
+
+ To:
+
+ Cc:
+
+ Bcc:
+
+
+
+
+Kille Standards Track [Page 16]
+
+RFC 2156 MIXER January 1998
+
+
+ Message-Id:
+
+ In-Reply-To:
+
+ References:
+
+ Subject:
+
+ Content-Type: (See RFC 2157)
+
+ Content-Transfer-Encoding: (See RFC 2157)
+
+ MIME-Version: (See RFC 2157)
+
+ The following services (headers) may be present in the header of a
+ message. These are defined in more detail in Chapter 5 (5.3.4, 5.3.6,
+ 5.3.7):
+
+ Autoforwarded:
+
+ Autosubmitted:
+
+ X400-Content-Identifier:
+
+ Content-Language:
+
+ Conversion:
+
+ Conversion-With-Loss:
+
+ Delivery-Date:
+
+ Discarded-X400-IPMS-Extensions:
+
+ Discarded-X400-MTS-Extensions:
+
+ DL-Expansion-History:
+
+ Deferred-Delivery:
+
+ Expires:
+
+ Importance:
+
+ Incomplete-Copy:
+
+ Latest-Delivery-Time:
+
+
+
+
+Kille Standards Track [Page 17]
+
+RFC 2156 MIXER January 1998
+
+
+ Message-Type:
+
+ Original-Encoded-Information-Types:
+
+ Originator-Return-Address:
+
+ Priority:
+
+ Reply-By:
+
+ Sensitivity:
+
+ Supersedes:
+
+ X400-Content-Type:
+
+ X400-MTS-Identifier:
+
+ X400-Originator:
+
+ X400-Received:
+
+ X400-Recipients:
+
+2.3. X.400
+
+2.3.1. Origination in X.400
+
+ When mapping services from X.400 to RFC 822 which are not supported
+ by RFC 822, new RFC 822 headers are defined, and registered by
+ publication in this standard. It is intended that co-operating RFC
+ 822 systems may also use them. Where these new fields are used, and
+ no system action is implied, the service can be regarded as being
+ partially supported. Chapter 5 describes how to map X.400 services
+ onto these new headers. Other elements are provided, in part, by the
+ gateway as they cannot be provided by RFC 822.
+
+ Some service elements are marked N/A (not applicable). There are
+ five cases, which are marked with different comments:
+
+ N/A (local)
+ These elements are only applicable to User Agent / Message
+ Transfer Agent interaction and so they cannot apply to RFC 822
+ recipients.
+
+
+
+
+
+
+
+Kille Standards Track [Page 18]
+
+RFC 2156 MIXER January 1998
+
+
+ N/A (PDAU)
+ These service elements are only applicable where the recipient is
+ reached by use of a Physical Delivery Access Unit (PDAU), and so
+ do not need to be mapped by the gateway.
+
+ N/A (reception)
+ These services are only applicable for reception.
+
+ N/A (prior)
+ If requested, this service shall be performed prior to the
+ gateway.
+
+ N/A (MS)
+ These services are only applicable to Message Store (i.e., a local
+ service).
+
+ Finally, some service elements are not supported. In particular, the
+ new security services are not mapped onto RFC 822. Unless otherwise
+ indicated, the behaviour of service elements marked as not supported
+ will depend on the criticality marking supplied by the user. If the
+ element is marked as critical for transfer or delivery, a non-
+ delivery notification will be generated. Otherwise, the service
+ request will be ignored.
+
+2.3.1.1. Basic Interpersonal Messaging Service
+
+ These are the mandatory IPM services as listed in Section 19.8 of
+ X.400 / ISO/IEC 10021-1, listed here in the order given. Section 19.8
+ has cross references to short definitions of each service.
+
+ Access management
+ N/A (local).
+
+ Content Type Indication
+ Supported by a new RFC 822 header (X400-Content-Type:).
+
+ Converted Indication
+ Supported by a new RFC 822 header (X400-Received:).
+
+ Delivery Time Stamp Indication
+ N/A (reception).
+
+ IP Message Identification
+ Supported.
+
+ Message Identification
+ Supported, by use of a new RFC 822 header (X400-MTS-Identifier).
+ This new header is required, as X.400 has two message-ids whereas
+
+
+
+Kille Standards Track [Page 19]
+
+RFC 2156 MIXER January 1998
+
+
+ RFC 822 has only one (see IP Message Identification
+
+ Non-delivery Notification
+ Not supported in all cases. Supported where the recipient system
+ supports NOTARY DSNs. In general all RFC 822 systems will return
+ error reports by use of IP messages. In other service elements,
+ this pragmatic result can be treated as effective support of this
+ service element.
+
+ Original Encoded Information Types Indication
+ Supported as a new RFC 822 header (Original-Encoded-Information-
+ Types:).
+
+ Submission Time Stamp Indication
+ Supported.
+
+ Typed Body
+ Support is defined in RFC 2157.
+
+ User Capabilities Registration
+ N/A (local).
+
+2.3.1.2. IPM Service Optional User Facilities
+
+ This section describes support for the optional (user selectable) IPM
+ services as listed in Section 19.9 of X.400 / ISO/IEC 10021- 1,
+ listed here in the order given. Section 19.9 has cross references to
+ short definitions of each service.
+
+ Additional Physical Rendition
+ N/A (PDAU).
+
+ Alternate Recipient Allowed
+ Not supported. There is no RFC 822 service equivalent to
+ prohibition of alternate recipient assignment (e.g., an RFC 822
+ system may freely send an undeliverable message to a local
+ postmaster). A MIXER gateway has two conformant options. The
+ first is not to gateway a message requesting prohibition of
+ alternate recipient, as this control cannot be guaranteed. This
+ option supports the service, but may cause unacceptable level of
+ message rejections. The second is to gateway the message on the
+ basis that there is no alternate recipient service in RFC 822. RFC
+ 1327 allowed only the second option. If the first option is
+ shown to be operationally effective, it may be the only option in
+ future versions of MIXER.
+
+ Authorising User's Indication
+ Supported.
+
+
+
+Kille Standards Track [Page 20]
+
+RFC 2156 MIXER January 1998
+
+
+ Auto-forwarded Indication
+ Supported as new RFC 822 header (Auto-Forwarded:).
+
+ Basic Physical Rendition
+ N/A (PDAU).
+
+ Blind Copy Recipient Indication
+ Supported.
+
+ Body Part Encryption Indication
+ Supported by use of a new RFC 822 header (Original-Encoded-
+ Information-Types:), although in most cases it will not be
+ possible to map the body part in question.
+
+ Content Confidentiality
+ Not supported.
+
+ Content Integrity
+ Not supported.
+
+ Conversion Prohibition
+ Supported. Operation defined in RFC 2157.
+
+ Conversion Prohibition in Case of Loss of Information
+ Supported. Operation defined in RFC 2157.
+
+ Counter Collection
+ N/A (PDAU).
+
+ Counter Collection with Advice
+ N/A (PDAU).
+
+ Cross Referencing Indication
+ Supported.
+
+ Deferred Delivery
+ N/A (prior). This service shall always be provided by the MTS
+ prior to the gateway. A new RFC 822 header (Deferred-Delivery:)
+ is provided to transfer information on this service to the
+ recipient.
+
+ Deferred Delivery Cancellation
+ N/A (local).
+
+ Delivery Notification
+ Supported. This is performed at the gateway, but may be performed
+ at the end system if the end system supports NOTARY. Thus, a
+ notification is sent by the gateway to the originator.
+
+
+
+Kille Standards Track [Page 21]
+
+RFC 2156 MIXER January 1998
+
+
+ Delivery via Bureaufax Service
+ N/A (PDAU).
+
+ Designation of Recipient by Directory Name
+ N/A (local).
+
+ Disclosure of Other Recipients
+ Supported by use of a new RFC 822 header (X400-Recipients:). This
+ is descriptive information for the RFC 822 recipient, and is not
+ reverse mappable.
+
+ DL Expansion History Indication
+ Supported by use of a new RFC 822 header (DL-Expansion-History:).
+
+ DL Expansion Prohibited
+ Distribution List means MTS supported distribution list, in the
+ manner of X.400. This service does not exist in the RFC 822
+ world, although RFC 822 supports distribution list functionality.
+ There is no SMTP leve control to prohibit distribution list
+ expansion. A MIXER gateway has two conformant options. The
+ first is not to gateway a message requesting DL expansion
+ prohibition, as this control cannot be guaranteed. This option
+ supports the service, but may cause unacceptable level of message
+ rejections. The second is to gateway the message on the basis that
+ there is no distribution list service in RFC 822. RFC 1327 allowed
+ only the second option. If the first option is shown to be
+ operationally effective, it may be the only option in future
+ versions of MIXER.
+
+ Express Mail Service
+ N/A (PDAU).
+
+ Expiry Date Indication
+ Supported as new RFC 822 header (Expires:). In general, no
+ automatic action can be expected.
+
+ Explicit Conversion
+ N/A (prior).
+
+ Forwarded IP Message Indication
+ Supported.
+
+ Grade of Delivery Selection
+ Not Supported. There is no equivalent service in RFC 822.
+
+ Importance Indication
+ Supported as new RFC 822 header (Importance:).
+
+
+
+
+Kille Standards Track [Page 22]
+
+RFC 2156 MIXER January 1998
+
+
+ Incomplete Copy Indication
+ Supported as new RFC 822 header (Incomplete-Copy:).
+
+ Language Indication
+ Supported as new RFC 822 header (Content-Language:).
+
+ Latest Delivery Designation
+ Not supported. A new RFC 822 header (Latest-Delivery-Time:) is
+ provided, which may be used by the recipient for general
+ information, but will not be acted on by the SMTP infrastrucuture.
+
+ Message Flow Confidentiality
+ Not supported.
+
+ Message Origin Authentication
+ N/A (reception).
+
+ Message Security Labelling
+ Not supported.
+
+ Message Sequence Integrity
+ Not supported.
+
+ Multi-Destination Delivery Supported.
+
+ Multi-part Body
+ Supported.
+
+ Non Receipt Notification Request
+ Not supported.
+
+ Non Repudiation of Delivery
+ Not supported.
+
+ Non Repudiation of Origin
+ N/A (reception).
+
+ Non Repudiation of Submission
+ N/A (local).
+
+ Obsoleting Indication
+ Supported as new RFC 822 header (Supersedes:).
+
+ Ordinary Mail
+ N/A (PDAU).
+
+ Originator Indication
+ Supported.
+
+
+
+Kille Standards Track [Page 23]
+
+RFC 2156 MIXER January 1998
+
+
+ Originator Requested Alternate Recipient
+ Not supported, but is placed as comment next to address (X400-
+ Recipients:).
+
+ Physical Delivery Notification by MHS
+ N/A (PDAU).
+
+ Physical Delivery Notification by PDS
+ N/A (PDAU).
+
+ Physical Forwarding Allowed
+ Supported by use of a comment in a new RFC 822 header (X400-
+ Recipients:), associated with the recipient in question.
+
+ Physical Forwarding Prohibited
+ Supported by use of a comment in a new RFC 822 header (X400-
+ Recipients:), associated with the recipient in question.
+
+ Prevention of Non-delivery notification
+ Supported where SMTP and NOTARY are available. In other cases
+ formally supported, as delivery notifications cannot be generated
+ by RFC 822. In practice, errors will be returned as IP Messages,
+ and so this service may appear not to be supported (see Non-
+ delivery Notification).
+
+ Primary and Copy Recipients Indication
+ Supported
+
+ Probe
+ Supported at the gateway (i.e., the gateway services the probe).
+
+ Probe Origin Authentication
+ N/A (reception).
+
+ Proof of Delivery
+ Not supported.
+
+ Proof of Submission
+ N/A (local).
+
+ Receipt Notification Request Indication
+ Not supported.
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 24]
+
+RFC 2156 MIXER January 1998
+
+
+ Redirection Disallowed by Originator
+ Redirection means MTS supported redirection, in the manner of
+ X.400. This service does not exist in the RFC 822 world. RFC 822
+ redirection (e.g., aliasing) is regarded as an informal
+ redirection mechanism, beyond the scope of this control. Messages
+ will be sent to RFC 822, irrespective of whether this service is
+ requested. In practice, control of this service is not supported.
+
+ Registered Mail
+ N/A (PDAU).
+
+ Registered Mail to Addressee in Person
+ N/A (PDAU).
+
+ Reply Request Indication
+ Supported as comment next to address.
+
+ Replying IP Message Indication
+ Supported.
+
+ Report Origin Authentication
+ N/A (reception).
+
+ Request for Forwarding Address
+ N/A (PDAU).
+
+ Requested Delivery Method
+ N/A (local). The service request is dealt with at submission
+ time. Any such request is made available through the gateway by
+ use of a comment associated with the recipient in question.
+
+ Return of Content
+ Supported where SMTP and NOTARY are used. In principle for other
+ situations, this is N/A, as non-delivery notifications are not
+ supported. In practice, most RFC 822 systems will return part or
+ all of the content along with the IP Message indicating an error
+ (see Non-delivery Notification).
+
+ Sensitivity Indication
+ Supported as new RFC 822 header (Sensitivity:).
+
+ Special Delivery
+ N/A (PDAU).
+
+ Stored Message Deletion
+ N/A (MS).
+
+
+
+
+
+Kille Standards Track [Page 25]
+
+RFC 2156 MIXER January 1998
+
+
+ Stored Message Fetching
+ N/A (MS).
+
+ Stored Message Listing
+ N/A (MS).
+
+ Stored Message Summary
+ N/A (MS).
+
+ Subject Indication
+ Supported.
+
+ Undeliverable Mail with Return of Physical Message
+ N/A (PDAU).
+
+ Use of Distribution List
+ In principle this applies only to X.400 supported distribution
+ lists (see DL Expansion Prohibited). Theoretically, this service
+ is N/A (prior). In practice, because of informal RFC 822 lists,
+ this service can be regarded as supported.
+
+ Auto-Submitted Indication
+ Supported
+
+2.3.2. Reception by X.400
+
+2.3.2.1. Standard Mandatory Services
+
+ The following standard IPM mandatory user facilities are required for
+ reception of RFC 822 originated mail by an X.400 UA.
+
+ Content Type Indication
+
+ Delivery Time Stamp Indication
+
+ IP Message Identification
+
+ Message Identification
+
+ Non-delivery Notification
+
+ Original Encoded Information Types Indication
+
+ Submission Time Stamp Indication
+
+ Typed Body
+
+
+
+
+
+Kille Standards Track [Page 26]
+
+RFC 2156 MIXER January 1998
+
+
+2.3.2.2. Standard Optional Services
+
+ The following standard IPM optional user facilities are required for
+ reception of RFC 822 originated mail by an X.400 UA.
+
+ Authorising User's Indication
+
+ Blind Copy Recipient Indication
+
+ Cross Referencing Indication
+
+ Originator Indication
+
+ Primary and Copy Recipients Indication
+
+ Replying IP Message Indication
+
+ Subject Indication
+
+2.3.2.3. New Services
+
+ A new X.400 service "RFC 822 Header Field" is defined using the
+ extension facilities. This allows for any RFC 822 header field to be
+ represented. It may be present in RFC 822 originated messages which
+ are received by an X.400 UA.
+
+Chapter 3 Basic Mappings
+
+3.1. Notation
+
+ The X.400 protocols are encoded in a structured manner according to
+ ASN.1, whereas RFC 822 is text encoded. To define a detailed
+ mapping, it is necessary to refer to detailed protocol elements in
+ each format. A notation to achieve this is described in this
+ section.
+
+3.1.1. RFC 822
+
+ Structured text is defined according to the Extended Backus Naur Form
+ (EBNF) defined in Section 2 of RFC 822 [16]. In the EBNF definitions
+ used in this specification, the syntax rules given in Appendix D of
+ RFC 822 are assumed. When these EBNF tokens are referred to outside
+ an EBNF definition, they are identified by the string "822." appended
+ to the beginning of the string (e.g., 822.addr-spec). Additional
+ syntax rules, to be used throughout this specification, are defined
+ in this chapter.
+
+ The EBNF is used in two ways.
+
+
+
+Kille Standards Track [Page 27]
+
+RFC 2156 MIXER January 1998
+
+
+ 1. To describe components of RFC 822 messages (or of SMTP
+ components). When these new EBNF tokens are referred to
+ outside an EBNF definition, they are identified by the
+ string "EBNF." appended to the beginning of the string
+ (e.g., EBNF.importance).
+
+ 2. To describe the structure of IA5 or ASCII information not in
+ an RFC 822 message.
+
+ For all new EBNF, tokens will either be self delimiting, or be
+ delimited by self delimiting tokens. Comments and LWSP are not used
+ as delimiters, except for the following cases, where LWSP may be
+ inserted according to RFC 822 rules.
+
+ - Around the ":" in all headers
+
+ - EBNF.labelled-integer
+
+ - EBNF.object-identifier
+
+ - EBNF.encoded-info
+
+ RFC 822 folding rules are applied to all headers. Comments are never
+ used in these new headers.
+
+ This notation is used in a modified form to refer to NOTARY EBNF
+ [28]. For this EBNF, the keyword EBNF it replaces with DSN, for
+ example DSN.final-recipient-field fields.
+
+3.1.2. ASN.1
+
+ An element is referred to with the following syntax, defined in EBNF:
+
+ element = service "." definition *( "." definition )
+ service = "IPMS" / "MTS" / "MTA"
+ definition = identifier / context
+ identifier = ALPHA *< ALPHA or DIGIT or "-" >
+ context = "[" 1*DIGIT "]"
+
+ The EBNF.service keys are shorthand for the following service
+ specifications:
+
+ IPMS IPMSInformationObjects defined in Annex E of X.420 / ISO 10021-
+ 7.
+
+ MTS MTSAbstractService defined in Section 9 of X.411 / ISO 10021-4.
+
+ TA MTAAbstractService defined in Section 13 of X.411 / ISO 10021-4.
+
+
+
+Kille Standards Track [Page 28]
+
+RFC 2156 MIXER January 1998
+
+
+ FTBP File Transfer Body Part, as defined in [27].
+
+ The first EBNF.identifier identifies a type or value key in the
+ context of the defined service specification. Subsequent
+ EBNF.identifiers identify a value label or type in the context of the
+ first identifier (SET or SEQUENCE). EBNF.context indicates a context
+ tag, and is used where there is no label or type to uniquely identify
+ a component. The special EBNF.identifier keyword "value" is used to
+ denote an element of a sequence. For example, IPMS.Heading.subject
+ defines the subject element of the IPMS heading. The same syntax is
+ also used to refer to element values. For example,
+ MTS.EncodedInformationTypes.[0].g3Fax refers to a value of
+ MTS.EncodedInformationTypes.[0] .
+
+3.2. ASCII and IA5
+
+ A gateway will interpret all IA5 as ASCII. Thus, mapping between
+ these forms is conceptual.
+
+3.3. Standard Types
+
+ There is a need to convert between ASCII text and some of the types
+ defined in ASN.1 [14]. For each case, an EBNF syntax definition is
+ given, for use in all of this specification, which leads to a mapping
+ between ASN.1, and an EBNF construct. All EBNF syntax definitions of
+ ASN.1 types are in lower case, whereas ASN.1 types are referred to
+ with the first letter in upper case. Except as noted, all mappings
+ are symmetrical.
+
+3.3.1. Boolean
+
+ Boolean is encoded as:
+
+ boolean = "TRUE" / "FALSE"
+
+3.3.2. NumericString
+
+ NumericString is encoded as:
+
+ numericstring = *(DIGIT / " ")
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 29]
+
+RFC 2156 MIXER January 1998
+
+
+3.3.3. PrintableString
+
+ PrintableString is a restricted IA5String defined as:
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+ This can be used to represent real printable strings in EBNF.
+
+3.3.4. T.61String
+
+ In cases where T.61 strings are only used for conveying human
+ interpreted information, the aim of a mapping is to render the
+ characters appropriately in the remote character set, rather than to
+ maximise reversibility. For these cases, there are two options, both
+ of which are conformant to this specification:
+
+ 1. The mappings to IA5 defined in ITU-T Recommendation X.408
+ (1988) may be used [13]. These will then be encoded in
+ ASCII. This is the approach mandated in RFC 1327.
+
+ 2. This mapping may be used if the characters are not contained
+ within ASCII repertoire, but are all in an IANA-registered
+ character set. Use the encoding defined in RFC 1522 [9] to
+ generate appropriate encoded-words. If this mapping is
+ used, the character set ISO-8859-1 shall be used if all of
+ the characters needed are available in this repertoire. In
+ other cases, the character set TELETEX shall be used. The
+ details of this character set is defined in the Appendix C
+ of RFC 2157.
+
+ There is also a need to represent Teletex Strings in ASCII, for some
+ aspects of OR Address. For these, the following encoding is used:
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+ Characters in EBNF.ps-char are mapped simply. Other octets,
+ including control characters, are mapped using a quoting mechanism
+ similar to the printable string mechanism. Each octet is represented
+ as 3 decimal digits. For example, the Yen character (hex A5) is
+ represented as {165}. As the three character string, a, yen
+ character, b, would be represented as either "a{165}b".
+
+
+
+
+Kille Standards Track [Page 30]
+
+RFC 2156 MIXER January 1998
+
+
+ The use of escape sequences follows that set down for ASN1. in ISO
+ 8825-1, with the additional specifiction that the default G1 page is
+ ISO Latin 1. The page settings may be changed by escape sequences.
+ Changes of the settings hold within a pair of curly brackets ({}),
+ and the settings revert to the default after the right bracket (})
+ (i.e., they do not carry forward to subsequent T.61 encoding).
+
+ There are a number of places where a string may have a Teletex and/or
+ Printable String representation. The following EBNF is used to
+ represent this.
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+ The natural mapping is restricted to EBNF.ps-char, in order to make
+ the full BNF easier to parse. An example is:
+
+ "yen*{165}"
+
+3.3.5. UTCTime
+
+ Both UTCTime and the RFC 822 822.date-time syntax contain: Year,
+ Month, Day of Month, hour, minute, second (optional), and Timezone
+ (technically a time differential in UTCTime). 822.date-time also
+ contains an optional day of the week, but this is redundant. With
+ the exception of Year, a symmetrical mapping can be made between
+ these constructs.
+
+ Note:
+ In practice, a gateway will need to parse various illegal variants
+ on 822.date-time. In cases where 822.date-time cannot be parsed,
+ it is recommended that the derived UTCTime is set to the value at
+ the time of translation. Such errors may be noted in an RFC 822
+ comment, to aid detection and correction.
+
+ When mapping to X.400, the UTCTime format which specifies the
+ timezone offset shall be used.
+
+ When mapping to RFC 822, the 822.date-time format shall include a
+ numeric timezone offset (e.g., -0500).
+
+ When mapping time values, the timezone shall be preserved as
+ specified. The date shall not be normalised to any other timezone.
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 31]
+
+RFC 2156 MIXER January 1998
+
+
+ RFC 822, as modified by RFC 1123, requires use of a four digit year.
+ Note that the original RFC 822 uses a two digit date, which is no
+ longer legal. UTCTime uses a two digit date. To map a year from RFC
+ 822 to X.400, simply use the last two digits. To map a year from
+ X.400 to RFC 822, assume that the two digit year refers to a year in
+ the 10 year epoch 1980-2079.
+
+3.3.6. Integer
+
+ A basic ASN.1 Integer will be mapped onto EBNF.numericstring. In
+ many cases ASN.1 will enumerate Integer values or use ENUMERATED. An
+ EBNF encoding labelled-integer is provided. When mapping from EBNF to
+ ASN.1, only the integer value is mapped, and the associated text is
+ discarded. When mapping from ASN.1 to EBNF, a text label may be
+ added. It is recommended that this is done wherever possible and
+ that clear text labels are chosen.
+
+ A second encoding labelled-integer-2 is provided. This is used in
+ DSNs, where the parsing rules will treat the text as a comment. This
+ definition was not present in RFC 1327.
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ labelled-integer-2 ::= [ numericstring ] "(" key-string ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 0-9, and "-">
+
+
+3.3.7. Object Identifier
+
+ Object identifiers are represented in a form similar to that given in
+ ASN.1. The order is the same as for ASN.1 (big-endian). The numbers
+ are mandatory, and used when mapping from the ASCII to ASN.1. The
+ key-strings are optional. It is recommended that as many strings as
+ possible are generated when mapping from ASN.1 to ASCII, to
+ facilitate user recognition.
+
+ object-identifier ::= oid-comp object-identifier
+ | oid-comp
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 32]
+
+RFC 2156 MIXER January 1998
+
+
+ An example representation of an object identifier is:
+
+ joint-iso-ccitt(2) mhs (6) ipms (1) ep (11) ia5-text (0)
+
+ or
+
+ (2) (6) (1)(11)(0)
+
+ Because of the use of brackets and the conflict with the RFC 822
+ comment convention, MIXER is defines so that the EBNFobject-
+ identifier definition is not used in structured fields.
+
+3.4. Encoding ASCII in Printable String
+
+ Some information in RFC 822 is represented in ASCII, and needs to be
+ mapped into X.400 elements encoded as printable string. For this
+ reason, a mechanism to represent ASCII encoded as PrintableString is
+ needed.
+
+ A structured subset of EBNF.printablestring is now defined. This
+ shall be used to encode ASCII in the PrintableString character set.
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+ The 822.3DIGIT in EBNF.ps-encoded-char shall have range 0-127, and is
+ interpreted in decimal as the corresponding ASCII character. Special
+ encodings are given for: at sign (@), percent (%), exclamation
+ mark/bang (!), double quote ("), underscore (_), left bracket ((),
+ and right bracket ()). These characters, with the exception of round
+ brackets, are not included in PrintableString, but are common in RFC
+ 822 addresses. The abbreviations will ease specification of RFC 822
+ addresses from an X.400 system. These special encodings shall be
+ interpreted in a case insensitive manner, but always generated in
+ lower case.
+
+ A reversible mapping between PrintableString and ASCII can now be
+ defined. The reversibility means that some values of printable
+ string (containing round braces) cannot be generated from ASCII.
+ Therefore, this mapping shall only be used in cases where the
+ printable strings have been derived from ASCII (and will therefore
+
+
+
+Kille Standards Track [Page 33]
+
+RFC 2156 MIXER January 1998
+
+
+ have a restricted domain). For example, in this specification, it is
+ only applied to a Domain Defined Attribute which will have been
+ generated by use of this specification and a value such as "(" would
+ not be possible.
+
+ To encode ASCII as PrintableString, the EBNF.ps-encoded syntax is
+ used, with all EBNF.ps-restricted-char mapped directly. All other
+ 822.CHAR are encoded as EBNF.ps-encoded-char.
+
+ To encode PrintableString as ASCII, parse PrintableString as
+ EBNF.ps-encoded, and then reverse the previous mapping. If the
+ PrintableString cannot be parsed, then the mapping is being applied
+ in to an inappropriate value, and an error shall be given to the
+ procedure doing the mapping. In some cases, it may be preferable to
+ pass the printable string through unaltered.
+
+ Some examples are now given. Note the arrows which indicate
+ asymmetrical mappings:
+
+ PrintableString ASCII
+
+ 'a demo.' <-> 'a demo.'
+ foo(a)bar <-> foo@bar
+ (q)(u)(p)(q) <-> "_%"
+ (a) <-> @
+ (A) -> @
+ (l)a(r) <-> (a)
+ (126) <-> ~
+ ( -> (
+ (l) <-> (
+
+3.5. RFC 1522
+
+ RFC 1522 defines a mechanism for encoding other character set
+ information into elements of RFC 822 Headers. A gateway may ignore
+ this encoding and treat the elements as ASCII.
+
+ A preferred approach is for the gateway to interpret the RFC 1522
+ encoding. This will not always be straightforward, because:
+
+ 1. RFC 1522 permits an openly extensible character set choice,
+ which may be broader than T.61.
+
+ 2. It is not always possible to map all characters into the
+ equivalent X.400 field.
+
+ RFC 1522 is only applied to fields which are "for information only".
+ A gateway which interprets header elements according to RFC 1522 may
+
+
+
+Kille Standards Track [Page 34]
+
+RFC 2156 MIXER January 1998
+
+
+ apply reasonable heuristics to minimise information loss.
+
+Chapter 4 - Addressing and Message IDs
+
+ Addressing is the most complex aspect of X.400 <-> RFC 822 gateway
+ and is therefore given a separate chapter. This chapter also
+ discusses message identifiers, as they are closely linked to
+ addresses. This chapter, as a side effect, also defines a textual
+ representation of an X.400 OR Address. This specification has much
+ similarity to the X.400(92) representation of addresses. This was
+ because early versions of this specification were a major input to
+ this work. This specification retains compatibility with earlier
+ versions. The X.400 specification of address representation can be
+ parsed but is not generated.
+
+ Initially we consider an address in the (human) mail user sense of
+ "what is typed at the mailsystem to reference a mail user". A basic
+ RFC 822 address is defined by the EBNF EBNF.822-address:
+
+ 822-address = [ route ] addr-spec
+
+ These definitions are taken from RFC 822. In SMTP (or another 822-
+ MTS protocol), the originator and each recipient are considered to be
+ defined by such a construct. In an RFC 822 header, the EBNF.822-
+ address is encapsulated in the 822-address syntax rule, and there may
+ also be associated comments. None of this extra information has any
+ semantics, other than to the end user.
+
+ The basic X.400 OR Address, used by the MTS for routing, is defined
+ by MTS.ORAddress. In IPMS, the MTS.ORAddress is encapsulated within
+ IPMS.ORDescriptor.
+
+ The RFC 822 822.address is mapped with IPMS.ORDescriptor, and that
+ RFC 822 EBNF.822-address is mapped with MTS.ORAddress.
+
+ Section 4.1 defines a textual representation of an OR Address, which
+ is used throughout the rest of this specification. This text
+ representation is designed to represent an X.400 address in the LHS
+ (left hand side) or local part of an RFC 822 address, and so this
+ representation gives a mechanism to represent X.400 addresses within
+ RFC 822 addresses.
+
+ Section 4.2 describes global equivalence mapping between parts of the
+ X.400 and RFC 822 name spaces, and defines the concept of a MIXER
+ Conformant Global Address Mapping (MCGAM). Gateways conforming to
+ this specification shall support MCGAMs.
+
+
+
+
+
+Kille Standards Track [Page 35]
+
+RFC 2156 MIXER January 1998
+
+
+ Section 4.3 is the core part of this chapter, and defines the mapping
+ mechanism.
+
+4.1. A textual representation of MTS.ORAddress
+
+ MTS.ORAddress is structured as an ordered set of attributes
+ (type/value pairs). It is clearly necessary to be able to encode
+ this in ASCII for gatewaying purposes. All components shall be
+ encoded, in order to guarantee return of error messages, and to
+ optimise third party replies.
+
+4.1.1. Basic OR Address Representation
+
+ An OR Address has a number of structured and unstructured attributes.
+ For each unstructured attribute, a key and an encoding is specified.
+ For structured attributes, the X.400 attribute is mapped onto one or
+ more attribute value pairs. For domain defined attributes, each
+ element of the sequence will be mapped onto a triple (key and two
+ values), with each value having the same encoding. The attributes
+ are as follows, with 1984 attributes given in the first part of the
+ attribute key table. For each attribute, a reference is given,
+ consisting of the relevant sections in X.402 / ISO 10021-2, and the
+ extension identifier for 88 only attributes. The attribute key table
+ follows:
+
+Attribute (Component) Key Enc Ref Id
+
+84/88 Attributes
+
+MTS.CountryName C P 18.3.3
+MTS.AdministrationDomainName ADMD P 18.3.1
+MTS.PrivateDomainName PRMD P 18.3.21
+MTS.NetworkAddress X121 N 18.3.7
+MTS.TerminalIdentifier T-ID P 18.3.23
+MTS.OrganizationName O P/T 18.3.9
+MTS.OrganizationalUnitNames.value OU P/T 18.3.10
+MTS.NumericUserIdentifier UA-ID N 18.3.8
+MTS.PersonalName PN P/T 18.3.12
+MTS.PersonalName.surname S P/T 18.3.12
+MTS.PersonalName.given-name G P/T 18.3.12
+MTS.PersonalName.initials I P/T 18.3.12
+MTS.PersonalName
+ .generation-qualifier GQ P/T 18.3.12
+MTS.DomainDefineAttribute.value DD P/T 18.1
+
+
+
+
+
+
+
+Kille Standards Track [Page 36]
+
+RFC 2156 MIXER January 1998
+
+
+88 Attributes
+
+MTS.CommonName CN P/T 18.3.2 1
+MTS.TeletexCommonName CN P/T 18.3.2 2
+MTS.TeletexOrganizationName O P/T 18.3.9 3
+MTS.TeletexPersonalName PN P/T 18.3.12 4
+MTS.TeletexPersonalName.surname S P/T 18.3.12 4
+MTS.TeletexPersonalName.given-name G P/T 18.3.12 4
+MTS.TeletexPersonalName.initials I P/T 18.3.12 4
+MTS.TeletexPersonalName
+ .generation-qualifier GQ P/T 18.3.12 4
+MTS.TeletexOrganizationalUnitNames
+ .value OU P/T 18.3.10 5
+MTS.TeletexDomainDefinedAttribute
+ .value DD P/T 18.1 6
+MTS.PDSName PD-SERVICE P 18.3.11 7
+MTS.PhysicalDeliveryCountryName PD-C P 18.3.13 8
+MTS.PostalCode PD-CODE P 18.3.19 9
+MTS.PhysicalDeliveryOfficeName PD-OFFICE P/T 18.3.14 10
+MTS.PhysicalDeliveryOfficeNumber PD-OFFICE-NUM P/T 18.3.15 11
+MTS.ExtensionORAddressComponents PD-EXT-ADDRESS P/T 18.3.4 12
+MTS.PhysicalDeliveryPersonName PD-PN P/T 18.3.17 13
+MTS.PhysicalDeliveryOrganizationName PD-O P/T 18.3.16 14
+MTS.ExtensionPhysicalDelivery
+ AddressComponents PD-EXT-DELIVERY P/T 18.3.5 15
+MTS.UnformattedPostalAddress PD-ADDRESS UPA 18.3.25 16
+MTS.StreetAddress PD-STREET P/T 18.3.22 17
+MTS.PostOfficeBoxAddress PD-BOX P/T 18.3.18 18
+MTS.PosteRestanteAddress PD-RESTANTE P/T 18.3.20 19
+MTS.UniquePostalName PD-UNIQUE P/T 18.3.26 20
+MTS.LocalPostalAttributes PD-LOCAL P/T 18.3.6 21
+MTS.ExtendedNetworkAddress
+ .e163-4-address.number NET-NUM N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .e163-4-address.sub-address NET-SUB N 18.3.7 22
+MTS.ExtendedNetworkAddress
+ .psap-address NET-PSAP X 18.3.7 22
+MTS.TerminalType T-TY I 18.3.24 23
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 37]
+
+RFC 2156 MIXER January 1998
+
+
+ The following keys identify different EBNF encodings, which are
+ associated with the ASCII representation of MTS.ORAddress.
+
+
+ Key Encoding
+
+ P printablestring
+ N numericstring
+ T teletex-string
+ P/T teletex-and-or-ps
+ UPA upa-string
+ I labelled-integer
+ X presentation-address
+
+ The EBNF for presentation-address is taken from the specification RFC
+ 1278 "A String Encoding of Presentation Address" [23].
+
+ In most cases, the EBNF encoding maps directly to the ASN.1 encoding
+ of the attribute. There are a few exceptions. In cases where an
+ attribute can be encoded as either a PrintableString or NumericString
+ (Country, ADMD, PRMD), either form is mapped into the EBNF. When
+ generating ASN.1, the NumericString encoding shall be used if the
+ string contains digits and only digits.
+
+ There are a number of cases where the P/T (teletex-and-or-ps)
+ representation is used. Where the key maps to a single attribute,
+ this choice is reflected in the encoding of the attribute (attributes
+ 10-21). For example:
+
+ /CN=yen*{165}/
+
+ For most of the 1984 attributes and common name, there is a
+ printablestring and a teletex variant. This pair of attributes is
+ mapped onto the single component here. This will give a clean
+ mapping for the common cases where only one form of the name is used.
+ If there is teletex attribute or teletex component only, and it
+ contains only characters in the printable string character set, it
+ shall be represented in the EBNF as if it had been encoded as
+ printable string. A single printable string representation shall
+ also be done when both forms are present and they have the same
+ printable string representation.
+
+ The Unformatted Postal Address has a slightly more complex mapping
+ onto a variant of (teletex-and-or-ps), defined as:
+
+ upa-string = [ printable-upa ] [ "*" teletex-string ]
+ printable-upa = printablestring *( "|" printablestring )
+
+
+
+
+Kille Standards Track [Page 38]
+
+RFC 2156 MIXER January 1998
+
+
+ The optional teletex part is straightforward. There is an (optional)
+ sequence of printable strings which are mapped in order. For
+ example:
+
+ /PD-ADDRESS=The Dome|The Square|Richmond|England/
+
+ X.400 (1992) has introduced a string representation of OR Addresses
+ (see F.401, Annex B). This has specified a number of string keywords
+ for attributes. As earlier versions of this specification were an
+ input to this work, many of the keywords are the same. To increase
+ compatibility, the following alternative values shall be recognised
+ when mapping from RFC 822 to X.400. These shall not be generated
+ when mapping from X.400 to RFC 822. The following keyword
+ alternative table and the subsequent paragraph lists alternative
+ keywords.
+
+
+ Keyword Alternative
+
+ ADMD A
+ PRMD P
+ GQ Q
+ X121 X.121
+ UA-ID N-ID
+ PD-OFFICE-NUM PD-OFFICE NUMBER
+ PD-OFFICE-NUM PD-OFN
+ PD-EXT-ADDRESS PD-EA
+ PD-EXT-DELIVERY PD-ED
+ PD-OFFICE PD-OF
+ PD-STREET PD-S
+ PD-UNIQUE PD-U
+ PD-LOCAL PD-L
+ PD-RESTANTE PD-R
+ PD-BOX PD-B
+ PD-CODE PD-PC
+ PD-SERVICE PD-SN
+ DD DDA
+ NET-NUM E.164
+ NET-PSAP PSAP
+ PD-ADDRESS PD-A
+
+ When mapping from RFC 822 to X.400, the keywords defined in this
+ paragraph shall be recognized. The ordered keywords: OU1, OU2,
+ OU3, and OU4, shall be recognised. If these are present, no
+ keyword OU shall be present. These will be treated as ordered
+ values of OU. PD-A1, PD-A2, PD-A3, PD-A4, PD-A5, PD-A6 shall be
+ treated as ordered lines. If present, these will be assembled
+ with separating line feeds to form a single physical address. In
+
+
+
+Kille Standards Track [Page 39]
+
+RFC 2156 MIXER January 1998
+
+
+ this case PD-ADDRESS (or PD-A) shall not be present. Similarly,
+ there are ordered keywords for domain defined attributes: DD1,
+ DD2, DD3, DD4,
+
+ If ISDN is present, it may be interpreted as an E.163/164
+ address, using local heuristics to parse the string. X.400
+ defines the key, but does not give an interpretation of the
+ value.
+
+ For T-TY (Terminal Type), the X.400 recommended values are
+ preferred, but other values are allowed. These values are: tlx
+ (3); ttx (4); g3fax (5); g4fax (6); ia5 (7); and vtx (8).
+
+4.1.2. Encoding of Personal Name
+
+ Handling of Personal Name and Teletex Personal Name is a common
+ requirement. Therefore MIXER defines an alternative to the
+ EBNF.standard-type syntax, which utilises the "human" conventions for
+ encoding these components. A syntax is defined, which is designed to
+ provide a clean encoding for the common cases of OR Address
+ specification where:
+
+ 1. There is no generational qualifier
+
+ 2. Initials, if present, contain only letters
+
+ 3. Given Name, if present, does not contain full stop ("."),
+ and is at least two characters long.
+
+ 4. Surname does not contain full stop in the first two
+ characters.
+
+ 5 If Surname is the only component, it does not contain full
+ stop.
+
+ The following EBNF is defined:
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+
+
+
+
+
+
+Kille Standards Track [Page 40]
+
+RFC 2156 MIXER January 1998
+
+
+ This is used to map from any string containing only printable string
+ characters to an OR address personal name. To map from a string to
+ OR Address components, parse the string according to the EBNF. The
+ given name and surname are assigned directly. All EBNF.initial
+ tokens are concatenated without intervening full stops to generate
+ the initials component.
+
+ For an OR address which follows the above restrictions, a string is
+ derived in the natural manner. In this case, the mapping will be
+ reversible.
+
+ For example:
+
+ GivenName = "Marshall"
+ Surname = "Rose"
+
+ Maps with "Marshall.Rose"
+
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "M.T.Rose"
+
+ GivenName = "Marshall"
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "Marshall.M.T.Rose"
+
+ Note that X.400 suggests that Initials is used to encode all initials
+ except the surname (X.402 section 18.3.12). Therefore, the defined
+ encoding is "natural" when either GivenName or Initials, but not
+ both, are present. The case where both are present can be encoded.
+
+4.1.3. Standard Encoding of MTS.ORAddress
+
+ Given this structure, we can specify an EBNF representation of an OR
+ Address. The output format of addresses is defined by EBNF.std-or-
+ address. The more flexible input format is defined by EBNF.std-or-
+ address-input. The input EBNF has been added subsequent to RFC 1327,
+ to reflect the formal incorporation of a number of heuristics. The
+ address element separator on input may be "/", ";", or a mixture of
+ these. The output format is used in all examples.
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / dd-key "." std-printablestring
+
+
+
+Kille Standards Track [Page 41]
+
+RFC 2156 MIXER January 1998
+
+
+ std-or-address-input = [ sep pair ] sep pair *( sep pair )
+ sep [ pair sep ]
+
+ sep = "/" / ";"
+ pair = input-attribute "=" value
+ input-attribute = attribute
+ / dd-key ":" std-printablestring
+
+ standard-type = key-string
+
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+
+ std-char = <"{", "}", "*", and any ps-char
+ except "/" and "=" >
+ std-pair = "$" ps-char
+
+ For address generation, the standard-type is any key defined in the
+ key table in Section 4.1, except PN, and DD. For address parsing,
+ other key values from Section 4.1 are also valid. The EBNF leads to
+ a set of attribute/value pairs. The value is interpreted according to
+ the EBNF encoding defined in the table.
+
+ If the standard-type is PN, the value is interpreted according to
+ EBNF.encoded-pn, and the components of MTS.PersonalName and/or
+ MTS.TeletexPersonalName derived accordingly.
+
+ If dd-key is the recognised Domain Defined string (DD) or one of the
+ alternatives defined in Section 4.1, then the type and value are
+ interpreted according to the syntax implied from the encoding, and
+ aligned to either the teletex or printable string form. Key and
+ value shall have the same encoding.
+
+ If value is "RFC-822", then the (printable string) Domain Defined
+ Type of "RFC-822" is assumed. This is an optimised encoding of the
+ domain defined type defined by this specification.
+
+ The matching of all keywords shall be done in a case-independent
+ manner.
+
+ EBNF.std-or-address uses the characters "/" and "=" as delimiters.
+ Domain Defined Attributes and any value may contain these characters.
+ A quoting mechanism, using the non-printable string "$" is used to
+ allow these characters to be represented.
+
+
+
+Kille Standards Track [Page 42]
+
+RFC 2156 MIXER January 1998
+
+
+ If an address of this syntax is parsed, and a country value is
+ present, but no ADMD, the string shall be interpreted as if an ADMD
+ value of single space had been specified.
+
+4.2. Global Address Mapping
+
+ From a user perspective, the ideal mapping would be entirely
+ symmetrical and global, to enable addresses to be referred to
+ transparently in the remote system, with the choice of gateway being
+ left to the Message Transfer Service. There are two fundamental
+ reasons why this is not possible:
+
+ 1. The syntaxes are sufficiently different to make this
+ impossible.
+
+ 2 There is insufficient administrative co-operation between
+ the X.400 and RFC 822 name registration authorities for this
+ to work.
+
+ Another way to view this situation is to see that there is not a full
+ global equivalence between X.400 and RFC 822 addressing. To meet
+ user needs to the extent possible, this specification provides for
+ equivalence where there is sufficient co-operation. To be useful,
+ this equivalence shall be recognised and interpreted in the same way
+ by all gateways. Therefore, an asymmetrical mapping is defined,
+ which can be symmetrical where there is appropriate administrative
+ co-operation. Section 4.3 describes the asymetrical aspects. This
+ section describes a mechanism to enable the administrative co-
+ ordination for symmetrical mappings.
+
+ In order to achieve a symmetrical mapping there is a need to define
+ an administrative equivalence between parts of the OR Address and
+ Domain namespaces. Previous version of this specification did this
+ by definition of a global set of mappings. MIXER defines the concept
+ of a MIXER Conformant Global Address Mapping (MCGAM). This acronym
+ is defined so that it is very clear what is being referenced.
+
+ The X.400 and Internet Mail address spaces are hierarchical. It is
+ possible to define an equivalence between two points in the
+ hierarchies, such that addresses below that point can be derived in
+ an algorithmic manner. An MCGAM is a mapping from a point in one
+ hierarchy to a point in the other hierarchy. An "MGGAM pair" is a
+ pair of symmetrical mappings between two points. To define an MCGAM,
+ the following shall apply:
+
+ 1. The authority defining the MCGAM shall have responsibility
+ for BOTH of the namespaces between which the MCGAM is
+ defined.
+
+
+
+Kille Standards Track [Page 43]
+
+RFC 2156 MIXER January 1998
+
+
+ 2. The authority defining the MCGAM is responsible to ensure
+ that addresses allocated below the two equivalence points
+ conform to the rules set out below.
+
+ 3. The authority defining the MCGAM is responsible to ensure
+ that addresses which are generated according to the MCGAM
+ are routed correctly.
+
+ In general, MCGAMs will be independent. In some cases, a set of
+ MCGAMs may be related (e.g., where one MCGAM defines a mapping for an
+ organization and a second MCGAM defines an excpetion for a subtree
+ within the organization). In this case, the related set of MCGAMs
+ shall be treated as a single MCGAM for distribution purposes.
+
+ The existence of an MCGAM does not imply routability and access for
+ all users.
+
+ The authority defining an MCGAM may simply use this mapping locally.
+ This will often be the case in a "local scenario" gateway. Because
+ of third party addressing, a MIXER gateway will work best with the
+ maximum number of MCGAMs. Therefore, three mechanisms are defined
+ to enable publication and exchange of MCGAMs:
+
+ 1. Distribution of text tables. This is described in Appendix
+ F of this specification.
+
+ 2. Distribution by Domain Name Service. This is described in
+ RFC 2163 [3].
+
+ 3. Distribution by X.500 Directory Service. This is defined
+ in RFC 2164 [26].
+
+ The following sections define how the MCGAM namespace equivalence is
+ modelled. The Internet Domain Namespace defines a simple hierarchy.
+ For the purposes of this mapping, only parts of the namespace where
+ domains conform to the EBNF domain-syntax are allowed.
+
+ domain-syntax = alphanum [ *alphanumhyphen alphanum ]
+ alphanum = <ALPHA or DIGIT>
+ alphanumhyphen = <ALPHA or DIGIT or HYPHEN>
+
+ Although RFC 822 allows for a more general syntax, this restricted
+ syntax is used in MIXER as it is the one chosen by the various domain
+ service administrations. In practice, it reflects all RFC 822 usage.
+
+
+
+
+
+
+
+Kille Standards Track [Page 44]
+
+RFC 2156 MIXER January 1998
+
+
+ The following OR Address attributes are considered as a hierarchy,
+ and may be specified by the domain. They are (in order of the
+ hierarchy defined by MIXER):
+
+ Country, ADMD, PRMD, Organization, Organizational Units
+
+ There may be up to four ordered Organizational Units. This
+ hierarchy reflects most usage of X.400, although X.400 may be used in
+ other ways. In particular, it covers the Mnemonic OR Address using a
+ 1984 compatible encoding. This is seen as the dominant form of OR
+ Address. MCGAMs may only be used when this hierarchy applies.
+
+ An equivalence mapping is defined between two nodes in the respective
+ hierarchies. For example:
+
+ => "AC.UK" might be mapped with
+ PRMD="UK.AC", ADMD="GOLD 400", C="GB"
+
+ The mapping identifies that the management of these points in the
+ respective hierarchies is the same (or co-operate very closely). The
+ equivalence means that the namespaces below this equivalence point
+ map 1:1, except where the mapping is overridden by further
+ equivalence mappings lower down the hierarchy. This equivalence may
+ be achieved in three ways:
+
+ 1. All of the nodes below this point are RFC 822, and the MIXER
+ mapping defines the X.400 addresses for these nodes.
+
+ 2. All of the nodes below this point are X.400, and the MIXER
+ mapping defines the RFC 822 addresses for these nodes.
+
+ 3. There are X.400 and RFC 822 nodes below this point, and
+ addressing is managed in a manner which ensures the
+ equivalence. The rules to achieve this are defined by
+ MIXER.
+
+ Each of these ways gives a framework for MCGAM definition.
+
+ When an MCGAM is defined, a systematic mapping for the inferior nodes
+ in the two hierarchies follows. This is a 1:1 mapping between the
+ nodes in the subtrees. For example, given the MCGAM pair defined
+ above:
+
+ the domain "R-D.Salford.AC.UK" algorithmically maps with
+ OU="R-D", O="Salford", PRMD="UK.AC", ADMD="GOLD 400", C="GB"
+
+
+
+
+
+
+Kille Standards Track [Page 45]
+
+RFC 2156 MIXER January 1998
+
+
+ Note that when an equivalence is defined, that this can be re-defined
+ for lower points in the hierarchy. However, it is not possible to
+ declare contained subtrees to be un-mappable.
+
+ The equivalence mapping also provides a mechanism to deal with
+ missing elements in the X.400 hierarchy (most commonly the PRMD,
+ which is the only element that may be ommitted when conforming to
+ recent versions of X.400). A domain may be associated with an
+ omitted attribute in conjunction with several present ones. When
+ performing the algorithmic insertion of components lower in the
+ hierarchy, the omitted value shall be skipped. For example:
+
+ If there is an MCGAM pair between domain HNE.EGM" and "O=HNE",
+ "ADMD=ECQ", "C=TC", and omitted PRMD
+
+ then
+
+ "ZI.HNE.EGM" is algorithmically mapped with "OU=I", "O=HNE",
+ "ADMD=ECQ", "C=TC"
+
+ Attributes may have null values, and this is treated separately from
+ omitted attributes (while it is not ideal to make this distinction,
+ it is useful in practice).
+
+4.2.1. Directory and Nameserver Mappings
+
+ When a set of MCGAMs are supported by X.500 or DNS, there is the
+ possibility that results will be indeterminate due to timeout.
+ Lookup shall be repeated until a value is determined, in order to
+ maintain consistent gateway operation.
+
+ Where the mapping relates to an envelope address, the gateway shall
+ non-deliver messages according to the associated MTA's normal timeout
+ policy. Where the mapping relates to addresses in the message
+ header, there shall be a timeout in the range of 1-4 hours or shorter
+ if this is required to maintain quality of service constraints. If
+ a mapping cannot be done in this time, address encapsulation shall be
+ used.
+
+4.3. EBNF.822-address <-> MTS.ORAddress
+
+ This section defines the basic address mapping.
+
+4.3.1. X.400 encoded in RFC 822
+
+ This section defines how X.400 addresses are represented in RFC 822
+ addresses.
+
+
+
+
+Kille Standards Track [Page 46]
+
+RFC 2156 MIXER January 1998
+
+
+ The std-or-address syntax is used to encode OR Address information
+ in the 822.local-part of EBNF.822-address. Where there is an
+ applicable equivalence mapping, further OR Address information is
+ associated with the 822.domain component. This cannot be used in the
+ general case, due to character set problems, and to the variants of
+ X.400 OR Addresses which use different attribute types. The only way
+ to encode the full PrintableString character set in a domain is by
+ use of the 822.domain-ref syntax (i.e. 822.atom). This is likely to
+ cause problems on many systems. The effective character set of
+ domains is in practice reduced from the RFC 822 set, by restrictions
+ imposed by domain conventions and policy [10], and by the EBNF
+ definition in SMTP.
+
+ A generic 822.address consists of a 822.local-part and a sequence of
+ 822.domains (e.g., <@domain1,@domain2:user@domain3>). All except the
+ 822.domain associated with the 822.local-part (domain3 in this case)
+ are considered to specify routing within the RFC 822 world, and will
+ not be interpreted by the gateway (although they may have identified
+ the gateway from within the RFC 822 world).
+
+ The 822.domain associated with the 822.local-part identifies the
+ gateway from within the RFC 822 world. This final 822.domain may be
+ used to determine some number of OR Address attributes, where this
+ does not conflict with the first role. RFC 822 routing to gateways
+ will usually be set up to facilitate the 822.domain being used for
+ both purposes.
+
+ In the case that there is no applicable equivalence mapping, all of
+ the X.400 address is encoded in the 822.local-part and the 822.domain
+ identifies the gateway to which the message is being sent. This
+ technique may be used by the RFC 822 user for any X.400 address where
+ the equivalence mapping is not known.
+
+ In the case that there is an applicable MCGAM, the maximum number of
+ attributes are encoded in the 822.domain. The remaining attributes
+ are encoded on the LHS, using the EBNF.std-or-address syntax. For
+ example:
+
+ /I=J/S=Linnimouth/GQ=5/@Marketing.Widget.COM
+
+ encodes the MTS.ORAddress consisting of:
+
+
+ MTS.CountryName = "TC"
+ MTS.AdministrationDomainName = "BTT"
+ MTS.OrganizationName = "Widget"
+ MTS.OrganizationalUnitNames.value = "Marketing"
+ MTS.PersonalName.surname = "Linnimouth"
+
+
+
+Kille Standards Track [Page 47]
+
+RFC 2156 MIXER January 1998
+
+
+ MTS.PersonalName.initials = "J"
+ MTS.PersonalName.generation-qualifier = "5"
+
+ on the basis of an MCGAM pair between:
+
+ Domain: Widget.COM
+ OR Address: O="Widget", ADMD="BTT", C="TC"
+
+ Given the OR address, the domain Widget.COM is determined from the
+ equivalence mapping and the next component is determined
+ algorithmically to give Marketing.Widget.COM. The remaining
+ attributes are encoded on the LHS in 822.local-part.
+
+ There is a further mechanism to simplify the encoding of common
+ cases, where the only attributes to be encoded on the LHS are (non-
+ Teletex) Personal Name attributes which comply with the restrictions
+ of 4.1.2. To achieve this, the 822.local-part shall be encoded as
+ EBNF.encoded-pn. In the previous example, if the GenerationQualifier
+ was not present in the OR Address, it would map with the RFC 822
+ address: J.Linnimouth@Marketing.Widget.COM.
+
+ From the standpoint of the RFC 822 Message Transfer System, the
+ domain specification is used to route the message in the standard
+ manner. The standard domain mechanisms are used to select
+ appropriate gateways for the corresponding OR Address space. It is
+ the responsibility of the management that defines the equivalence
+ mapping to define routing in the manner which will enable the message
+ to be delivered.
+
+4.3.2. RFC 822 encoded in X.400
+
+ The previous section showed a mapping from X.400 to RFC 822. In the
+ case where the mapping was symmetrical and based on the equivalence
+ mapping, this has also shown how RFC 822 is encoded in the X.400.
+ This equivalence cannot be used for all RFC 822 addresses.
+
+ The general case is mapped by use of domain defined attributes. A
+ (Printable String) Domain defined type "RFC-822" is defined. The
+ associated attribute value is an ASCII string encoded according to
+ Section 3.3.3 of this specification. The interpretation of the ASCII
+ string follows RFC 822, and RFC 1123 [10,16]. Domains shall always
+ be fully qualified.
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 48]
+
+RFC 2156 MIXER January 1998
+
+
+ Other OR Address attributes will be used to identify a context in
+ which the OR Address will be interpreted. This might be a Management
+ Domain, or some part of a Management Domain which identifies a
+ gateway MTA. For example:
+
+ C = "GB"
+ ADMD = "GOLD 400"
+ PRMD = "UK.AC"
+ O = "UCL"
+ OU = "CS"
+ "RFC-822" = "Jimmy(a)WIDGET-LABS.CO.UK"
+
+ OR
+
+ C = "TC"
+ ADMD = "Wizz.mail"
+ PRMD = "42"
+ "rfc-822" = "postel(a)venera.isi.edu"
+
+ Note in each case the PrintableString encoding of "@" as "(a)". In
+ the second example, the "RFC-822" domain defined attribute is
+ interpreted everywhere within the (Private) Management Domain. In
+ the first example, further attributes are needed within the
+ Management Domain to identify a gateway. Thus, this scheme can be
+ used with varying levels of Management Domain co-operation.
+
+ There is a limit of 128 characters in the length of value of a domain
+ defined attribute, and an OR Address can have a maxmimum of four
+ domain defined attributes. Where the printable string generated from
+ the RFC 822 address exceeds 128 characters, additional domain defined
+ attributes are used to enable up to 512 characters to be encoded.
+ These attributes shall be filled completely before the next one is
+ started. The (Printable String) DDA keywords are: RFC822C1;
+ RFC822C2; RFC822C3. Longer addresses cannot be encoded.
+
+ MIXER defines a representation of RFC 822 addresses in printable
+ string domain defined attributes. Teletex domain defined attributes
+ with a key of RFC-822, RFC822C1; RFC822C2; RFC822C3 shall not be
+ generated. This is for backwards compatibility reasons.
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 49]
+
+RFC 2156 MIXER January 1998
+
+
+ Reception of these attributes in the manner defined below is
+ mandatory. This is to allow the possibility for future versions of
+ MIXER to allow generation of teletex domain defined attributes.
+ Where the values of all of these teletex domain defined attributes
+ are printable string characters, they shall be interpreted in the
+ same way as the printable string domain defined attributes. If this
+ is not the case, the printable string encoding translation shall be
+ omitted. If both teletex and printable string attributes are
+ present, this is valid if and only if they represent exactly the same
+ RFC 822 address.
+
+4.3.3. Component Ordering
+
+ In most cases, ordering of OR Address components is not significant
+ for the mappings specified. However, Organizational Units (printable
+ string and teletex forms) and Domain Defined Attributes are specified
+ as SEQUENCE in MTS.ORAddress, and so their order may be significant.
+ This specification needs to take account of this:
+
+ 1. To allow consistent mapping into the domain hierarchy
+
+ 2. To ensure preservation of order over multiple mappings.
+
+ There are three places where an order is specified:
+
+ 1. The text encoding (std-or-address) of MTS.ORAddress as used
+ in the local-part of an RFC 822 address. An order is needed
+ for those components which may have multiple values
+ (Organizational Unit, and Domain Defined Attributes). When
+ generating an 822.std-or-address, components of a given type
+ shall be in hierarchical order with the most significant
+ component on the RHS (right hand side or domain part). If
+ there is an Organization Attribute, it shall be to the right
+ of any Organizational Unit attributes. These requirements
+ are for the following reasons:
+
+ - Alignment to the hierarchy of other components in RFC
+ 822 addresses (thus, Organizational Units will appear
+ in the same order, whether encoded on the RHS or LHS).
+
+ - Backwards compatibility with RFC 987/1026.
+
+ - To ensure that gateways generate consistent addresses.
+ This is both to help end users, and to generate
+ identical message ids.
+
+
+
+
+
+
+Kille Standards Track [Page 50]
+
+RFC 2156 MIXER January 1998
+
+
+ Further, it is recommended that all other attributes are generated
+ according to this ordering, so that all attributes so encoded follow
+ a consistent hierarchy. When generating 822.msg-id, this order shall
+ be followed.
+
+ 2. For the Organizational Units (OU) in MTS.ORAddress, the
+ first OU in the SEQUENCE is the most significant, as specified
+ in X.400.
+
+ 3. For the Domain Defined Attributes in MTS.ORAddress, the
+ First Domain Defined Attribute in the SEQUENCE is the most
+ significant.
+
+ Note that although this ordering is mandatory for this mapping, MIXER
+ does not give additional implications on the ordering significance
+ within X.400.
+
+4.3.4. RFC 822 -> X.400 Basic Address Mapping
+
+ There are two basic cases:
+
+ 1. X.400 addresses encoded in RFC 822. This will also include
+ RFC 822 addresses which are given reversible encodings.
+
+ 2. "Genuine" RFC 822 addresses.
+
+ The mapping shall proceed as follows, by first assuming case 1).
+
+ STAGE I.
+
+ 1. If the 822-address is not of the form:
+
+ local-part "@" domain
+
+ take the domain which will be routed on and apply step 2 of stage
+ 1 to derive (a possibly null) set of attributes. Then go to stage
+ II.
+
+ The gateway may reduce a source route address to this form by
+ removal of all but the last domain. In terms of the design
+ intentions of RFC 822, this would be an incorrect action. (Note
+ that an address of the form local%part@domain is not a source
+ route). However, in most cases, it will provide a better service
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 51]
+
+RFC 2156 MIXER January 1998
+
+
+ to the end user, and is in line with the Internet Host
+ Requirements. This is a reflection on the common inappropriate
+ use of source routing in RFC 822 based systems, despite the
+ discussion in the Host Requirements [10]. Either approach, or
+ the intermediate approach of stripping only domain references
+ which reference the local gateway are conformant to this
+ specification.
+
+ 2. If the 822.local-part uses the 822.quoted-string encoding,
+ remove this quoting. If the resulting unquoted
+ 822.local-part has leading space, trailing space, or two
+ adjacent spaces go to stage II.
+
+ 3. If the unquoted 822.local-part contains any characters not
+ in PrintableString, "{", "}", "*", and "$", go to stage II.
+
+ 4. Parse the (unquoted) 822.local-part according to the EBNF
+ EBNF.std-or-address-input. Checking of upper bounds shall
+ not be done at this point. If this parse fails, parse the
+ local-part according to the EBNF EBNF.encoded-pn. If this
+ parse fails, go to stage II. The result is a set of
+ type/value pairs.
+
+ 5. Associate the EBNF.attribute-value syntax (determined from
+ the identified type) with each value, and check that it
+ conforms. If not, go to stage II.
+
+ 6. If the set of attributes forms a valid X.400 address,
+ according to X.402, then go to step 9. All forms of X.400
+ address are allowed at this stage. Steps 7-8 default
+ attributes for certain types of OR Address.
+
+ 7. If the set of attributes cannot form a mnemonic form of
+ X.400 address after addition of attributes which may be
+ derived from the EBNF.domain (C, ADMD, PRMD, O, OU), go to
+ stage II.
+
+ 8. Attempt to parse EBNF.domain as:
+
+ *( domain-syntax "." ) known-domain
+
+ Where EBNF.known-domain is the longest possible match in the set
+ of MCGAMs being used by the gateway (described in Section 4.2).
+ EBNF.domain-syntax is the restricted domain syntax defined in
+ Section 4.2, to which all of the domain components shall conform
+ for the parse to be successful. If this fails, go to stage II.
+
+
+
+
+
+Kille Standards Track [Page 52]
+
+RFC 2156 MIXER January 1998
+
+
+ For each component, systematically allocate the attribute
+ implied by each EBNF.domain-syntax component in the order: C,
+ ADMD, PRMD, O, OU. Note that if the MCGAM used identifies an
+ "omitted attribute", then this attribute shall be omitted in the
+ systematic allocation. If this new component exceed an upper
+ bound (ADMD: 16; PRMD: 16; O: 64; OU: 32) or it would lead to
+ more than four OUs, then go to stage II with the attributes
+ derived.
+
+ The attributes derived in this step (referred to as RHS
+ attributes) are merged with the ones derived from the LHS (step
+ 6). In some cases, not all of the RHF attributes are used. LHS
+ attributes are all used. C will not be in the LHS attributes.
+ If ADMD is in the LHS attributes, only C is taken from the RHS
+ attributes. If PRMD is in the LHS attributes, C and ADMD are
+ taken from the RHS attributes. If O is on the LHS, C, ADMD and
+ PRMD (if present) are taken from the RHS attributes. In other
+ cases all RHS attributes are taken.
+
+ 9. Ensure that the set of attributes conforms both to the
+ MTS.ORAddress specification and to the restrictions on this
+ set given in X.400, and that no upper bounds are exceeded
+ for any attribute. If not go to stage II.
+
+ 10. Build the OR Address from this information.
+
+ STAGE II.
+
+ This will only be reached if the RFC 822 EBNF.822-address is not a
+ valid X.400 encoding. This implies that the address refers to a
+ recipient on an RFC 822 system or that the encoding of the address is
+ invalid. Such addresses shall be encoded in an X.400 OR Address
+ using a domain defined attribute.
+
+ 1. Convert the EBNF.822-address to PrintableString, as
+ specified in Chapter 3.
+
+ 2. Generate the "RFC-822" domain defined attribute from this
+ string.
+
+ 3. Build the rest of the OR Address in the manner described
+ below.
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 53]
+
+RFC 2156 MIXER January 1998
+
+
+ It is not always possible to encode the domain defined attribute
+ due to length restrictions. If the limit is exceeded by a
+ mapping at the MTS level, then the gateway shall reject the
+ message in question. If this occurs at the IPMS level, then the
+ action will depend on the policy being taken for IPMS encoding,
+ which is discussed in Section 5.1.3.
+
+ Use Stage I, step 8, to generate a set of attributes to build the
+ remainder of the address. The administrative equivalence of the
+ mappings will ensure correct routing through X.400 to a gateway
+ back to RFC 822.
+
+ If Stage I, step 8 does not generate a set of attributes or
+ the address generated is unroutable, the remained of the OR
+ address is generated as follows. The remainder of the OR address
+ effectively identifies a source route to a gateway from the X.400
+ side. There are three cases, which are handled differently:
+
+ SMTP Return Address
+ This shall be set up so that errors are returned through the
+ same gateway. Therefore, the OR Address of the local
+ gateway shall be used.
+
+ IPMS Addresses
+ These are optimised for replying. In general, the message
+ may end up anywhere within the X.400 world, and so this
+ optimisation identifies a gateway appropriate for the RFC
+ 822 address being converted. The 822.domain to which the
+ address would be routed is used to select an appropriate
+ gateway.
+
+ In this case, it may be useful to use a non-local gateway,
+ which will optimise the reply address. This information
+ may be looked up in gateway tables in a manner equivalent to
+ the MCGAM lookup. Because of the similarity of lookup, the
+ three MCGAM lookup mechanisms (table, X.500, DNS) are also
+ available to look up this information. This information is
+ local, and a gateway may insert any appropriate (gateway)
+ OR Address. The longest possible match on the 822.domain
+ defines which gateway to use. This mechanism is used for
+ any part of the X.400 namespace for which it is desirable to
+ identify a preferred X.400 gateway in order to optimise
+ routing.
+
+ If no mapping is found for the 822.domain, a default value
+ (typically that of the local gateway) is used. It is never
+ appropriate to ignore the locally used MCGAMs.
+
+
+
+
+Kille Standards Track [Page 54]
+
+RFC 2156 MIXER January 1998
+
+
+ SMTP Recipient
+ As the RFC 822 and X.400 worlds are in principle fully
+ connected, there is no technical reason for this situation
+ to occur. In practice, this is not the case. In some cases,
+ routing may be configured to use X.400 to connect an RFC 822
+ island to the Internet. The information that this part of
+ the domain space is to be routed by X.400 rather than
+ remaining within the RFC 822 world shall be configured
+ privately into the gateway in question. X.400 routing shall
+ not make use of the presence of the RFC-822 DDA to perform
+ X.400 routing. The OR address shall then be generated in
+ the same manner as for an IPMS address, using the locally
+ available MCGAMs. It is to support this case that the
+ definition of the global domain to gateway mapping is
+ important, as the use of this mapping will lead to a remote
+ X.400 address, which can be routed by X.400 routing
+ procedures. The information in this mapping shall not be
+ used as a basis for deciding to convert a message from RFC
+ 822 to X.400.
+
+ Three examples are given, neither of which has applicable MCGAMs.
+
+ Example 1: (Address not in "localpart" "@" "domainpart")
+
+ @relay.co.uk:userb@host2
+
+ maps to
+
+ c=gb; a= ; p=uk.ac; o=mr; dd.rfc-822=(a)relay.co.uk:userb(a)host2;
+
+ Example 2: (Address with non printablestring characters)
+
+ Tom_Harris@cs.widget.com
+
+ maps to
+
+ c=us; a=MCI; P=relay; dd.rfc-822=Tom(u)Harris(a)cs.widget.com;
+
+
+ Example 3: (Address with an entry for alter.net into the OR Address
+ of Preferred Gateway table, pointing to c=gb; A=BTglobal; P=relay)
+
+ postmaster@UK.alter.net
+
+ maps to
+
+ c=gb; a=BTglobal; P=relay; dd.rfc-822=postmaster(a)UK.alter.net;
+
+
+
+
+Kille Standards Track [Page 55]
+
+RFC 2156 MIXER January 1998
+
+
+4.3.4.1. Heuristic for mapping RFC 822 to X.400
+
+ The following heuristic, which relates to ordering of address
+ components, may be used when mapping from RFC 822 to X.400. The
+ ordering of attributes may be inverted or mixed, and so the following
+ heuristics may be applied:
+
+ If there is an Organization attribute to the left of any Org Unit
+ attribute, assume that the hierarchy is inverted. This is to
+ facilitate the situation where a user has input the attributes in
+ reverse hierarchical order. To do this the gateway shall first
+ map according to the order defined in 4.3.3. If this mapping
+ generates an address which X.400 address verification shows to be
+ invalid, this heuristic may be applied as an alternative to
+ immediate rejection of the address.
+
+4.3.5. X.400 -> RFC 822 Basic Address Mapping
+
+ There are two basic cases:
+
+ 1. RFC 822 addresses encoded in X.400.
+
+ 2. "Genuine" X.400 addresses. This may include symmetrically
+ encoded RFC 822 addresses.
+
+ When an MTS Recipient OR Address is interpreted, gatewaying will be
+ selected if there is a single "RFC-822" domain defined attribute
+ present. In this case, use mapping A and in other cases, use mapping
+ B.
+
+ RFC 1327 specified that this shall only be done when the gateway
+ identfied is local or otherwise known, and identified the approach
+ specified here as a pragmatic option. Experience has shown that this
+ is effective in practice, despite theoretical problems.
+
+ If a gateway wishes to make a mapping in a manner similar to RFC
+ 1327, but does not wish for this global interpretation (e.g., to
+ support an RFC 822 local system, which does not use global
+ addressing), then it may choose a private domain defined attribute,
+ different to "RFC-822". An RFC 1327 gateway might be configurable to
+ operate in this manner.
+
+ Mapping A
+
+ 1. Map the domain defined attribute value to ASCII, as defined
+ in Chapter 3, and drop all other attributes.
+
+
+
+
+
+Kille Standards Track [Page 56]
+
+RFC 2156 MIXER January 1998
+
+
+ Mapping B
+
+ This is used for X.400 addresses which do not use the explicit RFC
+ 822 encoding.
+
+ 1. For all string encoded attributes, remove any leading or
+ trailing spaces, and replace adjacent spaces with a single
+ space.
+
+ The only attribute which is permitted to have zero length is
+ the ADMD. This shall be mapped onto a single space.
+
+ These transformations are for lookup only. If an
+ EBNF.std-or-address mapping is used as in 4), then the
+ original values shall be used.
+
+ 2. The numeric country codes may be mapped to the two letter
+ values (as defined in ISO 3166). Global mappings are
+ usually only defined in terms of the ISO 3166 codes.
+
+ 3. Noting the hierarchy specified in 4.3.1 and including
+ omitted attributes, determine the maximum set of attributes
+ which have an associated domain specification in the local
+ set of MCGAMs. If no match is found, allocate the domain as
+ described below, and go to step 5. The default domain to be
+ used is the specification of the local gateway. A gateway
+ may use other domains according to private mapping tables or
+ heuristics. For example, it may choose a domain which it
+ knows to provide a free gateway service to the mapped
+ address.
+
+ In cases where the address refers to an X.400 UA, it is
+ important that the generated domain will correctly route to
+ a gateway. In general, this is achieved by carefully co-
+ ordinating RFC 822 routing with the definition of the
+ MCGAMs, as there is no easy way for the gateway to make this
+ check. One rule that shall be used is that domains with
+ only one component will not route to a gateway. If the
+ generated domain does not route correctly, the address is
+ treated as if no match is found.
+
+ The gateway may also make use of a mapping equivalent to the
+ MCGAM mapping to determine the domain to use. This mapping
+ is done from the OR Address hierarchy. This is not a
+ global mapping, but is a routing style mapping from the OR
+ Address space, to enable a best choice domain to be
+ inserted. This mapping is supported by the three MCGAM
+ lookup mechanisms.
+
+
+
+Kille Standards Track [Page 57]
+
+RFC 2156 MIXER January 1998
+
+
+ 4. The mapping identified in 3) gives a domain, and an OR
+ address prefix. Follow the hierarchy: C, ADMD, PRMD, O, OU.
+ For each successive component below the OR address prefix, which
+ conforms to the syntax EBNF.domain-syntax (as defined in 4.3.1),
+ allocate the next subdomain. At least one attribute of the
+ X.400 address shall not be mapped onto subdomain, as 822.local-
+ part cannot be null. If there are omitted attributes in the OR
+ address prefix, these will have correctly and uniquely mapped to
+ a domain component. Where there is an attribute omitted below
+ the prefix, all attributes remaining in the OR address shall be
+ encoded on the LHS. This is to ensure a reversible mapping. For
+ example, if there is an address /S=XX/O=YY/ADMD=A/C=NN/ and a
+ mapping for /ADMD=A/C=NN/ is used, then /S=XX/O=YY/ is encoded
+ on the LHS.
+
+ 5. If the address contains any attribute not used in mnemonic
+ form, then all of the attributes in the address shall be encoded
+ on the LHS in EBNF.std-or-address syntax, as described below.
+
+ For addresses of mnemonic form, if the remaining components are
+ personal-name components, conforming to the restrictions of
+ 4.2.1, then EBNF.encoded-pn is derived to form 822.local-part.
+ In other cases the remaining components are simply encoded as
+ 822.local-part using the EBNF.std-or-address syntax. If
+ necessary, the 822.quoted-string encoding is used. The
+ following are examples of legal quoting: "a b".c@x; "a b.c"@x.
+ Either form may be generated. Generation of the latter style is
+ strongly recommended.
+
+ Four examples are given.
+
+ Example 1: (Address with missing X.400 elements and no specific
+ mapping rule for "o=sales; a=Master400; C=it", where a mapping exists
+ for a=master400; C=it;)
+
+ S=Support; O=sales; A=Master400; C=it;
+
+ maps to
+
+ /S=Support/o=sales/@Master400.it
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 58]
+
+RFC 2156 MIXER January 1998
+
+
+ Example 2: (Address with illegal characters in RFC822 generated
+ domain if default hierarchical translation (specific mapping rule is
+ existing for c=fr; a=atlas; p=autoroutes) is used)
+
+ S=renseignements; O=Region Parisienne; P=autoroutes; A=atlas; C=fr;
+
+ maps to
+
+ "/S=renseignements/o=Region Parisienne/"@autoroutes.fr
+
+
+ Example 3: (Address containing elements not mappable into RFC822
+ local part)
+
+ S=Rossi; DD.cap=20100; DD.ph1=Via Larga 11; DDA.city=Milano;
+ A=PtPostel; C=it;
+
+ maps to
+
+ "/DD.cap=20100/DD.ph1=Via Larga
+ 11/DD.city=Milano/S=Rossi/"@ptpostel.it
+
+
+ Example 4: (Address with an entry for A=ATT; C=us; into the domain
+ of Preferred Gateway table, pointing to attmail.com)
+
+ G=Andy; S=Wharol; O=MMNY; A=ATT; C=us;
+
+ maps to
+
+ /G=Andy/S=Wharol/O=MMNY@attmail.com
+
+4.4. Repeated Mappings
+
+ There are two types of repeated mapping:
+
+ 1. A recursive mapping, where the repeat is within one gateway
+
+ 2 A source route, where the repetition occurs across multiple
+ gateways
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 59]
+
+RFC 2156 MIXER January 1998
+
+
+4.4.1. Recursive Mappings
+
+ It is possible to supply an address which is recursive at a single
+ gateway. For example:
+
+ C = "XX"
+ ADMD = "YY"
+ O = "ZZ"
+ "RFC-822" = "Smith(a)ZZ.YY.XX"
+
+ This is mapped first to an RFC 822 address, and then back to the
+ X.400 address:
+
+ C = "XX"
+ ADMD = "YY"
+ O = "ZZ"
+ Surname = "Smith"
+
+ In some situations this type of recursion may be frequent. It is
+ important where this occurs, that no unnecessary protocol conversion
+ occurs. This will minimise loss of service.
+
+4.4.2. Source Routes
+
+ The mappings defined are symmetrical and reversible across a single
+ gateway. The symmetry is particularly useful in cases of (mail
+ exploder type) distribution list expansion. For example, an X.400
+ user sends to a list on an RFC 822 system which he belongs to. The
+ received message will have the originator and any 3rd party X.400 OR
+ Addresses in correct format (rather than doubly encoded). In cases
+ (X.400 or RFC 822) where there is common agreement on gateway
+ identification, then this will apply to multiple gateways.
+
+ When a message traverses multiple gateways, the mapping will always
+ be reversible, in that a reply can be generated which will correctly
+ reverse the path. In many cases, the mapping will also be
+ symmetrical, which will appear clean to the end user. For example,
+ if countries "AB" and "XY" have RFC 822 networks, but are
+ interconnected by X.400, the following may happen: The originator
+ specifies:
+
+ Joe.Soap@Widget.PTT.XY
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 60]
+
+RFC 2156 MIXER January 1998
+
+
+ This is routed to a gateway, which generates:
+
+ C = "XY"
+ ADMD = "PTT"
+ PRMD = "Griddle MHS Providers"
+ Organization = "Widget Corporation"
+ Surname = "Soap"
+ Given Name = "Joe"
+
+ This is then routed to another gateway where the mapping is reversed
+ to give:
+
+ Joe.Soap@Widget.PTT.XY
+
+ Here, use of the gateway is transparent.
+
+ Mappings will only be symmetrical where mapping equivalences are
+ defined. In other cases, the reversibility is more important, due to
+ the (far too frequent) cases where RFC 822 and X.400 services are
+ partitioned.
+
+ The syntax may be used to source route. THIS IS STRONGLY
+ DISCOURAGED. For example:
+
+ X.400 -> RFC 822 -> X.400
+
+ C = "UK"
+ ADMD = "Gold 400"
+ PRMD = "UK.AC"
+ "RFC-822" = "/PN=Duval/DD.Title=Manager/(a)Inria.ATLAS.FR"
+
+ This will be sent to an arbitrary UK Academic Community gateway by
+ X.400. Then it will be sent by JNT Mail to another gateway
+ determined by the domain Inria.ATLAS.FR (FR.ATLAS.Inria). This will
+ then derive the X.400 OR Address:
+
+ C = "FR"
+ ADMD = "ATLAS"
+ PRMD = "Inria"
+ PN.S = "Duval"
+ "Title" = "Manager"
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 61]
+
+RFC 2156 MIXER January 1998
+
+
+ Similarly:
+
+ RFC 822 -> X.400 -> RFC 822
+
+ "/RFC-822=jj(a)seismo.css.gov/PRMD=AC/ADMD=BT/C=GB/"@monet.berkeley.edu
+
+ This will be sent to monet.berkeley.edu by RFC 822, then to the
+ AC PRMD by X.400, and then to jj@seismo.css.gov by RFC 822.
+
+4.5. Directory Names
+
+ Directory Names are an optional part of OR Name, along with OR
+ Address. The RFC 822 addresses are mapped onto the OR Address
+ component. As there is no functional mapping for the Directory Name
+ on the RFC 822 side, a textual mapping is used. There is no
+ requirement for reversibility in terms of the goals of this
+ specification. There may be some loss of functionality in terms of
+ third party recipients where only a directory name is given, but this
+ seems preferable to the significant extra complexity of adding a full
+ mapping for Directory Names.
+
+ The Directory Name shall be represented within an RFC 822 comment
+ using the comaptible formats of RFC 1484 or RFC 1485. It is
+ recommended that the directory string format of RFC 1485 is used
+ [24]. The User Friendly Name form of RFC 1484 may be used [25].
+
+4.6. MTS Mappings
+
+ The basic mappings at the MTS level are:
+
+ 1) SMTP originator ->
+ MTS.PerMessageSubmissionFields.originator-name
+ MTS.OtherMessageDeliveryFields.originator-name ->
+ SMTP originator
+
+ 2) SMTP recipient ->
+ MTS.PerRecipientMessageSubmissionFields
+ MTS.OtherMessageDeliveryFields.this-recipient-name ->
+ SMTP recipient
+
+ SMTP recipients and return addresses are encoded as EBNF.822-address.
+
+ The MTS Originator is always encoded as MTS.OriginatorName, which
+ maps onto MTS.ORAddressAndOptionalDirectoryName, which in turn maps
+ onto MTS.ORName.
+
+
+
+
+
+
+Kille Standards Track [Page 62]
+
+RFC 2156 MIXER January 1998
+
+
+4.6.1. RFC 822 -> X.400 MTS Mappings
+
+ From the SMTP Originator, use the basic ORAddress mapping, to
+ generate MTS.PerMessageSubmissionFields.originator-name (MTS.ORName),
+ without a DirectoryName.
+
+ For recipients, the following settings are made for each component of
+ MTS.PerRecipientMessageSubmissionFields.
+
+ recipient-name
+ This is derived from the SMTP recipient by the basic ORAddress
+ mapping.
+
+ originator-report-request
+ This may either be set to "delivery-report", or set according to
+ SMTP extensions as set out in Appendix A.
+
+ explicit-conversion
+ This optional component is omitted, as this service is not needed
+
+ extensions
+ The default value (no extensions) is used
+
+4.6.2. X.400 -> RFC 822 MTS Mappings
+
+ The basic functionality is to generate the SMTP originator and
+ recipients. There is information present on the X.400 side, which
+ cannot be mapped into analogous SMTP services. For this reason, new
+ RFC 822 fields are added for the MTS Originator and Recipients. The
+ information discarded at the SMTP level will be present in these
+ fields. In some cases a (positive) delivery report will be generated.
+
+4.6.2.1. SMTP Mappings
+
+ Use the basic ORAddress mapping, to generate the SMTP originator
+ (return address) from MTS.OtherMessageDeliveryFields.originator-name
+ (MTS.ORName). If MTS.ORName.directory-name is present, it is
+ discarded. (Note that it will be presented to the user, as described
+ in 4.6.2.2).
+
+ The mapping uses the MTA level information, and maps each value of
+ MTA.PerRecipientMessageTransferFields.recipient-name, where the
+ responsibility bit is set, onto an SMTP recipient.
+
+ Note:The SMTP recipient is conceptually generated from
+ MTS.OtherMessageDeliveryFields.this-recipient-name. This is done
+ by taking MTS.OtherMessageDeliveryFields.this-recipient-name, and
+ generating an SMTP recipient according to the basic ORAddress
+
+
+
+Kille Standards Track [Page 63]
+
+RFC 2156 MIXER January 1998
+
+
+ mapping, discarding MTS.ORName.directory-name if present.
+ However, if this model was followed exactly, there would be no
+ possibility to have multiple SMTP recipients on a single message.
+ This is unacceptable, and so layering is violated.
+
+4.6.2.2. Generation of RFC 822 Headers
+
+ Not all per-recipient information can be passed at the SMTP level.
+ For this reason, two new RFC 822 headers are created, in order to
+ carry this information to the RFC 822 recipient. These fields are
+ "X400-Originator:" and "X400-Recipients:".
+
+ The "X400-Originator:" field is set to the same value as the SMTP
+ originator. In addition, if
+ MTS.OtherMessageDeliveryFields.originator-name (MTS.ORName) contains
+ MTS.ORName.directory-name then this Directory Name shall be
+ represented in an 822.comment.
+
+ Recipient names, taken from each value of
+ MTS.OtherMessageDeliveryFields.this-recipient-name and
+ MTS.OtherMessageDeliveryFields.other-recipient-names are made
+ available to the RFC 822 user by use of the "X400-Recipients:" field.
+ By taking the recipients at the MTS level, disclosure of recipients
+ will be dealt with correctly. However, this conflicts with a desire
+ to optimise mail transfer. There is no problem when disclosure of
+ recipients is allowed. Similarly, there is no problem if there is
+ only one RFC 822 recipient, as the "X400-Recipients" field is only
+ given one address.
+
+ There is a problem if there are multiple RFC 822 recipients, and
+ disclosure of recipients is prohibited. In this case, discard the
+ per-recipient information.
+
+ If any MTS.ORName.directory-name is present, it shall be represented
+ in an 822.comment.
+
+ If MTS.OtherMessageDeliveryFields.orignally-intended-recipient-name
+ is present, then there has been redirection, or there has been
+ distribution list expansion. Distribution list expansion is a per-
+ message option, and the information associated with this is
+ represented by the "DL-Expansion-History:" field described in Section
+ 5.3.6. Other information is represented in an 822.comment associated
+ with MTS.OtherMessageDeliveryFields.this-recipient-name, The message
+ may be delivered to different RFC 822 recipients, and so several
+ addresses in the "X400-Recipients:" field may have such comments.
+ The non-commented recipient is the RFC 822 recipient. The EBNF of the
+ comment is defined by redirect-comment.
+
+
+
+
+Kille Standards Track [Page 64]
+
+RFC 2156 MIXER January 1998
+
+
+ redirect-comment = redirect-first *( redirect-subsequent )
+
+ redirect-first = "Originally To:" mailbox "Redirected on"
+ date-time "To:" redirection-reason
+
+ redirect-subsequent = mailbox "Redirected Again on"
+ date-time "To:" redirection-reason
+
+ redirection-history-item = "intended recipient" mailbox
+ "redirected to" redirection-reason
+ "on" date-time
+
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+ / "Directory Look Up"
+ / "Alias"
+
+ It is derived from
+ MTA.PerRecipientMessageTransferFields.extension.redirection-history.
+ The values are taken from the X.400(92) Implementor's guide (Version
+ 13, July 1995). The first three values are in X.400(88). The
+ fourth value is in X.400(92), but has the name "recipient-directory-
+ substitution-alternate-recipient". An example of this with two
+ redirects is:
+
+ X400-Recipients: postmaster@widget.com (Originally To:
+ sales-manager@sales.widget.com
+ Redirected on Thu, 30 May 91 14:39:40 +0100
+ To: Originator Requested Alternate Recipient
+ postmaster@sales.widget.com
+ Redirected Again on Thu, 30 May 91 14:41:20 +0100
+ To: Recipient MD Assigned Alternate Recipient)
+
+ In addition the following per-recipient services from
+ MTS.OtherMessageDeliveryFields.extensions are represented in comments
+ if they are used. None of these services can be provided on RFC 822
+ networks, and so in general these will be informative strings
+ associated with other MTS recipients. In some cases, string values
+ are defined. For the remainder, the string value shall be chosen by
+ the implementor. If the parameter has a default value, then no
+ comment shall be inserted when the parameter has that default value.
+
+ requested-delivery-method
+
+ physical-forwarding-prohibited
+ "(Physical Forwarding Prohibited)".
+
+
+
+Kille Standards Track [Page 65]
+
+RFC 2156 MIXER January 1998
+
+
+ physical-forwarding-address-request
+ "(Physical Forwarding Address Requested)".
+
+ physical-delivery-modes
+
+ registered-mail-type
+
+ recipient-number-for-advice
+
+ physical-rendition-attributes
+
+ physical-delivery-report-request
+ "(Physical Delivery Report Requested)".
+
+ proof-of-delivery-request
+ "(Proof of Delivery Requested)".
+
+4.6.2.3. Delivery Report Generation
+
+ If SMTP is used, the behaviour is specified in Appendix A. In other
+ cases, if MTA.PerRecipientMessageTransferFields.per-recipient-
+ indicators requires a positive delivery notification, this shall be
+ generated by the gateway. Supplementary Information shall be set to
+ indicate that the report is gateway generated. This information
+ shall include the name of the gateway generating the report.
+
+4.6.3. Message IDs (MTS)
+
+ A mapping from 822.msg-id to MTS.MTSIdentifier is defined. The
+ reverse mapping is not needed, as MTS.MTSIdentifier is always mapped
+ onto new RFC 822 fields. The value of MTS.MTSIdentifier.local-part
+ will facilitate correlation of gateway errors.
+
+ To map from 822.msg-id, apply the standard mapping to 822.msg-id, in
+ order to generate an MTS.ORAddress. The Country, ADMD, and PRMD
+ components of this are used to generate MTS.MTSIdentifier.global-
+ domain-identifier. MTS.MTSIdentifier.local-identifier is set to the
+ 822.msg-id, including the braces "<" and ">". If this string is
+ longer than MTS.ub-local-id-length (32), then it is truncated to this
+ length.
+
+ The reverse mapping is not used in this specification. It would be
+ applicable where MTS.MTSIdentifier.local-identifier is of syntax
+ 822.msg-id, and it algorithmically identifies MTS.MTSIdentifier.
+
+
+
+
+
+
+
+Kille Standards Track [Page 66]
+
+RFC 2156 MIXER January 1998
+
+
+4.7. IPMS Mappings
+
+ All RFC 822 addresses are assumed to use the 822.mailbox syntax.
+ This includes all 822.comments associated with the lexical tokens of
+ the 822.mailbox. In the IPMS OR Names are encoded as MTS.ORName.
+ This is used within the IPMS.ORDescriptor, IPMS.RecipientSpecifier,
+ and IPMS.IPMIdentifier. An asymmetrical mapping is defined between
+ these components.
+
+4.7.1. RFC 822 -> X.400
+
+ To derive IPMS.ORDescriptor from an RFC 822 address.
+
+ 1. Take the address, and extract an EBNF.822-address. Any
+ source routing shall be removed. This can be derived trivially
+ from either the 822.addr-spec or 822.route-addr syntax. This is
+ mapped to MTS.ORName as described above, and used as
+ IMPS.ORDescriptor.formal-name.
+
+ 2. A string shall be built consisting of (if present):
+
+ - The 822.phrase component if the 822.address is an
+ 822.phrase 822.route-addr construct.
+
+ - Any 822.comments, in order, retaining the parentheses.
+
+ This string is then encoded into T.61 using a human oriented
+ mapping (as described in Section 3.5). If the string is not
+ null, it is assigned to IPMS.ORDescriptor.free-form-name.
+
+3. IPMS.ORDescriptor.telephone-number is omitted.
+
+ If IPMS.ORDescriptor is being used in IPMS.RecipientSpecifier,
+ IPMS.RecipientSpecifier.reply-request and
+ IPMS.RecipientSpecifier.notification-requests are set to default
+ values (false and none).
+
+ If the 822.group construct is present, any included 822.mailbox is
+ encoded as above to generate a separate IPMS.ORDescriptor. The
+ 822.group is mapped to T.61 (as described in Section 3.5), and a
+ IPMS.ORDescriptor with only an free-form-name component built from
+ it.
+
+4.7.2. X.400 -> RFC 822
+
+ Mapping from IPMS.ORDescriptor to RFC 822 address. In the basic
+ case, where IPMS.ORDescriptor.formal-name is present, proceed as
+ follows.
+
+
+
+Kille Standards Track [Page 67]
+
+RFC 2156 MIXER January 1998
+
+
+ 1. Encode IPMS.ORDescriptor.formal-name (MTS.ORName) as
+ EBNF.822-address.
+
+ 2a. If IPMS.ORDescriptor.free-form-name is present, convert it
+ to ASCII or T.61 (Section 3.5), and use this as the 822.phrase
+ component of 822.mailbox using the 822.phrase 822.route-addr
+ construct.
+
+ 2b. If IPMS.ORDescriptor.free-form-name is absent. If
+ EBNF.822-address is parsed as 822.addr-spec use this as the
+ encoding of 822.mailbox. If EBNF.822-address is parsed as
+ 822.route 822.addr-spec, then an 822.phrase taken from
+ 822.local-part is added.
+
+ 3 If IPMS.ORDescriptor.telephone-number is present, this is
+ placed in an 822.comment, with the string "Tel ". The normal
+ international form of number is used. For example:
+
+ (Tel +44-181-333-7777)
+
+ 4. If IPMS.ORDescriptor.formal-name.directory-name is present,
+ then a text representation is placed in a trailing 822.comment.
+
+ 5. If IPMS.RecipientSpecifier.report-request has any non-
+ default values, then an 822.comment "(Receipt Notification
+ Requested)", and/or "(Non Receipt Notification Requested)",
+ and/or "(IPM Return Requested)" may be appended to the address.
+ "(Receipt Notification Requested)" may be used to infer "(Non
+ Receipt Notification Requested)". The effort of correlating P1
+ and P2 information is too great to justify the gateway sending
+ Receipt Notifications.
+
+ In RFC 1327, inclusion of these comments was mandatory.
+ Experience has shown that the clutter and confusion caused to
+ RFC 822 users does not justify the information conveyed.
+ Implementors are recommended to not include these comments.
+ Unless an application is found where retention of these comments
+ is desirable, they will be dropped from the next version.
+
+ 6. If IPMS.RecipientSpecifier.reply-request is True, an
+ 822.comment "(Reply requested)" is appended to the address.
+
+ If IPMS.ORDescriptor.formal-name is absent, IPMS.ORDescriptor.free-
+ form-name is converted to ASCII (see section 3.5), and used as
+ 822.phrase within the RFC 822 822.group syntax. For example:
+
+ Free Form Name ":" ";"
+
+
+
+
+Kille Standards Track [Page 68]
+
+RFC 2156 MIXER January 1998
+
+
+ Steps 3-6 are then followed.
+
+4.7.3. IP Message IDs
+
+ There is a need to map both ways between 822.msg-id and
+ IPMS.IPMIdentifier. This allows for X.400 Receipt Notifications,
+ Replies, and Cross References to reference an RFC 822 Message ID,
+ which is preferable to a gateway generated ID. A reversible and
+ symmetrical mapping is defined. This provides fully reversible
+ mappings when messages pass multiple times across the X.400/RFC 822
+ boundary.
+
+ An important issue with messages identifiers is mapping to the exact
+ form, as many systems use these ids as uninterpreted keys. The use
+ of table driven mappings is not always symmetrical, particularly in
+ the light of alternative domain names, and alternative management
+ domains. For this reason, a purely algorithmic mapping is used. A
+ mapping which is simpler than that for addresses can be used for two
+ reasons:
+
+ - There is no major requirement to make message IDs "natural"
+
+ - There is no issue about being able to reply to message IDs.
+ (For addresses, creating a return path which works is more
+ important than being symmetrical).
+
+ The mapping works by defining a way in which message IDs generated on
+ one side of the gateway can be represented on the other side in a
+ systematic manner. The mapping is defined so that the possibility of
+ clashes is low enough to be treated as impossible.
+
+4.7.3.1. 822.msg-id represented in X.400
+
+ IPMS.IPMIdentifier.user is omitted. The IPMS.IPMIdentifier.user-
+ relative-identifier is set to a printable string encoding of the
+ 822.msg-id with the angle braces ("<" and ">") removed. The upper
+ bound on this component is 64. The options for handling this are
+ discussed in Section 5.1.3.
+
+4.7.3.2. IPMS.IPMIdentifier represented in RFC 822
+
+ The 822.domain of 822.msg-id is set to the value "MHS". The
+ 822.local-part of 822.msg-id is constructed by building a string of
+ syntax EBNF.id-loc from IPMS.IPMIdentifier.
+
+ id-loc ::= [ printablestring ] "*" [ std-or-address ]
+
+
+
+
+
+Kille Standards Track [Page 69]
+
+RFC 2156 MIXER January 1998
+
+
+ EBNF.printablestring is the IPMS.IPMIdentifier.user-relative-
+ identifier, and EBNF.std-or-address being an encoding of the
+ IPMS.IPMIdentifier.user derived according to this specification.
+ 822.local-part is derived from EBNF.id-loc, if necessary using the
+ 822.quoted-string encoding. For example:
+
+ <"147*/S=Dietrich/O=Siemens/ADMD=DBP/C=DE/"@MHS>
+
+4.7.3.3. 822.msg-id -> IPMS.IPMIdentifier
+
+ If the 822.local-part can be parsed as:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ and the 822.domain is "MHS", then this ID was X.400 generated. If
+ EBNF.printablestring is present, the value is assigned to
+ IPMS.IPMIdentifier.user-relative-identifier. If EBNF.std-or-address
+ is present, the OR Address components derived from it are used to set
+ IPMS.IPMIdentifier.user.
+
+ Otherwise, this is an RFC 822 generated ID. In this case, set
+ IPMS.IPMIdentifier.user-relative-identifier to a printable string
+ encoding of the 822.msg-id without the angle braces and omit
+ IPMS.IPMID.user.
+
+4.7.3.4. IPMS.IPMIdentifier -> 822.msg-id
+
+ If IPMS.IPMIdentifier.user is absent, and IPMS.IPMIdentifier.user-
+ relative-identifier mapped to ASCII and angle braces added parses as
+ 822.msg-id, then this is an RFC 822 generated ID.
+
+ Otherwise, the ID is X.400 generated. Use the
+ IPMS.IPMIdentifier.user to generate an EBNF.std-or-address form
+ string. Build the 822.local-part of the 822.msg-id with the syntax:
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ The printablestring is taken from IPMS.IPMIdentifier.user-relative-
+ identifier. Use 822.quoted-string if necessary. The 822.msg-id is
+ generated with this 822.local-part, and "MHS" as the 822.domain.
+
+4.7.3.5. Phrase form
+
+ In "In-Reply-To:" and "References:", the encoding 822.phrase may be
+ used as an alternative to 822.msg-id. To map from 822.phrase to
+ IPMS.IPMIdentifier, assign IPMS.IPMIdentifier.user-relative-
+ identifier to the phrase. When mapping from IPMS.IPMIdentifier for
+ "In-Reply-To:" and "References:", if IPMS.IPMIdentifier.user is
+
+
+
+Kille Standards Track [Page 70]
+
+RFC 2156 MIXER January 1998
+
+
+ absent and IPMS.IPMIdentifier.user-relative-identifier does not parse
+ as 822.msg-id, generate an 822.phrase rather than adding the domain
+ MHS.
+
+4.7.3.6. RFC 987 backwards compatibility
+
+ The mapping defined here is different to that used in RFC 987, as the
+ RFC 987 mapping lead to changed message IDs in many cases. Fixing
+ the problems is preferable to retaining backwards compatibility. An
+ implementation of this standard may recognise message IDs generated
+ by RFC 987. This is not recommended.
+
+ RFC 987 generated encodings may be recognised as follows. When
+ mapping from X.400 to RFC 822, if the IPMS.IPMIdentifier.user-
+ relative-identifier is "RFC-822" the id is RFC 987 generated. When
+ mapping from RFC 822 to X.400, if the 822.domain is not "MHS", and
+ the 822.local-part can be parsed as
+
+ [ printablestring ] "*" [ std-or-address ]
+
+ then it is RFC 987 generated. In each of these cases, it is
+ recommended to follow the RFC 987 rules.
+
+Chapter 5 - Detailed Mappings
+
+ This chapter specifies detailed mappings for the functions outlined
+ in Chapters 1 and 2. It makes extensive use of the notations and
+ mappings defined in Chapters 3 and 4.
+
+5.1. RFC 822 -> X.400: Detailed Mappings
+
+ The mapping of RFC 822/MIME messages to X.400 InterPersonal Messages
+ is described in Sections 5.1.1 to 5.1.7. Mapping of NOTARY format
+ delivery status notifications, which are all messages of type
+ multipart/report and subtype delivery-status-notifications to X.400
+ delivery reports is covered in Section 5.1.8.
+
+5.1.1. Basic Approach
+
+ A single IP Message is generated from an RFC 822 message. The RFC
+ 822 headers are used to generate the IPMS.Heading.
+
+ Some RFC 822 fields cannot be mapped onto a standard IPM Heading
+ field, and so an extended field is defined in Section 5.1.2. This is
+ then used for fields which cannot be mapped onto existing services.
+
+
+
+
+
+
+Kille Standards Track [Page 71]
+
+RFC 2156 MIXER January 1998
+
+
+ The message is submitted to the MTS, and the services required can be
+ defined by specifying MTS.MessageSubmissionEnvelope. A few
+ parameters of the MTA Abstract service are also specified, which are
+ not in principle available to the MTS User. Use of these services
+ allows RFC 822 MTA level parameters to be carried in the analogous
+ X.400 service elements. The advantages of this mapping far outweigh
+ the layering violation.
+
+5.1.2. X.400 Extension Field
+
+ An IPMS Extension is defined:
+
+ rfc-822-field HEADING-EXTENSION
+ VALUE RFC822FieldList
+ ::= id-rfc-822-field-list
+
+
+ RFC822FieldList ::= SEQUENCE OF RFC822Field
+
+ RFC822Field ::= IA5String
+
+ The Object Identifier id-rfc-822-field-list is defined in Appendix D.
+
+ To encode any RFC 822 Header using this extension, an RFC822Field
+ element is built using the 822.field omitting the trailing CRLF
+ (e.g., "Fruit-Of-The-Day: Kiwi Fruit"). All fields shall be unfolded.
+ There shall be no space before the ":". The reverse mapping builds
+ the RFC 822 field in a straightforward manner. This RFC822Field is
+ appended to the RFC822FieldList, which is added to the IPM Heading as
+ an extension field.
+
+5.1.3. Generating the IPM
+
+ The IPM (IPMS Service Request) is generated according to the rules of
+ this section. The IPMS.IPM.body is generated from the RFC 822 message
+ body in the manner described in Section 5.1.5.
+
+ If no specific 1988 features are used, the IPM generated is encoded
+ as content type 2. Otherwise, it is encoded as content type 22. The
+ latter will always be the case if extension heading fields are
+ generated.
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 72]
+
+RFC 2156 MIXER January 1998
+
+
+ When generating the IPM, the issue of upper bounds are handled as
+ follows. Truncate fields to the upper bounds specified in X.400.
+ This will prevent problems with UAs which enforce upper bounds, but
+ will sometimes discard useful information. This approach will cause
+ more problems for some fields than others (e.g., truncating an OR
+ Address component that would be used to route a reply would be a more
+ severe problem than truncating a Free Form Name). If the Free Form
+ name is truncated, it shall be done so that it does not break RFC 822
+ comments and RFC 1522 encoding.
+
+ Note:This approach removes a choice of options given in RFC 1327,
+ based on operational experience.
+
+ The rest of this section concerns IPMS.IPM.heading (IPMS.Heading).
+ The only mandatory component of IPMS.Heading is the
+ IPMS.Heading.this-IPM (IPMS.IPMIdentifier). A default is generated
+ by the gateway. With the exception of "Received:", the values of
+ multiple fields are merged (e.g., If there are two "To:" fields, then
+ the mailboxes of both are merged to generate a single list which is
+ used in the IPMS.Heading.primary-recipients. Information shall be
+ generated from the standard RFC 822 Headers as follows:
+
+ Date:
+ Ignore (Handled at MTS level)
+
+ Received:
+ Ignore (Handled at MTA level)
+
+ Message-Id:
+ Mapped to IPMS.Heading.this-IPM. For these, and all other
+ fields containing 822.msg-id the mappings of Chapter 4 are used
+ for each 822.msg-id.
+
+ From:
+ If Sender: is present, this is mapped to
+ IPMS.Heading.authorizing-users. If not, it is mapped to
+ IPMS.Heading.originator. For this, and other components
+ containing addresses, the mappings of Chapter 4 are used for
+ each address.
+
+ Sender:
+ Mapped to IPMS.Heading.originator. Because X.400 does not have
+ the same From/Sender distinction as RFC 822, this mapping is not
+ always natural and may lead to unexpected results in some cases.
+
+ Reply-To:
+ Mapped to IPMS.Heading.reply-recipients.
+
+
+
+
+Kille Standards Track [Page 73]
+
+RFC 2156 MIXER January 1998
+
+
+ To: Mapped to IPMS.Heading.primary-recipients
+
+ Cc: Mapped to IPMS.Heading.copy-recipients.
+
+ Bcc: Mapped to IPMS.Heading.blind-copy-recipients if there is at
+ least one BCC: recipient. If there are no recipients in this
+ field, it shall either be mapped to a zero length sequence or
+ mapped to a single recipient that has a free from name "BCC" and
+ no other addressing information. This alternate treatment is
+ allowed because some X.400 systems cannot handle a zero lenght
+ sequence of addresses.
+
+ In-Reply-To:
+ If there is one value, it is mapped to IPMS.Heading.replied-to-
+ IPM, using the 822.phrase or 822.msg-id mapping as appropriate.
+ If there are multiple values, this cannot be done as the X.400
+ heading is single valued. In this case no IPMS.Heading.replied-
+ to-IPM is generated and the values are mapped to
+ IPMS.Heading.related-IPMs, along with any values from a
+ "References:" field.
+
+ References:
+ Mapped to IPMS.Heading.related-IPMs.
+
+ Keywords:
+ Mapped onto a heading extension.
+
+ Subject:
+ Mapped to IPMS.Heading.subject. The field-body uses the human
+ oriented mapping referenced in Section 3.3.4.
+
+ Comments:
+ Mapped onto a heading extension.
+
+ This is a change from 1327, which specified to generate an
+ IPMS.BodyPart of type IPMS.IA5TextBodyPart with
+ IPMS.IA5TextBodyPart.parameters.repertoire set to the default
+ (ia5), containing the value of the fields, preceded by the
+ string "Comments: " and that this body part shall precede the
+ other one. Experience has shown that this complexity is not
+ justified. This text is retained to facilitate backwards
+ compatibility.
+
+ Encrypted:
+ Mapped onto a heading extension.
+
+ Resent-*
+ Mapped onto a heading extension.
+
+
+
+Kille Standards Track [Page 74]
+
+RFC 2156 MIXER January 1998
+
+
+ Note that it would be possible to use a ForwardedIPMessage for
+ these fields, but the semantics are (arguably) slightly
+ different, and it is probably not worth the effort.
+
+ Content-Language:
+ This field is defined in RFC 1766 [7]. Map the first two
+ characters of each value given onto the IPM Languages extension.
+ If any comments or values longer than two characters occur, a
+ header extension shall also be generated.
+
+ Other Fields
+ In particular X-* fields, and "illegal" fields in common usage
+ (e.g., "Fruit-of-the-day:") are mapped onto a heading extension,
+ unless covered by another section or appendix of this
+ specification. The same treatment is applied to RFC 822 fields
+ where the content of the field does not conform to RFC 822
+ (e.g., a Date: field with unparseable syntax).
+
+ The mapping of the following headings is defined in RFC 2157.
+
+ MIME-Version: 5
+ Content-Transfer-Encoding:
+ Content-Type
+ Content-ID
+ Content-Description
+
+5.1.4. Generating the IPM Body
+
+ Generation of the IPM Body is defined in RFC 2157.
+
+5.1.5. Mappings to the MTS Abstract Service
+
+ The MTS.MessageSubmissionEnvelope comprises
+ MTS.PerMessageSubmissionFields, and
+ MTS.PerRecipientMessageSubmissionFields. The mandatory parameters
+ are defaulted as follows.
+
+ MTS.PerMessageSubmissionFields.originator-name
+ This is always generated from SMTP, as defined in Chapter 4.
+
+ MTS.PerMessageSubmissionFields.content-type
+ Set to the value implied by the encoding of the IPM (2 or 22).
+
+ MTS.PerRecipientMessageSubmissionFields.recipient-name
+ These will always be supplied from SMTP, as defined in Chapter 4.
+
+
+
+
+
+
+Kille Standards Track [Page 75]
+
+RFC 2156 MIXER January 1998
+
+
+ Optional components are omitted, and default components defaulted.
+ This means that disclosure of recipients is prohibited and conversion
+ is allowed. There are two exceptions to the defaulting. For
+ MTS.PerMessageSubmissionFields.per-message-indicators, the following
+ settings are made:
+
+ - Alternate recipient is allowed, as it seems desirable to
+ maximise the opportunity for (reliable) delivery.
+
+ If SMTP is used, Appendix A shall be followed in setting these
+ parameters.
+
+ The trace is set to indicate conversion (described below) and the
+ encoded information types in the trace is derived from the message
+ generated by the gateway, and shall reflect all body parts (including
+ those in enclosed messages). In addition it shall include the
+ Encoded Information Type "eit-mixer", which is defined in Appendix D.
+ The presence of the EIT will indicate to the X.400 recipient that a
+ MIXER conversion has occurred.
+ MTS.PerMessageSubmissionFields.original-encoded-information-types
+ will include all of the values used in the trace, unless specified
+ otherwise in RFC 2157.
+
+ This type of conversion will prevent the normal loop detection from
+ working in certain circumstances, and introduces the possiblity of
+ gateway loops. MIXER gateways shall therefore count the number of
+ MIXER conversions made. If this count exceeds five in one direction,
+ the message shall be treated as if a loop has been detected.
+
+ The MTS.PerMessageSubmissionFields.content-correlator is encoded as
+ IA5String, and contains the Subject:, Message-ID:, Date:, and To:
+ fields (if present) in this order. This includes the strings
+ "Subject:", "Date:", "To:", "Message-ID:", and appropriate folding to
+ make the field appear readable. This shall be truncated to MTS.ub-
+ content-correlator-length (512) characters. In addition, if there is
+ a "Subject:" field, the MTS.PerMessageSubmissionFields.content-
+ identifier, is set to a printable string representation of the
+ contents of it. If the length of this string is greater than
+ MTS.ub-content-id-length (16), it shall be truncated to 13 characters
+ and the string "..." appended. Both are used, due to the much larger
+ upper bound of the content correlator, and that the content id is
+ available in X.400(1984).
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 76]
+
+RFC 2156 MIXER January 1998
+
+
+5.1.6. Mappings to the MTA Abstract Service
+
+ There is a need to map directly onto some aspects of the MTA Abstract
+ service, for the following reasons:
+
+ - So the MTS Message Identifier can be generated from the RFC
+ 822 Message-ID:.
+
+ - So that the submission date can be generated from the
+ 822.Date.
+
+ - To prevent loss of trace information
+
+ - To prevent RFC 822/X.400 looping caused by distribution
+ lists or redirects
+
+ The following mappings are defined.
+
+ Message-Id:
+ If this is present and no Resent: fields are present, the
+ MTA.PerMessageTransferFields.message-identifier may be generated
+ from it, using the mappings described in Chapter 4.
+
+ This mapping arguably generates messages which do not conform to
+ US GOSIP (1984 version only), which states:
+
+ 6.7.e MPDU Identifier Validation
+
+ (1) Validation of the GlobalDomainIdentifier component of the MPDU
+ Identifier is performed on reception of a message (i.e. the result
+ of a TRANSFER.Indication).
+
+ (2) The country name should be known to the validating domain, and
+ depending on the country name, validation of the
+
+ ADMD name may also be possible.
+
+ (3) Additional validation of the GlobalDomainIdentifier is
+ performed against the corresponding first entry in the
+ TraceInformation. If inconsistencies are found during the
+ comparison, a non-delivery notice with the above defined reason
+ and diagnostic code is generated.
+
+ (4) A request will be generated to the CCITT for a more meaningful
+ diagnostic code (such as "InconsistentMPUTIdentifier").
+
+
+
+
+
+
+Kille Standards Track [Page 77]
+
+RFC 2156 MIXER January 1998
+
+
+ This applies to ADMDs only, and is specified in the 1984 version and
+ not the 1988 version. Conformance depends on the interpretation of
+ "inconsistency". The specification makes the most sensible choice,
+ and so is not being changed in the update from RFC 1327.
+
+ Date: (and Resent-Date:)
+ If one or more Resent-Date: fields is present, the most recent
+ Resent-Date: field shall be used instead of the Date: field in the
+ following description.
+
+ The Date: field is used to set the first component of
+ MTA.PerMessageTransferFields.trace-information
+ (MTA.TraceInformationElement). The SMTP originator is mapped into
+ an MTS.ORAddress, and used to derive
+ MTA.TraceInformationElement.global-domain-identifier. The
+ optional components of MTA.TraceInformationElement.domain-
+ supplied-information are omitted, and the mandatory components are
+ set as follows:
+
+ MTA.DomainSuppliedInformation.arrival-time
+ This is set to the date derived from Date:
+
+ MTA.DomainSuppliedInformation.routing-action
+ Set to relayed.
+
+ The first element of MTA.PerMessageTransferFields.internal-trace-
+ information is generated in an analogous manner, although this can
+ be dropped later in certain circumstances (see the procedures for
+ "Received:"). The MTA.InternalTraceInformationElement.mta-name is
+ derived from the 822.domain in the 822 MTS Originator address.
+
+ Received:
+ All RFC 822 trace is used to derive
+ MTA.PerMessageTransferFields.trace-information and
+ MTA.PerMessageTransferFields.internal-trace-information.
+ Processing of Received: lines follows processing of Date:, and is
+ done from the bottom to the top of the RFC 822 header (i.e., in
+ chronological order). When other trace elements (in particular
+ X400-Received:) are processed the relative ordering (top to
+ bottom of the header) shall be retained correctly.
+
+ The initial element of MTA.PerMessageTransferFields.trace-
+ information shall be generated from Date: as described above,
+ unless the message has previously been in X.400, when it will be
+ derived from the X.400 trace information.
+
+
+
+
+
+
+Kille Standards Track [Page 78]
+
+RFC 2156 MIXER January 1998
+
+
+ For each Received: field, the following processing shall be done.
+ If the "by" part of the received is present and there is an
+ available MCGAM which can map this domain, use it to derive an
+ MTS.GlobalDomainIdentifier. Otherwise MTS.GlobalDomainIdentifier
+ is set from local information. If this is different from the one
+ in the last element of MTA.PerMessageTransferFields.trace-
+ information (MTA.TraceInformationElement.global-domain-identifier)
+ create a new MTA.TraceInformationElement, and optionally remove
+ MTA.PerMessageTransferFields.internal-trace-information.
+ Requirements on trace stripping are discussed below.
+
+ Then add a new element (MTA.InternalTraceInformationElement) to
+ MTA.PerMessageTransferFields.internal-trace-information, creating
+ this if needed. This shall be done, even if nter-MD trace is
+ created. The MTA.InternalTraceInformationElement.global-domain-
+ identifier is set to the value derived. The
+ MTA.InternalTraceInformationElement.mta-supplied-information
+ (MTA.MTASuppliedInformation) is set as follows:
+
+ MTA.MTASuppliedInformation.arrival-time
+ Derived from the date of the Received: line
+
+ MTA.MTASuppliedInformation.routing-action
+ Set to relayed
+
+ The MTA.InternalTraceInformationElement.mta-name is taken from the
+ "by" component of the "Received:" field, truncated to MTS.ub-mta-
+ name-length (32). For example:
+
+ Received: from computer-science.nottingham.ac.uk by
+ vs6.Cs.Ucl.AC.UK via Janet with NIFTP id aa03794;
+ 28 Mar 89 16:38 GMT
+
+ Generates the string
+
+ vs6.Cs.Ucl.AC.UK
+
+ The gateway shall add in a single element of trace information,
+ reflecting the gateway's local information and the time of
+ conversion. The MTA.InternalTraceInformationElement.mta-supplied-
+ information (MTA.MTASuppliedInformation) is set as follows:
+
+ MTA.DomainSuppliedInformation.arrival-time
+ Set to the time of conversion
+
+ MTA.DomainSuppliedInformation.routing-action
+ Set to relayed
+
+
+
+
+Kille Standards Track [Page 79]
+
+RFC 2156 MIXER January 1998
+
+
+ MTA.AdditionalAcctions.converted-encoded-information-types Set to
+ correct set of EITs for the message that is generated by the gateway.
+ This trace element will thus reflect gateway operation as a
+ conversion.
+
+ This trace generation will often lead to generation of substantial
+ amounts of trace information, which does not reflect X.400 transfers.
+ Stripping of some of this trace may be necessary in some operational
+ environments. This stripping shall be considered a function of the
+ associated X.400 MTA, and not of the MIXER gateway.
+
+5.1.7. Mapping New Fields
+
+ This specification defines a number of new fields for Reports,
+ Notifications and IP Messages. A gateway conforming to this
+ specification shall map all of these fields to X.400, except as
+ defined below.
+
+ The mapping of two extended fields is particularly important, in
+ order to prevent looping. "DL-Expansion-History:" is mapped to
+ MTA.PerMessageTransferFields.extensions.dl-expansion-history X400-
+ Received: shall be mapped to MTA.PerMessageTransferFields.trace-
+ information and MTA.PerMessageTransferFields.internal-trace-
+ information. In cases where X400-Received: is present, the usual
+ mapping of Date: to generate the first element of trace shall not be
+ done. This is because the message has come from X.400, and so the
+ first element of trace can be taken from the first X400-Received:.
+
+ The following fields shall not be mapped, and shall be
+
+ - Discarded-X400-MTS-Extensions:
+
+ - Message-Type:
+
+ - Discarded-X400-IPMS-Extensions:
+
+ - X400-Content-Type:
+
+ - X400-Originator:
+
+ - X400-Recipients:
+
+ - X400-MTS-Identifier: Mapping this field would be useful in
+ some circumstances, but very dangerous in others (e.g.,
+ following an internet list expansion). Therefore it is not
+ mapped.
+
+
+
+
+
+Kille Standards Track [Page 80]
+
+RFC 2156 MIXER January 1998
+
+
+5.1.8. Mapping Delivery Status Notifications to X.400
+
+5.1.8.1. Basic Model
+
+ Internet Mail delivery status notifications (DSN) are mapped to X.400
+ delivery reports. With message mapping, information without a
+ mapping is carried by an IPM Extension. This cannot be done for
+ delivery reports. Two mechanisms are used for information where
+ there is not a direct mapping.
+
+ The first mechanism is to define extensions, which allow all of the
+ DSN information to be carried in the delivery report. This is not
+ completely satisfactory for two reasons:
+
+ 1. User defined extensions are supported by the ISO version of
+ the standard, but not the CCITT one. Therefore,
+ implementation support for these extensions will not be
+ universal.
+
+ 2. X.400 User Agent implementations will not in general
+ recognise these extensions. Therefore, although the
+ information will be present, it will often not be available
+ to the user. This may be very problematic, as this
+ information may be critical to diagnosing the reason for a
+ failure.
+
+ Therefore a second mechanism is defined. This shall always be used
+ when the DSN contains non-delivery information, and may be used in
+ other cases. This mechanism is to map the whole DSN (as if it were
+ an ordinary multipart) into the return of content. This will make
+ the DSN information available as a text body part in the outer
+ message, with the real returned content as an enclosed message. This
+ mechanism will ensure that information is not lost at the gateway.
+
+5.1.8.2. DSN Extensions
+
+ Two X.400 MTS extensions are defined as follows:
+
+ dsn-header-list EXTENSION
+ RFC822FieldList
+ ::= id-dsn-header-list
+
+ dsn-field-list EXTENSION
+ RFC822FieldList
+ ::= id-dsn-field-list
+
+
+
+
+
+
+Kille Standards Track [Page 81]
+
+RFC 2156 MIXER January 1998
+
+
+ The Object Identifiers id-dsn-header-list and id-dsn-field-list are
+ defined in Appendix D. Theses extensions are used in the same way as
+ the IPM extension rfc-822-field, described in Section 5.1.2. These
+ extensions may only be used with ISO-10021, and not X.400 (which does
+ not allow user extensions at the MTS level).
+
+5.1.8.3. DSN to Delivery Report Mapping
+
+ Some DSNs are mapped to Delivery Reports and some to IPMs, according
+ to the value of the action field. The mapping to an IPM is exactly
+ as for a normal IPM mapping. The choice of IPM and Delivery report
+ is made for each reported recipient. If this choice is different
+ for different reported recipients both a Delivery Report and an IPM
+ shall be generated.
+
+ Reports are not be submitted in the X.400 model, and so the report
+ submission is considered in terms of the MTA Abstract Service. An
+ MTA.Report is constructed. The MTA.ReportTransferEnvelope.report-
+ identifier is generated from the Message-Id of the DSN (if present)
+ and otherwise generated as the MTA would generate one for a submitted
+ message.
+
+ The DSN has an RFC 822 header. Trace is mapped in the same manner as
+ for a message to MTA.ReportTransferEnvelope.trace-information. All
+ other headers are used to create a dsn-header-list extension, which
+ is added to MTA.PerReportTransferFields.extensions. The DSN will
+ have a single SMTP recipient. This is mapped to the
+ MTA.ReportTransferEnvelope.report-destination-name.
+
+ The DSN is then treated as a normal MIME message, and an X.400 IPM is
+ generated. This IPM is used as
+ MTA.PerReportTransferFields.returned-content, and its type is used to
+ set MTA.PerReportTransferFields.content-type. The DSN body part is
+ mapped as if it was IA5 text/plain.
+
+ The mandatory MTA.PerReportTransferFields.subject-identifier shall be
+ generated from the DSN.per-message-field original-envelope-id, if
+ this starts with the string "X400-MTS-Identifier: ", and derived from
+ the rest of the field, which is encoded as EBNF.mts-msg-id. In other
+ cases, this field shall be generated by the MIXER Gateway.
+
+ All other mappings are made from the DSN body part. A dsn-field-list
+ extension is created and added to
+ MTA.ReportTransferFields.extensions. This is referred to as the per
+ report extension list. The DSN.per-message-fields are mapped as
+ follows:
+
+
+
+
+
+Kille Standards Track [Page 82]
+
+RFC 2156 MIXER January 1998
+
+
+ original-envelope-id-field
+ reporting-mta-field
+ dsn-gateway-field
+ received-from-mta-field
+ arrival-date-field
+ extension-field
+ other
+
+ All of these fields are added to the per report extension list.
+ Currently there are no other mappings defined.
+
+ Each reported recipient is considered in turn, and a
+ MTA.PerRecipientReportTransferFields created for each. The
+ parameters of this are defaulted as follows:
+
+ originally-specified-recipient-number
+ In general, these are not available, and so are assigned
+ incrementally.
+
+ last-trace-information
+ The arrival-time is generated from DSN.arrival-date if present,
+ and if not from the Date: of the DSN. This is a strucutred field,
+ and the Report element contains the key information on the
+ recipient. For a DeliveryReport, the type-ofMTS-user is defaulted
+ to public and the message-deliery-time is set to the same as the
+ arrival-time. For a NonDeliveryReport, the code mappings are
+ define in Section 5.1.8.4.
+
+ A dsn-field-list extension is created and added to
+ MTA.PerRecipientTransferFields.extensions. This is referred to as
+ the per recipient extension list. The DSN.per-recipient-fields are
+ mapped as follows
+
+ original-recipient-field
+ Mapped to MTA.PerRecipientReportTransferFields.originally-
+ intended-recipient-name.
+
+ final-recipient-field
+ Mapped to MTA.PerRecipientReportTransferFields.actual-recipient-
+ name.
+
+ action-field
+ If this is set to "failed", a non-delivery report is generated.
+ If this is set to "delivered" a delivery report is generated.
+ Bit one or two of MTA.PerRecipientTransferFields.per-recipient-
+ indicators is set accordingly. This also controls the encoding of
+ MTA.PerRecipientTransferFields.last-trace-information, and the
+ selection of the report type.
+
+
+
+Kille Standards Track [Page 83]
+
+RFC 2156 MIXER January 1998
+
+
+ For other values of the action-field ("delayed", "relayed",
+ "expanded"), an IPM is generated. This enables the status
+ information to be communicated to the X.400 user, without the
+ confusion of multiple delivery reports.
+
+ status-field
+ This is added to the per report extension list. For non-delivery,
+ it is also used to generate the reason and diagnostic codes
+ contained within MTA.PerRecipientReportTransferFields.last-trace.
+ The mappings are defined below.
+
+ remote-mta-field
+
+ diagnostic-code-field
+
+ last-attempt-date-field
+
+ will-retry-until-field
+
+ extension-field
+
+ other
+ All of these fields are added to the per recipient extension list.
+
+5.1.8.4. Status Value Mappings
+
+ Status values are mapped to X.400 reason and diagnostic codes as
+ follows.
+
+ If a status value is found that is not in this table, the gateway may
+ use the same mapping as for "X.n.0" (1/None or 0/None), or it may map
+ to another, configurable code. Implementors are requested to forward
+ new codes to the mixer list for inclusion in future versions of this
+ standard. So for instance. "5.2.37", currently undefined, would map
+ onto the same as "5.2.0", namely 1/None.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 84]
+
+RFC 2156 MIXER January 1998
+
+
+DSN code Meaning X400 code Meaning
+
+X.0.0 Other status 1/None
+
+X.1.0 Other Address Status 1/None
+X.1.1 Bad mailbox address 1/0 Unrecognized
+X.1.2 Bad system address 1/0 Unrecognized
+X.1.3 Bad mailbox address syntax 1/0 Unrecognized
+X.1.4 Mailbox address ambiguous 1/1
+X.1.5 Only used for positive reports, not applicable
+X.1.6 Destination mailbox has moved 1/43 New addr unknown
+X.1.7 Bad sender's mailbox address syntax 1/11 Invalid arguments
+X.1.8 Bad sender's system address 1/11 Invalid arguments
+
+X.2.0 Other or undefined mailbox status 1/None
+X.2.1 Mailbox disabled, not accepting 1/4 Recipient unavail
+X.2.2 Mailbox full 1/4
+X.2.3 Message length exceeds admin limit. 1/7 Content too long
+X.2.4 Mailing list expansion problem 1/30 DL expansion fail
+
+X.3.0 Other or undefined system status 0/None
+X.3.1 System full 1/2 MTS congestion
+X.3.2 System not accepting network messages 1/2 MTS congestion
+X.3.3 System not capable of selected feat 1/18 Unsupp crit func
+X.3.4 Message too big for system 1/7
+X.3.5 System incorrectly configured 1/None
+
+X.4.0 Other or undefined network or routing 0/None
+X.4.1 No answer from host 0/None
+X.4.2 Bad connection 0/None
+X.4.3 Routing server failure 6/None Dir op unsucc.
+X.4.4. Unable to route 0/None
+X.4.5 Network congestion 1/2 MTS congest.
+X.4.6 Routing loop detected 1/3
+X.4.7 Delivery time expired 1/5
+
+X.5.0 Other or undefined protocol status 1/None
+
+X.5.1 Invalid command 1/14 Protocol viol.
+X.5.2 Syntax error 1/14
+X.5.3 Too many recipients 1/16
+X.5.4 Invalid command arguments 1/14
+X.5.5 Wrong protocol version 1/18 Unsupp.crit.func
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 85]
+
+RFC 2156 MIXER January 1998
+
+
+X.6.0 Other or undefined media error 2/None Conv. not perf
+X.6.1 Media not supported 1/6 EIT unsupp.
+X.6.2 Conversion required and prohibited 1/9
+X.6.3 Conversion required but not supported 2/8
+X.6.4 Conversion with loss performed POSITIVE only
+X.6.5 Conversion failed 2/47 Unable to downgrade
+
+X.7.0 Other or undefined security status 1/46
+X.7.1 Delivery not authorized, message ref 1/29 No DL submit perm
+X.7.2 Mailing list expansion prohibited 1/28
+X.7.3 Security conversion req but not poss 1/46 Secure mess. error
+X.7.4 Security features not supported 1/46
+X.7.5 Cryptographic failure 1/46
+X.7.6 Cryptographic algorithm not supported 1/46
+X.7.7 Message integrity failure 1/46
+
+5.1.8.5. DSNs that originated in X.400
+
+ The mapping of X.400 delivery reports to DSNs will in general provide
+ sufficient information to make a useful reverse mapping. Messages
+ will often be mapped multiple times, commonly due to forwarding
+ messages and to distribution lists. Multiple mappings for delivery
+ reports will be a good deal less common. For this reason, the
+ reverse mapping of the X.400 DSN extensions defined in MIXER is
+ optional.
+
+5.2. Return of Contents
+
+ RFC 1327 offered two approaches for return of content, as this
+ service is optional in X.400 and expected in RFC 822. MIXER simply
+ requires that a gateway requests the return of content service from
+ X.400.
+
+5.3. X.400 -> RFC 822: Detailed Mappings
+
+5.3.1. Basic Approach
+
+ A single RFC 822 message is generated from the incoming IP Message,
+ Report, or IP Notification. All IPMS.BodyParts are mapped onto a
+ single RFC 822 body. Other services are mapped onto RFC 822 header
+ fields. Where there is no appropriate existing field, new fields are
+ defined for IPMS, MTS and MTA services.
+
+ The gateway mechanisms will correspond to MTS Delivery. As with
+ submission, there are aspects where the MTA (transfer) services are
+ also used. In particular, there is an optimisation to allow for
+ multiple SMTP recipients.
+
+
+
+
+Kille Standards Track [Page 86]
+
+RFC 2156 MIXER January 1998
+
+
+5.3.2. RFC 822 Settings
+
+ An RFC 822 Message has a number of mandatory fields in the RFC 822
+ Header. Some SMTP services mandate specification of an SMTP
+ Originator. Even in cases where this is optional, it is usually
+ desirable to specify a value. The following defaults are defined,
+ which shall be used if the mappings specified do not derive a value:
+
+ SMTP Originator
+ If this is not generated by the mapping (e.g., for a Delivery
+ Report), a value pointing at a gateway administrator shall be
+ assigned.
+
+ Date:
+ A value will always be generated
+
+ From:
+ If this is not generated by the mapping, it is assigned equal to
+ the SMTP Originator. If this is gateway generated, an appropriate
+ 822.phrase shall be added.
+
+ At least one recipient field
+ If no recipient fields are generated, a field "To: list:;", shall
+ be added.
+
+ This will ensure minimal RFC 822 compliance. When generating RFC 822
+ headers, folding may be used. It is recommended to do this,
+ following the guidelines of RFC 822.
+
+5.3.3. Basic Mappings
+
+5.3.3.1. Encoded Information Types
+
+ This mapping from MTS.EncodedInformationTypes is needed in several
+ disconnected places. EBNF is defined as follows:
+
+ encoded-info = 1#encoded-type
+
+ encoded-type = built-in-eit / object-identifier
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 87]
+
+RFC 2156 MIXER January 1998
+
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+ MTS.EncodedInformationTypes is mapped onto EBNF.encoded-info.
+ MTS.EncodedInformationTypes.non-basic-parameters is ignored. Built
+ in types are mapped onto fixed strings (compatible with X.400(1984)
+ and RFC 987), and other types are mapped onto EBNF.object-identifier.
+
+5.3.3.2. Global Domain Identifier
+
+ The following simple EBNF is used to represent
+ MTS.GlobalDomainIdentifier:
+
+ global-id = std-or-address
+
+ This is encoded using the std-or-address syntax, for the attributes
+ within the Global Domain Identifier.
+
+5.3.4. Mappings from the IP Message
+
+ Consider that an IPM has to be mapped to RFC 822. The IPMS.IPM
+ comprises an IPMS.IPM.heading and IPMS.IPM.body. The heading is
+ considered first. Some EBNF for new fields is defined:
+
+ipms-field = "Supersedes" ":" 1*msg-id
+ / "Expires" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Content-Language" ":" 1#language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":" 1#object-identifier
+ / "Autosubmitted" ":" autosubmitted
+
+
+importance = "low" / "normal" / "high"
+
+
+
+
+
+Kille Standards Track [Page 88]
+
+RFC 2156 MIXER January 1998
+
+
+sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+language = 2*ALPHA [ "(" language-description ")" ]
+ language-description = printable-string
+
+
+message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+autosubmitted = "not-auto-submitted"
+ / "auto-generated"
+ / "auto-replied"
+ / "auto-forwarded"
+
+ The mappings and actions for the IPMS.Heading are now specified for
+ each element. Addresses and Message Identifiers are mapped according
+ to Chapter 4. Other mappings are explained, or are straightforward
+ (algorithmic). If a field with addresses contains zero elements, it
+ shall be discarded, except for IPMS.Heading.blind-copy-recipients,
+ which can be mapped onto BCC: (the only RFC 822 field which allows
+ zero recipients).
+
+ IPMS.Heading.this-IPM
+ Mapped to "Message-ID:".
+
+ IPMS.Heading.originator
+ If IPMS.Heading.authorizing-users is present this is mapped to
+ Sender:, if not to "From:".
+
+ IPMS.Heading.authorizing-users
+ Mapped to "From:".
+
+ IPMS.Heading.primary-recipients
+ Mapped to "To:".
+
+ IPMS.Heading.copy-recipients
+ Mapped to "Cc:".
+
+ IPMS.Heading.blind-copy-recipients
+ Mapped to "Bcc:".
+
+ IPMS.Heading.replied-to-ipm
+ Mapped to "In-Reply-To:".
+
+
+
+
+
+
+Kille Standards Track [Page 89]
+
+RFC 2156 MIXER January 1998
+
+
+ IPMS.Heading.obsoleted-IPMs
+ Mapped to the extended RFC 822 field "Supersedes:". The replaces
+ the RFC 1327 field "Obsoletes:". Reverse mapping of the RFC 1327
+ field may be supported.
+
+ IPMS.Heading.related-IPMs
+ Mapped to "References:".
+
+ IPMS.Heading.subject
+ Mapped to "Subject:". The contents are converted to ASCII or T.61
+ (as defined in Section 3.5). CRLF will not be present in a valid
+ X.400 field. Any CRLF present are not mapped, but are used as
+ points at which the subject field shall be folded, unless an RFC
+ 1522 encoding is used.
+
+ IPMS.Heading.expiry-time
+ Mapped to the extended RFC 822 field "Expires:". The replaces the
+ RFC 1327 field "Expiry-Date:". Reverse mapping of the RFC 1327
+ field may be supported.
+
+ IPMS.Heading.reply-time
+ Mapped to the extended RFC 822 field "Reply-By:".
+
+ IPMS.Heading.reply-recipients
+ Mapped to "Reply-To:".
+
+ IPMS.Heading.importance
+ Mapped to the extended RFC 822 field "Importance:".
+
+ IPMS.Heading.sensitivity
+ Mapped to the extended RFC 822 field "Sensitivity:".
+
+ IPMS.Heading.autoforwarded
+ Mapped to the extended RFC 822 field "Autoforwarded:".
+
+ The standard extensions (Annex H of X.420 / ISO 10021-7) are mapped
+ as follows:
+
+ incomplete-copy
+ Mapped to the extended RFC 822 field "Incomplete-Copy:".
+
+ language
+ Mapped to the RFC 822 field "Content-Language:", defined in RFC
+ 1766 [7]. This mapping may be made without loss of information.
+
+ auto-submitted
+ Map to the extended RFC 822 field "Autosubmitted:".
+
+
+
+
+Kille Standards Track [Page 90]
+
+RFC 2156 MIXER January 1998
+
+
+ If the RFC 822 extended header is found, this shall be mapped onto an
+ RFC 822 header, as described in Section 5.1.2.
+
+ If a non-standard extension is found, it shall be discarded, unless
+ the gateway understands the extension and can perform an appropriate
+ mapping onto an RFC 822 header field. If extensions are discarded,
+ the list is indicated in the extended RFC 822 field "Discarded-X400-
+ IPMS-Extensions:".
+
+5.3.4.1. Mapping the IPMS Body
+
+ The mapping of the IPMS Body is defined in RFC 2157.
+
+5.3.4.2. Example Message
+
+ An example message, illustrating a number of aspects is given below.
+
+Received: from mhs-relay.ac.uk by bells.cs.ucl.ac.uk via JANET with
+ NIFTP id <7906-0@bells.cs.ucl.ac.uk>;
+ Thu, 30 May 1991 18:24:55 +0100
+X400-Received: by mta "mhs-relay.ac.uk" in /PRMD=uk.ac/ADMD= /C=gb/;
+ Relayed; Thu, 30 May 1991 18:23:26 +0100
+X400-Received: by /PRMD=HMG/ADMD=GOLD 400/C=GB/; Relayed;
+ Thu, 30 May 1991 18:20:27 +0100
+Message-Type: Multiple Part
+Date: Thu, 30 May 1991 18:20:27 +0100
+X400-Originator: Stephen.Harrison@gosip-uk.hmg.gold-400.gb
+X400-MTS-Identifier:
+ [/PRMD=HMG/ADMD=GOLD 400/C=GB/;PC1000-910530172027-57D8]
+Original-Encoded-Information-Types: ia5
+X400-Content-Type: P2-1984 (2)
+X400-Content-Identifier: Email Problems
+From: Stephen.Harrison@gosip-uk.hmg.gold-400.gb (Tel +44 71 217 3487)
+Message-ID: <PC1000-910530172027-57D8*@MHS>
+To: Jim Craigie <NTIN36@gec-b.rutherford.ac.uk>,
+ Tony Bates <tony@ean-relay.ac.uk>,
+ Steve Kille <S.Kille@cs.ucl.ac.uk>
+Subject: Email Problems
+Sender: Stephen.Harrison@gosip-uk.hmg.gold-400.gb
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary=boundary-1
+
+--boundary-1
+Content-Type: text/plain; charset=US-ASCII
+
+Hope you gentlemen.......
+
+
+
+
+
+Kille Standards Track [Page 91]
+
+RFC 2156 MIXER January 1998
+
+
+Regards,
+
+Stephen Harrison
+UK GOSIP Project
+
+--boundary-1
+Content-Type: message/rfc822
+
+From: Urs Eppenberger <Eppenberger@verw.switch.ch>
+Message-ID:
+<562*/S=Eppenberger/OU=verw/O=switch/PRMD=SWITCH/ADMD=ARCOM/C=CH/@MHS>
+To: "Stephen.Harrison" <Stephen.Harrison@gosip-uk.hmg.gold-400.gb>
+Cc: kimura@bsdarc.bsd.fc.nec.co.jp
+Subject: Response to Email link
+Content-Type: multipart/mixed; boundary=boundary-2
+
+
+--boundary-2
+
+Dear Mr Harrison......
+
+
+--boundary-2--
+
+--boundary-1--
+
+5.3.5. Mappings from an IP Notification
+
+ Because of the service setting, IP Notifications will not usually
+ need to be mapped by a MIXER gateway. A message is generated, with
+ the following fields:
+
+ From:
+ Set to the IPMS.IPN.ipn-originator.
+
+ To: Set to the recipient from MTS.MessageSubmissionEnvelope.
+ If there have been redirects, the original address shall be used.
+
+ Subject:
+ Set to the string "X.400 Inter-Personal Notification" for a
+ receipt notification and to "X.400 Inter-Personal Notification
+ (failure)" for a non-receipt notification.
+
+ Message-Type:
+ Set to "InterPersonal Notification"
+
+ References:
+ Set to IPMS.IPN.subject-ipm
+
+
+
+Kille Standards Track [Page 92]
+
+RFC 2156 MIXER January 1998
+
+
+ Discarded-X400-IPMS-Extensions:
+ Used for any discarded IPN extensions.
+
+ The following EBNF is defined for the body of the Message. This
+ format is defined to ensure that all information from an
+ interpersonal notification is available to the end user in a uniform
+ manner.
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ [ ipn-content-return ]
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt = "Your message to:"
+ preferred-recipient <CRLF>
+ ipn-reason
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+
+
+
+
+Kille Standards Track [Page 93]
+
+RFC 2156 MIXER January 1998
+
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated" / "IPM Deleted"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+ The mappings for elements of the common fields of IPMS.IPN
+ (IPMS.CommonFields) onto this structure and the message header are:
+
+ subject-ipm
+ Mapped to "References:"
+
+ ipn-originator
+ Mapped to "From:".
+
+ ipn-preferred-recipient
+ Mapped to EBNF.preferred-recipient
+
+ conversion-eits
+ Mapped to EBNF.encoded-info in EBNF.ipn-extra-information
+
+ The mappings for elements of IPMS.IPN.non-receipt-fields
+ (IPMS.NonReceiptFields) are:
+
+ non-receipt-reason
+ Used to select between EBNF.ipn-discarded and EBNF.ipn-auto-
+ forwarded
+
+ discard-reason
+ Mapped to EBNF.discard-reason
+
+ auto-forward-comment
+ Mapped to EBNF.auto-comment
+
+ returned-ipm
+ This applies only to non-receipt notifications. EBNF.ipn-
+ content-return shall always be omitted for receipt notifications,
+ and always be present in non-receipt notifications. If present,
+ the second option of EBNF.ipn-content-return is chosen, and the
+ message is included. In this case, the message is formatted as
+ multipart/mixed, and the returned message included as
+ message/rfc822 after the text body part. Otherwise the first
+ option is chosen.
+
+ The mappings for elements of IPMS.IPN.receipt-fields
+ (IPMS.ReceiptFields) are:
+
+ receipt-time
+ Mapped to EBNF.receipt-time
+
+
+
+Kille Standards Track [Page 94]
+
+RFC 2156 MIXER January 1998
+
+
+ acknowledgement-mode
+ Mapped to EBNF.acknowledgement-mode
+
+ suppl-receipt-info
+ Mapped to EBNF.ipn-suppl
+
+ An example notification is:
+
+ From: Steve Kille <steve@cs.ucl.ac.uk>
+ To: Julian Onions <jpo@computer-science.nottingham.ac.uk>
+ Subject: X.400 Inter-personal Notification
+ Message-Type: InterPersonal Notification
+ References: <1229.614418325@UK.AC.NOTT.CS>
+ Date: Wed, 21 Jun 89 08:45:25 +0100
+
+ Your message to: Steve Kille <steve@cs.ucl.ac.uk>
+ was automatically forwarded.
+ The following comment was made:
+ Sent on to a random destination
+
+ The following information types were converted: g3fax
+
+5.3.6. Mappings from the MTS Abstract Service
+
+ This section describes the MTS mappings for User Messages (IPM and
+ IPN). This mapping is defined by specifying the mapping of
+ MTS.MessageDeliveryEnvelope. The following extensions to RFC 822 are
+ defined to support this mapping:
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "X400-Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time
+ ";"
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( object-identifier / labelled-integer )
+
+
+ prohibition = "Prohibited" / "Allowed"
+
+
+
+Kille Standards Track [Page 95]
+
+RFC 2156 MIXER January 1998
+
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifier
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+
+ The mappings for each element of MTS.MessageDeliveryEnvelope can now
+ be considered. Where the specified action does not result in an
+ extended element being mapped, the criticality associated with this
+ element shall be considered. If the element is marked as critical
+ for transfer or for delivery, the message shall be non delivered by
+ the gateway because a critical extension cannot be correctly handled.
+
+ MTS.MessageDeliveryEnvelope.message-delivery-identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:".
+
+ MTS.MessageDeliveryEnvelope.message-delivery-time
+ Discarded, as this time will be represented in an appropriate
+ trace element.
+
+ The mappings for elements of MTS.MessageDeliveryEnvelope.other-fields
+ (MTS.OtherMessageDeliveryFields) are:
+
+ content-type
+ Mapped to the extended RFC 822 field "X400-Content-Type:". The
+ string "P2" is retained for backwards compatibility with RFC 987.
+ This shall not be generated, and either the EBNF.labelled-integer
+ or EBNF.object-identifier encoding used.
+
+ originator-name
+ Mapped to the SMTP originator, and to the extended RFC 822 field
+ "X400-Originator:". This is described in Section 4.6.2.
+
+ original-encoded-information-types
+ Mapped to the extended RFC 822 field "Original-Encoded-
+ Information-Types:".
+
+ priority
+ Mapped to the extended RFC 822 field "Priority:".
+
+ delivery-flags
+ If the conversion-prohibited bit is set, add an extended RFC 822
+ field "Conversion:".
+
+ this-recipient-name and other-recipient-names
+ The handling of these elements is described in Section 4.6.2.
+
+
+
+Kille Standards Track [Page 96]
+
+RFC 2156 MIXER January 1998
+
+
+ originally-intended-recipient-name
+ The handling of this element is described in Section 4.6.2.
+
+ converted-encoded-information-types
+ Discarded. This information will be mapped in the trace.
+
+ message-submission-time
+ Mapped to Date:.
+
+ content-identifier
+ Mapped to the extended RFC 822 field "X400-Content-Identifier:".
+ In RFC 1327, this was "Content-Identifier:". This has been
+ changed to avoid confusion with MIME defined fields. Gateways
+ which reverse map, may support the old field.
+
+ If any extensions (MTS.MessageDeliveryEnvelope.other-
+ fields.extensions) are present, and they are marked as critical for
+ transfer or delivery, then the message shall be rejected. The
+ extensions (MTS.MessageDeliveryEnvelope.other-fields.extensions) are
+ mapped as follows.
+
+ conversion-with-loss-prohibited
+ If set to MTS.ConversionWithLossProhibited.conversion-with-loss-
+ prohibited, then add the extended RFC 822 field "Conversion-With-
+ Loss:".
+
+ requested-delivery-method
+ Mapped to a comment, as described in Section 4.6.2.2.
+
+ originator-return-address
+ Mapped to the extended RFC 822 field "Originator-Return-Address:".
+
+ physical-forwarding-address-request
+ physical-delivery-modes
+ registered-mail-type
+ recipient-number-for-advice
+ physical-rendition-attributes
+ physical-delivery-report-request
+ physical-forwarding-prohibited
+
+
+ These elements are only appropriate for physical delivery.
+ They are represented as comments in the "X400-Recipients:"
+ field, as described in Section 4.6.2.2.
+
+ originator-certificate
+ message-token
+ content-confidentiality-algorithm-identifier
+
+
+
+Kille Standards Track [Page 97]
+
+RFC 2156 MIXER January 1998
+
+
+ content-integrity-check
+ message-origin-authentication-check
+ message-security-label
+ proof-of-delivery-request
+
+ These elements imply use of security services not available in the
+ RFC 822 environment. If they are marked as critical for transfer
+ or delivery, then the message shall be rejected. Otherwise they
+ are discarded.
+
+ redirection-history
+ This is described in Section 4.6.2.
+
+ dl-expansion-history
+ Each element is mapped to an extended RFC 822 field "DL-
+ Expansion-History:". These fileds shall be ordered in the message
+ header, so that the most recent expansion comes first (same order
+ as trace).
+
+ If any MTS (or MTA) Extensions not specified in X.400 are present,
+ and they are marked as critical for transfer or delivery, then the
+ message shall be rejected. If they are not so marked, they can
+ safely be discarded. The list of discarded fields shall be
+ indicated in the extended header "Discarded-X400-MTS-Extensions:".
+
+5.3.7. Mappings from the MTA Abstract Service
+
+ There are some mappings at the MTA Abstract Service level which are
+ done for IPM and IPN. These can be derived from
+ MTA.MessageTransferEnvelope. The reasons for the mappings at this
+ level, and the violation of layering are:
+
+ - Allowing for multiple recipients to share a single RFC 822
+ message
+
+ - Making the X.400 trace information available on the RFC 822
+ side
+
+ - Making any information on deferred delivery available
+
+ The SMTP recipients are calculated from the full list of X.400
+ recipients. This is all of the members of
+ MTA.MessageTransferEnvelope.per-recipient-fields being passed through
+ the gateway, where the responsibility bit is set. In some cases, a
+ different RFC 822 message would be calculated for each recipient, due
+ to differing service requests for each recipient. As discussed in
+ 4.6.2.2, this specification allows either for multiple messages to be
+ generated, or for the per-recipient information to be discarded.
+
+
+
+Kille Standards Track [Page 98]
+
+RFC 2156 MIXER January 1998
+
+
+ The following EBNF is defined for extended RFC 822 headers:
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-or-mta ";" ]
+ action-list
+ ";" arrival-time
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+ md-or-mta = "MD" global-id
+ / "MTA" mta
+
+ Action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+ Note the EBNF.mta is encoded as 822.word. If the character set does
+ not allow encoding as 822.atom, the 822.quoted-string encoding is
+ used.
+
+ If MTA.PerMessageTransferFields.deferred-delivery-time is present, it
+ is used to generate a Deferred-Delivery: field. X.400 does not make
+ this information available at the MTS level on delivery, because it
+ requires that this service is provided by the first MTA. In the event
+ that the first MTA does not provide this service, the function may
+ optionally be implemented by the gateway: that is, the gateway may
+ hold the message until the time specified in the protocol element.
+ Thus, the value of this element will usually be in the past. For
+ this reason, the extended RFC 822 field is primarily for information.
+
+ If MTA.PerMessageTransferFields.extensions.dl-expansion-prohibited is
+ present and set to dl-expansion-probited, the gateway may reject that
+ message on the basis that it is unable to control distribution list
+ expansion beyond the gateway. The service relating to this is
+ described in Section 2.3.1.2. This approach was not specified in RFC
+ 1327. If it is found to be useful, it may be made mandatory in
+ future versions of MIXER.
+
+
+
+
+Kille Standards Track [Page 99]
+
+RFC 2156 MIXER January 1998
+
+
+ If MTA.PerMessageTransferFields.extensions.recipient-reassignment-
+ prohibited is present and set to recipeint-reassignment-probited, the
+ gateway may reject that message on the basis that it is unable to
+ control distribution list expansion beyond the gateway. The service
+ relating to this is described in Section 2.3.1.2. This approach was
+ not specified in RFC 1327. If it is found to be useful, it may be
+ made mandatory in future versions of MIXER.
+
+ Merge MTA.PerMessageTransferFields.trace-information, and
+ MTA.PerMessageTransferFields.internal-trace-information to produce a
+ single ordered trace list. If Internal trace from other management
+ domains has not been stripped, this may require complex interleaving.
+ Where an element of internal trace and external trace are identical,
+ except for the MTA in the internal trace, only the internal trace
+ element shall be presented. Use this to generate a sequence of
+ "X400-Received:" fields. The only difference between external trace
+ and internal trace will be the extra MTA information in internal
+ trace elements.
+
+ When generating an RFC 822 message all trace fields (X400-Received
+ and Received) shall be at the beginning of the header, before any
+ other fields. Trace shall be in chronological order, with the most
+ recent element at the front of the message. This ordering is
+ determined from the order of the fields, not from timestamps in the
+ trace, as there is no guarantee of clock synchronisation. A simple
+ example trace (external) is:
+
+ X400-Received: by /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ; Relayed ;
+ Tue, 20 Jun 89 19:25:11 +0100
+
+ A more complex example (internal):
+
+ X400-Received: by mta "UK.AC.UCL.CS" in
+ /PRMD=UK.AC/ADMD=Gold 400/C=GB/ ;
+ deferred until Tue, 20 Jun 89 14:24:22 +0100 ;
+ converted (undefined, g3fax) ; attempted MD /ADMD=Foo/C=GB/ ;
+ Relayed, Expanded, Redirected ; Tue, 20 Jun 89 19:25:11 +0100
+
+ The gateway itself shall add a single line of trace information,
+ indicating MIXER conversion by use of a comment. For example:
+
+ Received: from isode.com by isode.com
+ (MIXER Conversion following RFC 1327);
+ Thu, 2 Jan 1997 14:46:03 +0000
+
+ If SMTP is being used, Appendix A shall also be followed, which
+ includes optional mappings to extension parameters.
+
+
+
+
+Kille Standards Track [Page 100]
+
+RFC 2156 MIXER January 1998
+
+
+5.3.8. Mappings from Report Delivery
+
+ that only reports destined for the MTS user will be mapped. Some
+ additional services are also taken from the MTA service. X.400
+ Delivery Reports are Mapped onto Delivery Status Notifications, as
+ defined by NOTARY [28].
+
+5.3.8.1. MTS Mappings
+
+ A Delivery Report service will be represented as
+ MTS.ReportDeliveryEnvelope, which comprises of per-report-fields
+ (MTS.PerReportDeliveryFields) and per-recipient-fields.
+
+ The enclosing message is a MIME message of content type
+ multipart/report, with report-type=delivery-status, which is
+ generated with the following fields:
+
+ From:
+ An administrator at the gateway system.
+
+ To: A mapping of the
+ MTA.ReportTransferEnvelope.report-destination-name. This is
+ also the SMTP recipient.
+
+ Message-Type:
+ Set to "Delivery Report". This is strictly redundant, but
+ retained for backwards compatibility with RFC 1327.
+
+ Subject:
+ The EBNF for the subject line is:
+
+ subject-line = "Delivery-Report" "(" status ")"
+ [ "for" destination ]
+
+ status = "success" / "failure" / "success and failures"
+
+ destination = mailbox / "MTA" word
+
+ The subject is intended to give a clear indication as to the nature
+ of the message, and summarise its contents. EBNF.status is set
+ according to whether the recipients reported on are all successes,
+ all failures, or a mixture. It is common for a report to reference a
+ single recipient, in which case a subject line giving using all of
+ the options of EBNF.status can be used. This gives useful
+ information to the recipient. Where information varies between
+ reported recpients, the options cannot be used. The EBNF.destination
+ is used to indicate the addresses in the reports. If the report is
+ for a single address, EBNF.mailbox is used to give the RFC 822
+
+
+
+Kille Standards Track [Page 101]
+
+RFC 2156 MIXER January 1998
+
+
+ representation of the address. If all of the reported recpients
+ reference the same MTA this is included in EBNF.word. The MTA is
+ determined from the delivery report's trace.
+
+ The format of the body of the message follows the NOTARY delivery
+ status notification format, and is defined to ensure that all
+ information is conveyed to the RFC 822 user in a consistent manner.
+ The format is structured as if it was a message coming from the
+ gateway, with three body parts. The first body part is ASCII text
+ structured as follows:
+
+ 1. A few lines giving keywords to indicate the original
+ message.
+
+ 2. A human summary of the status of each recipient being
+ reported on.
+
+ The second (mandatory) body part is the NOTARY delivery status
+ notification, which contains detailed information extracted from the
+ report. This information may be critical to diagnosing an obscure
+ problem.
+
+ The third (optional) body part contains the returned message (return
+ of content). This structure is useful to the RFC 822 recipient, as
+ it enables the original message to be extracted. For negative
+ reports it shall be included if the original message is available.
+ For positive reports headers from the message shall be included if
+ the original message is available.
+
+ The first body part containing the user oriented description is of
+ type text/plain. The format of this body part is defined below as
+ EBNF.dr-user-info.
+
+ dr-user-info = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-content-return
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+
+
+
+Kille Standards Track [Page 102]
+
+RFC 2156 MIXER January 1998
+
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word report-point
+ = [ "mta" mta-name "in" ] global-id content-correlator = *word
+ mta-name = word
+
+ EBNF.dr-summary
+ The EBNF.content-correlator is taken from the content correlator
+ (or content identifier if there is no content correlator) and the
+ EBNF.date-time from the trace, as described in Section 5.3.8.3.
+ LWSP may be added to improve the layout of the body part.
+
+ EBNF.dr-recipients
+ There is an element for each recipient in the delivery report. In
+ each case, EBNF.mailbox is taken from the RFC 822 form of the
+ originally specified recipient, which is taken from the originally
+ specified recipient element if present or from the actual
+ recipient. When reporting success, the message delivery time is
+ used to derive EBNF.date-time. When reporting failure, the
+ information includes a human readable interpretation of the X.400
+ diagnostic and reason codes, and the supplementary information.
+
+ EBNF.dr-content-return
+ This is set according to whether or not the content is being
+ returned.
+
+ The EBNF of this body part is designed for english-speaking users.
+ The language of the strings in the EBNF may be altered.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 103]
+
+RFC 2156 MIXER January 1998
+
+
+ The EBNF used in the delivery status notification is:
+
+ dr-per-message-fields =
+ / "X400-Conversion-Date" ":" date-time
+ / "X400-Subject-Submision-Identifier" ":"
+ mts-msg-id
+ / "X400-Content-Identifier" ":" printablestring
+ / "X400-Content-Type" ":" mts-content-type
+ / "X400-Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Originator-and-DL-Expansion-History" ":"
+ mailbox ";" date-time ";"
+ / "X400-Reporting-DL-Name" ":" mailbox
+ / "X400-Content-Correlator" ":" content-correlator
+ / "X400-Recipient-Info" ":" recipient-info
+ / "X400-Subject-Intermediate-Trace-Information" ":"
+ x400-trace
+ / dr-extensions
+
+ dr-per-recipient-fields =
+ / "X400-Redirect-Recipient" ":" "x400" ";" std-or
+ / "X400-Mapped-Redirect-Recipient" ":" "rfc822" ";" mailbox
+ / "X400-Converted-EITs" ":" encoded-info ";"
+ / "X400-Delivery-Time" ":" date-time
+ / "X400-Type-of-MTS-User" ":" labelled-integer
+ / "X400-Last-Trace" ":" [ encoded-info ] date-time
+ / "X400-Supplementary-Info" ":"
+ <"> printablestring <"> ";"
+ / "X400-Redirection-History" ":" redirect-history-item
+ / "X400-Physical-Forwarding-Address" ":" mailbox
+ / "X400-Originally-Specified-Recipient-Number" ":"
+ integer
+ / dr-extensions
+
+ dr-extensions = "X400-Discarded-DR-Extensions" ":"
+ 1# (object-identifier / labelled-integer)
+
+ dr-diagnostic = "Reason" labelled-integer-2
+ [ ";" "Diagnostic" labelled-integer-2 ]
+
+ A body part of type delivery status, as defined by NOTARY, is
+ generated. MIXER extends this delivery status notification (DSN)
+ specification, by defining additional per message fields in EBNF.dr-
+ per-message-fields and additional per recipient fields in EBNF.dr-
+ per-recipient-fields. These are used as extensions to DSN.per-
+ message-fields and DSN.per-recipient-fields. MIXER also defines a
+ new NOTARY address type "x400", with encoding of EBNF.std-or. A
+ directory name may be inluded as an RFC 822 comment.
+
+
+
+Kille Standards Track [Page 104]
+
+RFC 2156 MIXER January 1998
+
+
+ The following DSN.per-message-fields are always generated:
+
+ DSN.reporting-mta-field
+ The DSN.mta-name-type is set to "x400", and this string is
+ reserved by MIXER. The DSN.mta-name has its syntax specified by
+ EBNF.report-point, with the information derived from the first
+ element of the DR's trace.
+
+ DSN.arrival-date-field
+ This is derived from the date of the
+ MTA.PerRecipientReportTransferFields.last-trace-info.arrival-time
+ of the first recipient in the report.
+
+ The following two EBNF.per-message-fields are generated by the MIXER
+ gateway:
+
+ DSN.dsn-gateway-field
+ The type is set to "dns" and the domain set to the local domain
+ of the gateway.
+
+ X400-Conversion-Date:
+ The EBNF.date-time is set to the time of the MIXER conversion.
+
+ The elements of MTS.ReportDeliveryEnvelope.per-report-fields are
+ mapped as follows onto the DSN per message fields as follows:
+
+ subject-submission-identifier
+ Mapped to DSN.original-envelope-id-field. The encoding of this
+ MTS Identifier follows the format EBNF.mts-msg-id.
+
+ content-identifier
+ Mapped to X400-Content-Identifier:
+
+ content-type
+ Mapped to X400-Content-Type:
+
+ original-encoded-information-types
+ Mapped to X400-Encoded-Info:
+
+ The extensions from MTS.ReportDeliveryEnvelope.per-report-
+ fields.extensions are mapped as follows:
+
+ originator-and-DL-expansion-history
+ Each element is mapped to an "X400-Originator-and-DL-Expansion-
+ History:" They shall be ordered so that the most recent expansion
+ comes first in the header (same order as trace).
+
+
+
+
+
+Kille Standards Track [Page 105]
+
+RFC 2156 MIXER January 1998
+
+
+ reporting-DL-name
+ Mapped to X400-Reporting-DL-Name:
+
+ content-correlator
+ If the content correlator starts with the string "SMTP/NOTARY
+ ENVID: ", then the remainder of the content correlator is mapped
+ to the DSN original-envelope-id field. If this is not the case,
+ the content correlator is mapped to X400-Content-Correlator:,
+ provided that the encoding is IA5String (this will always be the
+ case).
+
+ message-security-label
+ reporting-MTA-certificate
+ report-origin-authentication-check
+
+ These security parameters will not be present unless there is an
+ error in a remote MTA. If they are present, they shall be
+ discarded in preference to discarding the whole report. They
+ shall be listed in the X400-Discarded-DR-Extensions: field.
+
+ If there are any other DR extensions, they shall also be discarded
+ and listed in the X400-Discarded-DR-Extensions: field.
+
+ For each element of MTS.ReportDeliveryEnvelope.per-recipient-fields,
+ a set of DSN.per-recipient-fields is generated. The fields are
+ filled in as follows:
+
+ actual-recipient-name
+ If originally-intended-recipient-name is not present, generate a
+ DSN.original-recipient-field fields, with DSN.address-type of
+ "rfc822", and with an RFC 822 mailbox generated from the address
+ encoded as specified by NOTARY. Also generate a DSN.final-
+ recipient-field field, which holds the X.400 representation of the
+ same address. If the directory name is present, it shall be added
+ as a trailing comment in the X.400 form.
+
+ If originally-intended-recipient-name is present, generate an
+ "X400-Mapped-Redirect-Recipient:" field, with DSN.address-type of
+ "rfc822", and with an RFC 822 mailbox generated from the address
+ encoded as specified by NOTARY. Also generate an "X400-Redirect-
+ Recipient:" field, which holds the X.400 representation of the
+ same address. If the directory name is present, it shall be added
+ as a trailing comment in the X.400 form.
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 106]
+
+RFC 2156 MIXER January 1998
+
+
+ report
+ If it is MTS.Report.delivery, then set DSN.action-field to
+ "delivered", and set "X400-Delivery-Time:" and "X400-Type-of-MTS-
+ User:" from the information in the report. DSN.status field is
+ set to "2.0.0".
+
+ If it is MTS.Report.non-delivery, then set DSN.action-field to
+ "failed". DSN.diagnostic-code-field is encoded according to the
+ syntax EBNF.dr-diagnostic, with the labelled integers set from the
+ reason and diagnostic codes. DSN.status-field is derived from the
+ reason and diagnostic codes, as described below.
+
+ converted-encoded-information-types
+ Set X400-Converted-EITs:
+
+ originally-intended-recipient
+ Generate a DSN.final-recipient-field field, with DSN.address-type
+ of "rfc822", and with an RFC 822 mailbox generated from the
+ address encoded as specified by NOTARY. Also generate a
+ DSN.original-recipient-field field, which holds the X.400
+ representation of the same address. If the directory name is
+ present, it shall be added as a trailing comment in the X.400
+ form.
+
+ supplementary-info
+ Set X400-Supplementary-Info:
+
+ redirection-history
+ Generate an "X400-Redirection-History:" field for each redirect
+ history element. The fields are ordered with the earliest
+ redirect first.
+
+ physical-forwarding-address
+ Set X400-Physical-Forwarding-Address as a mailbox, with directory
+ name in comment if present.
+
+ recipient-certificate
+ Discard
+
+ proof-of-delivery
+ Discard
+
+ Any unknown extensions shall be discarded, irrespective of
+ criticality. All discarded extensions shall be included in a "X400-
+ Discarded-DR-Extensions:" field.
+
+
+
+
+
+
+Kille Standards Track [Page 107]
+
+RFC 2156 MIXER January 1998
+
+
+ The number from the MTA.PerRecipientReportTransferFields.originally-
+ specified-recipient-number shall be mapped to "X400-Originally-
+ Specified-Recipient-Number:", in order to facilitate reverse mapping
+ of delivery reports.
+
+ The original message shall be included in the delivery status
+ notification if it is available. The original message will usually be
+ available at the gateway, as discussed in Section 5.2. If the
+ original message is available, but is not a legal message format, a
+ dump of the ASN.1 may be included, encoded as application/octet-
+ string. This is recommended, but not required.
+
+ Where the original message is included, it shall be encoded according
+ to the MIME specifications as content type message/rfc822.
+
+5.3.8.2. Status Code Mappings
+
+ This section defines the mappings from X.400 diagnostic and status
+ codes to the NOTARY Status field.
+
+C/D X400 meaning DSN code Means
+
+0/Any Transfer failure (may be temporary) 4.4.0 Other net/route
+1/Any Unable to transfer 5.0.0 Other, unknown
+2/Any Conversion not performed 5.6.3 Conv not supported
+3/Any Physical rendition not performed 5.6.0 Other media error
+4/Any Physical delivery not performed 5.1.0 Other address
+ status
+5/Any Restricted delivery 5.7.1
+6/Any Directory operation unsuccessful 5.4.3 Routing server
+ failure
+7/Any Deferred delivery not performed 5.3.3 Not capable
+
+1/0 Unrecognized OR name 5.1.1
+1/1 Ambiguous OR name 5.1.4
+1/2 MTS congestion 4.3.1
+1/3 Loop detected 5.4.6
+1/4 Recipient unavailable 4.2.1
+1/5 Delivery time expired 4.4.7
+1/6 Encoded information types unsupported 5.6.1 Media unsupp.
+1/7 Content too long 5.2.3
+2/8 Conversion impractical 5.6.3
+2/9 Conversion prohibited 5.6.3
+1/10 Implicit conversion not subscribed 5.6.3
+1/11 Invalid arguments 5.5.2
+1/12 Content syntax error 5.5.2
+1/13 Size constraint violation 5.5.2
+1/14 Protocol violation 5.5.0
+
+
+
+Kille Standards Track [Page 108]
+
+RFC 2156 MIXER January 1998
+
+
+1/15 Content type not supported 5.6.1 Media unsupp.
+1/16 Too many recipients 5.5.3
+1/17 No bilateral agreement 5.4.4
+1/18 Unsupported critical function 5.3.3 System not capable
+2/19 Conversion with loss prohibited 5.6.2
+2/20 Line too long 5.6.0
+2/21 Page split 5.6.0
+2/22 Pictorial symbol loss 5.6.2
+2/23 Punctuation symbol loss 5.6.2
+2/24 Alphabetic character loss 5.6.2
+2/25 Multiple information loss 5.6.2
+1/26 Recipient reassignment prohibited 5.4.0 Undefined net/route
+1/27 Redirection loop detected 5.4.6
+1/28 DL expansion prohibited 5.7.2
+1/29 No DL submit permission 5.7.1 Delivery not
+ authorized
+1/30 DL expansion failure 4.2.4
+4/31 Physical rendition attrs not supported 5.6.0 Undefined media
+ error
+4/32-45 Various physical mail stuff 5.1.0 Other address
+ status
+1/43 New address unknown 5.1.6 Destination mbox
+ moved
+1/46 Secure messaging error 5.7.0 Other security
+ status
+2/47 Unable to downgrade 5.3.3 System not capable
+0/48 Unable to complete transfer 5.3.4 Message too big
+0/49 Transfer attempts limit reached 4.4.7 Delivery time
+ expired
+
+5.3.8.3. MTA Mappings
+
+ The single SMTP recipient is constructed from
+ MTA.ReportTransferEnvelope.report-destination-name, using the
+ mappings of Chapter 4. Unlike with a user message, this information
+ is not available at the MTS level.
+
+ The following additional mappings are made, which results in fields
+ in the outer header of the DSN.
+
+ MTA.ReportTransferEnvelope.report-destination-name
+ This is used to generate the To: field.
+
+ MTA.ReportTransferEnvelope.identifier
+ Mapped to the extended RFC 822 field "X400-MTS-Identifier:". It
+ may also be used to derive a "Message-Id:" field.
+
+
+
+
+
+Kille Standards Track [Page 109]
+
+RFC 2156 MIXER January 1998
+
+
+ MTA.ReportTransferEnvelope.trace-information
+ and
+ MTA.ReportTransferEnvelope.internal-trace-information
+
+ Mapped onto the extended RFC 822 field "X400-Received:", as
+ described in Section 5.3.7. Date: is generated from the first
+ element of trace.
+
+ The following additional mappings are made, which result in per
+ message fields in the DSN body part:
+
+ MTA.PerRecipientReportTransferFields.last-trace-information
+ Mapped to X400-Last-Trace:".
+
+ MTA.PerReportTransferFields.subject-intermediate-trace-
+ information Mapped to "X400-Subject-Intermediate-Trace-
+ Information:". These fields are ordered so that the most recent
+ trace element comes first.
+
+5.3.8.4. Example Delivery Reports
+
+ This section contains sample delivery reports. These are the same
+ examples used in RFC 1327, and so they also illustrate the changes
+ between RFC 1327 and this document. Example Delivery Report 1:
+
+ Received: from cs.ucl.ac.uk by bells.cs.ucl.ac.uk
+ via Delivery Reports Channel id <27699-0@bells.cs.ucl.ac.uk>;
+ Thu, 7 Feb 1991 15:48:39 +0000 From: UCL-CS MTA
+ <postmaster@cs.ucl.ac.uk> To: S.Kille@cs.ucl.ac.uk Subject: Delivery
+ Report (failure) for H.Hildegard@bbn.com Message-Type: Delivery
+ Report Date: Thu, 7 Feb 1991 15:48:39 +0000 Message-ID:
+ <"bells.cs.u.694:07.01.91.15.48.34"@cs.ucl.ac.uk> X400-Content-
+ Identifier: Greetings. MIME-Version: 1.0 Content-Type:
+ multipart/report; report-type=delivery-status;
+ boundary=boundary-1
+
+ --boundary-1
+
+ This report relates to your message:
+ Greetings.
+
+ of Thu, 7 Feb 1991 15:48:20 +0000
+
+ Your message was not delivered to
+ H.Hildegard@bbn.com for the following reason:
+ Bad Address
+ MTA 'bbn.com' gives error message (USER) Unknown user name
+ in
+
+
+
+Kille Standards Track [Page 110]
+
+RFC 2156 MIXER January 1998
+
+
+ "H.Hildegard@bbn.com"
+
+ The Original Message follows:
+
+
+ --boundary-1 content-type: message/delivery-status
+
+ Reporting-MTA: x400; bells.cs.ucl.ac.uk in /PRMD=uk.ac/ADMD=gold
+ 400/C=gb/ Arrival-Date: Thu, 7 Feb 1991 15:48:34 +0000 DSN-Gateway:
+ dns; bells.cs.ucl.ac.uk X400-Conversion-Date: Thu, 7 Feb 1991
+ 15:48:40 +0000 Original-Envelope-Id:
+ [/PRMD=uk.ac/ADMD=gold
+ 400/C=gb/;<1803.665941698@UK.AC.UCL.CS>] X400-Content-Identifier:
+ Greetings. X400-Subject-Intermediate-Trace-Information:
+ /PRMD=uk.ac/ADMD=gold 400/C=gb/;
+ arrival Thu, 7 Feb 1991 15:48:20 +0000 action Relayed X400-
+ Subject-Intermediate-Trace-Information: /PRMD=uk.ac/ADMD=gold
+ 400/C=gb/;
+ arrival Thu, 7 Feb 1991 15:48:18 +0000 action Relayed
+
+
+
+ Original-Recipient: rfc822; H.Hildegard@bbn.com Final-Recipient:
+ x400;
+ /RFC-822=H.Hildegard(a)bbn.com/OU=cs/O=ucl/PRMD=uk.ac/ADMD=gold
+ 400/C=gb/; Action: failure Status: 5.1.1 Diagnostic-Code: x400;
+ Reason 1 (Unable-To-Transfer);
+ Diagnostic 0 (Unrecognised-ORName) X400-Last-Trace: (ia5) Thu, 7
+ Feb 1991 15:48:18 +0000; X400-Originally-Specified-Recipient-Number:
+ 1 X400-Supplementary-Info: "MTA 'bbn.com' gives error message (USER)
+ Unknown user name in "H.Hildegard@bbn.com"";
+
+
+ --boundary-1 Content-Type: message/rfc822
+
+ Received: from glenlivet.cs.ucl.ac.uk by bells.cs.ucl.ac.uk
+ with SMTP inbound id <27689-0@bells.cs.ucl.ac.uk>;
+ Thu, 7 Feb 1991 15:48:21 +0000 To: H.Hildegard@bbn.com Subject:
+ Greetings. Phone: +44-71-380-7294 Date: Thu, 07 Feb 91 15:48:18
+ +0000 Message-ID: <1803.665941698@UK.AC.UCL.CS> From: Steve Kille
+ <S.Kille@cs.ucl.ac.uk>
+
+
+ Steve
+
+ --boundary-1--
+
+
+
+
+
+Kille Standards Track [Page 111]
+
+RFC 2156 MIXER January 1998
+
+
+ Example Delivery Report 2:
+
+ Received: from cs.ucl.ac.uk by bells.cs.ucl.ac.uk
+ via Delivery Reports Channel id <27718-0@bells.cs.ucl.ac.uk>;
+ Thu, 7 Feb 1991 15:49:11 +0000
+ X400-Received: by mta "bells.cs.ucl.ac.uk" in
+ /PRMD=uk.ac/ADMD=gold 400/C=gb/;
+ Relayed; Thu, 7 Feb 1991 15:49:08 +0000
+ X400-Received: by /PRMD=DGC/ADMD=GOLD 400/C=GB/; Relayed;
+ Thu, 7 Feb 1991 15:48:40 +0000
+ From: UCL-CS MTA <postmaster@cs.ucl.ac.uk>
+ To: S.Kille@cs.ucl.ac.uk
+ Subject: Delivery Report (failure) for
+ j.nosuchuser@dle.cambridge.DGC.gold-400.gb
+ Message-Type: Delivery Report
+ Date: Thu, 7 Feb 1991 15:46:11 +0000
+ Message-ID: <"DLE/910207154840Z/000"@cs.ucl.ac.uk>
+ X400-Content-Identifier: A useful mess...
+ MIME-Version: 1.0
+ Content-Type: multipart/report; report-type=delivery-status;
+ boundary=boundary-1
+
+ --boundary-1
+
+ This report relates to your message:
+ A useful mess...
+
+ of Thu, 7 Feb 1991 15:43:20 +0000
+
+
+ Your message was not delivered to
+ j.nosuchuser@dle.cambridge.DGC.gold-400.gb
+ for the following reason:
+ Bad Address
+ DG 21187: (CEO POA) Unknown addressee.
+
+ The Original Message is not available
+
+
+ --boundary-1
+ content-type: message/delivery-status
+
+
+ Reporting-MTA: x400; /PRMD=DGC/ADMD=GOLD 400/C=GB/
+ Arrival-Date: Thu, 7 Feb 1991 15:48:40 +0000
+ DSN-Gateway: dns; bells.cs.ucl.ac.uk
+ X400-Conversion-Date: Thu, 7 Feb 1991 15:49:12 +0000
+ Original-Envelope-Id:
+
+
+
+Kille Standards Track [Page 112]
+
+RFC 2156 MIXER January 1998
+
+
+ [/PRMD=uk.ac/ADMD=gold 400/C=gb/;<1796.665941626@UK.AC.UCL.CS>]
+ X400-Content-Identifier: A useful mess...
+
+
+ Original-Recipient: rfc822; j.nosuchuser@dle.cambridge.DGC.gold-400.gb
+ Final-Recipient: x400;
+ /I=j/S=nosuchuser/OU=dle/O=cambridge/PRMD=DGC/ADMD=GOLD 400/C=GB/
+ Action: failure
+ Status: 5.1.1
+ Diagnostic-Code: x400; Reason 1 (Unable-To-Transfer);
+ Diagnostic 0 (Unrecognised-ORName)
+ X400-Supplementary-Info: "DG 21187: (CEO POA) Unknown addressee."
+ X400-Originally-Specified-Recipient-Number: 1
+
+ --boundary-1--
+
+
+5.3.9. Probe
+
+ This is an MTS internal issue. Any probe shall be serviced by the
+ gateway, as there is no equivalent RFC 822 functionality. The value
+ of the reply is dependent on whether the gateway could service an MTS
+ Message with the values specified in the probe. The reply shall make
+ use of MTS.SupplementaryInformation to indicate that the probe was
+ serviced by the gateway.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 113]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix A - Mappings Specific to SMTP
+
+ This Appendix is specific to the Simple Mail Transfer Protocol (RFC
+ 821). It describes specific changes in the context of this protocol.
+ When MIXER is used with SMTP, conformance to this appendix is
+ mandatory.
+
+ 1. Probes
+
+ When servicing a probe, as described in section 5.3.9, use may be
+ made of the SMTP VRFY command to increase the accuracy of information
+ contained in the delivery report.
+
+ 2. Long Lines
+
+ SMTP is a text oriented protocol, and is required to support a line
+ length of at least 1000 characters. Some implementations do not
+ support line lengths greater than 1000 characters. This can cause
+ problems. Where body parts have long lines, it is recommended to use
+ a MIME encoding that folds lines (quoted printable).
+
+ 3. SMTP Extensions
+
+ There are several RFCs that specify extensions to SMTP. Most of these
+ are not relevant to MIXER. The NOTARY work to support delivery
+ report defines extensions which are relevant [29]. Use of these
+ extensions by a MIXER gateway is optional. If these extensions are
+ used, they shall be used in the manner described below.
+
+ 3.1. SMTP Extension mapping to X.400
+
+ Mappings are defined for the following extensions:
+
+ NOTIFY
+ This is used to set the report and non-delivery bits of
+ MTA.PerRecipientMessageTransferFields.per-recipient-indicators.
+ If the value is NEVER, both bits are zero. If SUCCESS is present,
+ the report bit is set. Otherwise, the non-delivery-report bit is
+ set. If the gateway uses the NOTIFY command, it shall perform
+ this mapping in all cases.
+
+ ORCPT
+ If the address type of the original recipient is "x400" or
+ "rfc822", this may be used at the MTS level, to generate an
+ element of redirection history, with the redirection date being
+ the date of conversion and the reason set to "alias".
+
+
+
+
+
+Kille Standards Track [Page 114]
+
+RFC 2156 MIXER January 1998
+
+
+ ENVID
+ If present, this may be used to generate a content correlator.
+ This is used rather than the MTS Identifier, as the ENVID is
+ unique for the UA only and is likely to be too large to map to an
+ MTS identifier. The content correlator is encoded as an IA5 String
+ containing the ENVID and prefixed by the string:
+
+ "SMTP/NOTARY ENVID: "
+
+ If the ENVID starts with the string "X400-MTS-Identifier: ", then
+ this ENVID was generated from an X.400 MTS Identifier. The
+ reverse mapping defined in Section 3.2 of Appendix A shall not be
+ used, as this may cause problems in certain situations (e.g.,
+ where the message was expanded by an Internet mailing list).
+
+ 3.2. X.400 Mapping to SMTP Extensions
+
+ The following extensions may be used as a part of the MIXER mapping:
+
+ NOTIFY
+ The originator-report and originator-non-delivery-report bits of
+ MTA.PerRecipientMessageTransferFields.per-recipient-indicators
+ determine how this is used. If both bits are zero, the parameter
+ is NEVER. If the report bit is set, SUCCESS is used. Otherwise,
+ FAILURE is used. If this is done, the gateway shall not generate
+ a delivery report for this recipient, unless this is needed in the
+ case where the originating MTA service report requirements differ
+ from the user requirements. Additional originating MTA
+ requrirements are satisfied by the gateway.
+
+ ORCPT
+ If the MTS.perRecipientDeliveryFields.originally-intended-
+ recipient-name is present, the ORCPT command may be used to carry
+ this value, using the "x400" syntax.
+
+ ENVID
+ This may be generated, with the value taken from the
+ MTS.MessageDeliveryEnvelope.message-delivery-identifer. If this
+ is done, it shall be encoded as EBNF.mts-msg-id, preceded by the
+ string "X400-MTS-Identifier: ".
+
+ RET
+ If MTA.PerMessageTransferFields.per-message-indicators.content-
+ return-request is set to FALSE, the parameter RET may be set to
+ HDRS, to specify return of headers only.
+
+
+
+
+
+
+Kille Standards Track [Page 115]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix B - Mapping with X.400(1984)
+
+ This appendix defines modifications to the mapping for use with
+ X.400(1984).
+
+ The X.400(1984) protocols are a proper subset of X.400(1988). When
+ mapping from X.400(1984) to RFC 822, no changes to this specification
+ are needed.
+
+ When mapping from RFC 822 to X.400(1984), no use can be made of 1988
+ specific features. No use of such features is made at the MTS
+ level. The heading extension feature is used at the IPMS level, and
+ this shall be replaced by the RFC 987 approach. All header
+ information which would usually be mapped into the rfc-822-heading-
+ list extension is mapped into a single IA5 body part, which is the
+ first body part in the message. This body part will start with the
+ string "RFC-822-Headers:" as the first line. The headers then follow
+ this line. This specification requires correct reverse mapping of
+ this format, either from 1988 or 1984. RFC 822 extended headers
+ which could be mapped into X.400(1988) elements, are also mapped to
+ the body part.
+
+ In an environment where RFC 822 is of major importance, it may be
+ desirable for downgrading to consider the case where the message was
+ originated in an RFC 822 system, and mapped according to this
+ specification. The rfc-822-heading-list extension may be mapped
+ according to this appendix.
+
+ When parsing std-or, the following restrictions shall be observed:
+
+ - Only the 84/88 attributes identified in the table in
+ Section 4.2 are present.
+
+ - No teletex encoding is allowed.
+
+ If an address violates this, it shall be treated as an RFC 822
+ address, which will usually lead to encoding as a DDA "RFC-822".
+
+ It is possible that attributes of zero length may be present
+ in an OR Address. This is not legal in 1988, except for ADMD
+ where the case is explicitly described in Section 4.3.5.
+ Attributes of zero length are deprecated (the attribute shall be
+ omitted), and will therefore be unusual. However, some systems
+ generate them and rely on them. Therefore, any null attribute
+ shall be enoded using the std-or encoding (e.g., /O=/).
+
+
+
+
+
+
+Kille Standards Track [Page 116]
+
+RFC 2156 MIXER January 1998
+
+
+ If a non-Teletex Common Name (CN) is present, it shall be
+ mapped onto a Domain Defined Attribute "Common". This is in line
+ with RFC 1328 on X.400 1988 to 1984 downgrading [22].
+
+ This specification defines a mapping of the Internet message
+ framework to X.400. Body part mappings are defined in RFC
+ 2157 [6], which relies on X.400(88) features. Downgrading to
+ X.400(84) for body parts is defined in RFC 1496 (HARPOON), which
+ shall be followed in the context of this appendix [5].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 117]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix C - RFC 822 Extensions for X.400 access
+
+ This appendix defines a number of optional mappings which may be
+ provided to give access from RFC 822 to a number of X.400 services.
+ These mappings are beyond the basic scope of this specification.
+ There has been a definite demand to use extended RFC 822 as a
+ mechanism to access X.400, and these extensions provide access to
+ certain features. If this functionality is provided, this appendix
+ shall be followed. The following headings are defined:
+
+ extended-heading =
+ "Prevent-NonDelivery-Report" ":"
+ / "Generate-Delivery-Report" ":"
+ / "Alternate-Recipient" ":" prohibition
+ / "Disclose-Recipients" ":" prohibition
+ / "X400-Content-Return" ":" prohibition
+
+ Prevent-NonDelivery-Report and Generate-Delivery-Report allow setting
+ of MTS.PerRecipientSubmissionFields.originator-report-request. The
+ setting will be the same for all recipients.
+
+ Alternate-Recipient, Disclose-Recipients, and X400-Content-Return
+ allow for override of the default settings for
+ MTS.PerMessageIndicators.
+
+ Use of NOTARY mechanisms is a preferred meachanism for controlling
+ these parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 118]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix D - Object Identifier Assignment
+
+ The following Object Identifiers shall be used.
+
+ internet ::= OBJECT IDENTIFIER { iso org(3) dod(6) 1 } -- from RFC
+ 1155
+
+ mail OBJECT IDENTIFIER ::= { internet 7 } -- IANA assigned
+
+ mixer OBJECT IDENTIFIER ::= { mail mixer(1) } -- inherited from RFC
+ 1495
+ mixer-core OBJECT IDENTIFIER ::= { mixer core(3) }
+
+ id-rfc-822-field-list OBJECT IDENTIFIER ::= {mixer-core 2}
+ id-dsn-header-list OBJECT IDENTIFIER ::= {mixer-core 3}
+ id-dsn-field-list OBJECT IDENTIFIER ::= {mixer-core 4}
+
+ eit-mixer OBJECT IDENTIFIER ::= {mixer-core 5}
+ -- the MIXER pseudo-EIT
+
+ This object identifier for id-rfc-822-field-list is different to
+ the one assigned in RFC 1327, which was erroneous.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 119]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix E - BNF Summary
+
+ boolean = "TRUE" / "FALSE"
+
+
+ numericstring = *(DIGIT / " ")
+
+
+ printablestring = *( ps-char )
+ ps-restricted-char = 1DIGIT / 1ALPHA / " " / "'" / "+"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+ ps-delim = "(" / ")"
+ ps-char = ps-delim / ps-restricted-char
+
+
+ ps-encoded = *( ps-restricted-char / ps-encoded-char )
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(l)" ; "("
+ / "(r)" ; ")"
+ / "(" 3DIGIT ")"
+
+ teletex-string = *( ps-char / t61-encoded )
+ t61-encoded = "{" 1* t61-encoded-char "}"
+ t61-encoded-char = 3DIGIT
+
+
+ teletex-and-or-ps = [ printablestring ] [ "*" teletex-string ]
+
+
+ labelled-integer ::= [ key-string ] "(" numericstring ")"
+
+ labelled-integer-2 ::= [ numericstring ] "(" key-string ")"
+
+ key-string = *key-char
+ key-char = <a-z, A-Z, 0-9, and "-">
+
+ object-identifier ::= oid-comp object-identifier
+ | oid-comp
+
+ oid-comp ::= [ key-string ] "(" numericstring ")"
+
+
+ encoded-info = 1#encoded-type
+
+
+
+
+Kille Standards Track [Page 120]
+
+RFC 2156 MIXER January 1998
+
+
+ encoded-type = built-in-eit / object-identifier
+
+ built-in-eit = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+
+
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+
+ std-or-address = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "RFC-822"
+ / dd-key "." std-printablestring
+
+ std-or-address-input = [ sep pair ] sep pair *( sep pair )
+ sep [ pair sep ]
+
+ sep = "/" / ";"
+ pair = input-attribute "=" value
+ input-attribute = attribute
+ / dd-key ":" std-printablestring
+
+
+ standard-type = key-string
+
+ dd-key = key-string
+
+ value = std-printablestring
+
+ std-printablestring
+ = *( std-char / std-pair )
+
+ std-char = <"{", "}", "*", and any ps-char
+
+
+
+Kille Standards Track [Page 121]
+
+RFC 2156 MIXER January 1998
+
+
+ except "/" and "=" >
+ std-pair = "$" ps-char
+
+
+ global-id = std-or-address
+
+
+
+ mta-field = "X400-Received" ":" x400-trace
+ / "Deferred-Delivery" ":" date-time
+ / "Latest-Delivery-Time" ":" date-time
+
+
+
+ x400-trace = "by" md-and-mta ";"
+ [ "deferred until" date-time ";" ]
+ [ "converted" "(" encoded-info ")" ";" ]
+ [ "attempted" md-or-mta ";" ]
+ action-list
+ ";" arrival-time
+
+
+ md-and-mta = [ "mta" mta "in" ] global-id
+ mta = word
+ arrival-time = date-time
+
+ md-or-mta = "MD" global-id
+ / "MTA" mta
+
+ Action-list = 1#action
+ action = "Redirected"
+ / "Expanded"
+ / "Relayed"
+ / "Rerouted"
+
+ dr-user-info = dr-summary <CRLF>
+ dr-recipients <CRLF>
+ dr-content-return
+
+
+ dr-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+
+ dr-summary = "This report relates to your message:" <CRLF>
+ content-correlator <CRLF> <CRLF>
+ "of" date-time <CRLF> <CRLF>
+
+ dr-recipients = *(dr-recipient <CRLF> <CRLF>)
+
+
+
+Kille Standards Track [Page 122]
+
+RFC 2156 MIXER January 1998
+
+
+ dr-recipient = dr-recip-success / dr-recip-failure
+
+ dr-recip-success =
+ "Your message was successfully delivered to:"
+ mailbox "at" date-time
+
+
+ dr-recip-failure = "Your message was not delivered to:"
+ mailbox <CRLF>
+ "for the following reason:" *word
+
+ report-point = [ "mta" mta-name "in" ] global-id
+ content-correlator = *word
+ mta-name = word
+
+ dr-per-message-fields =
+ / "X400-Conversion-Date" ":" date-time
+ / "X400-Subject-Submision-Identifier" ":"
+ mts-msg-id
+ / "X400-Content-Identifier" ":" printablestring
+ / "X400-Content-Type" ":" mts-content-type
+ / "X400-Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Originator-and-DL-Expansion-History" ":"
+ mailbox ";" date-time ";"
+ / "X400-Reporting-DL-Name" ":" mailbox
+ / "X400-Content-Correlator" ":" content-correlator
+ / "X400-Recipient-Info" ":" recipient-info
+ / "X400-Subject-Intermediate-Trace-Information" ":"
+ x400-trace
+ / dr-extensions
+
+
+ dr-per-recipient-fields =
+ / "X400-Redirect-Recipient" ":" "x400" ";" std-or
+ / "X400-Mapped-Redirect-Recipient" ":" "rfc822" ";"
+ mailbox
+ / "X400-Converted-EITs" ":" encoded-info ";"
+ / "X400-Delivery-Time" ":" date-time
+ / "X400-Type-of-MTS-User" ":" labelled-integer
+ / "X400-Last-Trace" ":" [ encoded-info ] date-time
+ / "X400-Supplementary-Info" ":"
+ <"> printablestring <"> ";"
+ / "X400-Redirection-History" ":" redirect-history-item
+ / "X400-Physical-Forwarding-Address" ":" mailbox
+ / "X400-Originally-Specified-Recipient-Number" ":"
+ integer
+ / dr-extensions
+
+
+
+Kille Standards Track [Page 123]
+
+RFC 2156 MIXER January 1998
+
+
+ dr-extensions = "X400-Discarded-DR-Extensions" ":"
+ 1# (object-identifier / labelled-integer)
+
+
+ dr-diagnostic = "Reason" labelled-integer-2
+ [ ";" "Diagnostic" labelled-integer-2 ]
+
+ mts-field = "X400-MTS-Identifier" ":" mts-msg-id
+ / "X400-Originator" ":" mailbox
+ / "X400-Recipients" ":" 1#mailbox
+ / "Original-Encoded-Information-Types" ":"
+ encoded-info
+ / "X400-Content-Type" ":" mts-content-type
+ / "X400-Content-Identifier" ":" printablestring
+ / "Priority" ":" priority
+ / "Originator-Return-Address" ":" 1#mailbox
+ / "DL-Expansion-History" ":" mailbox ";" date-time ";"
+ / "Conversion" ":" prohibition
+ / "Conversion-With-Loss" ":" prohibition
+ / "Delivery-Date" ":" date-time
+ / "Discarded-X400-MTS-Extensions" ":"
+ 1#( object-identifier / labelled-integer )
+
+ prohibition = "Prohibited" / "Allowed"
+
+ mts-msg-id = "[" global-id ";" *text "]"
+
+ mts-content-type = "P2" / labelled-integer
+ / object-identifier
+
+ priority = "normal" / "non-urgent" / "urgent"
+
+ ipn-body-format = ipn-description <CRLF>
+ [ ipn-extra-information <CRLF> ]
+ [ ipn-content-return ]
+
+ ipn-description = ipn-receipt / ipn-non-receipt
+
+ ipn-receipt = "Your message to:" preferred-recipient <CRLF>
+ "was received at" receipt-time <CRLF> <CRLF>
+ "This notification was generated"
+ acknowledgement-mode <CRLF>
+ "The following extra information was given:" <CRLF>
+ ipn-suppl <CRLF>
+
+ ipn-non-receipt = "Your message to:"
+ preferred-recipient <CRLF>
+ ipn-reason
+
+
+
+Kille Standards Track [Page 124]
+
+RFC 2156 MIXER January 1998
+
+
+ ipn-reason = ipn-discarded / ipn-auto-forwarded
+
+ ipn-discarded = "was discarded for the following reason:"
+ discard-reason <CRLF>
+
+ ipn-auto-forwarded = "was automatically forwarded." <CRLF>
+ [ "The following comment was made:"
+ auto-comment ]
+
+
+ ipn-extra-information =
+ "The following information types were converted:"
+ encoded-info
+
+ ipn-content-return = "The Original Message is not available"
+ / "The Original Message follows:"
+
+ preferred-recipient = mailbox
+ receipt-time = date-time
+ auto-comment = printablestring
+ ipn-suppl = printablestring
+
+
+ discard-reason = "Expired" / "Obsoleted" /
+ "User Subscription Terminated" / "IPM Deleted"
+
+ acknowledgement-mode = "Manually" / "Automatically"
+
+
+ ipms-field = "Supersedes" ":" 1*msg-id
+ / "Expires" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+ / "Incomplete-Copy" ":"
+ / "Content-Language" ":" 1#language
+ / "Message-Type" ":" message-type
+ / "Discarded-X400-IPMS-Extensions" ":"
+ 1#object-identifier
+ / "Autosubmitted" ":" autosubmitted
+
+ importance = "low" / "normal" / "high"
+
+ sensitivity = "Personal" / "Private" /
+ "Company-Confidential"
+
+ language = 2*ALPHA [ "(" language-description ")" ]
+
+
+
+Kille Standards Track [Page 125]
+
+RFC 2156 MIXER January 1998
+
+
+ language-description = printable-string
+
+
+ message-type = "Delivery Report"
+ / "InterPersonal Notification"
+ / "Multiple Part"
+
+
+ autosubmitted = "not-auto-submitted"
+ / "auto-generated"
+ / "auto-replied"
+ / "auto-forwarded"
+
+ redirect-comment = redirect-first *( redirect-subsequent )
+
+ redirect-first = "Originally To:" mailbox "Redirected on"
+ date-time "To:" redirection-reason
+
+ redirect-subsequent = mailbox "Redirected Again on"
+ date-time "To:" redirection-reason
+
+ redirection-history-item = "intended recipient" mailbox
+ "redirected to" redirection-reason
+ "on" date-time
+
+ redirection-reason =
+ "Recipient Assigned Alternate Recipient"
+ / "Originator Requested Alternate Recipient"
+ / "Recipient MD Assigned Alternate Recipient"
+ / "Directory Look Up"
+ / "Alias"
+
+ subject-line = "Delivery-Report" "(" status ")"
+ [ "for" destination ]
+
+ status = "success" / "failure" / "success and failures"
+
+ destination = mailbox / "MTA" word
+
+ extended-heading =
+ "Prevent-NonDelivery-Report" ":"
+ / "Generate-Delivery-Report" ":"
+ / "Alternate-Recipient" ":" prohibition
+ / "Disclose-Recipients" ":" prohibition
+ / "X400-Content-Return" ":" prohibition
+
+
+
+
+
+
+Kille Standards Track [Page 126]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix F - Text format for MCGAM distribution
+
+1. Text Formats
+
+ This appendix defines text formats for exchange of four types of
+ mapping.
+
+ 1. Domain Name Space -> OR Address Space MCGAM
+
+ 2. OR Address Space -> Domain Name Space MCGAM
+
+ 3. Domain Name Space -> OR Address of preferred gateway
+
+ 4. OR Address Space -> Domain Name of preferred gateway
+
+2. Mechanisms to register and to distribute MCGAMs
+
+ There is a well known set of MCGAM tables.
+
+ The global coordination of the mapping rules is a part of the DANTE
+ MailFLOW Project. New mapping rules may be defined by the authority
+ responsible for the relevant name space. The rules need to be
+ registered with a national mapping registration authority, which in
+ turn passes them on to the central mapping registration authority.
+ All the collected mapping rules are merged together into the globally
+ coordinated mapping tables by the MailFLOW Project Team. The tables
+ are available from the national mapping registration authorities.
+
+ To get a contact address of the mapping registration authority for
+ the respective country or more information about the MailFLOW Project
+ contact:
+
+ SWITCH
+ MailFLOW Project Team
+ Limmatquai 138
+ 8001 Zuerich
+ Switzerland
+
+ email: mailflow@mailflow.dante.net
+ S=MailFLOW;O=MailFLOW;P=DANTE;A=mailnet;C=fi;
+
+ fax: +41 1 268 15 68
+ tel: +41 1 268 15 20
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 127]
+
+RFC 2156 MIXER January 1998
+
+
+3. Syntax Definitions
+
+ An address syntax is defined, which is compatible with the syntax
+ used for 822.domains. By representing the OR addresses as domains,
+ all lookups can be mechanically implemented as domain -> domain
+ mappings. This syntax defined is initially for use in table format,
+ but the syntax is defined in a manner which makes it suitable to be
+ adapted for use with the Domain Name Service. This syntax allows
+ for a general representation of OR addresses, so that it can be used
+ in other applications. Not all attributes are used in the table
+ formats defined.
+
+ To allow the mapping where a level of the hierarchy is omitted, the
+ pseudo-value "@" (not a printable string character) is used to
+ indicate omission of a level in the hierarchy. This is distinct from
+ the form including the element with no value, although a correct
+ X.400 implementation will interpret both in the same manner.
+
+ This syntax is not intended to be handled by users.
+
+ dmn-or-address = dmn-part *( "." dmn-part )
+ mn-part = dmn-attribute "$" value
+ dmn-attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ / "@"
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <"{", "}", "*", and any ps-char
+ except ".">
+ dmn-pair = "\."
+
+ An example usage:
+
+ ~ROLE$Big\.Chief.ADMD$ATT.C$US
+ PRMD$DEC.ADMD$@.C$US
+
+ The first example illustrates quoting of a "." and a domain define
+ attribute (ROLE). The second example illustrates omission of the
+ ADMD level. There shall be a strict ordering of all components in
+ this table, with the most significant components on the RHS. This
+ allows the encoding to be treated as a domain.
+
+ Various further restrictions are placed on the usage of dmn-or-
+ address in the address space mapping tables.
+
+ a. Only C, ADMD, PRMD, O, and up to four OUs may be used.
+
+
+
+
+Kille Standards Track [Page 128]
+
+RFC 2156 MIXER January 1998
+
+
+ b. No components shall be omitted from this hierarchy, although
+ the hierarchy may terminate at any level. If the mapping is
+ to an omitted component, the "@" syntax is used.
+
+4. Table Lookups
+
+ When determining a match, there are aspects which apply to all
+ lookups. Matches are always case independent. The key for all three
+ tables is a domain. The longest possible match shall be obtained.
+ Suppose the table has two entries with the following keys:
+
+ K.L
+ J.K.L
+
+ Domain "A.B.C" will not return any matches. Domain "I.J.K.L"
+ will match the entry "J.K.L:.
+
+5. Domain -> OR Address MCGAM format
+
+ The BNF is:
+
+ domain-syntax "#" dmn-or-address "#"
+
+ EBNF.domain-syntax is defined in Section 4.2. Note that the trailing
+ "#" is used for clarity, as the dmn-or-address syntax might lead to
+ values with trailing blanks. Lines starting with "#" are comments.
+
+ For example:
+ AC.UK#PRMD$UK\.AC.ADMD$GOLD 400.C$GB#
+ XEROX.COM#O$Xerox.ADMD$ATT.C$US#
+ GMD.DE#O$@.PRMD$GMD.ADMD$DBP.C$DE#
+
+ A domain is looked up to determine the top levels of an OR Address.
+ Components of the domain which are not matched are used to build the
+ remainder of the OR address, as described in Section 4.3.4.
+
+6. OR Address -> Domain MCGAM format
+
+ The syntax of this table is:
+
+ dmn-or-address "#" domain-syntax "#"
+
+ For example:
+
+ #
+ # Mapping table
+ #
+ PRMD$UK\.AC.ADMD$GOLD 400.C$GB#AC.UK#
+
+
+
+Kille Standards Track [Page 129]
+
+RFC 2156 MIXER January 1998
+
+
+ The OR Address is used to generate a domain key. It is important to
+ order the components correctly, and to fill in missing components in
+ the hierarchy. Use of this mapping is described in Section 4.3.2.
+
+7. Domain -> OR Address of Preferred Gateway table
+
+ This uses the same format as the domain -> OR address MCGAM table.
+ In this case, the restriction to only use C/ADMD/PRMD/O/OU does not
+ apply. Use of this mapping is described in Section 4.3.4. A domain
+ cannot appear in this table and in the domain to OR Address table.
+
+8. OR Addresss -> domain of Preferred Gateway table
+
+ This uses the same format as the OR Address -> domain MCGAM table.
+ Use of this mapping is described in Section 4.3.5. An OR Address
+ cannot appear in this table and in the OR Address to domain table.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 130]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix G - Conformance
+
+ This appendix defines a number of options, which a conforming gateway
+ shall specify. Conformance to this specification shall not be
+ claimed if any of the mandatory features are not implemented. A
+ specification of conformance may list the service elements of Chapter
+ 2, in order to be clear that full conformance is provied. In
+ particular:
+
+ - Formats for all fields shall be followed.
+
+ - The gateway shall enable MCGAMs to be used.
+
+ - Formats for subject lines, delivery reports and IPNs shall
+ be followed. A system which followed the syntax, but
+ translated text into a language other than english would be
+ conformant.
+
+ - RFC 1137 shall not be followed when mapping to SMTP.
+
+ - All mappings of trace shall be implemented.
+
+ - There shall be a mechanism to access all three global
+ mappings.
+
+ - RFC 2157 shall be followed for mapping body parts.
+
+ - When it is specified that a MIME format message is
+ generated, RFC 2045 shall be followed.
+
+ A gateway shall specify:
+
+ - Which Interent Message Transport (822-MTS) protocols are
+ supported. If SMTP is supported, Appendex A of MIXER shall
+ be used.
+
+ - Which X.400 versions are supported (84, 88, 92).
+
+ - Which mechanisms (table, X.500, DNS) are supported to access
+ MCGAMs.
+
+ - The mechanism or mechanisms by which the global mapping
+ information is accessed.
+
+ The following are optional parts of this specification. A conforming
+ implementation shall specify which of these it supports.
+
+ - Support for the extension mappings of Appendix C.
+
+
+
+Kille Standards Track [Page 131]
+
+RFC 2156 MIXER January 1998
+
+
+ - Support for returning illegal format content in a delivery
+ report
+
+ - Which address interpretation heuristics are supported
+ (4.3.4.1)
+
+ - If RFC 987 generated message ids are handled in a backwards
+ compatible manner (4.7.3.6)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 132]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix H - Change History: RFC 987, 1026, 1138, 1148
+
+ RFC 987 was the original document, and contained the key elements of
+ this specification. It was specific to X.400(1984). RFC 1026
+ specified a small number of necessary changes to RFC 987.
+
+ RFC 1138 was based on the RFC 987 work. It contained an editorial
+ error, and was reissued a few months later as RFC 1148. RFC 1148
+ will be referred to here, as it is the document which is widely
+ referred to elsewhere. The major goal of RFC 1148 was to upgrade RFC
+ 987 to X.400(1988). It did this, but did not obsolete RFC 987, which
+ was recommended for use with X.400(1984). This appendix summarises
+ the changes made in going from RFC 987 to RFC 1148.
+
+ RFC 1148 noted the following about its upgrade from RFC 987:
+ Unnecessary change is usually a bad idea. Changes on the RFC 822
+ side are avoided as far as possible, so that RFC 822 users do not
+ see arbitrary differences between systems conforming to this
+ specification, and those following RFC 987. Changes on the X.400
+ side are minimised, but are more acceptable, due to the mapping onto
+ a new set of services and protocols.
+
+1. Introduction
+
+ The model has shifted from a protocol based mapping to a service
+ based mapping. This has increased the generality of the
+ specification, and improved the model. This change affects the
+ entire document.
+
+ A restriction on scope has been added.
+
+2. Service Elements
+
+ - The new service elements of X.400 are dealt with.
+
+ - A clear distinction is made between origination and
+ reception
+
+3. Basic Mappings
+
+ - Add teletex support
+
+ - Add object identifier support
+
+ - Add labelled integer support
+
+ - Make PrintableString <-> ASCII mapping reversible
+
+
+
+
+Kille Standards Track [Page 133]
+
+RFC 2156 MIXER January 1998
+
+
+ - The printable string mapping is aligned to the NBS mapping
+ derived from RFC 987.
+
+4. Addressing
+
+ - Support for new addressing attributes
+
+ - The message ID mapping is changed to not be table driven
+
+5. Detailed Mappings
+
+
+ - Define extended IPM Header, and use instead of second body
+ part for RFC 822 extensions
+
+ - Realignment of element names
+
+ - New syntax for reports, simplifying the header and
+ introducing a mandatory body format (the RFC 987 header
+ format was unusable)
+
+ - Drop complex autoforwarded mapping
+
+ - Add full mapping for IP Notifications, defining a body
+ format
+
+ - Adopt an MTS Identifier syntax in line with the OR Address
+ syntax
+
+ - A new format for X400 Trace representation on the RFC 822
+ side
+
+6. Appendices
+
+ - Move Appendix on restricted 822 mappings to a separate RFC
+
+ - Delete Phonenet and SMTP Appendixes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 134]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix I - Change History: RFC 1148 to RFC 1327
+
+1. General
+
+ - The scope of the document was changed to cover X.400(1984),
+ and so obsolete RFC 987.
+
+ - Changes were made to allow usage to connect RFC 822 networks
+ using X.400
+
+ - Text was tightened to be clear about optional and mandatory
+ aspects
+
+ - A good deal of clarification
+
+ - A number of minor EBNF errors
+
+ - Better examples are given
+
+ - Further X.400 upper bounds are handled correctly
+
+2. Basic Mappings
+
+ - The encoding of object identifier is changed slightly
+
+3. Addressing
+
+ - A global mapping of domain to preferred gateway is
+ introduced.
+
+ - An overflow mechanism is defined for RFC 822 addresses of
+ greater than 128 bytes
+
+ - Changes were made to improve compatibility with the PDAM on
+ writing OR Addresses.
+
+ + The PD and Terminal Type keywords were aligned to the
+ PDAM. It is believed that minimal use has been made of
+ the RFC 1148 keywords.
+
+ + P and A are allowed as alternate keys for PRMD and ADMD
+
+ + Where keywords are different, the PDAM keywords are
+ alternatives on input. This is mandatory.
+
+4. Detailed Mappings
+
+ - The format of the Subject: lines is defined.
+
+
+
+Kille Standards Track [Page 135]
+
+RFC 2156 MIXER January 1998
+
+
+ - Illegal use (repetition) of the heading EXTENSION is
+ corrected, and a new object identifier assigned.
+
+ - The Delivery Report format is extensively revised in light
+ of operational experience.
+
+ - The handling of redirects is significantly changed, as the
+ previous mechanism did not work.
+
+5. Appendices
+
+ - An SMTP appendix is added, allowing optional use of the VRFY
+ command to improve probe information.
+
+ - Handling of JNT Mail Acknowledge-To is changed slightly.
+
+ - A DDA JNT-MAIL is allowed on input.
+
+ - The format definitions of Appendix F are explained further,
+ and a third table definition added.
+
+ - An appendix on use with X.400(1984) is added.
+
+ - Optional extensions are defined to give RFC 822 access to
+ further X.400 facilities.
+
+ - An appendix on conformance is added.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 136]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix J - Change History: RFC 1327 to this Document
+
+1. General
+
+ This update is primarily for stability, and to fold in compatibility
+ for MIME and to add support for the new NOTARY delivery status
+ notifications. Other general changes:
+
+ - Various editorial updates
+
+ - Minor EBNF errors
+
+ - Reference to mapping table support by DNS and X.500.
+
+ - Alignment to X.400(92)
+
+ - Assignment of a new object identifier
+
+ - Removal of specification relating to body mapping, which is
+ now defined in RFC 2157.
+
+2. Service Elements
+
+ - Support of Auto-Submitted service
+
+3. Basic Mappings
+
+ - Comments shall not be used in new headers, to remove parsing
+ ambiguity
+
+ - RFC 1522 encoding may be used as an alternative to X.408
+ downgrade, where appropriate.
+
+ - Correct handling of RFC 822 four year dates.
+
+4. Addressing
+
+ - Replaced the mandatory global address mapping with MCGAMs.
+
+ - Add codes and add a heuristic to align to the standard X.400
+ form of writing OR Addresses.
+
+ - Improved text on ordering heuristic
+
+ - Leading "/" interpretation added
+
+
+
+
+
+
+Kille Standards Track [Page 137]
+
+RFC 2156 MIXER January 1998
+
+
+ - All bar one of the address mapping heuristics made
+ mandatory.
+
+ - Interpretation of domain defined attribute "RFC-822" made
+ mandatory in all cases
+
+ - Make report request comments optional
+
+5. Detailed Mappings
+
+ - Comments no longer maps to separate body part
+
+ - Allow Languages to be multi-valued
+
+ - Change Content-Identifier to X400-Content-Identifier, in
+ order to avoid confusion with MIME.
+
+ - Reverse mapping of MIXER defined fields made mandatory
+
+ - "Expiry-Date:" changed to "Expires:".
+
+ - "Obsoletes:" changed to "Supersedes:".
+
+ - Define correct handling when "Resent-Date:" is present.
+
+6. Appendices
+
+ - Change "Content-Return" to "X400-Content-Return" in Appendix
+ C.
+
+ - Relaxation of restrictions on mapping 3 in Appendix F.
+
+ - Add linkage to HARPOON in Appendix B.
+
+ - RFC 2157 added to the conformance statement of Appendix
+ G.
+
+ - Added Appendix L, with ASN. Summary.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 138]
+
+RFC 2156 MIXER January 1998
+
+
+Appendix L - ASN.1 Summary
+
+ MIXER Definitions { iso org(3) dod(6) internet(1) mail(7)
+ mixer(1) mixer-core(3) definitions(1) }
+
+ DEFINITIONS IMPLICIT TAGS ::=
+
+ BEGIN
+
+ -- exports everything
+
+ IMPORTS
+
+ EXTENSION FROM
+ MTSAbstractService {join-iso-ccit mhs-motis(6) mts(3)
+ modules(0) mts-abstract-service(1) }
+
+ HEADING-EXTENSION FROM
+ IPMSAbstractService {join-iso-ccit mhs-motis(6) ipms(1)
+ modules(0) abstract-service(3) }
+
+
+
+ rfc-822-field HEADING-EXTENSION
+ VALUE RFC822FieldList
+ ::= id-rfc-822-field-list
+
+
+ RFC822FieldList ::= SEQUENCE OF RFC822Field
+
+ RFC822Field ::= IA5String
+
+
+
+ dsn-header-list EXTENSION
+ RFC822FieldList
+ ::= id-dsn-header-list
+
+ dsn-field-list EXTENSION
+ RFC822FieldList
+ ::= id-dsn-field-list
+
+ internet ::= OBJECT IDENTIFIER { iso org(3) dod(6) 1 } -- from RFC
+ 1155
+
+ mail OBJECT IDENTIFIER ::= { internet 7 } -- IANA assigned
+
+
+
+
+
+Kille Standards Track [Page 139]
+
+RFC 2156 MIXER January 1998
+
+
+ mixer OBJECT IDENTIFIER ::= { mail mixer(1) } -- inherited from RFC
+ 1495
+ mixer-core OBJECT IDENTIFIER ::= { mixer core(3) }
+
+ id-rfc-822-field-list OBJECT IDENTIFIER ::= {mixer-core 2}
+ id-dsn-header-list OBJECT IDENTIFIER ::= {mixer-core 3}
+ id-dsn-field-list OBJECT IDENTIFIER ::= {mixer-core 4}
+
+ eit-mixer OBJECT IDENTIFIER ::= {mixer-core 5}
+ -- the MIXER pseudo-EIT
+
+
+ END -- MIXER ASN.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 140]
+
+RFC 2156 MIXER January 1998
+
+
+SECURITY CONSIDERATIONS
+
+ Security issues are not discussed in this memo.
+
+AUTHOR'S ADDRESS
+
+ Steve Kille
+ Isode Ltd
+ The Dome
+ The Square
+ Richmond
+ TW9 1DT
+ England
+
+ Phone: +44-181-332-9091
+ Internet EMail: S.Kille@ISODE.COM
+
+ X.400 Email: I=S; S=Kille; P=Isode; A=Mailnet; C=FI;
+
+ UFN: S.Kille, Isode, GB
+
+References
+
+ 1. CCITT , "Recommendations X.400", Message Handling Systems:
+ System Model - Service Elements, October 1984.
+
+ 2. Allocchio, C., "MaXIM11 - Mapping between X.400 / Internet
+ Mail and Mail-11 mail", RFC 2162, January 1998.
+
+ 3. Allocchio, C., "Using the Internet DNS to Distribute MIXER
+ Conformant Global Address Mapping (MCGAM)", RFC 2163,
+ January 1998.
+
+ 4. Alvestrand, H., Kille, S., Miles, R., Rose, M., and S.
+ Thompson, "Mapping between X.400 and RFC-822 Message
+ Bodies", RFC 1495, August 1993.
+
+ 5. Alvestrand, H., Romaguera, J., and K. Jordan, "Rules for
+ Downgrading Messages for X.400(88) to X.400(84) When MIME
+ Content-Types are Present in the Messages (Harpoon)", RFC
+ 1496, August 1993.
+
+ 6. Alvestrand, H., and S. Thompson, "Equivalences between X.400
+ and RFC-822 Message Bodies", RFC 1494, August 1993.
+
+ 7. Alvestrand, H., "Tags for the Identification of Languages",
+ RFC 1766, March 1995.
+
+
+
+
+Kille Standards Track [Page 141]
+
+RFC 2156 MIXER January 1998
+
+
+ 8. Alvestrand, H., "Mapping between X.400 and RFC-822/MIME
+ Message Bodies", RFC 2157, January 1998.
+
+ 9. Freed, N., and N. Borenstein, "Multipurpose Internet
+ Mail Extensions (MIME) Part One: Format of Internet Message
+ Bodies", RFC 2045, November 1996.
+
+ 10. Braden, R., "Requirements for Internet Hosts -- Application
+ and Support", STD 3, RFC 1123, October 1989.
+
+ 11. CCITT/ISO, "CCITT Recommendations X.420/ ISO/IEC 10021-7,"
+ Message Handling Systems: Interpersonal Messaging System,
+ Dec 1988.
+
+ 12. CCITT/ISO, "CCITT Recommendations X.411/ ISO/IEC 10021-4,"
+ Message Handling Systems: Message Transfer System: Abstract
+ Service Definition and Procedures, Dec 1988.
+
+ 13. CCITT/ISO, "CCITT Recommendations X.400/ ISO/IEC 10021-1,"
+ Message Handling: System and Service Overview , Dec 1988.
+
+ 14. CCITT/ISO, "Specification of Abstract Syntax Notation One
+ (ASN.1)," CCITT Recommendation X.208 / ISO/IEC 8824, Dec
+ 1988.
+
+ 15. CCITT/ISO, "CCITT Recommendations X.400/ ISO/IEC 10021-1,"
+ Message Handling: System and Service Overview , Dec 1992.
+
+ 16. Crocker, D., "Standard of the Format of ARPA Internet Text
+ Messages", STD 11, RFC 822, August 1982.
+
+ 17. Kille, S., "Mapping Between X.400 and RFC 822", UK Academic
+ Community Report (MG.19) / RFC 987, June 1986.
+
+ 18. Kille, S., "Addendum to RFC 987", UK Academic Community
+ Report (MG.23) / RFC 1026, August 1987.
+
+ 19. Kille, S., "Mapping Between X.400(1988) / ISO 10021 and RFC
+ 822", RFC 1138, October 1989.
+
+ 20. Kille, S., "Mapping Between X.400(1988) / ISO 10021 and RFC
+ 822", RFC 1148, March 1990.
+
+ 21. Kille, S., "Mapping Between X.400(1988) / ISO 10021 and RFC
+ 822", RFC 1327, May 1992.
+
+ 22. Kille, S., "X.400 1988 to 1984 downgrading", RFC 1328, May
+ 1992.
+
+
+
+Kille Standards Track [Page 142]
+
+RFC 2156 MIXER January 1998
+
+
+ 23. Kille, S., "A String Encoding of Presentation Address", RFC
+ 1278, November 1992.
+
+ 24. Kille, S., "A String Representation of Distinguished Name",
+ RFC 1485, January 1992.
+
+ 25. Kille, S., "Using the OSI Directory to achieve User
+ Friendly Naming", RFC 1484, January 1992.
+
+ 26. Kille, S., "Use of an X.500/LDAP directory to support MIXER
+ address mapping", RFC 2164, January 1998.
+
+ 27. Koorland, N., "Message Attachmment Work Group (MAWG): MAWG
+ Feasibility Project Guide," EMA Report, Version 1.5, Nov
+ 1995.
+
+ 28. Moore, K., and G. Vaudreuil, "An Extensible Message Format for
+ Delivery Status Notifications", RFC 1894, January 1996.
+
+ 29. Moore, K., "SMTP Service Extensions for Delivery Status
+ Notifications", RFC 1891, Januaty 1996.
+
+ 30. Postel, J., "SIMPLE MAIL TRANSFER PROTOCOL", STD 10, RFC 821,
+ August 1982.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 143]
+
+RFC 2156 MIXER January 1998
+
+
+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 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille Standards Track [Page 144]
+
diff --git a/Documentation/en/rfc/rfc987.txt b/Documentation/en/rfc/rfc987.txt
new file mode 100644
index 00000000..87a81e2e
--- /dev/null
+++ b/Documentation/en/rfc/rfc987.txt
@@ -0,0 +1,3933 @@
+
+
+UCL Technical Report 120
+Mailgroup Note 19
+
+Network Working Group S.E. Kille
+Request for Comments: 987 University College London
+ June 1986
+
+ Mapping between X.400 and RFC 822
+
+
+Status of This Memo
+
+ This RFC suggests a proposed protocol for the ARPA-Internet
+ community, and requests discussion and suggestions for improvements.
+ Distribution of this memo is unlimited.
+
+ This document describes a set of mappings which will enable
+ interworking between systems operating the CCITT X.400 (1984) series
+ of protocols [CCITT84a], and systems using the RFC 822 mail protocol
+ [Crocker82a], or protocols derived from RFC 822. The approach aims
+ to maximise the services offered across the boundary, whilst not
+ requiring unduly complex mappings. The mappings should not require
+ any changes to end systems.
+
+ This specification should be used when this mapping is performed on
+ the ARPA-Internet or in the UK Academic Community. This
+ specification may be modified in the light of implementation
+ experience, but no substantial changes are expected.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 1]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Chapter 1 -- Overview
+
+ 1.1. X.400
+
+ The X.400 series protocols have been defined by CCITT to provide
+ an Interpersonal Messaging Service (IPMS), making use of a store
+ and forward Message Transfer Service. It is expected that this
+ standard will be implemented very widely. As well as the base
+ standard (X.400), work is underway on various functional standards
+ of profiles which specify how X.400 will be used in various
+ communities. Many of the major functional standards (e.g. from
+ CEPT, CEN/CENELEC, and NBS) are likely to be similar. Some of the
+ decisions in this document are in the light of this work. No
+ reference is given, as these documents are not currently stable.
+
+ 1.2. RFC 822
+
+ RFC 822 evolved as a messaging standard on the DARPA (the US
+ Defense Advanced Research Projects Agency) Internet. It is
+ currently used on the ARPA-Internet in conjunction with two other
+ standards: RFC 821, also known as Simple Mail Transfer Protocol
+ (SMTP) [Postel82a], and RFC 920 which is a specification for a
+ domain name system and a distributed name service [Postel84a].
+ RFC 822, or protocols derived from RFC 822 are used in a number of
+ other networks. In particular:
+
+ UUCP Networks
+
+ UUCP is the UNIX to UNIX CoPy protocol <0>, which is usually
+ used over dialup telephone networks to provide a simple
+ message transfer mechanism. There are some extensions to
+ RFC 822, particularly in the addressing. They are likely to
+ use domains which conform to RFC 920, but not the
+ corresponding domain nameservers [Horton86a].
+
+ CSNET
+
+ Some portions of CSNET will follow the ARPA-Internet
+ protocols. The dialup portion of CSNET uses the Phonenet
+ protocols as a replacement for RFC 821. This portion is
+ likely to use domains which conform to RFC 920, but not the
+ corresponding domain nameservers.
+
+ BITNET
+
+ Some parts of BITNET use RFC 822 related protocols, with
+ EBCDIC encoding.
+
+
+Kille [Page 2]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ JNT Mail Networks
+
+ A number of X.25 networks, particularly those associated
+ with the UK Academic Community, use the JNT (Joint Network
+ Team) Mail Protocol, also known as Greybook [Kille84a].
+ This is used with domains and name service specified by the
+ JNT NRS (Name Registration Scheme) [Larmouth83a].
+
+ The mappings specified here are appropriate for all of these
+ networks.
+
+ 1.3. The Need for Conversion
+
+ There is a large community using RFC 822 based protocols for mail
+ services, who will wish to communicate with X.400 systems. This
+ will be a requirement, even in cases where communities intend to
+ make a transition to use of X.400, where conversion will be needed
+ to ensure a smooth service transition. It is expected that there
+ will be more than one gateway <1>, and this specification will
+ enable them to behave in a consistent manner. These gateways are
+ sometimes called mail relays. Consistency between gateways is
+ desirable to provide:
+
+ 1. Consistent service to users.
+
+ 2. The best service in cases where a message passes through
+ multiple gateways.
+
+ 1.4. General Approach
+
+ There are a number of basic principles underlying the details of
+ the specification.
+
+ 1. The specification should be pragmatic. There should not
+ be a requirement for complex mappings for 'Academic'
+ reasons. Complex mappings should not be required to
+ support trivial additional functionality.
+
+ 2. Subject to 1), functionality across a gateway should be as
+ high as possible.
+
+ 3. It is always a bad idea to lose information as a result of
+ any transformation. Hence, it is a bad idea for a gateway
+ to discard information in the objects it processes. This
+ includes requested services which cannot be fully mapped.
+
+ 4. All mail gateways actually operate at exactly one level
+
+
+Kille [Page 3]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ above the layer on which they conceptually operate. This
+ implies that the gateway must not only be cognisant of the
+ semantics of objects at the gateway level, but also be
+ cognisant of higher level semantics. If meaningful
+ transformation of the objects that the gateway operates on
+ is to occur, then the gateway needs to understand more
+ than the objects themselves.
+
+ 1.5. Gatewaying Model
+
+ 1.5.1. X.400
+
+ The CCITT X.400 series recommendations specify a number of
+ services and protocols. The services are specified in X.400.
+ Two of these services are fundamental to this document:
+
+ 1. The Message Transfer Service, which can be provided by
+ either the P1 or P3 protocols, which are specified in
+ X.411 [CCITT84b]. This document talks in terms of P1,
+ but the mappings are equally applicable to P3.
+
+ 2. The Interpersonal Messaging Service (IPMS), which is
+ provided by the P2 protocol specified in X.420
+ [CCITT84c].
+
+ This document considers only IPMS, and not of any other usage
+ of the Message Transfer Service. This is reasonable, as
+ RFC 822, broadly speaking, provides a service corresponding to
+ IPMS, and no services other than IPMS have been defined over
+ the Message Transfer Service. As none of the RTS (Reliable
+ Transfer Service) service elements is available to the IPMS
+ user, this level and lower levels are of no concern in this
+ gatewaying specification. Note that in this memo "IP" means
+ "InterPersonal" (not Internet Protocol).
+
+ The Message Transfer Service defines an end-to-end service over
+ a series of Message Transfer Agents (MTA). It also defines a
+ protocol, P1, which is used between a pair of MTAs. This
+ protocol is simply a file format (Message Protocol Data Unit,
+ or MPDU), transferred between two MTAs using the RTS. There
+ are three types of MPDU:
+
+ User MPDU
+
+ This contains envelope information, and uninterpreted
+ contents. The envelope includes an ID, an originator, a
+
+
+
+Kille [Page 4]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ list of recipients, and trace information. It is used to
+ carry data for higher level services.
+
+ Probe
+
+ This contains only envelope information. It is used to
+ determine whether a User UMPDU could be delivered to a
+ given O/R (originator/recipient) name.
+
+ Delivery Report
+
+ This contains envelope information, and specified
+ contents. It is used to indicate delivery success or
+ failure of a User or Probe MPDU over the Message Transfer
+ Service.
+
+ IPMS (P2) specifies two content types for the P1 User MPDU
+ (User Agent Protocol Data Units or UAPDU):
+
+ Interpersonal Message (IM-UAPDU)
+
+ This has two components: a heading, and a body. The body
+ is structured as a sequence of body parts, which may be
+ basic components (e.g.IA5 text, or G3 fax), or IP
+ Messages. The header contains end to end user
+ information, such as subject, primary recipients (To:),
+ and priority. The validity of these fields is not
+ guaranteed by the Message Transfer Service. This
+ provides the basic IPMS.
+
+ Status Report (SR-UAPDU)
+
+ This UAPDU has defined contents. It is used to indicate
+ that a message has been received by a User Agent. It
+ does not have to be implemented.
+
+ 1.5.2. RFC 822
+
+ RFC 822 is based on the assumption that there is an underlying
+ service, which is here called the 822-P1 service. The 822-P1
+ service provides three basic functions:
+
+ 1. Identification of a list of recipients.
+
+ 2. Identification of an error return address.
+
+ 3. Transfer of an RFC 822 message.
+
+
+Kille [Page 5]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ It is possible to achieve 2) within the RFC 822 header. Some
+ 822-P1 protocols, in particular SMTP, can provide additional
+ functionality, but as these are neither mandatory in SMTP, nor
+ available in other 822-P1 protocols, they are not considered
+ here. Details of aspects specific to a number of 822-P1
+ protocols are given in appendices B to E. An RFC 822 message
+ consists of a header, and content which is uninterpreted ASCII
+ text. The header is divided into fields, which are the
+ protocol elements. Most of these fields are analogous to P2
+ header elements, although some are analogous to P1 envelope
+ elements.
+
+ 1.5.3. The Gateway
+
+ Given this functional description of the two protocols, the
+ functional nature of a gateway can now be considered. It would
+ be elegant to consider the 822-P1 service mapping onto P1 and
+ RFC 822 mapping onto P2, but reality just does not fit.
+ Therefore one must consider that P1 or P1 + P2 on one side are
+ mapped into RFC 822 + 822-P1 on the other in a slightly tangled
+ manner. The details of the tangle will be made clear in
+ chapter 5. The following basic mappings are thus proposed.
+ When going from RFC 822 to X.400, an RFC 822 message and the
+ associated 822-P1 information is always mapped into an IM-UAPDU
+ and the associated P1 envelope. Going from X.400 to RFC 822,
+ an RFC 822 message and the associated 822-P1 information may be
+ derived from:
+
+ 1. A Delivery Report MPDU
+
+ 2. An SR-UAPDU and the associated P1 envelope.
+
+ 3. An IM-UAPDU and the associated P1 envelope.
+
+ Probe MPDUs must be processed by the gateway - this is
+ discussed in chapter 5. Any other User MPDUs are not mapped by
+ the gateway, and should be rejected at the gateway.
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 6]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 1.6. Document Structure
+
+ This document has five chapters:
+
+ 1. Overview - this document.
+
+ 2. Service Elements - This describes the (end user) services
+ mapped by a gateway.
+
+ 3. Basic mappings - This describes some basic notation used
+ in chapters 3-5, the mappings between character sets, and
+ some fundamental protocol elements.
+
+ 4. Addressing - This considers the mapping between X.400 O/R
+ names and RFC 822 addresses, which is a fundamental
+ gateway component.
+
+ 5. Protocol Elements - This describes the details of all
+ other mappings.
+
+ There are also six appendices:
+
+ A. Quoted String Encodings.
+
+ B. Mappings Specific to JNT Mail.
+
+ C. Mappings Specific to Internet Mail.
+
+ D. Mappings Specific to Phonenet Mail.
+
+ E. Mappings Specific to UUCP Mail.
+
+ F. Format of Address Tables.
+
+ 1.7. Acknowledgements
+
+ This document is eclectic, and credit should be given:
+
+ - Study of the EAN X.400 system code which performs this
+ function [Neufeld85a]. Some detailed clarification was
+ made by the DFN report on EAN [Bonacker85a].
+
+ - An unpublished ICL report, which considered a subset of
+ the problem [ICL84a].
+
+ - A document by Marshall Rose [Rose85a].
+
+
+
+Kille [Page 7]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ - A document by Mark Horton [Horton85a]. The string
+ encodings of chapter 3 were derived directly from this
+ work, as is much of chapter 4.
+
+ - Discussion on a number of electronic mailing lists.
+
+ - Meetings in the UK and the US.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 8]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Chapter 2 -- Service Elements
+
+ RFC 822 and X.400 provide a number of services to the end user. This
+ document describes the extent to which each service can be supported
+ across an X.400 <-> RFC 822 gateway. The cases considered are single
+ transfers across such a gateway, although the problems of multiple
+ crossings are noted where appropriate.
+
+ When a service element is described as supported, this means that
+ when this service element is specified by a message originator for a
+ recipient behind a gateway, that it is mapped by the gateway to
+ provide the service implied by the element. For example, if an
+ RFC 822 originator specifies a Subject: field, this is considered to
+ be supported, as an X.400 recipient will get a subject indication.
+ Support implies:
+
+ - Semantic correspondence.
+
+ - No loss of information.
+
+ - Any actions required by the service element.
+
+ For some services, the corresponding protocol elements map well, and
+ so the service can be fully provided. In other cases, the service
+ cannot be provided, as there is a complete mismatch. In the
+ remaining cases, the service can be partially fulfilled. The level
+ of partial support is summarised.
+
+ NOTE: It should be clear that support of service elements on
+ reception is not a gatewaying issue. It is assumed that all
+ outbound messages are fully conforming to the appropriate
+ standards.
+
+ 2.1. RFC 822
+
+ RFC 822 does not explicitly define service elements, as distinct
+ from protocol elements. However, all of the RFC 822 header
+ fields, with the exception of trace, can be regarded as
+ corresponding to implicit RFC 822 service elements. A mechanism
+ of mapping used in several cases, is to place the text of the
+ header into the body of the IP Message. This can usually be
+ regarded as partial support, as it allows the information to be
+ conveyed to the end user even though there is no corresponding
+ X.400 protocol element. Support for the various service elements
+ (headers) is now listed.
+
+
+
+
+Kille [Page 9]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Date:
+
+ Supported.
+
+ From:
+
+ Supported. For messages where there is also a sender field,
+ the mapping is to "Authorising Addresses", which has subtly
+ different semantics to the general RFC 822 usage of From:.
+
+ Sender:
+
+ Supported.
+
+ Reply-To:
+
+ Supported.
+
+ To:
+
+ Supported.
+
+ Cc:
+
+ Supported.
+
+ Bcc:
+
+ Supported.
+
+ Message-Id:
+
+ Supported.
+
+ In-Reply-To:
+
+ Supported, for a single reference in msg-id form. Other
+ cases are passed in the message text.
+
+ References:
+
+ Supported.
+
+ Keywords:
+
+ Passed in the message text.
+
+
+
+Kille [Page 10]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Subject:
+
+ Supported.
+
+ Comments:
+
+ Passed in the message text.
+
+ Encrypted:
+
+ Passed in the message text. This may not be very useful.
+
+ Resent-*
+
+ Passed in the message text. In principle, these could be
+ supported in a fuller manner, but this is not suggested.
+
+ Other Fields
+
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g. "Fruit-of-the-day:") are passed in the message
+ text.
+
+ 2.2. X.400
+
+ When mapping from X.400 to RFC 822, it is not proposed to map any
+ elements into the body of an RFC 822 message. Rather, new RFC 822
+ headers are defined. It is intended that these fields will be
+ registered, and that co-operating RFC 822 systems may use them.
+ Where these new fields are used, and no system action is implied,
+ the service can be regarded as being almost supported. Chapter 5
+ describes how to map these new headers in both directions. Other
+ elements are provided, in part, by the gateway as they cannot be
+ provided by RFC 822. Some service elements are are marked N/A
+ (not applicable). These elements are only applicable to User
+ Agent / Message Transfer Agent interaction and have no end-to-end
+ implication. These elements do not need to be mapped by the
+ gateway.
+
+ 2.2.1. Message Transfer Service Elements
+
+ Access Management
+
+ N/A.
+
+
+
+
+
+Kille [Page 11]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Content Type Indication
+
+ Not mapped. As it can only have one value (P2), there is
+ little use in creating a new RFC 822 header field, unless it
+ was to distinguish delivery reports.
+
+ Converted Indication
+
+ Supported by a new RFC 822 header.
+
+ Delivery Time Stamp Indication
+
+ N/A.
+
+ Message Identification
+
+ Supported, by use of a new RFC 822 header. This new header
+ is required, as X.400 has two message-ids whereas RFC 822
+ has only one.
+
+ Non-delivery Notification
+
+ Not supported, although in general an RFC 822 system will
+ return errors as IP messages. In other elements, this
+ pragmatic result is treated as effective support of this
+ service element.
+
+ Original Encoded Information Types Indication
+
+ Supported as a new RFC 822 header.
+
+ Registered Encoded Information Types
+
+ N/A.
+
+ Submission Time Stamp Indication
+
+ Supported.
+
+ Alternate Recipient Allowed
+
+ Not supported. Any value is ignored by the gateway.
+
+ Deferred Delivery
+
+ Support is optional. The framework is provided so that
+ messages may be held at the gateway. However, a gateway
+
+
+Kille [Page 12]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ following this specification does not have to do this. This
+ is in line with the emerging functional standards.
+
+ Deferred Delivery Cancellation
+
+ Supported.
+
+ Delivery Notification
+
+ Supported at gateway. Thus, a notification is sent by the
+ gateway to the originator <2>.
+
+ Disclosure of Other Recipients
+
+ Supported by use of a new RFC 822 header.
+
+ Grade of Delivery Selection
+
+ Supported as a new RFC 822 header. In general, this will
+ only be for user information in the RFC 822 world.
+
+ Multi-Destination Delivery
+
+ Supported.
+
+ Prevention of Non-delivery Notification
+
+ Not Supported, as there is no control in the RFC 822 world
+ (but see Non-delivery Notification).
+
+ Return of Contents
+
+ This is normally the case, although the user has no control
+ (but see Non-delivery Notification).
+
+ Conversion Prohibition
+
+ Supported. Note that in practice this support is restricted
+ by the nature of the gateway.
+
+ Explicit Conversion
+
+ Supported, for appropriate values (See the IPMS Typed Body
+ service element).
+
+
+
+
+
+Kille [Page 13]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Implicit Conversion
+
+ Supported, in the sense that there will be implicit
+ conversion to IA5 in cases where this is practical.
+
+ Probe
+
+ Supported at the gateway (i.e. the gateway services the
+ probe).
+
+ Alternate Recipient Assignment
+
+ N/A.
+
+ Hold for Delivery
+
+ N/A.
+
+ 2.2.2. Interpersonal Message Service Elements
+
+ IP-message Identification
+
+ Supported.
+
+ Typed Body
+
+ Supported. IA5 is fully supported. ForwardedIPMessage is
+ supported, with some loss of information. A subset of TTX
+ is supported (see section 5 for the specification of this
+ subset), with some loss of information. SFD may be
+ supported, with some loss of information. TTX and SFD are
+ only supported when conversion is allowed. Other types are
+ not supported.
+
+ Blind Copy Recipient Indication
+
+ Supported.
+
+ Non-receipt Notification
+
+ Not supported.
+
+ Receipt Notification
+
+ Not supported.
+
+
+
+
+Kille [Page 14]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Auto-forwarded Indication
+
+ Supported as new RFC 822 header.
+
+ Originator Indication
+
+ Supported.
+
+ Authorising User's Indication
+
+ Supported, although the mapping (From:) is not quite the
+ same.
+
+ Primary and Copy Recipients Indication
+
+ Supported.
+
+ Expiry Date Indication
+
+ Supported as new RFC 822 header. In general, only human
+ action can be expected.
+
+ Cross Referencing Indication
+
+ Supported.
+
+ Importance Indication
+
+ Supported as new RFC 822 header.
+
+ Obsoleting Indication
+
+ Supported as new RFC 822 header.
+
+ Sensitivity Indication
+
+ Supported as new RFC 822 header.
+
+ Subject Indication
+
+ Supported.
+
+ Reply Request Indication
+
+ Supported as comment next to address.
+
+
+
+
+Kille [Page 15]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Forwarded IP-message Indication
+
+ Supported, with some loss of information.
+
+ Body Part Encryption Indication
+
+ Not supported.
+
+ Multi-part Body
+
+ Supported, with some loss of information, in that the
+ structuring cannot be formalised in RFC 822.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 16]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Chapter 3 -- Basic Mappings
+
+ 3.1. Notation
+
+ The P1 and P2 protocols are encoded in a structured manner
+ according to the X.409 specifications, whereas RFC 822 is text
+ encoded. To define a detailed mapping, it is necessary to refer
+ to detailed protocol elements in each format. This is described.
+
+ 3.1.4. RFC 822
+
+ Structured text is defined according to the Extended Backus
+ Naur Form (EBNF) defined in section 2 of RFC 822 [Crocker82a].
+ In the EBNF definitions used in this specification, the syntax
+ rules given in Appendix D of RFC 822 are assumed. When these
+ EBNF tokens are referred to outside an EBNF definition, they
+ are identified by the string "882." appended to the beginning
+ of the string (e.g. 822.addr-spec). Additional syntax rules,
+ to be used throughout this specification are defined in this
+ chapter.
+
+ The EBNF is used in two ways.
+
+ 1. To describe components of RFC 822 messages (or of
+ 822-P1 components). In this case, the lexical analysis
+ defined in section 3 of RFC 822 should be used. When
+ these new EBNF tokens are referred to outside an EBNF
+ definition, they are identified by the string "EBNF."
+ appended to the beginning of the string (e.g.
+ EBNF.bilateral-info).
+
+ 2. To describe the structure of IA5 or ASCII information
+ not in an RFC 822 message. In these cases, tokens will
+ either be self delimiting, or be delimited by self
+ delimiting tokens. Comments and LWSP are not used as
+ delimiters.
+
+ 3.1.5. X.409
+
+ An element is referred to with the following syntax, defined in
+ EBNF:
+
+ element = protocol "." definition *( "." definition )
+ protocol = "P1" / "P2"
+ definition = identifier / context
+ identifier = ALPHA *< ALPHA or DIGIT or "-" >
+ context = "[" 1*DIGIT "]"
+
+
+Kille [Page 17]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ For example, P2.Heading.subject defines the subject element of
+ the P2 heading. The same syntax is also used to refer to
+ element values. For example,
+ P1.EncodedInformationTypes.[0].g3Fax refers to a value of
+ P1.EncodedInformationTypes.[0] .
+
+ 3.2. ASCII and IA5
+
+ A gateway will interpret all IA5 as ASCII. Thus, they are treated
+ identically for the rest of this document.
+
+ 3.3. Universal Primitives
+
+ There is a need to convert between ASCII text, and some of the
+ Universal Primitive types defined in X.409 [CCITT84d]. For each
+ case, an EBNF syntax definition is given, for use in all of this
+ specification. All EBNF syntax definitions of Universal
+ Primitives are in lower case, whereas X.409 primitives are
+ referred to with the first letter in upper case. Except as noted,
+ all mappings are symmetrical.
+
+ 3.3.1. Boolean
+
+ Boolean is encoded as:
+
+ boolean = "TRUE" / "FALSE"
+
+ 3.3.2. NumericString
+
+ NumericString is encoded as:
+
+ numericstring = *DIGIT
+
+ 3.3.3. PrintableString
+
+ PrintableString is a restricted IA5String defined as:
+
+ printablestring = *( ps-char / ps-delim )
+
+ ps-char = 1DIGIT / 1ALPHA / " " / "'" / "+" / ")"
+ / "," / "-" / "." / "/" / ":" / "=" / "?"
+
+ ps-delim = "("
+
+ A structured subset of EBNF.printablestring is now defined.
+ This can be used to encode ASCII in the PrintableString
+ character set.
+
+
+Kille [Page 18]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ ps-encoded = *( ps-char / ps-encoded-char )
+
+ ps-encoded-char = "(a)" ; (@)
+ / "(p)" ; (%)
+ / "(b)" ; (!)
+ / "(q)" ; (")
+ / "(u)" ; (_)
+ / "(" 3DIGIT ")"
+
+ The 822.3DIGIT in EBNF.ps-encoded-char must have range 0-127
+ (Decimal), and is interpreted in decimal as the corresponding
+ ASCII character. Special encodings are given for: at sign (@),
+ percent (%), exclamation mark/bang (!), double quote ("), and
+ underscore (_). These characters are not included in
+ PrintableString, but are common in RFC 822 addresses. The
+ abbreviations will ease specification of RFC 822 addresses from
+ an X.400 system.
+
+ An asymmetric mapping between PrintableString and ASCII can now
+ be defined <3>. To encode ASCII as PrintableString, the
+ EBNF.ps-encoded syntax is used, with all EBNF.ps-char AND
+ EBNF.ps-delim mapped directly <4>. All other 822.CHAR are
+ encoded as EBNF.ps-encoded-char. There are two cases of
+ encoding PrintableString as ASCII. If the PrintableString can
+ be parsed as EBNF.ps-encoded, then the previous mapping should
+ be reversed. If not, it should be interpreted as
+ EBNF.printablestring.
+
+ Some examples are now given. Note the arrows which indicate
+ asymmetrical mappings:
+
+ PrintableString ASCII
+
+ 'a demo.' <-> 'a demo.'
+ foo(a)bar <-> foo@bar
+
+ (q)(u)(p)(q) <-> "_%"
+ (a) <-> @
+ (a) <- (a)
+ (040)a(041) -> (a)
+ (040)(a) -> (@
+ ((a) <- (@
+
+ The algorithm is designed so that it is simple to use in all
+ common cases, so that it is general, and so that it is
+ straightforward to code. It is not attempting to minimise the
+ number of pathological cases.
+
+
+Kille [Page 19]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 3.3.4. T.61String
+
+ T.61 strings are, in general, only used for conveying human
+ interpreted information. Thus, the aim of a mapping should be
+ to render the characters appropriately in the remote character
+ set, rather than to maximise reversibility. The mappings
+ defined in the CEN/CENELEC X.400 functional standard should be
+ used [CEN/CENELEC/85a]. These are based on the mappings of
+ X.408 (sections 4.2.2 and 5.2.2).
+
+ 3.3.5. UTCTime
+
+ Both UTCTime and the RFC 822 822.date-time syntax contain: Year
+ (lowest two digits), Month, Day of Month, hour, minute, second
+ (optional), and Timezone. 822.date-time also contains an
+ optional day of the week, but this is redundant. Therefore a
+ symmetrical mapping can be made between these constructs <5>.
+ The UTCTime format which specifies the timezone offset should
+ be used, in line with CEN/CENELEC recommendations.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 20]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Chapter 4 -- Addressing
+
+ Addressing is probably the trickiest problem of an X.400 <-> RFC 822
+ gateway. Therefore it is given a separate chapter. This chapter, as
+ a side effect, also defines a standard textual representation of
+ X.400 addresses.
+
+ Initially we consider an address in the (human) mail user sense of
+ "what is typed at the mailsystem to reference a human". A basic
+ RFC 822 address is defined by the EBNF EBNF.822-address:
+
+ 822-address = [ route ] addr-spec
+
+ In an 822-P1 protocol, the originator and each recipient should be
+ considered to be defined by such a construct. In an RFC 822 header,
+ the EBNF.822-address is encapsulated in the 822.address syntax rule,
+ and there may also be associated comments. None of this extra
+ information has any semantics, other than to the end user.
+
+ The basic X.400 address is defined by P1.ORName. In P1 all recipient
+ P1.ORnames are encapsulated within P1.RecipientInfo, and in P2 all
+ P2.ORNames <6> are encapsulated within P2.ORDescriptor.
+
+ It can be seen that RFC 822 822.address must be mapped with
+ P2.ORDescriptor, and that RFC 822 EBNF.822-address must be mapped
+ with P1.ORName (originator) and P1.RecipientInfo (recipients).
+
+ This chapter is structured as follows:
+
+ 4.1 Introduction.
+
+ 4.2 A textual representation of P1.ORName. This is needed for
+ the later mappings, and as a side effect provides a standard
+ representation for O/R names.
+
+ 4.3 Mapping between EBNF.822-address and P1.ORName
+
+ 4.4 The Full P1 / 822-P1 Mapping
+
+ 4.5 The Full P2 / RFC 822 Mapping
+
+ 4.6 Mapping Message-IDs.
+
+
+
+
+
+
+
+Kille [Page 21]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 4.1. A textual representation of P1.ORName.
+
+ P1.ORName is structured as a set of attribute value pairs. It is
+ clearly necessary to be able to encode this in ASCII for
+ gatewaying purposes. A general encoding is given here, which may
+ be used as a basis for a user interface, as well as for the
+ defined gateway mapping.
+
+ 4.1.1. Basic Representation
+
+ A series of BNF definitions of each possible attribute value
+ pair is given, which is given a 1:1 mapping with the X.400
+ encoding. The rest of the mapping then talks in terms of these
+ BNF components, with the mapping to X.400 encoding being
+ trivial.
+
+ attributevalue = c / admd / prmd / x121 / t-id / o / ou
+ / ua-id / pn.g / pn.i / pn.s / pn.gq / dd.value
+
+ c = printablestring ; P1.CountryName
+ admd = printablestring ; P1.AdministrationDomainName
+ prmd = printablestring ; P1.PrivateDomainName
+ x121 = numericstring ; P1.X121Address
+ t-id = numericstring ; P1.TerminalID
+ o = printablestring ; P1.OrganisationName
+ ou = printablestring ; P1.OrganisationalUnit
+ ua-id = numericstring ; P1.UniqueUAIdentifier
+ pn.s = printablestring ; P1.PersonalName.surName
+ pn.g = printablestring ; P1.PersonalName.givenName
+ pn.i = printablestring ; P1.PersonalName.initials
+ pn.gq = printablestring ; P1.PersonalName.generation
+ Qualifier
+ dd.value = printablestring ; P1.DomainDefined
+ Attribute.value
+
+ In cases where an attribute can be encoded as either a
+ PrintableString or NumericString (Country, ADMD, PRMD) it is
+ assumed that the NumericString encoding will be adopted if
+ possible. This prevents the encoding of PrintableString where
+ the characters are all numbers. This restriction seems
+ preferable to the added complexity of a general solution.
+ Similarly, we can define a set of attribute types.
+
+
+
+
+
+
+
+Kille [Page 22]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ dd.type = printablestring ; P1.DomainDefinedAttribute.type
+
+ standard-type =
+ "C" ; P1.CountryName
+ / "ADMD" ; P1.AdministrationDomainName
+ / "PRMD" ; P1.PrivateDomainName
+ / "X121" ; P1.X121Address
+ / "T-ID" ; P1.TerminalID
+ / "O" ; P1.OrganisationName
+ / "OU" ; P1.OrganisationalUnit
+ / "UA-ID" ; P1.UniqueUAIdentifier
+ / "S" ; P1.PersonalName.surName
+ / "G" ; P1.PersonalName.givenName
+ / "I" ; P1.PersonalName.initials
+ / "GQ" ; P1.PersonalName.generationQualifier
+
+ standard-dd-type =
+ "RFC-822" ; dd.type = "RFC-822"
+ / "JNT-Mail" ; dd.type = "JNT-Mail"
+ / "UUCP" ; dd.type = "UUCP"
+
+ 4.1.2. Encoding of Personal Name
+
+ Handling of Personal Name based purely on the
+ EBNF.standard-type syntax defined above is likely to be clumsy.
+ It seems desirable to utilise the "human" conventions for
+ encoding these components. A syntax is proposed here. It is
+ designed to cope with the common cases of O/R Name
+ specification where:
+
+ 1. There is no generational qualifier
+
+ 2. Initials contain only letters <7>.
+
+ 3. Given Name does not contain full stop ("."), and is at
+ least two characters long.
+
+ 4. If Surname contains full stop, then it may not be in
+ the first two characters, and either initials or given
+ name is present.
+
+
+
+
+
+
+
+
+
+Kille [Page 23]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ The following EBNF is defined:
+
+ encoded-pn = [ given "." ] *( initial "." ) surname
+
+ given = 2*<ps-char not including ".">
+
+ initial = ALPHA
+
+ surname = printablestring
+
+ Subject to the above restriction, this is a reversible mapping.
+
+ For example:
+
+ GivenName = "Marshall"
+ Surname = "Rose"
+
+ Maps with "Marshall.Rose"
+
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "M.T.Rose"
+
+ GivenName = "Marshall"
+ Initials = "MT"
+ Surname = "Rose"
+
+ Maps with "Marshall.M.T.Rose"
+
+ Note that CCITT guidelines suggest that Initials is used to
+ encode ALL initials. Therefore, the proposed encoding is
+ "natural" when either GivenName or Initials, but not both, are
+ present. The case where both are present can be encoded, but
+ this appears to be contrived!
+
+ 4.1.3. Two encodings of P1.ORName
+
+ Given this structure, we can specify a BNF representation of an
+ O/R Name.
+
+
+
+
+
+
+
+
+
+Kille [Page 24]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ std-orname = 1*( "/" attribute "=" value ) "/"
+ attribute = standard-type
+ / "PN"
+ / standard-dd-type
+ / registered-dd-type
+ / "DD." std-printablestring
+ value = std-printablestring
+ registered-dd-type
+ = std-printablestring
+ std-printablestring =
+ = *( std-char / std-pair )
+ std-char = <ps-delim, and any ps-char except "/"
+ and "=">
+ std-pair = "$" ( ps-delim / ps-char )
+
+ If the type is PN, the value is interpreted according to
+ EBNF.encoded-pn, and the components of P1.PersonalName derived
+ accordingly. If the value is registered-dd-type, if the value
+ is registered at the SRI NIC as an accepted Domain Defined
+ Attribute type, then the value should be interpreted
+ accordingly. This restriction maximises the syntax checking
+ which can be done at a gateway.
+
+ Another syntax is now defined. This is intended to be
+ compatible with the syntax used for 822.domains. This syntax
+ is not intended to be handled by users.
+
+ dmn-orname = dmn-part *( "." dmn-part )
+ dmn-part = attribute "$" value
+ attribute = standard-type
+ / "~" dmn-printablestring
+ value = dmn-printablestring
+ dmn-printablestring =
+ = *( dmn-char / dmn-pair )
+ dmn-char = <ps-delim, and any ps-char except ".">
+ dmn-pair = "\."
+
+ For example: C$US.ADMD$ATT.~ROLE$Big\.Chief
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 25]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 4.2. Mapping between EBNF.822-address and P1.ORName
+
+ Ideally, the mapping specified would be entirely symmetrical and
+ global, to enable addresses to be referred to transparently in the
+ remote system, with the choice of gateway being left to the
+ Message Transfer Service. There are two fundamental reasons why
+ this is not possible:
+
+ 1. The syntaxes are sufficiently different to make this
+ awkward.
+
+ 2. In the general case, there would not be the necessary
+ administrative co-operation between the X.400 and RFC 822
+ worlds, which would be needed for this to work.
+
+ Therefore, an asymmetrical mapping is defined.
+
+ 4.2.1. X.400 encoded in RFC 822
+
+ The std-orname syntax is used to encode O/R Name information
+ in the 822.local-part of EBNF.822-address. Further O/R Name
+ information may be associated with the 822.domain component.
+ This cannot be used in the general case, basically due to
+ character set problems, and lack of order in X.400 O/R Names.
+ The only way to encode the full PrintableString character set
+ in a domain is by use of the 822.domain-ref syntax. This is
+ likely to cause problems on many systems. The effective
+ character set of domains is in practice reduced from the
+ RFC 822 set, by restrictions imposed by domain conventions and
+ policy.
+
+ A generic 822.address consists of a 822.local-part and a
+ sequence of 822.domains (e.g.
+ <@domain1,@domain2:user@domain3>). All except the 822.domain
+ associated with the 822.local-part (domain3 in this case)
+ should be considered to specify routing within the RFC 822
+ world, and will not be interpreted by the gateway (although
+ they may have identified the gateway from within the RFC 822
+ world). The 822.domain associated with the 822.local-part may
+ also identify the gateway from within the RFC 822 world. This
+ final 822.domain may be used to determine some number of O/R
+ Name attributes. The following O/R Name attributes are
+ considered as a hierarchy, and may be specified by the domain.
+ They are (in order of hierarchy):
+
+ Country, ADMD, PRMD, Organisation, Organisational Unit
+
+
+
+Kille [Page 26]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ There may be multiple Organisational Units.
+
+ Associations may be defined between domain specifications, and
+ some set of attributes. This association proceeds
+ hierarchically: i.e. if a domain implies ADMD, it also implies
+ country. If one of the hierarchical components is omitted from
+ an X.400 structure, this information can be associated with the
+ corresponding domain (e.g. a domain can be mapped onto a
+ Country/ADMD/Organisation tuple). Subdomains under this are
+ associated according to the O/R Name hierarchy. For example:
+
+ => "AC.UK" might be associated with
+ C="234", ADMD="BT", PRMD="DES"
+
+ then domain "R-D.Salford.AC.UK" maps with
+ C="234", ADMD="BT", PRMD="DES", O="Salford", OU="R-D"
+
+ There are two basic reasons why a domain/attribute mapping
+ might be maintained, as opposed to using simply subdomains:
+
+ 1. As a shorthand to avoid redundant X.400 information.
+ In particular, there will often be only one ADMD per
+ country, and so it does not need to be given
+ explicitly.
+
+ 2. To deal with cases where attribute values do not fit
+ the syntax:
+
+ domain-syntax = ALPHA [ *alphanumhyphen alphanum ]
+ alphanum = <ALPHA or DIGIT>
+ alphanumhyphen = <ALPHA or DIGIT or HYPHEN>
+
+ Although RFC 822 allows for a more general syntax, this
+ restriced syntax is chosen as it is the one chosen by the
+ various domain service administrations.
+
+ This provides a general aliasing mechanism.
+
+ This set of mappings need only be known by the gateways
+ relaying between the RFC 822 world, and the O/R Name namespace
+ associated with the mapping in question. However, it is
+ desirable (for the optimal mapping of third party addresses)
+ for all gateways to know these mappings. A format for the
+ exchange of this information is defined in Appendix F.
+
+ From the standpoint of the RFC 822 Message Transfer System, the
+ domain specification is simply used to route the message in the
+
+
+Kille [Page 27]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ standard manner. The standard domain mechanisms are used to
+ identify gateways, and are used to select appropriate gateways
+ for the corresponding O/R Name namespace. In most cases, this
+ will be done by registering the higher levels, and assuming
+ that the gateway can handle the lower levels.
+
+ As a further mechanism to simplify the encoding of common
+ cases, where the only attributes to be encoded on the LHS are
+ Personal Name attributes which comply with the restrictions of
+ 4.2.2, the 822.local-part may be encoded as EBNF.encoded-pn.
+
+ An example encoding is:
+
+ /PN=J.Linnimouth/GQ=5/@Marketing.Xerox.COM
+
+ encodes the P1.ORName consisting of
+
+ P1.CountryName = "US"
+ P1.AdministrationDomainName = "ATT"
+ P1.OrganisationName = "Xerox"
+ P1.OrganisationalUnit = "Marketing"
+ P1.PersonalName.surName = "Linnimouth"
+ P1.PersonalName.initials = "J"
+ P1.PersonalName.GenerationQualifier = "5"
+
+ If the GenerationQualifier was not present, the encoding
+ J.Linnimouth@Marketing.Xerox.COM could be used.
+
+ Note that in this example, the first three attributes are
+ determined by the domain Xerox.COM. The OrganisationalUnit is
+ determined systematically.
+
+ There has been an implicit assumption that an RFC 822 domain is
+ either X.400 or RFC 822. This is pragmatic, but undesirable,
+ as the namespace should be structured on a logical basis which
+ does not necessarily correspond to the choice of Message
+ Transfer protocols. The restriction can be lifted, provided
+ that the nameservice deals with multiple message transfer
+ protocols. This can happen in a straightforward manner for the
+ UK NRS, as explained in [Kille86a]. It could also be achieved
+ with the DARPA Domain Nameserver scheme by use of the WKS
+ mechanism.
+
+
+
+
+
+
+
+Kille [Page 28]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 4.2.2. RFC 822 Encoded in X.400
+
+ In some cases, the encoding defined above may be reversed, to
+ give a "natural" encoding of genuine RFC 822 addresses. This
+ depends largely on the allocation of appropriate management
+ domains.
+
+ The general case is mapped by use of domain defined attributes.
+ Three are defined, according to the full environment used to
+ interpret the RFC 822 information.
+
+ 1. Domain defined type "RFC-822". This string is to be
+ interpreted in the context of RFC 822, and RFC 920
+ [Crocker82a,Postel84a].
+
+ 2. Domain defined type "JNT-Mail". This string is to be
+ interpreted in the context of the JNT Mail protocol,
+ and the NRS [Kille84a,Larmouth83a].
+
+ 3. Domain defined type "UUCP". This is interpreted
+ according to the constraints of the UUCP world
+ [Horton86a].
+
+ These three are values currently known to be of use. Further
+ recognised values may be defined. These will be maintained in
+ a list at the SRI Network Information Center.
+
+ Other O/R Name attributes will be used to identify a context in
+ which the O/R Name will be interpreted. This might be a
+ Management Domain, or some part of a Management Domain which
+ identifies a gateway MTA. For example:
+
+ 1)
+
+ C = "GB"
+ ADMD = "BT"
+ PRMD = "AC"
+ "JNT-Mail" = "Jimmy(a)UK.CO.BT-RESEARCH-LABS"
+
+ 2)
+
+ C = "US"
+ ADMD = "Telemail"
+ PRMD = "San Fransisco"
+ O = "U Cal"
+ OU = "Berkeley"
+ "RFC-822" = "postel(a)usc-isib.arpa"
+
+
+Kille [Page 29]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Note in each case the PrintableString encoding of "@" as "(a)".
+ In the first example, the "JNT-Mail" domain defined attribute
+ is interpreted everywhere within the (Administrative or
+ Private) Management Domain. In the second example, further
+ attributes are needed within the Management Domain to identify
+ a gateway. Thus, this scheme can be used with varying levels
+ of Management Domain co-operation.
+
+ 4.2.3. RFC 822 -> X.400
+
+ There are two basic cases:
+
+ 1. X.400 addresses encoded in RFC 822. This will also
+ include RFC 822 addresses which are given reversible
+ encodings.
+
+ 2. "Genuine" RFC 822 addresses.
+
+ The mapping should proceed as follows, by first assuming case
+ 1).
+
+ STAGE 1.
+
+ 1. If the 822-address is not of the form:
+
+ local-part "@" domain
+
+ go to stage 2.
+
+ 2. Attempt to parse domain as:
+
+ *( domain-syntax "." ) known-domain
+
+ Where known-domain is the longest possible match in a
+ list of gatewayed domains. If this fails, and the domain
+ does not explicitly identify the local gateway, go to
+ stage 2. If it succeeds, allocate the attributes
+ associated with EBNF.known-domain, and systematically
+ allocate the attributes implied by each
+ EBNF.domain-syntax component.
+
+ 3. Map 822.local-part to ASCII, according to the
+ definition of Appendix A. This step should be applied:
+
+ A. If the source network cannot support
+ 822.quoted-string (as discussed in Appendix A).
+
+
+
+Kille [Page 30]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ B. If the address is an 822-P1 recipient.
+
+ This mapping is always applied in case B, as it
+ increases the functionality of the gateway, and does
+ not imply any loss of generality. Mapping case B
+ allows sites which cannot generate 822.quoted-string
+ to address recipients the gateway, without the gateway
+ having to know this explicitly. There is no loss of
+ functionality, as the quoting character of Appendix A
+ (#) is not in PrintableString. This seems desirable.
+ It should not be applied in to other addresses, as a
+ third party RFC#822 address containing the sequence
+ EBNF.atom-encoded (as defined in Appendix A) would be
+ transformed asymmetrically.
+
+ 4. Map the result of 3) to EBNF.ps-encoded according to
+ section 3.
+
+ 5. Parse the result of 4) according to the EBNF
+ EBNF.std-orname. If this parse fails, parse the result
+ of 4) according to the EBNF EBNF.encoded-pn. If this
+ also fails, go to stage 2. Otherwise, the result is a
+ set of type/value pairs.
+
+ 6. Associate the EBNF.attribute-value syntax (determined
+ from the identified type) with each value, and check
+ that it conforms. If not, go to stage 2.
+
+ 7. Ensure that the set of attributes conforms both to the
+ X.411 P1.ORName specification and to the restrictions
+ on this set given in X.400. If not go to stage 2.
+
+ 8. Build the O/R Name from this information.
+
+ STAGE 2.
+
+ This will only be reached if the RFC 822 EBNF.822-address is
+ not a valid X.400 encoding. If the address is an 822-P1
+ recipient address, it must be rejected, as there is a need to
+ interpret such an address in X.400. For the 822-P1 return
+ address, and any addresses in the RFC 822 header, they should
+ now be encoded as RFC 822 addresses in an X.400 O/R Name:
+
+ 1. Convert the EBNF.822-address to PrintableString, as
+ specified in chapter 3.
+
+ 2. The domain defined attribute ("RFC-822", "JNT-Mail" or
+
+
+Kille [Page 31]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ "UUCP") appropriate to the gateway should be selected,
+ and its value set.
+
+ 3. Build the rest of the O/R Name in the local Management
+ Domain agreed manner, so that the O/R Name will receive
+ a correct global interpretation.
+
+ 4.2.4. X.400 -> RFC 822
+
+ There are two basic cases:
+
+ 1. RFC 822 addresses encoded in X.400.
+
+ 2. "Genuine" X.400 addresses. This may include
+ symmetrically encoded RFC 822 addresses.
+
+ When a P1 Recipient O/R Name is interpreted, gatewaying will be
+ selected if there a single special domain defined attribute
+ present ("RFC-822", "JNT-Mail" or "UUCP"). In this case, use
+ mapping A. For other O/R Names which
+
+ 1. Contain the special attribute.
+
+ AND
+
+ 2. Identify the local gateway with the other attributes.
+
+ Use mapping A. In other cases, use mapping B.
+
+ Mapping A
+
+ 1. Map the domain defined attribute value to ASCII, as
+ defined in chapter 3.
+
+ 2. Where appropriate (P1 recipients), interpret the string
+ according to the semantics implied by the domain
+ defined attribute.
+
+ Mapping B.
+
+ This will be used for X.400 addresses which do not use the
+ explicit RFC 822 encoding.
+
+ 1. Noting the hierarchy specified in 4.3.1, determine the
+ maximum set of attributes which have an associated
+ domain specification. If no match is found, allocate
+
+
+
+Kille [Page 32]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ the domain as the domain specification of the local
+ gateway, and go to step 4.
+
+ 2. Following the 4.3.1 hierarchy, if each successive
+ component exists, and conforms to the syntax
+ EBNF.domain-syntax (as defined in 4.3.1), allocate the
+ next subdomain.
+
+ 3. If the remaining components are personal-name
+ components, conforming to the restrictions of 4.2.2,
+ then EBNF.encoded-pn should be derived to form
+ 822.local-part. In other cases the remaining
+ components should simply be encoded as a 822.local-part
+ using the EBNF.std-orname syntax. Where registered
+ domain defined types exist, the DD. syntax should not
+ be used.
+
+ 4. If this step is reached for an 822-P1 recipient, then
+ the address is invalid. For other addresses, if the
+ derived 822.local-part can only be encoded by use of
+ 822.quoted-string, the gateway may optionally use the
+ ASCII to 822.local-part mapping defined in Appendix A,
+ dependent on the mail protocols of the networks being
+ relayed to. Use of this encoding is discouraged.
+
+ 4.3. Repeated Mappings
+
+ The mappings defined are symmetrical across a single gateway,
+ except in certain pathological cases (see chapter 3). However, it
+ is always possible to specify any valid address across a gateway.
+ This symmetry is particularly useful in cases of (mail exploder
+ type) distribution list expansion. For example, an X.400 user
+ sends to a list on an RFC 822 system which he belongs to. The
+ received message will have the originator and any 3rd party X.400
+ O/R names in correct format (rather than doubly encoded). In
+ cases (X.400 or RFC 822) where there is common agreement on
+ gateway identification, then this will apply to multiple gateways.
+
+ However, the syntax may be used to source route.
+
+ For example: X.400 -> RFC 822 -> X.400
+
+ C = "UK"
+ ADMD = "BT"
+ PRMD = "AC"
+ "JNT-Mail" = "/PN=Duval/DD.Title=Manager/(a)FR.PTT.Inria"
+
+
+
+Kille [Page 33]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ This will be sent to an arbitrary UK Academic Community gateway
+ by X.400. Then by JNT Mail to another gateway determined by
+ the domain FR.PTT.Inria. This will then derive the X.400 O/R
+ Name:
+
+ C = "FR"
+ ADMD = "PTT"
+ PRMD = "Inria"
+ PN.S = "Duval"
+ "Title" = "Manager"
+
+ Similarly: RFC 822 -> X.400 -> RFC 822
+
+ "/C=UK/ADMD=BT/PRMD=AC/RFC-822=jj(a)seismo.css.gov/"
+ @monet.berkeley.edu
+
+ /C=UK/ADMD=BT/PRMD=AC/RFC-822=jj#l#a#r#seismo.css.gov/
+ @monet.berkeley.edu
+
+ The second case uses the Appendix A encoding to avoid
+ 822.quoted-text. This will be sent to monet.berkeley.edu by
+ RFC 822, then to the AC PRMD by X.400, and then to
+ jj@seismo.css.gov by RFC 822.
+
+ 4.4. The full P1 / 822-P1 mapping
+
+ There are two basic mappings at the P1 level:
+
+ 1. 822-P1 return address <-> P1.UMPDUEnvelope.originator
+
+ 2. 822-P1 recipient <-> P1.RecipientInfo
+
+ 822-P1 recipients and return addresses are encoded as
+ EBNF.822-address. As P1.UMPDUEnvelope.originator is encoded as
+ P1.ORName, mapping 1) has already been specified.
+ P1.RecipientInfo contains a P1.ORName and additional information.
+ The handling of this additional information is now specified.
+
+ 4.4.1. RFC 822 -> X.400
+
+ The following default settings should be made for each
+ component of P1.RecipientInfo.
+
+ P1.ExtensionIdentifier
+
+ This can be set systematically by the X.400 system.
+
+
+
+Kille [Page 34]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P1.RecipientInfo.perRecipientFlag
+
+ Responsibility Flag should be set. Report Request should
+ be set according to content return policy, as discussed
+ in section 5.3. User Report Request should be set to
+ Basic.
+
+ P1.ExplicitConversion
+
+ This optional component should be omitted.
+
+ 4.4.2. X.400 -> RFC 822
+
+ The mapping only takes place in cases where
+ P1.RecipientInfo.perRecipientFlag Responsibility Flag is set.
+ The following treatment should be given to the other
+ P1.RecipientInfo components.
+
+ P1.ExtensionIdentifier
+
+ Not used.
+
+ P1.RecipientInfo.perRecipientFlag
+
+ If ReportRequest is Confirmed or Audit-and-Confirmed then
+ a delivery report indicating success should be sent by
+ the gateway. This report should use each
+ P1.ReportedRecipientInfo.SupplementaryInformation to
+ indicate the identity of the gateway, and the nature of
+ the report (i.e. only as far as the gateway). Failures
+ will be handled by returning RFC 822 messages, and so
+ User Report Request set to No report is ignored.
+
+ P1.ExplicitConversion
+
+ If present, the O/R name should be rejected, unless the
+ requested conversion can be achieved. None of the
+ currently recognised values of this parameter are
+ appropriate to a gateway using this specification.
+
+
+
+
+
+
+
+
+
+
+Kille [Page 35]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 4.5. The full P2 / RFC 822 mapping
+
+ All RFC 822 addresses are assumed to use the 822.mailbox syntax.
+ This should include all 822.comments associated with the lexical
+ tokens of the 822.mailbox. All P2.ORNames are encoded within the
+ syntax P2.ORDescriptor, or P2.Recipient (or within Message IDs).
+ An asymmetrical mapping is defined between these components.
+
+ 4.5.1. RFC 822 -> X.400
+
+ The following sequence is followed.
+
+ 1. Take the address, and extract an EBNF.822-address.
+ This can be derived trivially from either the
+ 822.addr-spec or 822.route-addr syntax. This is mapped
+ to P2.ORName as described above.
+
+ 2. A string should be built consisting of (if present):
+
+ - The 822.phrase component if it is a 822.phrase
+ 822.route-addr construct.
+
+ - Any 822.comments, in order, retaining the
+ parentheses.
+
+ This string should then be encoded into T.61 (as
+ described in chapter 3). If the string is not null,
+ it should be assigned to P2.ORDescriptor.freeformName.
+
+ 3. P2.ORDescriptor.telephoneNumber should be omitted.
+
+ 4. In cases of converting to P2.Recipient,
+ P2.Recipient.replyRequest and
+ P2.Recipient.reportRequest should be omitted.
+
+ If the 822.group construct is present, each included
+ 822.mailbox should be encoded as above. The 822.group should
+ be mapped to T.61, and a P2.ORDesciptor with only a
+ freeformName component built from it.
+
+ 4.5.2. X.400 -> RFC 822
+
+ In the basic case, where P2.ORName is present, proceed as
+ follows.
+
+ 1. Encode P2.ORName as EBNF.822-address.
+
+
+
+Kille [Page 36]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 2a. If P2.ORDescriptor.freeformName is present, convert it
+ to ASCII (chapter 3), and use use this as the
+ 822.phrase component of 822.mailbox using the
+ 822.phrase 822.route-addr construct.
+
+ 2b. If P2.ORDescriptor.freeformName is absent, if
+ EBNF.822-address is parsed as 822.addr-spec use this as
+ the encoding of 822.mailbox. If EBNF.822-address is
+ parsed as 822.route 822.addr-spec, then a 822.phrase
+ taken from 822.local-part should be added.
+
+ 3. If P2.ORDescriptor.telephoneNumber is present, this
+ should be placed in a trailing 822.comment.
+
+ 4. If P2.Recipient.reportRequest has the
+ receiptNotification bit set, then an 822.comment
+ "(Receipt Notification Requested)" should be appended
+ to the address. The effort of correlating P1 and P2
+ information is too great to justify the gateway sending
+ Receipt Notifications.
+
+ 5. If P2.Recipient.replyRequest is present, an 822.comment
+ "(Reply requested)" or "(Reply not requested)" should
+ be appended to the address, dependent on its value.
+
+ If P2.ORName is absent, P2.ORDescriptor.freeformName should be
+ converted to ASCII, and used with the RFC 822 822.group syntax:
+
+ freeformname ":" ";"
+
+ Steps 3-5 should then be followed.
+
+ 4.6. Message IDs
+
+ There is a need to map both ways between 822.msg-id and
+ P2.IPMessageID. A mapping is defined which is symmetrical for
+ non-pathological cases. The mapping allows for the fact that
+ P2.IPMessageID.PrintableString is mandatory for the Cen/Cenelec
+ profile. This allows for good things to happen when messages pass
+ multiple times across the X.400/RFC 822 boundary. A mapping
+ between 822.msg-id and P1.MPDUIdentifier is defined. This allows
+ for X.400 error messages to reference an RFC 822 ID, which is
+ preferable to a gateway generated ID.
+
+
+
+
+
+
+Kille [Page 37]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 4.6.1. P2.IPMessageID -> 822.msg-id
+
+ P2.IPMessageID.ORName is used to generate an 822.addr-spec, as
+ defined above. P2.IPMessageID.PrintableString is mapped to
+ ASCII, as defined in chapter 3. This string (if it is present
+ and if the value is not "RFC-822") is appended to the front of
+ the 822.local-part of the 822.msg-id, with "*" as a separator.
+ If no ORName is present, an 822.msg-id of the form
+ "PrintableString*@gateway-domain" is generated.
+
+ 4.6.2. 822.msg-id -> P2.IPMessageID
+
+ 822.local-part is parsed as:
+
+ [ printablestring "*" ] real-local-part
+
+ If EBNF.printablestring is found, it is mapped to
+ PrintableString, and used as P2.IPMessageID.PrintableString.
+ Otherwise
+ P2.IPMessageID.PrintableString is set to "RFC-822". This
+ arbitrary value allows for conformance to Cen/Cenelec. If
+ EBNF.real-local-part is not present, no P2.IPMessageID.ORName
+ is generated. Otherwise, 822.local-part is replaced with
+ EBNF.real-local-part, and 822.addr-spec is mapped to
+ P2.IPMessageID.ORName as defined above.
+
+ 4.6.3. 822.msg-id -> P1.MPDUIdentifier
+
+ P1.CountryName is assigned to "", P1.AdministrationDomainName
+ to 822.domain (from 822.msg-id) and P1.MPDUIdentifier.IA5String
+ to 822.local-part (from 822.msg-id).
+
+ 4.6.4. P1.MPDUIdentifier -> 822.msg-id
+
+ 822.local-part is set to P1.MPDUIdentifier.IA5String, with any
+ CRLF mapped to SPACE. If P1.CountryName is "", 822.domain is
+ set to P1.AdministrationDomainName; Otherwise to
+ P1.AdministrationDomainName ".." P1.CountryName. If there are
+ any specials, the domain literal encoding should be used.
+
+
+
+
+
+
+
+
+
+
+Kille [Page 38]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Chapter 5 -- Protocol Elements
+
+ This chapter gives detailed mappings for the functions outlined in
+ chapters 1 and 2. It makes extensive use of the notations and
+ mappings defined in chapters 3 and 4. This chapter is structured as
+ follows:
+
+ 5.1. Basic RFC 822 -> X.400 mappings
+
+ 5.2. A definition of some new RFC 822 elements, and their mapping
+ to X.400.
+
+ 5.3 Some special handling associated with Return of Contents.
+
+ 5.4. X.400 -> RFC 822
+
+ 5.1. RFC 822 -> X.400
+
+ First, the basic functions of an 822-P1 protocol should be mapped
+ as follows:
+
+ 822-P1 Originator
+
+ Mapped to P1.UMPDUEnvelope.originator (see chapter 4).
+
+ 822-P1 Recipient
+
+ Mapped to P1.RecipientInfo (see chapter 4).
+
+ The RFC 822 headers are used to generate both a P1.UMPDUEnvelope
+ and a P2.Heading. The IP Message will have either one or two
+ P2.BodyParts which will be type P2.IA5Text with no
+ P2.IA5Text.repertoire component. The last P2.BodyPart will contain
+ the RFC 822 message body. If there are any RFC 822 headers which
+ indicate mapping into the P2.BodyPart, then two P2.BodyParts are
+ generated. If a revised version of P2 allowed for extensible
+ header specification, this would be seen as a preferable mapping.
+ The first body part will start with the line:
+
+ RFC-822-Headers:
+
+ The rest of this body part will contain all of the headers not
+ otherwise mapped (both 822.field-name and 822.field-body). The
+ order of any such headers should be preserved. Similarly,
+ ordering within P2.Heading and P1.UMPDUEnvelope should reflect
+ ordering within the RFC 822 header. No P1 or P2 optional fields
+ are generated unless specified.
+
+
+Kille [Page 39]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ A pro-forma X.400 message is now specified. Some of these
+ defaults may be changed by the values in the RFC 822 message being
+ mapped. The mandatory P1 and P2 components have the following
+ defaults.
+
+ P1.MPDUIdentifier
+
+ The default should be unique value generated by the gateway.
+
+ P1.OriginatorORName
+
+ Always generated from 822-P1.
+
+ P1.ContentType
+
+ P1.ContentType.p2
+
+ P1.RecipientInfo
+
+ These will always be supplied from 822-P1.
+
+ P1.Trace
+
+ The last P1.TraceInformation component is generated such
+ that: P1.TraceInformation.GlobalDomainIdentifier is set to
+ the local vaglue. P1.DomainSuppliedInfo.action is set to
+ relayed. P1.DomainSuppliedInfo.arrival is set to the current
+ time. P1.DomainSuppliedInfo.previous may be set if there is
+ anything sensible to set it to.
+
+ P2.IPMessageID
+
+ The default should be a unique value generated by the
+ gateway.
+
+ The following optional parameters should be set:
+
+ P1.PerMessageFlag
+
+ The P1.PerMessageFlag.contentReturnRequest bit should be set
+ according to the discussion in section 5.3. The
+ P1.PerMessageFlag.alternateRecipientAllowed bit should be
+ set, as it seems desirable to maximise opportunity for
+ (reliable) delivery.
+
+
+
+
+
+Kille [Page 40]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ The RFC 822 headings should be mapped as follows:
+
+ Received:
+
+ Fudged onto P1.TraceInformation (try not to grimace too
+ much). P1.DomainSuppliedInfo.action is set to relayed.
+ P1.DomainSuppliedInfo.arrival is set to the date-time
+ component P1.TraceInformation.GlobalDomainIdentifier has
+ P1.CountryName as a null string, and
+ P1..AdministrationDomainName as the domain of the receiving
+ host (if present - null string if not).
+ P1.DomainSuppliedInfo.previous has P1.CountryName as a null
+ string, and P1.AdministrationDomainName has the domain of
+ the sending host with all other information enclosed in
+ round parentheses. The encoding of ASCII to PrintableString
+ (chapter 3) should be used if needed. For example:
+
+ Received: from 44e.cs.ucl.ac.uk by vax2.Cs.Ucl.AC.UK
+ with SMTP id a002110; 18 Dec 85 10:40 GMT
+
+ maps to -
+
+ P1.GlobalDomainIdentifier
+ CountryName = ""
+ AdministrationDomainName = "vax2.Cs.Ucl.AC.UK"
+ P1.DomainSuppliedInfo
+ arrival = 18 Dec 85 10:40 GMT
+ action = relayed
+ previous
+ CountryName = ""
+ AdministrationDomainName =
+ "44e.cs.ucl.ac.uk (with SMTP id a002110)"
+
+ Date:
+
+ This is used to set the first component of
+ P1.TraceInformation. The mandatory components are set as
+ follows:
+
+ P1.GlobalDomainIdentifier
+ CountryName = ""
+ AdministrationDomainName = ""
+ P1.DomainSuppliedInfo
+ arrival = time derived from Date:
+ action = relayed
+
+ No optional fields are used in the trace.
+
+
+Kille [Page 41]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Message-Id:
+
+ Mapped to P2.IPMessageID. If the RFC 822 message does not
+ contain a P1-Message-ID: field, the Message-Id: field is
+ also mapped to P1.MPDUIdentifier. For these, and all other
+ fields containing msg-id the mappings of chapter 4 are used
+ for each msg-id.
+
+ From:
+
+ If Sender: is present, this is mapped to
+ P2.AuthorisingUsers. If not, it is mapped to P2.Originator.
+ For this, and other components containing addresses, the
+ mappings of chapter 4 are used for each address.
+
+ Sender:
+
+ Mapped to P2.Originator.
+
+ Reply-To:
+
+ Mapped to P2.Heading.replyToUsers.
+
+ To:
+
+ Mapped to P2.Heading.primaryRecipients
+
+ Cc:
+
+ Mapped to P2.Heading.copyRecipients.
+
+ Bcc:
+
+ Mapped to P2.Heading.blindCopyRecipients.
+
+ In-Reply-To:
+
+ Mapped to P2.Heading.inReplyTo for the first (if any)
+ 822.msg-id component. If the field contains an 822.phrase
+ component, or there are multiple 822.msg-id components, the
+ ENTIRE field is passed in the P2.BodyPart.
+
+ References:
+
+ Mapped to P2.Heading.crossReferences.
+
+
+
+
+Kille [Page 42]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Keywords:
+
+ Passed in the P2.BodyPart.
+
+ Subject:
+
+ Mapped to P2.Heading.subject. The field-body uses the
+ mapping referenced in chapter 3 from ASCII to T.61.
+
+ Comments:
+
+ Passed in the P2.BodyPart.
+
+ Encrypted:
+
+ Passed in the P2.BodyPart.
+
+ Resent-*
+
+ Passed in the P2..BodyPart <8>.
+
+ Other Fields
+
+ In particular X-* fields, and "illegal" fields in common
+ usage (e.g. "Fruit-of-the-day:") are passed in the
+ P2.BodyPart. The same treatment should be applied to
+ RFC 822 fields where the content of the field does not
+ conform to RFC 822 (e.g. a Date: field with unparsable
+ syntax).
+
+ 5.2. Extended RFC 822 Elements -> X.400
+
+ First an EBNF definition of a number of extended fields is given,
+ and then a mapping to X.400 is defined. In most cases, the
+ RFC 822 syntax is defined to make this mapping very
+ straightforward, and so no detailed explanation of the mapping is
+ needed.
+
+ extended-field = "P1-Message-ID" ":" p1-msg-id
+ / "X400-Trace" ":" x400-trace
+ / "Original-Encoded-Information-Types"
+ ":"encoded-info
+ / "P1-Content-Type" ":" p1-content-type
+ / "UA-Content-ID" ":" printablestring
+ / "Priority" ":" priority
+ / "P1-Recipient" : 1 mailbox
+ / "Deferred-Delivery" ":" date-time
+
+
+Kille [Page 43]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ / "Bilateral-Info" ":" bilateral-info
+ / "Obsoletes" ":" 1 msg-id
+ / "Expiry-Date" ":" date-time
+ / "Reply-By" ":" date-time
+ / "Importance" ":" importance
+ / "Sensitivity" ":" sensitivity
+ / "Autoforwarded" ":" boolean
+
+ p1-msg-id = global-id ";" *text
+
+ p1-content-type = "P2" / atom
+
+ x400-trace = global-id ";"
+ "arrival" date-time
+ [ "deferred" date-time ]
+ [ "action" action ]
+ [ "converted" "(" encoded-info ")" ]
+ [ "previous" global-id ]
+
+ action = "Relayed" / "Rerouted" / escape
+
+ global-id = c "*" admd [ "*" prmd ]
+
+ encoded-info = 1 encoded-type
+
+ encoded-type = "Undefined" ; undefined (0)
+ / "Telex" ; tLX (1)
+ / "IA5-Text" ; iA5Text (2)
+ / "G3-Fax" ; g3Fax (3)
+ / "TIF0" ; tIF0 (4)
+ / "Teletex" ; tTX (5)
+ / "Videotex" ; videotex (6)
+ / "Voice" ; voice (7)
+ / "SFD" ; sFD (8)
+ / "TIF1" ; tIF1 (9)
+ / escape
+
+ priority = "normal" / "non-urgent" / "urgent" / escape
+
+ bilateral-info = c "*" admd "*" *text
+
+ importance = "low" / "normal" / "high" / escape
+
+ sensitivity = "Personal" / "Private"
+ / "Company-Confidential" / escape
+
+ escape = 1*DIGIT
+
+
+Kille [Page 44]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ With the exception of "Bilateral-Info:" and "X400-Trace:", there
+ must be no more than one of each of these fields in an RFC 822
+ header. Any field beginning with the String "Autoforwarded-" is
+ valid if the field would be syntactically valid with this string
+ removed.
+
+ The mappings to X.400 are as follows:
+
+ P1-Message-ID:
+
+ Mapped to P1.UMPDUEnvelope.MPDUIdentifier. This take
+ precedence over any value derived from Message-ID:.
+
+ X400-Trace:
+
+ Mapped to the next component of
+ P1.UMPDUEnvelope.Traceinformation. Care should be taken to
+ preserve order. If one or more of these mappings is made,
+ then a trace component should NOT be generated from the
+ Date: field which should be redundant. This is because the
+ message has previously come from X.400, and the Date:
+ information will be redundant. Note that all trace
+ information (Received: and "X400-Trace:") in the RFC 822
+ message will be in strict order, with the most recent at the
+ top. This order should be preserved in the mapping.
+
+ Original-Encoded-Information-Types:
+
+ This is used to set P1.UMPDUEnvelope.original.
+ P1.EncodedInformationTypes.[0] has bits set according to
+ each of the encoded-info components in this field. Any
+ escape values should not be encoded.
+
+ P1-Content-Type:
+
+ If the value is anything other than "P2", the mapping should
+ not be performed (unless the new value has some semantics to
+ the gateway).
+
+ UA-Content-ID:
+
+ Mapped to P1.UMPDUEnvelope.UAContentID.
+
+ Priority:
+
+ Mapped to P1.UMPDUEnvelope.Priority. An escape value should
+ be encoded as P1.Priority.normal.
+
+
+Kille [Page 45]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P1-Recipient:
+
+ If this field is set, the
+ P1.PerMessageFlag.discloseRecipients bit should be set. Any
+ of the addresses here which do not correspond to 822-P1
+ recipients should be added to the P1 recipient list, with
+ the responsibility bit turned off.
+
+ Deferred-Delivery:
+
+ Mapped to P1.UMPDUEnvelope.deferredDelivery. Note that the
+ value of this field should always be in the past, as this
+ field should only be present in messages which have come
+ originally from X.400. Thus there should be no implied
+ action. See also the comments on the reverse mapping.
+
+ Bilateral-Info:
+
+ No attempt is made to reconvert this information back to
+ X.400.
+
+ Obsoletes:
+
+ Mapped to P2.Heading.obsoletes.
+
+ Expiry-Date:
+
+ Mapped to P2.Heading.expiryDate.
+
+ Reply-By:
+
+ Mapped to P2.Heading.replyBy.
+
+ Importance:
+
+ Mapped to P2.Heading.importance. An escape value should be
+ encoded as P2.Heading.importance.normal.
+
+ Sensitivity:
+
+ Mapped to P2.Heading.sensitivity. An escape value should be
+ encoded as P2.Heading.sensitivity.normal.
+
+ Autoforwarded:
+
+ If this field is present and the value is "TRUE", there will
+ be zero or more field names beginning "Autoforwarded-".
+
+
+Kille [Page 46]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ These should be taken, and the string "Autoforwarded-"
+ stripped. These fields, in conjunction with the 822-P1
+ information should be used to build an IP Message. Any
+ implied actions should be taken. P2.Heading.autoforwarded is
+ set in this message. The other RFC 822 fields are used to
+ build another IP Message, which is used as the single body
+ part of the first message. This mechanism does not nest.
+
+ 5.3. Return of Contents
+
+ It is not clear how widely supported X.400 return of contents
+ service will be. However, profiling work suggests that most
+ systems will not support this service. As this service is
+ expected in the RFC 822 world, two approaches are specified (it is
+ not so necessary in the X.400 world, as delivery reports are
+ distinguished from messages). The choice will depend on the
+ service level of the X.400 community being serviced by the
+ gateway.
+
+ In environments where return of contents is widely supported, the
+ P1.PerMessageFlag content return request bit will be set, and the
+ Report Request bit in P1.PerRecipientFlag will be set to
+ Confirmed, for every message passing from RFC 822 -> X.400. The
+ content return service can then be passed back to the end
+ (RFC 822) user in a straightforward manner.
+
+ In environments where return of contents is not widely supported,
+ a gateway must make special provisions to handle return of
+ contents. For every message passing from RFC 822 -> X.400, the
+ P1.PerMessageFlag content return request bit will be set, and the
+ Report Request bit in P1.PerRecipientFlag will be set to
+ Confirmed. When the delivery report comes back, the gateway can
+ note that the message has been delivered to the recipient(s) in
+ question. If a non-delivery report is received, a meaningful
+ report (containing some or all of the original message) can be
+ sent to the 822-P1 originator. If no report is received for a
+ recipient, a (timeout) failure notice should be sent to the 822-P1
+ originator. The gateway may retransmit the X.400 message if it
+ wishes. Delivery confirmations should only be sent back to the
+ 822-P1 originator if the P1.PerRecipientFlag User Report Request
+ bit is set to Confirmed.
+
+
+
+
+
+
+
+
+Kille [Page 47]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 5.4. X.400 -> RFC 822
+
+ 5.4.1. General
+
+ This section describes how to build a pro-forma message, and
+ then explains how these defaults may be overridden. It should
+ be noted that RFC 822 folding of headers should be used in an
+ appropriate manner.
+
+ 5.4.2. Service MPDU
+
+ 5.4.2.1. Probe
+
+ Any P1.ProbeMPDU should be serviced by the gateway, as there
+ is no equivalent RFC 822 functionality. The value of the
+ reply is dependent on whether the gateway could service a
+ User MPDU with the values specified in the probe. The reply
+ should make use of P1.SupplementaryInformation to indicate
+ that the probe was serviced by the gateway.
+
+ 5.4.2.2. Delivery Report
+
+ The 822-P1 components are constructed as follows:
+
+ 822-P1 Originator
+
+ This is set to an 822.addr-spec pointing to an
+ administrator at the gateway.
+
+ 822-P1 Recipient
+
+ The single recipient is constructed from
+ P1.DeliveryReportEnvelope.originator, using the
+ mappings of chapter 4.
+
+ The mandatory RFC 822 headers for an RFC 822 pro-forma are
+ constructed as follows:
+
+ Date:
+
+ From the P1.DomainSuppliedInfo.arrival component of
+ the first P1.TraceInformation component.
+
+ From:
+
+ This is set to the same as the 822-P1 originator. An
+
+
+
+Kille [Page 48]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ appropriate phrase component may be added (e.g. giving
+ the name of the gateway).
+
+ To:
+
+ The same as the 822-P1 recipient.
+
+ A Subject: field should be added, which contains some
+ appropriate words (e.g. "Delivery Report").
+
+ The other two P1.DeliveryReportEnvelope parameters should be
+ mapped as follows:
+
+ P1.DeliveryReportEnvelope.report
+
+ This should be mapped to a P1-Message-Id: field.
+
+ P1.DeliveryReportEnvelope.TraceInformation
+
+ Each component should be mapped to an "X400-Trace:"
+ field. RFC 822 and X.400 ordering should be
+ maintained (see 5.3).
+
+ The P1.DeliveryReportContent parameters should be mapped to
+ a series of new RFC 822 headers. These new headers are
+ intended for processing in the RFC 822 world. No attempt
+ will be made to reverse the mappings.
+
+ drc-field = "Delivery-Report-Content-Original"
+ ":" msg-id
+ / "Delivery-Report-Content-Intermediate-Trace"
+ ":" x400-trace
+ / "Delivery-Report-Content-UA-Content-ID"
+ ":" printablestring
+ / "Delivery-Report-Content-Billing-Information"
+ ":" *text
+ / "Delivery-Report-Content-Reported-Recipient-Info"
+ ":" drc-info
+
+ drc-info = mailbox ";"
+ last-trace ";"
+ "ext" 1*DIGIT
+ "flags" 2DIGIT
+ [ "intended" mailbox ] ";"
+ [ "info" printablestring ]
+
+
+
+
+Kille [Page 49]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ last-trace = drc-report ";"
+ date-time ";"
+ [ "converted" "(" encoded-info ")"
+
+ drc-report = "SUCCESS" drc-success
+ / "FAILURE" drc-failure
+
+ drc-success = date-time ";" 1*DIGIT
+
+ drc-failure = *text [ ";" *text ] ";"
+
+ There may be multiple
+ "Delivery-Report-Content-Intermediate-Trace:" and
+ "Delivery-Report-Content-Reported-Recipient-Info:" fields.
+ The msg-id for "Delivery-Report-Content-Original" is derived
+ according to the mapping of chapter 4. EBNF.drc-failure may
+ use numeric values or textual explanation. The latter is
+ preferred. All P1.DeliveryReportContent parameters are
+ mapped to the corresponding component. The order of
+ "Delivery-Report-Content-Intermediate-Trace:" should have
+ the most recently stamped one first.
+
+ The body of the RFC 822 message should be a human readable
+ description of the critical parts of the
+ P1.DeliveryReportContent. In particular, the failed
+ recipients, and failure reason should be given. Some or all
+ of the original message should be included in the delivery
+ report. The original message will be available at the
+ gateway, as discussed in section 5.3.
+
+ 5.4.3. User MPDU
+
+ These elements are the basis for both Status Report and IP
+ Message.
+
+ The 822-P1 components are constructed as follows:
+
+ 822-P1 Originator
+
+ This is derived from P1.UMPDUEnvelope.originator.
+
+ 822-P1 Recipient
+
+ Each recipient is constructed from the P1.RecipientInfo,
+ as described in chapter 4. This describes actions as
+ well as format mappings.
+
+
+
+Kille [Page 50]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ The mandatory RFC 822 field pro-forma is derived as follows.
+ In most cases where the P1.UMPDUContent is an IP Message, these
+ defaults will be overridden:
+
+ Date:
+
+ From the P1.DomainSuppliedInfo.arrival component of the
+ first P1.TraceInformation component.
+
+ From:
+
+ From the P1.UMPDUEnvelope.originator, as defined in
+ chapter 4.
+
+ To:
+
+ This default is only required if the generated RFC 822
+ message has no destination specification. If
+ P1.PerMessageFlag.discloseRecipients is set then it
+ should contain the ORName in each P1.RecipientInfo
+ component. If it is not set, the it should be set to
+ "To: No Recipients Specified : ;".
+
+ The mappings, and any actions for each P1.UserMPDU element is
+ now considered.
+
+ P1.MPDUIdentifier
+
+ Mapped to the extended RFC 822 field "P1-Message-ID:".
+ Note that the sequence CRLF is mapped to SPACE, which
+ makes the mapping irreversible for such cases.
+
+ P1.UMPDUEnvelope.original
+
+ Mapped to the extended RFC 822 field
+ "Original-Encoded-Information-Types:". If it contains
+ only P2.IA5Text, the RFC 822 field may be omitted.
+
+ P1.ContentType
+
+ As this can currently only have one value, it is not
+ mapped, on the basis that it is redundant. If the field
+ contains any value other than P2, then the UMPDU should
+ be rejected.
+
+
+
+
+
+Kille [Page 51]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P1.UAContentID
+
+ Mapped to the extended RFC 822 field "UA-Content-Id:".
+
+ P1.Priority
+
+ Mapped to the extended RFC 822 field "Priority:".
+
+ P1.PerMesageFlag
+
+ This has a number of components:
+
+ - discloseRecipients
+
+ If this bit is set, a "P1-Recipient:" field should
+ be generated, and contain each of the P1
+ recipients.
+
+ - conversionProhibited
+
+ If this bit is set, the message should be rejected
+ if it contains P2.BodyPart which is not P2.IA5Text
+ or P2.ForwardedIPMessage.
+
+ - alternateRecipientAllowed
+
+ The value of this bit is ignored.
+
+ - contentReturnRequest
+
+ The value of this bit is ignored.
+
+ P1.UMPDUEnvelope.deferredDelivery
+
+ This should be mapped to the extended RFC 822 field
+ "Deferred-Delivery:". X.400 profiles, and in particular
+ the CEN/CENELEC profile [CEN/CENELEC/85a], specify that
+ this element must be supported at the first MTA. Thus,
+ it is expected that the value of this element will always
+ be in the past. If it is not, the function may
+ optionally be implemented by the gateway: that is, the
+ gateway should hold the message until the time specified
+ in the protocol element. Thus the extended RFC 822 field
+ is just for information.
+
+
+
+
+
+Kille [Page 52]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P1.PerDomainBilateralInformation
+
+ Each component should be encoded in the extended RFC 822
+ field "Bilateral-Info:". P1.BilateralInfo should be
+ mapped into ASCII in a manner appropriate to its
+ contents. This submapping is not reversible.
+
+ P1.TraceInformation
+
+ This should be mapped to "X400-Trace:", as for the
+ delivery report.
+
+ 5.4.4. Status Report
+
+ The entire status report is mapped into the body of the RFC 822
+ message, in the same manner as for a Delivery Report. An
+ appropriate "Subject:" field should be generated. As status
+ reports cannot be requested from the RFC 822 world, the mapping
+ is not likely to be used a great deal.
+
+ 5.4.5. IP Message
+
+ The P1.UMPDUEnvelope pro-forma specification ensures all the
+ 822-P1 information, and a minimal (legal) RFC 822 message. The
+ mappings and actions for the P2.Heading components are now
+ described. Basically, these are interpreted as actions and/or
+ mappings into RFC 822 fields. The following mappings are
+ specified:
+
+ P2.IPMessageID
+
+ This is mapped to the field "Message-ID:", according to
+ section 4.
+
+ P2.Heading.originator
+
+ If P2.Heading.authorisingUsers is present this is mapped
+ to Sender:, if not to From:.
+
+ P2.Heading.authorisingUsers
+
+ Mapped to From:.
+
+ P2.Heading.primaryRecipients
+
+ Mapped to To:.
+
+
+
+Kille [Page 53]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P2.Heading.copyRecipients
+
+ Mapped to Cc:.
+
+ P2.Heading.blindCopyRecipients
+
+ Mapped to Bcc:.
+
+ P2.Heading.inReplyTo
+
+ Mapped to In-Reply-To:.
+
+ P2.Heading.obsoletes
+
+ Mapped to the extended RFC 822 field "Obsoletes:"
+
+ P2.Heading.crossReferences
+
+ Mapped to References:.
+
+ P2.Heading.subject
+
+ Mapped to subject. The contents are converted to ASCII
+ (as defined in chapter 3). Any CRLF are not mapped, but
+ are used as points at which the subject field must be
+ folded. line.
+
+ P2.Heading.expiryDate
+
+ Mapped to the extended RFC 822 field "Expiry-Date:".
+
+ P2.Heading.replyBy
+
+ Mapped to the extended RFC 822 field "Reply-By:".
+
+ P2.Heading.replyToUsers
+
+ Mapped to Reply-To:.
+
+ P2.Heading.importance
+
+ Mapped to the extended RFC 822 field "Importance:".
+
+ P2.Heading.sensitivity
+
+ Mapped to the extended RFC 822 field "Sensitivity:".
+
+
+
+Kille [Page 54]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P2.Heading.autoforwarded
+
+ If it is set to FALSE, it is simply mapped to the
+ extended RFC 822 field "Autoforwarded:". If this is set
+ to TRUE, the P2.Body does not consist of a single
+ P2.ForwardedIPMessage, then there is an X.400 error, and
+ the message should be bounced. Otherwise the following
+ steps are taken.
+
+ 1. The mappings for all of the message, except the
+ body part are completed.
+
+ 2. Prepend each RFC 822 fieldname with the string
+ "Autoforwarded-". Mapped to the extended RFC 822
+ field "Autoforwarded:".
+
+ 3. Add the field "Autoforwarded:" with value TRUE.
+
+ 4. Convert the syntax of the P2.ForwardedIPMessage to
+ generate the remaining RFC 822 fields.
+
+ The P2.Body is mapped into the RFC 822 message body. Each
+ P2.BodyPart is converted to ASCII. If the P2.Body contains a
+ P2.BodyPart not listed here, the entire message should be
+ rejected. If there are exactly two P2.IA5Text body parts, and
+ the first line of the first is "RFC-822-Headers:", then the
+ rest of this first body part should be treated as additional
+ header information for the RFC 822 message. If there is an
+ "In-Reply-To:" field, this should be used to replace any
+ generated In-Reply-To: field.
+
+ In other cases of multiple P2.BodyPart, the mapping defined by
+ Rose and Stefferud in [Rose85b], should be used to separate the
+ P2.BodyParts in the single RFC 822 message body.
+
+ Individual body parts are mapped as follows:
+
+ P2.IA5Text
+
+ The mapping is trivial.
+
+ P2.TTX
+
+ If any P1.Teletex.NonBasicParams are set, the message
+ should be rejected. Otherwise, it should be converted to
+ ASCII according to chapter 3.
+
+
+
+Kille [Page 55]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ P2.SFD
+
+ An SFD should be converted to ASCII as if it was being
+ rendered on an 79 column ASCII only VDU. It seems likely
+ that many gateways will not support this conversion. In
+ these cases, the message should be rejected.
+
+ P2.ForwardedIPMessage
+
+ The P2.ForwardedIPMessage.delivery and
+ P2.ForwardedIPMessage.DeliveryInformation are
+ discarded <9>. The IM-UAPDU should have its syntax
+ mapped (recursively) according to this gatewaying
+ specification. Clearly, it makes no sense to apply any
+ of the actions defined here.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 56]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Appendix A -- Quoted String Encodings
+
+ This Appendix describes a quoting mechanism which may be used to
+ allow general interworking between RFC 822, and variants of RFC 822
+ which do not support 822.quoted-string. This is important, as the
+ basic X.400 <-> RFC 822 mapping makes use of 822.quoted-string.
+
+ 1. ASCII <-> 822.atom
+
+ The following EBNF is specified.
+
+ atom-encoded = *( a-char / a-encoded-char )
+ a-char = <any CHAR except specials, SPACE,
+ CTL, "_", and "#">
+ a-encoded-char = "_" ; (space)
+ / "#u#" ; (_)
+ / "#l#" ; <(>
+ / "#r#" ; <)>
+ / "#m#" ; (,)
+ / "#c#" ; (:)
+ / "#b#" ; (\)
+ / "#h#" ; (#)
+ / "#e#" ; ($=)
+ / "#s#" ; ($/)
+ / "#" 3DIGIT "#"
+
+ NOTE: There are two encodings of double characters. This is so
+ that systems using this encoding, do not also need to know about
+ the "$" quoting mechanism defined in chapter 4.
+
+ The 822.3DIGIT in EBNF.a-encoded-char must have range 0-127
+ (Decimal), and is interpreted in decimal as the corresponding
+ ASCII character. The choice of special abbreviations (as opposed
+ to octal encoding) provided is based on the manner in which this
+ mapping is most frequently used: encoding PrintableString
+ components of O/R names as atom. Therefore, there are special
+ encodings for each of the PrintableString characters not in
+ EBNF.a-char, except ".". Space is given a single character
+ encoding, due to its (expected) frequency of use, and backslash as
+ the RFC 822 single quote character.
+
+ To encode (ASCII -> atom): all EBNF.a-char are used directly and
+ all other CHAR are encoded as EBNF.a-encoded-char. To decode
+ (822.atom -> ASCII): if 822.atom can be parsed as
+ EBNF.encoded-atom reverse the previous mapping. If it cannot be
+ so parsed, map the characters directly.
+
+
+
+Kille [Page 57]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ 2. 822.local-part <-> ASCII
+
+ A related transformation is for 822.local-part (or other element
+ defined as '822.word ("." 822.word)') where not 822.quoted-text is
+ used. To encode (ASCII -> 822.local-part), all EBNF.a-char and
+ "." are used directly and all other 822.CHAR are encoded as
+ EBNF.a-encoded-char. To decode (822.local-part -> ASCII), first
+ attempt to parse 822.local-part as '822.atom *("." 822.atom)'. If
+ this fails, or if each 822.atom cannot be parsed as
+ EBNF.atom-encoded then map each character directly. Otherwise map
+ each "." directly, and each atom as in the previous section.
+
+ There are places where it is needed to convert between
+ PrintableString or IA5Text (X.400), and 822.word (RFC 822). word
+ may be encoded as 822.atom (which has a restricted character set)
+ or as 822.quoted-string, which can handle all ASCII characters.
+ If 822.quoted-string is used, clearly the mappings for
+ PrintableString defined in Chapter 3 provide a straightforward
+ mapping. However, some RFC 822 based networks cannot handle the
+ 822.quoted-string format in all cases. This Appendix is for use
+ in these cases. The major requirement for this mapping is the
+ UNIX world, but it may well be needed in other places.
+
+ These mappings are somewhat artificial, and their usage is
+ discouraged, except in cases where there is no alternative.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 58]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Appendix B -- Mappings Specific to JNT Mail
+
+ This Appendix is specific to the JNT Mail Protocol. It describes
+ specific changes in the context of this protocol. Addressing is not
+ discussed here, as it is covered in Appendix A.
+
+ 1. Introduction
+
+ There are four aspects of a gateway which are JNT Mail Specific,
+ in addition to those relating to addressing. These are each given
+ a section of this appendix.
+
+ 2. Acknowledge-To:
+
+ This field has no direct functional equivalent in X.400. However,
+ it can be supported to an extent, and can be used to improve X.400
+ support.
+
+ When going from JNT Mail to X.400, the User Report Request bits of
+ each P1.RecipientInfo.perRecipientFlag should be set to confirmed.
+ If there is more that one address in the Acknowledge-To: field, or
+ if the one address is not equivalent to the 822-P1 return address,
+ then:
+
+ a. Acknowledgement(s) should be generated by the gateway.
+ The text of these acknowledgements should indicate that
+ they are generated by the gateway.
+
+ b. The Acknowledge-To: field should also be passed in the
+ first P2.BodyPart.
+
+ When going from X.400 to JNT Mail, in cases where
+ P1.RecipientInfo.perRecipientFlag has the user bits set to
+ confirmed the copy of the message to that recipient should have an
+ Acknowledge-To: field containing the P.UMPDUEnvelope.originator.
+ No attempt should be made to map Receipt notification requests
+ onto Acknowledge-To:. This is because no association can be
+ guaranteed between P2 and P1 level addressing information.
+
+ 3. Trace
+
+ JNT Mail trace uses the Via: syntax. When going from JNT Mail to
+ X.400, the following mapping onto P1.TraceInformation is used.
+
+ P1.DomainSuppliedInfo.action is set to relayed.
+
+ P1.DomainSuppliedInfo.arrival is set to the date-time component
+
+
+Kille [Page 59]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ of the Via: field. P1.DomainSuppliedInfo.previous has
+ P1.CountryName as a null string, and
+ P1.AdministrationDomainName as the domain specified in the Via:
+ field.
+ P1.TraceInformation.GlobalDomainIdentifier has P1.CountryName
+ as a null string, and P1.AdministrationDomainName as any
+ commented information in the Via: field. For example:
+
+ Via: UK.AC.Edinburgh ; 17 Jun 85 9:15:29 BST (EMAS V7)
+
+ maps to -
+
+ P1.GlobalDomainIdentifier
+ CountryName = ""
+ AdministrationDomainName = "(EMAS V7)"
+ P1.DomainSuppliedInfo
+ arrival = 17 Jun 85 9:15:29 BST
+ action = relayed
+ previous
+ CountryName = ""
+ AdministrationDomainName = "UK.AC.Edinburgh"
+
+ 4. Timezone specification
+
+ The extended syntax of zone defined in the JNT Mail Protocol
+ should be used in the mapping of UTCTime defined in chapter 3.
+
+ 5. Lack of separate 822-P1 originator specification
+
+ In JNT Mail the default mapping of the P1.MPDUEnvelope.originator
+ is to the Sender: field. This can cause a problem if the mapping
+ of P2.Heading has already generated a Sender: field. To overcome
+ this, new extended JNT Mail field is defined. This is chosen to
+ align with the JNT recommendation for interworking with full
+ RFC 822 systems [Kille84b].
+
+ original-sender = "Original-Sender" ":" mailbox
+
+ If an IPM has no P2.heading.authorisingUsers component and
+ P2.Heading.originator.ORName is different from
+ P1.UMPDUEnvelope.originator, map P1.MPDUEnvelope.originator onto
+ the Sender: field.
+
+ If an IPM has a P2.heading.authorisingUsers component, and
+ P2.Heading.originator.ORName is different from
+ P1.UMPDUEnvelope.originator, P1.MPDUEnvelpoe.originator should be
+
+
+
+Kille [Page 60]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ mapped onto the Sender: field, and P2.Heading.originator mapped
+ onto the Original-Sender: field.
+
+ In other cases the P1.MPDUEnvelope.Originator is already correctly
+ represented.
+
+ Note that in some pathological cases, this mapping is
+ asymmetrical.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 61]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Appendix C -- Mappings Specific to Internet Mail
+
+ The Simple Mail Transfer Protocol [Postel82a] is used in the
+ ARPA-Internet, and in any network following the US DoD standards for
+ internetwork protocols. This appendix is specific to those hosts
+ which use SMTP to exchange mail.
+
+ 1. Mapping between O/R names and SMTP addresses
+
+ The mappings of Chapter 4 are to be used.
+
+ 2. Use of the ARPA Domain System
+
+ Whenever possible, domain-qualified addresses should be be used to
+ specify encoded O/R names. These domain encodings naturally
+ should be independent of any routing information.
+
+ 3. Identification of gateways
+
+ The ARPA-Internet Network Information Center (NIC) will maintain a
+ list of registered X.400 gateways in the ARPA Internet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 62]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Appendix D -- Mappings Specific to Phonenet Mail
+
+ There are currently no mappings specific to Phonenet Mail.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 63]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Appendix E -- Mappings Specific to UUCP Mail
+
+ Gatewaying of UUCP and X.400 is handled by first gatewaying the UUCP
+ address into RFC 822 syntax (using RFC 976) [Horton86a] and then
+ gatewaying the resulting RFC 822 address into X.400. For example, an
+ X.400 address
+
+ Country US
+ Organization Xerox
+ Personal Name John Smith
+
+ might be expressed from UUCP as
+
+ inthop!gate!gatehost.COM!/C=US/O=Xerox/PN=John.Smith/
+
+ (assuming gate is a UUCP-ARPA gateway and gatehost.COM is an
+ ARPA-X.400 gateway) or
+
+ inthop!gate!Xerox.COM!John.Smith
+
+ (assuming that Xerox.COM and /C=US/O=Xerox/ are equivalent.)
+
+ In the other direction, a UUCP address Smith@ATT.COM, integrated into
+ 822, would be handled as any other 822 address. A non-integrated
+ address such as inthop!dest!user might be handled thought a pair of
+ gateways:
+
+ Country US
+ ADMD ATT
+ PRMD ARPA
+ Organization GateOrg
+ RFC-822 inthop!dest!user@gatehost.COM
+
+ or through a single X.400 to UUCP gateway:
+
+ Country US
+ ADMD ATT
+ PRMD UUCP
+ Organization GateOrg
+ UUCP inthop!dest!user
+
+
+
+
+
+
+
+
+
+Kille [Page 64]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Appendix F -- Format of Address Mapping Tables
+
+ There is a need to specify the association between the domain and
+ X.400 namespaces described in 4.2.1. This is defined as a table
+ syntax, but the syntax is defined in a manner which makes it suitable
+ for use with domain nameservers (such as the DARPA Domain nameservers
+ or the UK NRS). The symmetry of the mapping is not clear, so a
+ separate table is specified for each direction. For domain -> X.400:
+
+ domain-syntax "#" dmn-orname "#"
+
+ For example:
+
+ AC.UK#PRMD$DES.ADMD$BT.C$UK#
+ XEROX.COM#O$Xerox.ADMD$ATT.C$US#
+
+ For X.400 -> domain:
+
+ dmn-orname "#" domain-syntax "#"
+
+ EBNF.domain-syntax will be interpreted according to RFC 920.
+ EBNF.dmn-orname will have components ordered as defined in section
+ 4.2.1, and with the most significant component on the RHS.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 65]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+References
+
+ Bonacker85a.
+
+ K.H. Bonacker, U. Pankoke-Babatz, and H. Santo, "EAN - Conformity
+ to X.400 and DFN-Pflichtenheft," GMD (Gesellschaft fur Mathematik
+ und Datenverarbeitung) report, June 1985.
+
+ CCITT84a.
+
+ CCITT SG 5/VII, "Recommendations X.400," Message Handling Systems:
+ System Model - Service Elements, October 1984.
+
+ CCITT84b.
+
+ CCITT SG 5/VII, "Recommendations X.411," Message Handling Systems:
+ Message Transfer Layer, October 1984.
+
+ CCITT84c.
+
+ CCITT SG 5/VII, "Recommendations X.420," Message Handling Systems:
+ Interpersonal Messaging User Agent Layer, October 1984.
+
+ CCITT84d.
+
+ CCITT SG 5/VII, "Recommendations X.409," Message Handling Systems:
+ Presentation Transfer Syntax and Notation, October 1984.
+
+ CEN/CENELEC/85a.
+
+ CEN/CENELEC/Information Technology/Working Group on Private
+ Message Handling Systems, "FUNCTIONAL STANDARD A/3222,"
+ CEN/CLC/IT/WG/PMHS N 17, October 1985.
+
+ Crocker82a.
+
+ D.H. Crocker, "Standard of the Format of ARPA Internet Text
+ Messages," RFC 822, August 1982.
+
+ Horton85a.
+
+ M.R. Horton, "Draft Standard for ARPA/MHS Addressing Gateways,"
+ AT&T Bell Laboratories, October 1985.
+
+
+
+
+
+
+Kille [Page 66]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Horton86a.
+
+ M.R. Horton, "UUCP Mail Interchange Format Standard", RFC 976,
+ February 1986.
+
+ ICL84a.
+
+ ICL, "Comparison of service elements of Grey Book Mail and X.400,"
+ Mailgroup Note 18: Extract from unpublished report for ITSU
+ (Information Technology Standards Unit), July 1984.
+
+ Kille84a.
+
+ S.E. Kille, (editor), JNT Mail Protocol (revision 1.0), Joint
+ Network Team, Rutherford Appleton Laboratory, March 1984.
+
+ Kille84b.
+
+ S.E. Kille, "Gatewaying between RFC 822 and JNT Mail," JNT
+ Mailgroup Note 15, May 1984.
+
+ Kille86a.
+
+ S.E. Kille, "O/R Names in the UK Academic Community," UK Working
+ Document, March 1986.
+
+ Larmouth83a.
+
+ J. Larmouth, "JNT Name Registration Technical Guide," Salford
+ University Computer Centre, April 1983.
+
+ Neufeld85a.
+
+ G. Neufeld, J. Demco, B. Hilpert, and R. Sample, "EAN: an X.400
+ message system," in Second International Symposium on Computer
+ Message Systems, Washington, pp. 1-13, North Holland,
+ September 1985.
+
+ Postel82a.
+
+ J. Postel, "Simple Mail Transfer Protocol," RFC 821, August 1982.
+
+ Postel84a.
+
+ J. Postel and J. Reynolds, "Domain Requirements," RFC 920,
+ October 1984.
+
+
+
+Kille [Page 67]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+ Rose85a.
+
+ M.T. Rose, "Mapping Service Elements between ARPA and MHS," Draft
+ proposal, October 1985.
+
+ Rose85b.
+
+ M.T. Rose and E.A. Stefferud, "Proposed Standard for Message
+ Encapsulation," RFC 934, January 1985.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kille [Page 68]
+
+
+
+RFC 987 June 1986
+Mapping between X.400 and RFC 822
+
+
+Notes:
+
+ <0> UNIX is a trademark of Bell Laboratories.
+
+ <1> The term gateway is used to describe a component performing the
+ protocol mappings between RFC 822 and X.400. This is standard
+ usage amongst mail implementors, but should be noted carefully
+ by transport and network service implementors. (Sometime called
+ a "mail relay".)
+
+ <2> If the remote protocol is JNT Mail, a notification may also be
+ sent by the recipient UA.
+
+ <3> The asymmetry occurs where an ASCII string contains the sequence
+ EBNF.ps-encoded-char. This would be mapped directly to
+ PrintableString, but the reverse mapping would be to the value
+ implied by the sequence.
+
+ <4> It might be suggested that for reasons of elegance,
+ EBNF.ps-delim (left parenthesis) is encoded as
+ EBNF.ps-encoded-char. This is not done, as it it would never be
+ possible to represent a PrintableString containing the character
+ "(" in ASCII. This is because an "(" in ASCII would be mapped
+ to the encoding in PrintableString.
+
+ <5> In practice, a gateway will need to parse various illegal
+ variants on 822.date-time. In cases where 822.date-time cannot
+ be parsed, it is recommended that the derived UTCTime is set to
+ the value at the time of translation.
+
+ <6> P2.ORname is defined as P1.ORName.
+
+ <7> This recommendation may change in the light of CCITT or
+ CEN/CENELEC guidelines on the use of initials.
+
+ <8> It would be possible to use a ForwardedIPMessage for these
+ fields, but the semantics are (arguably) slightly different, and
+ it is probably not worth the effort.
+
+ <9> Although this violates chapter 1, part 4, principles 2 and 3, it
+ is suggested that this is justified by principle 1.
+
+
+
+
+
+
+
+
+Kille [Page 69]
+ \ No newline at end of file