This is a bit more complex than you suggest.
--On Tuesday, March 20, 2007 02:24 +0100 Frank Ellermann
John C Klensin wrote (2006-04-22 on the SMTP list):
Unless others disagree with Ned's (IMO extremely coherent)
analysis, I'll pull the changes out of 2821bis.
Did you forget this in version 01, or did you change your
I've reread the relevant notes.
The change that was inserted and then removed was to the
definition of "Domain" in section 4.1.2. The change permitted
"label.[...]label." as well as "label.". This provision in
2.3.5 covers only the TLD case. Permitting "label.[...]label."
was clearly a mistake on my part.
To refresh everyone's memories (borrowing heavily from Ned's
note) and try to be sure that we get this sufficiently resolved
that we don't have to discuss it again (I intend to make the
text very clear, one way or the other):
I do not believe that there is any remaining question about
trailing periods on multiple-label FQDNs. They are prohibited.
There is also no question about whether anything other than an
FQDN is permitted between SMTP servers on the network: all
domain names MUST be FQDNs and there is no possibility for
The question is how the email address
is to be interpreted. Historically, the interpretation has, I
believe, almost always been that this is an abbreviated name:
not suitable for use on the public Internet, but very common in
localized environments. There are special provisions in
Message Submission (RFC4409) for this sort of thing and, because
it still permits use for submission, 2821 does not prohibit it.
But, if it is interpreted that way, then, if the operators of
Frank's top-level domain concluded that they wanted to accept
mail at the TLD itself,
would be problematic. _Some_ method would be required to
indicate that it is actually a TLD.
So the intent of the original remark in 2.3.5 was to permit
for the one-label case only.
So as to avoid going around the loop again, I propose to take
one of two actions in the text, and request input from the group
as to which one to pick.
(1) I replace the existing text in 2.3.5 by a comment reminding
people that single-label domains MUST NOT appear between SMTP
servers unless they refer to TLDs and that any implementation
intending to use single-label domains as abbreviations must be
sure to have a mechanism for distinguishing between such
abbreviations and FQDNs.
(2) I tune the 2.3.5 text slightly to clearly permit the
trailing period on single-label domains, i.e., for TLDs only.
If I do that, then the syntax for Domain becomes
Domain = ( sub-domain 1*("." sub-domain)) / sub-domain "." )
My instinct and understanding right now is that the first option
reflects the dominant current practice as we understand it and
ought to be the choice here. Anyone who disagrees should please
speak up quickly and clearly.