Quelle est la longueur maximale d'une adresse e-mail valide?

988

Quelle est la longueur maximale d'une adresse e-mail valide? Est-il défini par une norme?

volatilevoid
la source
Quel genre d'adresse e-mail? Internet, X.400 ou autre?
Toby Speight
Notez que la limite de longueur que votre application doit imposer pour les adresses e-mail peut ne pas être la même que le maximum théorique (qui est plus long que l'ensemble de ce commentaire ). D'autres réponses discutent de cette question, par exemple: stackoverflow.com/questions/1297272
MGOwen

Réponses:

1207

Une adresse e-mail ne doit pas dépasser 254 caractères.

Cela a été accepté par l'IETF suite à l' erratum soumis . Un diagnostic complet d'une adresse donnée est disponible en ligne . La version originale de RFC 3696 décrivait 320 comme la longueur maximale, mais John Klensin a par la suite accepté une valeur incorrecte, car un chemin est défini comme

Path = "<" [ A-d-l ":" ] Mailbox ">"

Ainsi, l'élément de boîte aux lettres (c'est-à-dire l'adresse e-mail) est entouré de crochets pour former un chemin, d'une longueur maximale de 254 caractères pour limiter la longueur du chemin à 256 caractères ou moins.

La longueur maximale spécifiée dans la RFC 5321 indique:

La longueur totale maximale d'un chemin inverse ou direct est de 256 caractères.

RFC 3696 a été corrigé ici .

Les gens doivent être conscients des errata contre RFC 3696 en particulier. Trois des exemples canoniques sont en fait des adresses invalides.

J'ai rassemblé quelques centaines d'adresses de test, que vous pouvez trouver sur http://www.dominicsayers.com/isemail

Dominic Sayers
la source
7
Qu'en est-il de la nouvelle norme RFC qui autorise Unicode dans les adresses e-mail?
Pacerier
3
Combien de caractères avant le @ et combien après, ou cela n'a-t-il pas d'importance?
systemovich
5
@Lodewijk RFC 3696 n'est pas une norme, il essaie simplement d'aider les gens à interpréter correctement les normes sous-jacentes. Malheureusement, dans sa tentative de clarifier la situation, Klensin a inclus quelques erreurs grossières qui ont été corrigées dans l'errata. Mais personne ne lit les errata, donc la RFC 3693 finit par être très inutile, ironiquement.
Dominic Sayers
3
Je crois qu'avec des adresses e-mail internationalisées, il serait plus correct de définir la limite comme 254 octets , pas des caractères. Mais je ne suis pas sur. La RFC 6531 étend le chemin inverse et direct de la RFC 5321 pour autoriser les caractères UTF-8, mais la RFC 5321 indique spécifiquement que la limite est de "256 octets", y compris les séparateurs (un changement délibéré de la RFC 2821 qui disait "caractères"). Je crois que la limite de 256 octets (moins 2 pour 254) n'est pas remplacée, et la limite de caractères effective est réduite pour les adresses avec des caractères UTF-8 multi-octets.
Andre D
1
@JohnLBevan car les domaines sont utilisés à d'autres fins que les e-mails et sont définis par différents RFC. Je suis sûr que Jon Postel aurait souhaité pouvoir le rendre plus cohérent, mais à l'époque la plupart des domaines étaient très courts et il aurait été exagéré de diviser les adresses d'enveloppe en deux ou plusieurs paquets simplement pour tenir compte du potentiel d'un domaine très long noms.
Dominic Sayers
38

320

Et les segments ressemblent à ceci

{64} @ {255}

64 + 1 + 255 = 320

Vous devriez également lire ceci si vous validez des e-mails

http://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx

Bob
la source
Cependant, selon cette spécification (pour les données sur les prêts étudiants) nchelp.org/elibrary/ESC/CommonRecord-CommonLineDocumentation/… à la page 20: "La longueur du courrier électronique a changé pour refléter les normes ANSI actuelles. L'adresse électronique est une longueur maximale de 128 caractères. " Hmm.
Nathan
8
Voici un bel article dissipant divers mythes sur le courrier électronique, dont "max len == 320". La limite est actuellement de 254.
Carl
26
Où est le bel article?
Bob
1
Cette réponse est correcte. Cet e-mail est valide, mais absolument inutilisable, car 2821 restreint les commandes MAIL / RCPT à 256 avec des <>crochets ...
vp_arth
1
Cela inclut-il les e-mails au format user+inbox@domain?
Aaron Esau
20

utilisateur

La longueur totale maximale d'un nom d'utilisateur est de 64 caractères.

domaine

255 caractères maximum dans la partie domaine (celle après le «@»)

Cependant, il y a une restriction dans la lecture RFC 2821 :

La longueur totale maximale d'un chemin inverse ou direct est de 256 caractères, y compris la ponctuation et les séparateurs d'éléments ». Étant donné que les adresses qui ne rentrent pas dans ces champs ne sont normalement pas utiles, la limite supérieure de la longueur des adresses doit normalement être considérée comme 256, mais un chemin d'accès est défini comme suit: Path = “<” [Adl “:”] Mailbox “> ”Le chemin de transfert contiendra au moins une paire de crochets en plus de la boîte aux lettres, ce qui limite l'adresse e-mail à 254 caractères.

Artem Kovalov
la source
7
Cool, ancien rfc de 1982 ... Il y a rfc5321 pour SMTP
vp_arth
14

Pour aider les recrues confuses comme moi, la réponse à "Quelle est la longueur maximale d'une adresse e-mail valide?" est de 254 caractères .

Si votre application utilise un e-mail, définissez simplement votre champ pour accepter 254 caractères ou moins et vous êtes prêt à partir.

Vous pouvez exécuter un tas de tests sur un e-mail pour voir s'il est valide ici. http://isemail.info/

Le RFC, ou Request for Comments, est un type de publication de l'Internet Engineering Task Force (IETF) qui définit 254 caractères comme limite. Situé ici - https://tools.ietf.org/html/rfc5321#section-4.5.3

Joshua Dance
la source
12

L'autre répond un peu boueux l'eau. Réponse simple: 254 caractères au total dans notre contrôle pour le courrier électronique 256 sont pour l'adresse électronique ENTIÈRE, qui inclut implicitement «<» au début et «>» à la fin. Par conséquent, 254 restent pour notre usage.

Forrest
la source
4

Selon l'article ci-dessous:

http://tools.ietf.org/html/rfc3696 (page 6, section 3)

Il est mentionné que:

"Il existe une limite de longueur pour les adresses e-mail. Cette limite est de 64 caractères (octets) au maximum dans la" partie locale "(avant le" @ ") et de 255 caractères (octets) au maximum dans la partie domaine (après le "@") pour une longueur totale de 320 caractères. Les systèmes qui gèrent les e-mails doivent être prêts à traiter des adresses aussi longues, même si elles sont rarement rencontrées. "

Ainsi, la longueur totale maximale d'une adresse e-mail est de 320 caractères ("partie locale": 64 + "@": 1 + "partie de domaine": 255, ce qui correspond à 320)

Waqar UlHaq
la source
pourriez-vous s'il vous plaît me fournir une expression régulière en javascript pour valider l'identifiant de messagerie de 320 caractères? Merci d'avance.
Kamlesh
1
Cette partie de la norme a été modifiée par errata pour inclure une limite totale de 254 caractères. Voir la réponse acceptée pour les détails et les liens vers les errata.
Matthijs Kooijman