Règles format adresse email : RFC 5322 simplifié
Une adresse email a deux parties : partie-locale@domaine. Les deux ont une syntaxe stricte (RFC 5322 / RFC 6531 pour Unicode).
Partie-locale (Avant @)
- Autorisés : A–Z, a–z, 0–9,
! # $ % & ' * + - / = ? ^ _ ` { | } ~, et.(point). - Règles point : Ne peut commencer/finir par point ; pas de points consécutifs (
..). - Longueur : ≤ 64 octets.
- Sensible casse : Techniquement oui (selon RFC), mais la plupart fournisseurs traitent comme insensible.
- Chaînes citées :
"very.unusual@.local"@example.com— valide mais rare.
Domaine (Après @)
- Étiquettes séparées par points. Chaque étiquette : 1–63 car, a–z, 0–9, tiret (pas début/fin).
- Longueur totale : ≤ 255 car (points inclus).
- TLD : Doit exister zone racine IANA (.com, .org, .io, .中文网, etc.).
- Internationalisé (IDN) : Encodé Punycode (
xn--) pour DNS ; Unicode en UI.
Exemples valides
user.name@example.comuser+tag@sub.domain.orguser-name@xn--fsq.xn--0zwm56d(IDN)"quoted@local"@example.comuser@[IPv6:2001:db8::1](littéral domaine — rare)
Exemples invalides
user@.com(étiquette vide).user@example.com(point initial)user..name@example.com(double point)user@-example.com(tiret initial)user@example..com(double point)user@example.com.(point final en contexte FQDN)
Validation pratique
- Regex (HTML5) :
^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$ - Mieux : Envoyez email confirmation. Syntaxe ≠ délivrabilité.
Suivez la spec ; testez avec vrai mail. Cas limites (commentaires, chaînes citées, littéraux domaine) existent mais rarement importent en production.
