qmail a spatne odesilani (To:) [trosku delsi]

Vladimír Solnický solnicky na vegacom.cz
Čtvrtek Květen 23 16:06:55 CEST 2002


23. 5. 2002 napsal(a) Lubos Kaspar na téma ,Re: qmail a spatne odesilani (To:)`:

[...]

LK> > ...
LK> > > To: =?iso-8859-2?Q?Obad=E1lek_Martin=2C_Ing.?= <Martin.Obadalek na csc.cz>
LK> > ...
LK> > Mohl by být v tečce -- ve From: a v To: nesmí byt volně tečka (musí být
LK> > buď v uvozovkách, uvozena obráceným lomítkem nebo v tomto případě
LK> > zakódována v kódování Q jako =XY).
LK>
LK> Myslím, že nikoliv. Pokud je skutečná adresa v <> jako zde, tak to předtím
LK> je všechno tzv. full-name a tam klidně tečka být může. Kromě toho MTA
LK> doručuje podle obálkových adres (RFC2821) nikoliv podle hlavičkových (RFC2822).
LK> Asi by bylo dobré se podívat do mail-logu - tam by se asi dalo vystopovat,
LK> kdo za to může. Osobně tipuji, že viníkem je nějaký nekorektní MUA.

Protože v hlavě nosím spíše starší RFC, podíval jsem se zběžně do RFC 2822
a myslím si, že není možno použít tam tečku.

Důvod 1 (možná méně důležitý):
##############################

Pokud jsem něco nepřehlédl, je ve formě ,,text <adresa na doména>`` na místě
slova text možno použít prvek zvaný ,,phrase``, který je definován jako


phrase          =       1*word / obs-phrase

a po dalších definicích dostanu:

word            =       atom / quoted-string

quoted-string   =       [CFWS]
                        DQUOTE *([FWS] qcontent) [FWS] DQUOTE
                        [CFWS]

atom            =       [CFWS] 1*atext [CFWS]

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

Vaši tečku obsahuje prvek zvaný ,,dot-atom-text``, který tam ale uveden
není:

dot-atom        =       [CFWS] dot-atom-text [CFWS]

dot-atom-text   =       1*atext *("." 1*atext)

Nestudoval jsem formy ,,obs*``, které budou přísnější, protože
zachovávají funkčnost/kompatibilitu s se staršími, dnes už
nedoporučovanými typy adresování.


Důvod2:
########

Definice kódování Q z RFC 2047 (MIME v hlavičkách) zakazuje mít ve
výsledku znak tečka v položce To:, neboť:

(3) As a replacement for a 'word' entity within a 'phrase', for example,
    one that precedes an address in a From, To, or Cc header.  The ABNF
    definition for 'phrase' from RFC 822 thus becomes:

    phrase = 1*( encoded-word / word )

    In this case the set of characters that may be used in a "Q"-encoded
    'encoded-word' is restricted to: <upper and lower case ASCII
    letters, decimal digits, "!", "*", "+", "-", "/", "=", and "_"
    (underscore, ASCII 95.)>.  An 'encoded-word' that appears within a
    'phrase' MUST be separated from any adjacent 'word', 'text' or
    'special' by 'linear-white-space'.


Závěr:
#######

Ať už původní chyba byla způsobena tečkou nebo nebyla, doporučoval bych
tazateli, aby nainstaloval opravenou verzi klientského programu, protože
omezení nejsou cucána z prstu, ale zajišťují ošetření kolizí nových
způsobů adresování se starými. Zájemci si mohou přečíst verzi o
překonaných způsobech adresování v RFC 2822 (sekce 4.4. Obsolete
Addressing) nebo je možno si přečíst starší verzi RFC 822.

S pozdravem

V. S.

-- 
Mgr. Vladimír Solnický <solnicky na vegacom.cz>, sys. administrace IT,
Vegacom, a. s., Šenovská 434, 182 03 Praha 8-Ďáblice, CZ,
telefón +420 2 66005154, MT +420 603 855154, telefax +420 2 66005560.
Píši pouze za sebe, ne za Vegacom / Speaking for myself only ...



Další informace o konferenci Sendmail