Lunghezza indirizzo e-mail valida

1948865 s

Oggi ho dovuto scavare un po 'per trovarlo, ma sapevi qual è la lunghezza valida di un indirizzo email? In realtà è suddiviso in parti ... Nome@Dominio.com. Questo è secondo RFC2822.

  1. Il nome può contenere da 1 a 64 caratteri.
  2. Il dominio può contenere da 1 a 255 caratteri.

Wow ... significa che questo potrebbe essere un indirizzo email valido:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctusca Pellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Prova a metterlo su un biglietto da visita! Ironia della sorte, la maggior parte dei campi dell'indirizzo e-mail è limitata a 100 caratteri sul Web. In realtà non è valido. Se desideri convalidare un indirizzo email per una corretta costruzione utilizzando PHP, ho trovato questo frammento in rete:

http://derrick.pallas.us/email-validator/ # Licenza: Academic Free License 2.1 # Versione: 2006-12-01a if (! ereg (''. '^'. '[-! # $% & \ '* + / 0-9 =? AZ ^ _a-z {|} ~]'. '(\\.? [-! # $% & \' * + / 0-9 =? AZ ^ _a-z { |} ~]) * '.' @ '.' [a-zA-Z] (-? [a-zA-Z0-9]) * '.' (\\. [a-zA-Z] (- ? [a-zA-Z0-9]) *) + '.' $ ', $ email)) restituisce false; lista ($ local, $ dominio) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) restituisce false; if ($ check &&! gethostbynamel ($ domain)) restituisce false; restituire vero; # FINE ###### }

Commenti

  1. 1
  2. 2

    Sì, ho notato anche la mancanza di conformità di altre soluzioni con l'RFC. Ho notato, tuttavia, che anche questa regex è atipica e non lo standard. Ricordo di aver letto l'espressione regolare effettiva (consentendo <,>, , ecc.) È troppo intenso per la maggior parte dei processi.

    Tuttavia, è scritto in modo succinto e sicuramente una soluzione che dovrebbe essere accettabile per qualsiasi applicazione di posta elettronica aziendale.

    Grazie ancora!
    Doug

  3. 3

    Sfortunatamente, ho collegato quella pagina alla RFC sbagliata (2821 invece di 2822) ma è stata corretta. Le parentesi angolari non possono far parte delle parti locali o di dominio di un indirizzo email; rappresentano piuttosto dei punti di tokenizzazione, ovvero possono essere usati per circondare un indirizzo email (ad esempio nel tuo lettore di posta) proprio perché non possono far parte dell'indirizzo.

    Una cosa che la mia funzione non fa è preoccuparsi della forma citata degli indirizzi e-mail - dove la parte locale appare tra virgolette doppie - perché RFC2821 dice essenzialmente che nessuno dovrebbe mai scrivere il proprio indirizzo in quel modo. (Credo che il modulo sia per la compatibilità con le versioni precedenti e ora sia una cattiva pratica.)

  4. 4
  5. 5

    C'è una restrizione in RFC 2821 sulla lunghezza di un indirizzo nei comandi MAIL e RCPT di 256 caratteri. Il limite superiore per la lunghezza degli indirizzi dovrebbe normalmente essere considerato 256.

    — Fonte: RFC 3696 Errata

    Inoltre, poiché la RFC 2181 dice "Un nome di dominio completo è limitato a 255 ottetti", viene ripetutamente erroneamente interpretato dalle persone (inclusi gli autori di altre RFC) nel senso che i nomi di dominio possono essere lunghi 255 caratteri. Ma RFC2181 parla di rappresentazione a livello di protocollo DNS sul cavo, non di caratteri stampabili.

    La lunghezza massima di un nome di dominio è 253 caratteri (254 compreso il punto finale, 255 ottetti sul cavo con terminazione nulla). Ed è ciò che BIND e DiG implementano.

  6. 6
  7. 7
  8. 8

Cosa ne pensi?

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati dei tuoi commenti.