Lonxitude válida do enderezo de correo electrónico

Depositphotos 1948865 s

Hoxe tiven que facer escavacións para atopalo, pero sabías cal é a lonxitude válida dun enderezo de correo electrónico? En realidade está dividido en partes ... Nome@Dominio.com. Isto é segundo RFC2822.

  1. O nome pode ter de 1 a 64 caracteres.
  2. O dominio pode ter de 1 a 255 caracteres.

Vaia ... iso significa que podería ser un enderezo de correo electrónico válido:


loremaipsumadolorasitaametbaconsectetueraadipiscin
gaelitanullamc @ loremaipsumadolorasitaametbaconsect
etueraadipiscingaelitcaSedaidametusautanisiavehicu
laaluctuscaPellentesqueatinciduntbadiamaidacondimn
tumarutrumbaturpisamassaaconsectetueraarcubaeuatin
ciduntaliberoaaugueavestibulumaeratcaPhasellusatin
ciduntaturpisaduis.com

Proba a encaixalo nunha tarxeta de visita. Irónicamente, a maioría dos campos de enderezos de correo electrónico están limitados a 100 caracteres na web. Iso en realidade non é válido. Se desexa validar un enderezo de correo electrónico para a construción adecuada empregando PHP, atopei este fragmento na rede:

http://derrick.pallas.us/email-validator/ # Licenza: Academic Free License 2.1 # Versión: 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]) *) + '.' $ ', $ correo electrónico)) return false; list ($ local, $ domain) = split ("@", $ email, 2); if (strlen ($ local)> 64 || strlen ($ domain)> 255) return false; if ($ check &&! gethostbynamel ($ domain)) devolve false; volver verdadeiro; # FIN ######}

9 Comentarios

  1. 1
  2. 2

    Si, notei a falta de conformidade doutras solucións co RFC tamén. Porén, notei que mesmo esta expresión regular é atípica e non o estándar. Recordo que ler a expresión regular real (permitir <,>, etc.) é demasiado intensivo para a maioría dos procesos.

    Non obstante, está escrito de forma sucinta e definitivamente unha solución que debería ser aceptable para calquera aplicación de correo electrónico empresarial.

    Grazas de novo!
    Doug

  3. 3

    Desafortunadamente, vinguei esa páxina ao RFC incorrecto (2821 en lugar de 2822) pero corrixiuse. Os corchetes angulares non poden formar parte das partes locais ou do dominio dun enderezo de correo electrónico; máis ben, representan puntos de tokenización, é dicir, pódense usar para rodear un enderezo de correo electrónico (por exemplo, no seu lector de correo electrónico) precisamente porque non poden formar parte do enderezo.

    Unha cousa que a miña función non fai é preocuparse pola forma citada dos enderezos de correo electrónico, onde a parte local aparece entre comiñas dobres, porque RFC2821 di esencialmente que ninguén debería ter que escribir o seu enderezo dese xeito. (Creo que o formulario é para compatibilidade con versións anteriores e agora é unha mala práctica).

  4. 4

    En realidade, RFC2821 É a referencia correcta para a lonxitude do enderezo de correo electrónico. Atopeino alí, pero non no RFC 2822.

  5. 5

    Existe unha restrición na RFC 2821 sobre a lonxitude dun enderezo nos comandos MAIL e RCPT de 256 caracteres. O límite superior de lonxitudes de enderezos debería considerarse normalmente 256.

    — Fonte: RFC 3696 Errata

    Ademais, debido a que o RFC 2181 di "Un nome de dominio completo está limitado a 255 octetos", a xente (incluíndo os escritores doutros RFC) malinterpreta repetidamente que os nomes de dominio poden ter 255 caracteres. Pero RFC2181 está a falar de representación a nivel de protocolo DNS no cable, non de caracteres imprimibles.

    A lonxitude máxima dun nome de dominio é de 253 caracteres (254 incluíndo o punto final, 255 octetos no cable con nulo de terminación). E iso é o que implementan BIND e DiG.

  6. 6
  7. 7
  8. 8

¿Que pensas?

Este sitio usa Akismet para reducir o spam. Aprende a procesar os teus datos de comentarios.