tezce O.T. vadna syntaxe mailove adresy

Dan Lukes dan at obluda.cz
Mon Jun 2 13:40:26 CEST 2008


Miroslav Lachman wrote:
>> narazil jsem na drobny problem u syntaxe mailove adresy - seznam.cz 
>> umoznuje zalozeni mailove adresy s pomlckou na zacatku, kdyz na to ale 
>> chci poslat mail, vrati se mi chyba:
>> Diagnostic-Code: X-Postfix; bad address syntax
> 
> Ne kazdemu se chce cist primo RFC, ale tady je z toho pekny vytah:
> http://en.wikipedia.org/wiki/E-mail_address#Limitations

	Nechci mentorovat, ale pri spravovani site jsou RFC takovy docela dobry 
zaklad a nikdo, kdo chce spravu delat rozumne by je nemel zcela minout. 
Obzvlast, kdyz se jedna o spor, zda neco v souladu s RFC je nebo neni.

	Je to navic v tohle pripade dost snadne (pomineme-li, ze rekurzivni 
vyhledani potrebnych navazujicich definic si proste vyzada trochu casu):

local-part      =       dot-atom / quoted-string / obs-local-part

  -----
dot-atom        =       [CFWS] dot-atom-text [CFWS]
dot-atom-text   =       1*atext *("." 1*atext)
atext           =       ALPHA / DIGIT / ; Any character except controls,
                         "!" / "#" /     ;  SP, and specials.
                         "$" / "%" /     ;  Used for atoms
                         "&" / "'" /
                         "*" / "+" /
                         "-" / "/" /
                         "=" / "?" /
                         "^" / "_" /
                         "`" / "{" /
                         "|" / "}" /
                         "~"

NO-WS-CTL       =       %d1-8 /         ; US-ASCII control characters
                         %d11 /          ;  that do not include the
                         %d12 /          ;  carriage return, line feed,
                         %d14-31 /       ;  and white space characters
                         %d127


  -----
quoted-string   =       [CFWS]
                         DQUOTE *([FWS] qcontent) [FWS] DQUOTE
                         [CFWS]
qcontent        =       qtext / quoted-pair
qtext           =       NO-WS-CTL /     ; Non white space controls
                         %d33 /          ; The rest of the US-ASCII
                         %d35-91 /       ;  characters not including "\"
                         %d93-126        ;  or the quote character
quoted-pair     =       ("\" text) / obs-qp
CFWS            =       *([FWS] comment) (([FWS] comment) / FWS)
FWS             =       ([*WSP CRLF] 1*WSP) /   ; Folding white space
                         obs-FWS
obs-qp          =       "\" (%d0-127)
obs-FWS         =       1*WSP *(CRLF 1*WSP)

  -----
obs-local-part  =       word *("." word)
word            =       atom / quoted-string
atom            =       [CFWS] 1*atext [CFWS]

Jedine, co nenajdete tady ale v RFC2821 je:

local-part
       The maximum total length of a user name or other local-part is 64
       characters.

  ----------------------------------------

Tudiz:

Adresa
-pokusny
je tudiz platna, neb local-part je ve tvaru atext neb obsahuju pouze 
znaky, ktere jsou pro atext dovolene a povolena maximalni delka neni 
prekrocena.

> Kdysi davno jsem mel funkcni adresu i ve formatu + at example.com

Ta regulerni je, lokalni cast je prosty atext ...

> mam pocit, ze mi jeden cas fungovala i samotna tecka pred zavinacem, ale 
> to je uz mimo RFC.

... a ta skutecne regulerni neni, muselo by "." - pak by to byl qtext

	Tolik RFC.

	Z praktickych duvodu je ale riskantni pouzivat "neobvykle" adresy. Do 
spousty registracnich formularu nevyplnite dokonce ani adresu obsahujici 
plus - protoze ten patlak, co to PHP programoval cteni RFC skipnul 
(nechtelo se mu cist neco tak sloziteho) a tak nema poneti, jake znaky 
se v nem mohou vyskytovat.

	Neni dobre mit v jedne domene dve ruzne local-part lisici se jen 
velikosti pismen, protoze lide jsou navykli, ze velikost pismen 
nerozhoduje, coz ve skutecnosti neni pravda (vyjma local-part = 
postmaster, kde na velikosti skutecne povinne nezalezi).

	Muzete to, samozrejme, risknout (take na jednom systemu pouzivam 
emailovou adresu 
Zde_neodpovidejte._Uzijte_adresu_spravce_z_prikazu_dekana_c.4/98 at ... ) 
ale koledujete si o potize. Stejne jako s adresou zacinajici pomlckou ...

						Dan



More information about the Users-l mailing list