RFC 1405
Mapping between X.400(1984/1988) and Mail-11 (DECnet mail)
RFC 1405 π: Mapping between X.400(1984/1988) and Mail-11 (DECnet mail)
Okay bestie, let's start with the title block π. This is RFC 1405, written by C. Allocchio of I.N.F.N. - Italy, dated January 1993. It's an Experimental Protocol, and the title block doesn't list anything it obsoletes or updates. The whole thing is giving Network Working Group energy π§.
Status of This Memo β¨
So this memo defines an Experimental Protocol for the Internet community π¦. They want feedback and suggestions for improvement, so speak up! For the standardization state and status of this protocol, check the current edition of the "IAB Official Protocol Standards" π. Distribution of this memo is unlimited π.
Abstract πΈ
This document describes a set of mappings that let systems running the CCITT X.400 ( 1984 / 1988 ) Recommendations on Message Handling Systems talk to systems running the Mail-11 (also known as DECnet mail) protocol π. These specs are only valid inside the DECnet Phase IV addressing and routing scheme.
We also look at the whole X.400 / RFC822 / Mail-11 situation π₯, since things get messy when a message passes through multiple gateway translations.
The main focus is the mapping between O/R addresses and DECnet from/to addresses, and the other mappings are based on RFC 1327 and whatever updates come after it π«Ά.
This is a combined effort of COSINE S2.2, the RARE MSG Working Group, and the IETF X.400 Ops Working Group π.
Chapter 1 - Introduction π
1.1. X.400
When this document says "X.400", it means the CCITT 1984 and 1988 X.400 Series Recommendations for the Message Oriented Text Interchange Service (MOTIS) π . This document only covers the Inter Personal Messaging System (IPMS), so that's the only piece we're dealing with π.
1.2. Mail-11
Mail-11 is also called DECnet mail, and people often (incorrectly) call it VMSmail π. It's the proprietary protocol from Digital Equipment Corporation (DEC) for real-time text messaging between systems running the DECnet Phase IV networking protocols β.
1.3. RFC822
RFC822 was defined as a standard for personal messaging inside the DARPA Internet, and now it's spread across tons of message transfer protocols like SMTP, UUCP, BITNET, JNT Grey Book, and CSnet π. Its mapping with X.400 is fully covered in RFC1327. In this document, we'll also look at how it relates to Mail-11 π§.
1.4. The user community
The X.400 messaging community keeps growing all over the world π. Still, there are a bunch of big communities on Mail-11-based messaging systems that want to talk easily with X.400-based Message Handling Systems π₯Ή. Among these big DECnet networks are the High Energy Physics network (HEPnet) and the Space Physics Analysis Network (SPAN) β¨.
These DECnet communities might move to DECnet Phase V (DECnet-OSI) protocols in the future, which would turn their messaging systems into OSI specs, merging them into the X.400 MHS π¦. But the transition could take forever, and there will probably always be some DECnet Phase IV communities hanging around π.
That's why this document describes a set of mapping rules for converting between Mail-11 and X.400 π.
It also covers Mail-11 systems that use the "foreign mail protocol," which lets Mail-11 interface with other mail systems, including RFC822-based ones π.
Chapter 2 - Message Elements π
2.1. Service Elements
Mail-11 only has a really small set of elements for building an Inter Personal Message (IPM), but X.400 supports a huge pile of service elements π. If a message gets relayed between two X.400 MHS through a DECnet network, you could basically lose all your info π. To keep that from happening, most X.400 service elements get mapped into Mail-11 text body parts π«Ά.
Then there's the case where a message starts on an RFC822 network and gets relayed through Mail-11 to an X.400 MHS. For that, we use the rules in RFC1327 and its updates to map X.400 service elements into Mail-11 text body parts, which gives you an RFC822-like header π.
2.2. Mail-11 service elements
All the Mail-11 envelope (P1) and header (P2) service elements are supported when converting to X.400 π₯. Just know that Mail-11 P1 is made up only of P1.From and P1.To, and every other Mail-11 element belongs to P2 πΈ:
P1.Frommaps toP1.OriginatorP1.Tomaps toP1.Primary RecipientP2.Frommaps toP2.OriginatorP2.Tomaps toP2.Primary RecipientCcmaps toP2.Copy RecipientDatemaps toSubmission Time StampSubjmaps toSubject
Any RFC822-like text header inside a Mail-11 body part gets interpreted the way RFC1327 and its updates say β¨.
2.3. X.400 service elements
These X.400 service elements are supported directly in the Mail-11 conversion π§:
P1.Originatormaps toP1.'From'P1.Primary Recipientsmaps toP1.'To'P2.Originatormaps toP2.'From'P2.Primary Recipientsmaps toP2.'To'Copy Recipientsmaps to'Cc'Submission Time Stampmaps to'date'Subjectmaps to'Subj'
This X.400 service element is only partly supported in the Mail-11 conversion π:
- Blind Copy Recipient: to keep things private, when a message has a BCC address, these steps happen π€«:
- a new message gets created, holding the body parts;
- a new envelope gets added to the new message, holding only the originator and BCC recipient addresses;
- a note gets added to the message to tell the BCC recipient that it was a BCC;
- the new message is delivered separately;
- a note gets added to the message delivered to the TO and CC recipients, letting them know there were some BCC recipients too.
Any other X.400 service element support follows RFC1327, including the element being mapped into the RFC822-like header inside the Mail-11 body part π.
Chapter 3 - Basic Mappings π
The basic mappings in RFC1327 and its updates should be fully used π.
Chapter 4 - Addressing π¦
4.1. Mail-11 addressing
Mail-11 addressing can go from super simple to very complicated if other Mail-11 to "something-else" gateways are involved π. Either way, a Mail-11 address is an ASCII string made up of different elements π.
4.2. X.400 addressing
An X.400 O/R address is a collection of attributes, and it can still be shown as an IA5 textual representation, as defined in chapter 4 of RFC1327 β¨.
4.3. Mail-11 address components
Let's break down the parts of a Mail-11 address π§©. Any Mail-11 address has 3 parts:
[[route]::] [[node]::] local-part
route and node are optional, and only local-part is compulsory π.
Here's the strict definition of these elements π€:
node = *(ALPHA/DIGIT) / *DIGIT / *DIGIT "." *DIGIT
route = *(node "::")
local-part = username / nickname / for-protocol
username = *(ALPHA/DIGIT)
nickname = <printablestring - <" " and HTAB>>
for-protocol = (f-pref f-sep <">f-address<">)
f-pref = *(ALPHA/DIGIT)
f-sep = "%" / "::"
f-address = printablestring / RFC822-address / X400-text-address
X400-text-address = <textual representation of an X.400 O/R addr>
Also, in x-text-address, the ";" notation and the "/" notation are both equivalent and allowed (see examples in different sect.) π¦. Here are some examples π :
route node local-part
-----------------------------------------------------------
USER47
MYNODE::BETTY
BOSTON::CLUS02::GOOFY1::MARY34
IN%"M.P.Tracy@Dicdum.cc.edu"
UCLA13::MVAX93::MRGATE::"MBOX1::MBX34::MYC3::BOB"
MIAMI2::George.Rosenthal
CCUBVX::VS3100::Jnet%"IAB3425@IBAX23L"
MRGATE::"C=xx::A=bbb::P=ppp::S=Joe"
MAINVX::IN%"path1!path2!user%dom"
GWX400::gw%"C=xx;ADMD=aaa;PRMD=ppp;S=Lee;"
GX409A::x400%"/C=xx/A=aaa/P=ppp/S=Lee"
smtp%"postmast@nodeb.bitnet"
MICKEY::PRFGAT::profs%"NANCY@IBMB"
edu%"HU427BD%CSUNIB@abc.acme.edu"
Chapter 5 - Mapping π«§
5.1. Mapping scheme
The DECnet address field is kind of a "flat land," with some required routes to reach hidden areas πΊοΈ. So a truly hierarchical mapping scheme with mapping tables, like the one used for RFC822, isn't the right fit π . Instead, the mapping is defined by a fixed set of rules that use DDAs support π«.
Another big deal is that lots of separate DECnet networks share the same DECnet address space π. A common X.400 and/or RFC822 mail system can act as the glue connecting these isolated Mail-11 islands ποΈ. So to uniquely identify each DECnet network, we also introduce the concept of a "DECnet network name," which we'll just call 'net' from here on π·οΈ. A 'net' is a unique ASCII string that identifies the DECnet network we're connected to. To be more specific, the 'net' element identifies the DECnet community being served, so it can differ from the actual official network name π. Aliases are allowed for the
net = 'HEPnet' the High Energy Physics DECnet network
net = 'SPAN' the Space Physics Analysis Network
net = 'Enet' the Digital Equipment Corporate Network
Labelling each DECnet network with its name also comes from needing an 'intelligent' gateway π§ . That's a gateway that knows it can connect directly to the specified DECnet network, even if the O/R address gives a path through a different gateway π£οΈ. There's more detail on this in 5.3 and 5.5 π.
There also needs to be a registry of 'net' attributes and their matching gateways, so the names stay unique π. A simple table pairs 'net' with the gateway address, using syntax similar to the 'gate' table in RFC1327 β¨. For example:
HEPnet#OU$Cosine-gw.O$@.PRMD$infn.ADMD$garr.C$IT#
SPAN#OU$Cosine-gw.O$@.PRMD$infn.ADMD$garr.C$IT#
SPAN#O$ESRIN1.PRMD$esa.ADMD$Master400.C$it#
Ambiguous left entries are allowed π€·ββοΈ. Gateway implementations can just pick one of them, or try them all in cyclic order to get better performance π.
In order to keep the mapping rules very simple, avoiding the need to analyse Mail-11 addresses to distinguish the 'route', 'node' and needed to cover the mapping problem. π₯Ί
5.2. Mail-11 --> X.400 π
okay so this is the Mail-11 to X.400 direction, and it's giving tidy π. We define these two Domain Defined Attributes to carry a Mail-11 address:
DD.Dnet
DD.Mail-11
So the mapping rule
route::node::localpart
turns into
C=xx; ADMD=yyy; PRMD=zzz; O=ooo; OU=uuu; DD.Dnet=net;
DD.Mail-11=route::node::localpart;
where:
xxis the country code of the gateway doing the conversionyyyis the Admd of the gateway doing the conversionzzzis the Prmd of the gateway doing the conversionooois the Organisation of the gateway doing the conversionuuuis the Org. Unit(s) of the gateway doing the conversionnetis the name of the DECnet network (e.g., HEPnet, SPAN,...) πΈ
zzz, ooo and uuu get used or dropped as needed, just so the gateway can be uniquely identified inside the X.400 MHS. β¨
There are also some defaults that save the day π«Ά:
- If
nodeis missing and we're mapping the Mail-11 originator (From), thennodedefaults to the DECnet node name of the gateway (gwnode). - If
nodeis missing and we're mapping the Mail-11 recipient (To, Cc), thennodedefaults to the DECnet node name of theFromaddress. - If
DD.Dnet=netis missing, it defaults to a value the gateway sets locally. If the gateway is connected to exactly one DECnet network,netis that network's name. If it's connected to more than one, the gateway picks a "first choice" DECnet network andnetdefaults to that. π
If local-part contains an x400-text-address, go check section 6.4.3. If local-part contains an RFC822-address, go check section 6.4.4. π¦
5.2.1. Examples π
Let's say:
- the DECnet network name (
net) isHEP; - the DECnet node name of the gateway (
gwnode) isX4TDEC; - the Country Code of the gateway is
ITand its ADMD isgarr(and these two fields are enough to uniquely identify the gateway within the X.400 MHS).
Then:
USER47
C=it; ADMD=garr; DD.Dnet=HEP; DD.Mail-11=X4TDEC::USER47;
MYNODE::BETTY
C=it; ADMD=garr; DD.Dnet=HEP; DD.Mail-11=MYNODE::BETTY;
BOSTON::CLUS02::GOOFY1::MARY34
C=it; ADMD=garr; DD.Dnet=HEP; DD.Mail-11=BOSTON::GOOFY1::MARY34;
UCLA13::MVAX93::MRGATE::"MBOX1::MBX34:MYC3::BOB"
C=it; ADMD=garr; DD.Dnet=HEP;
DD.Mail-11=UCLA13::MVAX93::MRGATE::(q)MBOX1::MBX34::MYC3::BOB(q)
MIAMI2::George.Rosenthal
C=it; ADMD=garr; DD.Dnet=HEP; DD.Mail-11=MIAMI2::George.Rosenthal;
MRGATE::"C=xx::A=bbb::P=ppp::S=Joe"
C=it; ADMD=garr; DD.Dnet=HEP;
DD.Mail-11=X4TDEC::MRGATE::(q)C=xx::A=bbb::P=ppp::S=Joe(q)
MAINVX::In%"path1!path2!user%dom"
C=it; ADMD=garr; DD.Dnet=HEP;
DD.Mail-11=MAINVX::In(p)(q)path1(b)path2(b)user(p)dom(q)
5.3. X.400 encoding of Mail-11 --> Mail-11 π
okay so to keep the path reversible when a message crosses more than one Mail-11/X.400 gateway, we have to split this into two cases π§
DD.Dnet=netis known to the gateway as one of the DECnet networks it's connected to. In this case the mapping is trivial:
C=xx; ADMD=yyy; PRMD=zzz; O=ooo; OU=uuu; DD.Dnet=net;
DD.Mail-11=route::node::localpart;
(see sect. 5.2 for the explanation of xx, yyy, zzz, ooo, uuu, net)
maps into
route::node::localpart
DD.Dnet=netis NOT known to the gateway as one of the DECnet networks it's connected to. In this case the mapping rule described in section 5.4 applies:
C=xx; ADMD=yyy; PRMD=www; DD.Dnet=net;
DD.Mail-11=route::node::localpart;
maps into
gwnode::gw%"C=xx;ADMD=yyy;PRMD=www;DD.Dnet=net;
DD.Mail-11=route::node::localpart;"
5.3.1. Examples π
Let's say:
- the DECnet network name (
net) isHEP; - the DECnet node name of the gateway (
gwnode) isX4TDEC; - the Country Code of the gateway is
ITand its ADMD isgarr; - (and these two fields are enough to uniquely identify the gateway within the X.400 MHS).
Then:
C=it; ADMD=garr; DD.Dnet=HEP;
DD.Mail-11=X4TDEC::MRGATE::(q)C=ab::A=dsa::P=qwty::OU=mie::S=Cly(q)
MRGATE::"C=ab::A=dsa::P=qwty::OU=mie::S=Cly"
C=it; ADMD=garr; DD.Dnet=EASYNET; DD.Mail-11=ROM01::CARLO;
X4TDEC::gw%"C=it;ADMD=garr;DD.Dnet=EASYNET;
DD.Mail-11=ROM01::CARLO;"
(in the example above, 'EASYNET' is supposed to be not connected to our gateway on the X4TDEC DECnet node π)
5.4. X.400 --> Mail-11 π
so mapping an X.400 O/R address into Mail-11 works like this: you encode its attributes into the X400-text-address, as defined in chapter 4 of RFC1327, and include that as the 'f-address'. Then you add an 'f-pref' and the DECnet node name of the gateway. β¨
So
x400-text-address
gets encoded like
gwnode::gw%"x400-text-address"
with spaces between the attributes being optional. π«Ά
5.4.1. Example πΈ
Let's say:
- the DECnet node name of the gateway (
gwnode) isX4TDEC;
So
C=gb; ADMD=Gold 400; PRMD=AC.UK; O=ucl; OU=cs; G=Jim; S=Clay;
will be encoded like
X4TDEC::gw%"/C=gb/A=Gold 400/P=AC.UK/O=ucl/OU=cs/G=Jim/S=Clay"
or, with the ; notation instead,
X4TDEC::gw%"C=gb;ADMD=Gold 400;PRMD=AC.UK;O=ucl;OU=cs;G=Jim;S=Clay;"
5.5. Mail-11 encoding of X.400 --> X.400 π¦
It can happen that Mail-11 is used to relay messages between X.400 systems. That means multiple X.400/Mail-11 gateway crossings, and we'll run into Mail-11 addresses carrying embedded X.400 information. To keep the path reversible we have to split this into two cases π
- The embedded X.400 address belongs to a domain whose naming and routing rules are known to the global X.400 MHS. In this case the mapping is trivial:
route::gwnode::gw%"x400-text-address"
maps into
x400-text-address
'route' and 'gwnode' are mapped into X.400 Trace service elements.
- The encoded X.400 domain does not belong to the global X.400 name space. In this case the mapping rule described in section 5.2 applies:
route::gwnode::gw%"x400-text-address"
maps into
C=xx; ADMD=yyy; DD.Dnet=net;
DD.Mail-11=route::gwnode::gw(p)(q)x400-text-address(q);
β οΈ This last case is deprecated. It must be regarded as a possible temporary solution only, while waiting for this domain to be included in the global X.400 MHS. π
5.5.1. Examples π
Let's say:
- the DECnet network name (
net) isHEP; - the DECnet node name of the gateway (
gwnode) isX4TDEC; - the Country Code of the gateway is
ITand its ADMD isgarr; - (and these two fields are enough to uniquely identify the gateway within the X.400 MHS).
Then:
X4TDEC::gw%"C=fr;ADMD=atlas;PRMD=ifip;O=poly;S=Moreau;"
C=fr; ADMD=atlas; PRMD=ifip; O=poly; S=Moreau;
X4TDEC::gw%"C=zz;ADMD= ;PRMD=Botwa;O=Miner;S=Chiuaw;"
C=it; ADMD=garr; DD.Dnet=HEP;
DD.Mail-11=X4TDEC::gw(p)(q)C=zz;ADMD= ;
PRMD=Botwa;O=Miner;S=Chiuaw;(q)
(in the example above, C=zz is unknown to the global X.400 MHS π)
Chapter 6 - Complex mapping π₯
6.1. The protocol triangle πΊ
The bilateral mappings in chapter 5 have to be extended so they also cover the case where RFC822 addressing is involved too, which gives us this triangle situation π
x.400
/ \
/ \
/ \
Mail-11----RFC822
The X.400 - RFC822 side is fully covered by RFC1327, and the earlier chapters of this document cover the Mail-11 - X.400 side. π
Right now a bunch of implementations also do the mapping along the Mail-11 - RFC822 side. The most important of these de facto standards are discussed in Appendix A, together with a Mail-11 - RFC822 mapping scheme that covers this side of the triangle. β¨
6.2. RFC822 mapped in Mail-11 π¦
The 'RFC822-address' is usually included in 'local-part' like this:
route::gwnode::gw%"rfc822-address"
for example:
NVXA23::SMTPGW::in%"M.T.Rose@CS.UCLA.edu"
6.3. Mail-11 mapped in RFC822 π§
There are different styles for mapping a Mail-11 address into RFC822. Here's a quick summary π
- A Mail-11 address encoded in the "Left Hand Side" (LHS) of an RFC822 address, using "%" syntax or "::" syntax:
route::node::localpart
maps to
localpart%node%route@gw-domains
or
"route::node::localpart"@gw-domains
where 'gw-domains' uniquely identify the Mail-11 / RFC822 gateway.
- A Mail-11 address maps partly to the LHS and partly to the 'domain' part of an RFC822 address:
node::localpart
maps to
localpart@node.gw-domains
- A Mail-11 address is completely hidden by a mapping table / directory, and the resulting RFC822 address contains no trace at all of the original address.
As you may have noticed, in every one of these cases the resulting RFC822 address can't be told apart from a genuine RFC822 address. π
6.4. Multiple conversions πΈ
Let's look briefly at the situations involving multiple conversions, where one protocol relays between the other two. This summary suggests some possible enhanced solutions that avoid heavy and unduly complicated mappings, but the 'step by step' approach, which treats each conversion blindly as disjoint from the other as described in the previous sections, can always be used. π
6.4.1. X.400 --> RFC822 --> Mail-11 π
We apply the RFC1327 rules to the first step, which gives us an RFC822 address. That can then be mapped into Mail-11 using the 'f-address' field, as described in section 6.2.
An example:
C=gb; ADMD=Gold 400; PRMD=AC.UK; O=UCL; OU=cs; G=Jim; S=Clay;
maps, according to RFC1327, to
Jim.Clay@cs.UCL.AC.UK
and finally becomes
SMTPGW::In%"Jim.Clay@cs.UCL.AC.UK"
where 'SMTPGW' is the DECnet node name of the machine running the RFC822 to Mail-11 gateway. π«Ά
6.4.2. Mail-11 --> RFC822 --> X.400 π¦
Some of the possible mappings described in section 6.3 apply to the Mail-11 address, which hides its origin completely. The RFC1327 rules apply on the last step. π§
An example:
RELAY::MYNODE::BETTY
could map into RFC822 as
BETTY%MYNODE@RELAY.dnet.gw1.it
and, according to RFC1327,
C=it; A=garr; P=dom1; O=gw1; OU=RELAY; S=BETTY(p)MYNODE;
where 'dnet.gw1.it' is the domain of the machine running the Mail-11 to RFC822 gateway. π
6.4.3. X.400 --> Mail-11 --> RFC822 π
The X.400 address is stored in the Mail-11 'f-address' element, as described in sections 5.3 and 5.4. Then, if the Mail-11 to RFC822 gateway can understand that there's an 'x400-text-address' in the Mail-11 address, it applies RFC1327 to it and encodes header. Otherwise it applies the rules described in 6.3. π
An example:
C=gb; ADMD=Gold 400; PRMD=AC.UK; O=UCL; OU=cs; G=Jim; S=Clay;
will be encoded like
X4TDEC::gw%"/C=gb/A=Gold 400/P=AC.UK/O=UCL/OU=cs/G=Jim/S=Clay"
If the Mail-11 to RFC822 gateway recognises the x400-text-address, then, according to RFC1327, the address becomes
Jim.Clay@cs.UCL.AC.UK
and the following RFC822 header line is added
Received: from X4TDEC with DECnet (Mail-11) on xx-xxx-xxxx.
Otherwise, one of the dumb rules could produce
gw%"/C=gb/A=Gold 400/P=AC.UK/O=UCL/OU=cs/G=Jim/S=Clay"@X4TDEC.doms
6.4.4. RFC822 --> Mail-11 --> X.400 π¦
okay so first the RFC822 address gets encoded into a Mail-11 f-address element, like we covered in sect. 6.2 π
. Then, if the Mail-11 to X.400 gateway can spot an RFC822-address inside that Mail-11 address, it applies RFC1327 to it, encodes the route, and runs the rules from 5.2 and 5.5. it's giving multi-step glow-up β¨
an example:
Jim.Clay@cs.UCL.AC.UK
gets encoded like this π
SMTPGW::In%"Jim.Clay@cs.UCL.AC.UK"
if the gateway recognises the RFC822-address, then according to RFC1327 the address becomes:
C=gb; ADMD=Gold 400; PRMD=AC.UK; O=UCL; OU=cs; G=Jim; S=Clay;
and a trace record gets added into the X.400 P1 data, saying a node named SMTPGW was crossed π§
otherwise the dumb rule produces:
C=it; ADMD=garr; DD.Dnet=HEP;
DD.Mail-11=SMTPGW::In(p)(q)Jim.Clay(a)cs.UCL.AC.UK(q)
6.4.5. RFC822 --> X.400 --> Mail-11 π
bestie, we apply RFC1327 to the first conversion so we get an X.400 address πΈ. Then the rules in sections 5.3 and 5.4 store that X.400 address as x400-text-address inside the Mail-11 address. Literally so clean.
an example:
Jim.Clay@cs.UCL.AC.UK
maps to this via RFC1327:
C=gb; ADMD=Gold 400; PRMD=AC.UK; O=UCL; OU=cs; G=Jim; S=Clay;
and then it finally becomes:
SMTPGW::gw%"/C=gb/A=Gold 400/P=AC.UK/O=UCL/OU=cs/G=Jim/S=Clay"
where SMTPGW is the DECnet node name of the machine running the X.400 to Mail-11 gateway π₯οΈπ
6.4.6. Mail-11 --> X.400 --> RFC822 π
so the Mail-11 address gets encoded as sections 5.2 and 5.5 spell out, and then RFC1327 turns it into RFC822 π¦ ngl this is a full round trip.
an example:
RELAY::MYNODE::BETTY
maps into X.400 as:
C=it; ADMD=garr; DD.Dnet=HEP; DD.Mail-11=RELAY::MYNODE::BETTY;
and then, according to RFC1327:
"/C=it/A=garr/DD.Dnet=HEP/DD.Mail-11=RELAY::MYNODE::BETTY"@gw2.it
where gw2.it is the domain of the machine running the RFC1327 gateway π
Appendix A Mail-11 - RFC822 mapping π§
A.1 Introduction π
the Mail-11 to RFC822 gateway was tackled by tons of software developers, all doing their own thing π. It got built into loads of mail products running on both VAX/VMS and UNIX systems. Since there was no single standard way to do the mapping, the implementations turned into a bunch of different variant methods for turning a Mail-11 address into an RFC822 one. Some of these products got super widespread, so they started forming a bunch of de facto mapping methods, iykyk.
this little appendix tries to standardise the mapping problem, aiming to stay compatible with the software people already have installed π«Ά. We also need to remember that, in some cases, only simple Mail-11 addresses could be mapped into RFC822, and complex ones gave all sorts of pretty strange results π.
the other direction was way more straightforward, though. Mapping an RFC822 address into Mail-11 gave a common definition, which uses the "Mail-11 foreign mail protocol" to design an RFC822 address:
[[node::][node::]...]prot%"rfc-822-address"
or
[node::][node::]...]::"rfc-822-address"
A.2 De facto implementations πΈ
a considerable number of de facto Mail-11/RFC822 gateway implementations exist out there. As we said in the introduction, mapping RFC822 addresses into Mail-11 is done with the foreign mail protocol syntax, so it's unique π₯.
Mail-11 addresses, on the other hand, get encoded into RFC822 syntax in a few different ways. The most common ones are these:
a) "node::user"@gateway-address
b) user%node@gateway-address
c) user@node.decnet.domains
d) user%node.dnet@gateway-address
let's take a quick look at each of these choices π
- a - this form just wraps the original Mail-11 address, as a quoted Left Hand Side string, inside the RFC822 address of the Mail-11/RFC822 gateway. It's fully conformant with RFC822 syntax, and the Mail-11 address is left untouched, so no encoding rules need to be applied to it. Clean girl energy π
- b - ngl this one is a little sus π¬. It has nothing in it that says the address is a Mail-11 one, so the encoding can't be told apart from a similar encoding of RSCS (BITnet) addresses used by some IBM VM Mailer systems. It should thus be deprecated.
- c - here a sort of 'reserved word' (decnet) sitting inside the address itself tells you there's a Mail-11 original address in front of it. Decoding is possible, since you drop 'domains' and pull out the 'user' and 'node' parts. However, complex Mail-11 addresses cannot be mapped properly in this syntax, and there's no specific rule for adding the 'domains' part of the address π.
- d - again, there's a 'reserved word' (dnet) here that makes it possible to identify the original Mail-11 address. 'gateway-address' points to the Mail-11/RFC822 gateway, and the 'node' and 'user' info can be easily pulled from the address. However, complex Mail-11 addresses cannot be embedded easily into this syntax π.
A.3 Recommended mappings π¦
from the examples we just saw, we can work out a canonical form for representing the mapping between Mail-11 and RFC822 β¨.
A3.1 RFC822 mapped in Mail-11 π
mapping an RFC822 address into Mail-11 is straightforward, using the "Mail-11 foreign mail protocol" syntax. The two possible variants are:
[[node::][node::]...]prot%"rfc-822-address"
or
[node::][node::]...]::"rfc-822-address"
A3.2 Mail-11 mapped in RFC822 π
RFC822 has a canonical form for representing non-RFC822 addresses: you put the foreign address in the local part (Left Hand Side, LHS) in a form as similar as possible to its original syntax. So the suggested mapping is:
"Mail-11-address"@gateway-address
this format also makes sure the return path works through the appropriate gateway π.
A.4 Conclusions π
a standard way of mapping Mail-11 addresses into RFC822 and back is feasible π. A suggestion is therefore made to unify all existing and future implementations. It's worth noting, though, that there is no way to specify in these mappings the name of the decnet community that owns the encoded address, the way it was done for X.400. So the 'intelligent' gateway in this case is impossible π.
Acknowledgements π«Ά
I wish to thank all the people who read the first draft and contributed a lot of useful suggestions to the revision of this document π, in particular RARE WG1, the IETF X.400 ops group members, and S. Hardcastle-Kille.
References π
- [1] CCITT, "CCITT Recommendations X.400-X.430", Message Handling Systems: Red Book, October 1984.
- [2] CCITT, "CCITT Recommendations X.400-X.420", Message Handling Systems: Blue Book, November 1988.
- [3] Crocker, D., "Standard of the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDel, August 1982.
- [4] Kille, S., "Mapping Between X.400 and RFC 822", UK Academic Community Report (MG.19) / RFC 987, June 1986.
- [5] Kille, S., "Mapping Between X.400(1988) / ISO 10021 and RFC 822", RFC 1327, March 1992.
- [6] Digital Equipment Corp.;, "VAX/VMS Mail Utility".
- [7] Joiner Associates Inc., "Jnet User's Manual".
- [8] PMDF User's Guide.
Security Considerations π
Security issues are not discussed in this memo. π (no drama, just vibes)
Author's Address ποΈ
Claudio Allocchio
Cosine S2.2
Sincrotrone Trieste
Area di Ricerca
Padriciano 99
I 34012 Trieste
Italy
Phone: +39 40 3758523
Fax: +39 40 226338
EMail: Claudio.Allocchio@elettra.Trieste.it
C=it; A=garr; P=Trieste; O=Elettra; S=Allocchio; G=Claudio;
that's a wrap on RFC 1405, bestie πβ¨π«Ά
π¦ where this page comes from
- ietf: rfc1405 1993-01
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms