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