Regole del Formato Indirizzo Email: RFC 5322 Semplificato
Un indirizzo email ha due parti: local-part@domain. Entrambe hanno sintassi rigorosa (RFC 5322 / RFC 6531 per Unicode).
Local-Part (Prima della @)
- Consentito: A–Z, a–z, 0–9,
! # $ % & ' * + - / = ? ^ _ ` { | } ~, e.(punto). - Regole punto: Non può iniziare/finire con punto; non può avere punti consecutivi (
..). - Lunghezza: ≤ 64 ottetti.
- Maiuscole/minuscole: Tecnicamente sì (per RFC), ma la maggior parte dei provider tratta come case-insensitive.
- Stringhe tra virgolette:
"very.unusual@.local"@example.com— valido ma raro.
Domain (Dopo la @)
- Etichette separate da punti. Ogni etichetta: 1–63 caratteri, a–z, 0–9, trattino (non inizio/fine).
- Lunghezza totale: ≤ 255 caratteri (inclusi punti).
- TLD: Deve esistere nella zona root IANA (.com, .org, .io, .中文网, ecc.).
- Internazionale (IDN): Codificato Punycode (
xn--) per DNS; Unicode nell'interfaccia.
Esempi Valid
user.name@example.comuser+tag@sub.domain.orguser-name@xn--fsq.xn--0zwm56d(IDN)"quoted@local"@example.comuser@[IPv6:2001:db8::1](domain literal — raro)
Esempi Invalidi
user@.com(etichetta vuota).user@example.com(punto iniziale)user..name@example.com(doppio punto)user@-example.com(trattino iniziale)user@example..com(doppio punto)user@example.com.(punto finale in contesto FQDN)
Validazione Pratica
- 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])?)+$ - Meglio: Invia email di conferma. Sintassi ≠ recapitabilità.
Segui le specifiche; testa con posta reale. Casi limite (commenti, stringhe tra virgolette, domain literals) esistono ma raramente contano in produzione.