Postfix a 8BITMIME
Dan Lukes
dan na obluda.cz
Pondělí Únor 25 05:31:24 CET 2002
Jan Liska wrote:
> Neporadil by mi nekdo, jak mam korektne nastavit postfix, aby maily s
> osmibitovymi znaky posilal v 8BITMIME?
...
> Googlovani mi vyneslo jen nasledujici odkaz
>
> http://archives.neohapsis.com/archives/postfix/2001-01/1375.html
>
> ale ten IMO nerika, ze postfix neumi posilat 8bitmime -- jen ze
> nekontroluje, jestli protikus 8bitmime extenzi podporuje...
Ten, IMHO rika (uvedeny zaznam SMTP komunikace to potvrzuje), ze
postfix zpravu nedeklaruje jako 8BITMIME, ackoliv v tele pozdeji znaky s
nejvyssim birem jednickovym posle.
No, ackoliv sam Postfix vubec nepouzivam, venoval jsem trochu casu
nahlednout do zdrojaku (stejne mi neco rika, ze ty "zle" servery jsou ty
moje) aktualni verze:
src/smtp/smtp_proto.c:
--------------------------
case SMTP_STATE_MAIL:
if (*request->sender)
if (var_disable_dns == 0)
REWRITE_ADDRESS(request->sender);
vstring_sprintf(next_command, "MAIL FROM:<%s>", request->sender);
if (state->features & SMTP_FEATURE_SIZE)
vstring_sprintf_append(next_command, " SIZE=%lu",
request->data_size);
next_state = SMTP_STATE_RCPT;
-----------------------------------
Z toho se zda, ze MAIL FROM: nikdy deklaraci 8BITMIME obsahovat nebude
a tedy by v tele postfiz nemel odeslat jediny znak s jednickovym hornim
bitem. Pokud to presto udela, porusuje RFC2821 (na RFC o odesilani
osmibitovych znaku se nelze odvolat, protoze to zretelne na klientske
strane neimplementuje).
Pripoustim, ze v tomto kontextu mi opravdu neni jasne, proc podporu pro
8BITMIME avizuje na strane "serverove" - tato kombinace "server rika, ze
umi", "klient ve skutecnosti neumi" je pro prenos posty dost spatna
kombinace.
Pokud se tedy nepletu, mate tri moznosti - smirit se s tim, ze vami
pouzivany software implementuje nektere SMTP extense tak nestastne, ze
de-facto neni RFC compliant; nahradit ho nejakym, ktery sice urcite take
bude mit nejake chyby, ale jine, ktere vam budou vadit mene; upravit
vyse uvedeny zdrojak tak, aby alespon v tech pripadech, kdy protistrana
8BITMIME podporuje kazdou postu takto take deklaroval (tim se sice
nevyresi problem s MTA, ktere 8BITMIME vubec nepodporuji, dojde k
poruseni RFC i v tom, ze tak budou jako 8BITMIME deklarovane i doposy,
ktere by byt nemusely, ale celkovy vysledek bude patrne lepsi nez
soucasny.
Ta uprava by mohla vypadat zrejme tak, ze pred posledni radek ve shora
uvedenem vytahu pridate:
if (state->features & SMTP_FEATURE_8BITMIME)
vstring_sprintf_append(next_command, " BODY=8BITMIME",
request->data_size);
Nicmene, opakuji, ze jsem PostFix nikdy nepouzil a jeho zdrojaky ted
videl poprve - takze to co nabizim je rychly hack, ktery mozna nefunguje
nebo nefunguje dobre. Daleko lepsi by bylo donutit maintainera PostFixu
k takovym upravam, aby byl v tomto ohledu Postfiz konzistentni - tedy
bud extenzi implementoval kompletne, nebo ji neimplementoval vubec, jako
dost dobre reseni by take bylo proste pouzit jiny MTA. Ten hack je
opravdu nejhorsi z moznych reseni ...
Dan
--
Dan Lukes tel: +420 2 21914205, fax: +420 2 21914206
root of FIONet, KolejNET, webmaster of www.freebsd.cz
AKA: dan na obluda.cz, dan na freebsd.cz, dan na kolej.mff.cuni.cz
Další informace o konferenci Sendmail