Un relais de passerelle de courrier électronique tiers refuse de traiter un message pour une adresse électronique que nous envoyons. L'adresse est dans le format de prénom..lastname @ destinatairedomain.com (Notez les deux périodes). Est-ce autorisé par les directives RFC?
RFC 2822 semble s'opposer à ceci à la section 3.4.1:
La chaîne interprétée localement est une chaîne citée ou un dot-atome. Si la chaîne peut être représentée sous forme d'atome de point (c'est-à-dire, il ne contient aucun caractère autre que d'Atext caractères ou "." Entouré d'Atext caractères), le formulaire de point-atom doit être utilisé et le formulaire de chaîne cité ne doit pas être utilisé. être utilisé. Les commentaires et plier de l'espace blanc ne doivent pas être utilisés autour du "@" dans la spécification de l'ADDR.
En outre, dans la même section, il fait référence à ceci:
addr-spec = partie locale "@" domaine
partie locale = dot-atome/cité-cordon/partie locale
J'interprète cela pour dire que le localPart peut avoir un contenu séparé par des points, mais il ne peut pas y avoir deux successif points, et il ne peut pas démarrer ou se terminer par un point. Cela étant dit, je ne connais pas la syntaxe de Dot-Atom, alors je me trompe peut-être ici.
Quelqu'un peut-il s'il vous plaît confirmer et expliquer?
Oui vous avez raison. La section que vous avez citée indique qu'il doit être une chaîne citée OR un atome de point. Depuis clairement pas une chaîne citée (le manque de "
1*
rend cela clair) Ça doit être un dot-atome ...
Cela nous conduit à la définition du dot-atome:
Regardez cela à l'exception de RFC 5322 (3.2.3 - page 13) (RFC 2822 contient une section similaire) L'indice est le 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
dans dot-atom-text = 1*atext *("." 1*atext)
. Cela signifie effectivement qu'un dot-atome est constitué de chaînes d'un ou plusieurs caractères "Atext" séparés par des points. Une chaîne de 0 Etext caractères ne compte pas et vous ne pouvez donc pas avoir deux points successifs (séparés de 0 caractères) ou un point de premier plan ou de fin.
__extrait de code__
Votre interprétation est correcte. La partie locale peut contenir des groupes d'Atext séparés par des périodes, mais plusieurs périodes consécutives ne sont pas autorisées.
Selon section 3.4.1 de RFC 5322 que vous avez cité dans votre question, un point atom " ne contient aucun caractère autre que Atext caractères ou". "Entouré d'Atext Caractères ". Par conséquent, par définition, un point atom peut ne pas contenir deux ou plusieurs périodes consécutives.
Pour référence, voici la définition de l'Atext, extraite de section 3.2.3 de RFC 5322 :
atext = ALPHA / DIGIT / ; Any character except controls,
"!" / "#" / ; SP, and specials.
"$" / "%" / ; Used for atoms
"&" / "'" /
"*" / "+" /
"-" / "/" /
"=" / "?" /
"^" / "_" /
"`" / "{" /
"|" / "}" /
"~"
Bien sûr, pas deux MTA appliquent des CMR de la même manière, vous trouverez donc certaines MTA accepteront des doubles périodes où d'autres ne le feront pas. Par exemple, l'échange refusera de livrer pour des adresses contenant des doubles périodes, mais un test rapide d'une sélection aléatoire de 3 serveurs de messagerie que j'utilise toutes les deux périodes de support.
Si strictement conforme à la RFC 5322, l'organisation hébergeant le relais que vous rencontrez des problèmes est bien dans leurs droits de refuser des adresses contenant des doubles périodes.