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
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
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, però, che anche questa regex è atipica e non lo standard. Ricordo di aver letto la regex effettiva (consentire <,>, ecc.) È troppo impegnativa 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 di posta elettronica; piuttosto, rappresentano punti di tokenizzazione, ovvero possono essere utilizzati per racchiudere un indirizzo di posta elettronica (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 questo modo. (Credo che il modulo sia per la compatibilità all'indietro e ora è una cattiva pratica.)

  4. 4

    In realtà RFC2821 È il riferimento corretto per la lunghezza dell'indirizzo di posta elettronica. L'ho trovato lì, ma non in RFC 2822.

  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 pari a 256.

    - Fonte: RFC 3696 Errata

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

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

  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.