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