Lungime validă a adresei de e-mail

Depositphotos 1948865 s

A trebuit să fac niște săpături astăzi pentru a o găsi, dar știați care este lungimea validă a unei adrese de e-mail? De fapt, este împărțit în părți ... Nume@Domeniu.com. Aceasta este conform RFC2822.

  1. Numele poate avea între 1 și 64 de caractere.
  2. Domeniul poate avea între 1 și 255 de caractere.

Uau ... asta înseamnă că aceasta ar putea fi o adresă de e-mail validă:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Încercați să montați asta pe o carte de vizită! În mod ironic, majoritatea câmpurilor de adresă de e-mail sunt limitate la 100 de caractere pe web. Asta nu este de fapt valabil. Dacă doriți să validați o adresă de e-mail pentru o construcție adecvată utilizând PHP, am găsit acest fragment pe net:

http://derrick.pallas.us/email-validator/ # Licență: Academic Free License 2.1 # Versiune: 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)) return false; list ($ local, $ domeniu) = împărțit („@”, $ e-mail, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) returnează false; if ($ check &&! gethostbynamel ($ domain)) returnează false; întoarce-te adevărat; # SFÂRȘIT ###### }

4 Comentarii

  1. 1
  2. 2

    Da, am observat lipsa de conformitate a altor soluții și cu RFC. Am observat, totuși, că chiar și această regex este atipică și nu standard. Îmi amintesc că citirea regex-ului real (permiterea <,>, etc) este prea intensă pentru majoritatea proceselor.

    Cu toate acestea, este scris succint și cu siguranță o soluție care ar trebui să fie acceptabilă pentru orice aplicație de e-mail de companie.

    Mulțumesc din nou!
    Doug

  3. 3

    Din păcate, am legat acea pagină la RFC greșit (2821 în loc de 2822), dar asta a fost corectat. Parantezele unghiulare nu pot face parte din părțile locale sau de domeniu ale unei adrese de e-mail; mai degrabă, reprezintă puncte de tokenizare, adică pot fi folosite pentru a înconjura o adresă de e-mail (de exemplu, în cititorul dvs. de e-mail) tocmai pentru că nu pot face parte din adresă.

    Un lucru pe care funcția mea nu îl face este să-mi fac griji cu privire la forma citată a adreselor de e-mail - unde partea locală apare între ghilimele duble - deoarece RFC2821 spune în esență că nimeni nu ar trebui să-și scrie adresa în acest fel. (Cred că formularul este pentru compatibilitate inversă și acum este o practică proastă.)

  4. 4
  5. 5

    Există o restricție în RFC 2821 cu privire la lungimea unei adrese în comenzile MAIL și RCPT de 256 de caractere. Limita superioară a lungimii adreselor ar trebui, în mod normal, să fie considerată 256.

    — Sursa: Errata RFC 3696

    De asemenea, deoarece RFC 2181 spune „Un nume de domeniu complet este limitat la 255 de octeți”, este interpretat greșit în mod repetat de oameni (inclusiv de către autorii altor RFC) în sensul că numele de domeniu pot avea 255 de caractere. Dar RFC2181 vorbește despre reprezentarea la nivel de protocol DNS pe fir, nu despre caractere imprimabile.

    Lungimea maximă a unui nume de domeniu este de 253 de caractere (254 inclusiv punctul final, 255 octeți pe fir cu nul final). Și asta este ceea ce implementează BIND și DiG.

  6. 6
  7. 7

    Ne pare rău, adresa URL de mai sus este ruptă...

    Dezvoltatorii care subestimează dimensiunile potențiale ale adreselor de e-mail a cauzat câteva probleme:

    http://www.eph.co.uk/resources/email-address-leng...

    Bănuiesc că dacă adresa ta de e-mail este ceva minuscul precum „jack1983@aol.com”, ai putea crede că chiar și 30 de caractere sunt generoase.

  8. 8

Ce părere ai?

Acest site folosește Akismet pentru a reduce spamul. Aflați cum sunt procesate datele despre comentarii.