Are two periods allowed in the local-part of an email address

emailrfcsmtp

A third-party email gateway relay is refusing to process a message for an email address we're sending to. The address is in the format of firstname..lastname@recipientdomain.com (note the two periods). Is this allowed by RFC guidelines?

RFC 2822 seems to object to this in section 3.4.1:

The locally interpreted string is either a quoted-string or a
dot-atom. If the string can be represented as a dot-atom (that is, it
contains no characters other than atext characters or "." surrounded
by atext characters), then the dot-atom form SHOULD be used and the
quoted-string form SHOULD NOT be used. Comments and folding white
space SHOULD NOT be used around the "@" in the addr-spec.

Furthermore, in that same section, it references this:

addr-spec = local-part "@" domain

local-part = dot-atom / quoted-string / obs-local-part

I interpret this to mean that the localpart can have content separated by dots but there cannot be two successive dots, and it cannot start or end with a dot. That being said, I'm not familiar with dot-atom syntax so maybe I'm mistaken here.

Can someone please confirm and explain?

Best Answer

Yes you are correct. The section you quoted says that it must be a quoted string OR a dot atom. Since its clearly not a quoted string (the lack of enclosing " makes that clear) it must be a dot-atom...

That leads us to the definition of dot-atom:

Look at this except from RFC 5322 (3.2.3 - page 13) (RFC 2822 contains a similar section) the hint is the 1* in dot-atom-text = 1*atext *("." 1*atext). This effectively means that a dot-atom is made up of strings of one or more "atext" characters separated by dots. A string of 0 atext characters does not count and so you can not have two successive dots (seperated by 0 characters) or a leading or trailing dot.

RFC 5322                Internet Message Format             October 2008


   atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
                       "!" / "#" /        ;  characters not including
                       "$" / "%" /        ;  specials.  Used for atoms.
                       "&" / "'" /
                       "*" / "+" /
                       "-" / "/" /
                       "=" / "?" /
                       "^" / "_" /
                       "`" / "{" /
                       "|" / "}" /
                       "~"

   atom            =   [CFWS] 1*atext [CFWS]

   dot-atom-text   =   1*atext *("." 1*atext)

   dot-atom        =   [CFWS] dot-atom-text [CFWS]

   specials        =   "(" / ")" /        ; Special characters that do
                       "<" / ">" /        ;  not appear in atext
                       "[" / "]" /
                       ":" / ";" /
                       "@" / "\" /
                       "," / "." /
                       DQUOTE
Related Topic