Home Tech Notes Configurare Postfix per correggere un bug di Exchange per i messaggi 8BITMIME
Configurare Postfix per correggere un bug di Exchange per i messaggi 8BITMIME PDF Stampa E-mail
Scritto da Marco   
Martedì 15 Luglio 2008 14:35

Durante i test con il mio nuovo server di posta locale, mi sono imbattuto in un problema inaspettato: non riuscivo ad inviare messaggi (in formato HTML o in testo semplice con allegati) al mio amico. Ogni volta che ci provavo, dopo pochi minuti il suo server di posta mi rispondeva così:

<smtp-out28.alice.it #5.6.1 smtp;554 5.6.1 Body type not supported by Remote Host>



Ho provato dunque a bypassare il mio server di posta connettendomi direttamente a quello del mio ISP (in questo caso Alice) e il messaggio arrivava a destinazione. Era evidente che fosse un problema nella configurazione del mio server locale.

Dopo svariate ricerche alla fine ho capito: mi sono imbattuto in un altro dei soliti bug di Microsoft dove non vengono rispettati i protocolli standard (che tristezza Triste). Alcune versioni di Exchange hanno un'errata implementazione dell'RFC 1854 e crea dei problemi perché non sono in grado di accettare messaggi codificati con 8BITMIME pur annunciandone la possibilità dopo l'EHLO. Quando ricevono uno di questi messaggi i server smtp hanno quindi due opzioni: convertire il messaggio a 7 bit oppure segnalare un errore; Exchange adotta quest'ultimo sistema. La soluzione è quindi di dire a Postfix di non chiedere informazioni al server exchange dopo l'EHLO. In questo modo, a Postfix, sembrerà che l'altro server non è in grado di accettare messaggi in 8BITMIME e farà lui stesso la conversione a 7 bit.

In questi casi basterebbe usare la direttiva "smtp_never_send_ehlo = yes", ma ho trovato più utille la soluzione seguente: creare un transport apporsito per i server che hanno questo tipo di problema, lasciando la piena funzionalità per tutti gli altri.
Come prima cosa editiamo il file /etc/postfix/master.cf e aggiungiamo questa riga:

exchange  unix  -  -  -  -  -  smtp -o smtp_never_send_ehlo=yes


In /etc/postfix/main.cf va indicato il file da usare come transport_map:

transport_maps = hash:/etc/postfix/transport


Quindi creiamo il file /etc/postfix/transport, elencando i domini che dovranno essere trattati come server exchange:

sito.it        exchange:


Rendiamo il file leggibile per Postfix, e poi riavviamo il servizio:


$ sudo postmap /etc/postfix/transport
$ sudo /etc/init.d/postfix restart


A questo punto tutti gli indirizzi appartenenti al dominio @sito.it verranno trattati come spiegato prima, permettendo così ai messaggi di raggiungere i propri destinatari.

Tags: Linux
Ultimo aggiornamento Venerdì 01 Agosto 2008 08:12
 
 
Copyright © 2010 MarkReds.it. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.