sysctl -w net.ipv4.ip_no_pmtu_disc=1
). In altri casi qualcuno suggeriva di agire sui timeout, in postfix ce ne sono parecchi che si possono modificare (per vedere l'attuale configurazione di postfix e avere nel contempo l'elenco dei parametri di configurazione utilizzabili basta digitare "postconf" da linea di comando).Nel mio caso succedeva che i messaggi solo testo partivano mentre quelli contenenti allegati non ne volevano sapere. Nessuna delle soluzioni suggerite sopra aveva funzionato, il server remoto era un Exchange, si presentava come Microsoft ESMTP Server 6.0.3790.3959. Dopo parecchio tempo speso a cercare la soluzione ho scoperto questo. In pratica alcune versioni di Exchange durante la fase di negoziazione del protocollo millantano di supportare la funzione PIPELINING, mentre invece non è vero: la connessione inizia ma non succede nulla, alla fine del tempo a disposizione la connessione viene chiusa e compare l'errore nei logs.
Occorre quindi dire a postfix di non tenere in considerazione l'opzione pipelining se gli viene proposta da quel particolare server. Ecco come si fa:
Edito il file
/etc/postfix/main.cf
e aggiungo la riga:smtp_discard_ehlo_keyword_address_maps = hash:/etc/postfix/ehlo_keywords
Poi edito /etc/postfix/ehlo_keywords in questo modo:
<ip_server_remoto_bacato> pipelining
salvo, chiudo e lancio il comando
postmap /etc/postfix/ehlo_keywords
A questo punto "
postfix reload
" ed il gioco è fatto.
Ti faccio i miei complimenti per diversi motivi. Tra gli altri:
RispondiElimina1) ho trovato piu' volte il problema "timeout after DATA", e le risposte che si trovano di primo acchito sono un po' fuorvianti. La tua conclusione e' la piu' plausibile nella maggior parte delle volte che si presenta questo problema.
2) La tua esposizione e' chiara e semplice.
Congratulazioni,
rocsca
Mi hai salvato! Grazie mille!
RispondiElimina