2013-06-18 10 views
15

Sono nuovo di Exim e lo sto usando come uno smarthost (per ricevere email dagli utenti e inviarlo al mio ISP). enter image description hereExim - Un sacco di messaggi congelati senza mittente

Il sistema funziona correttamente, ma ho alcuni problemi con i messaggi bloccati. A volte guardo la coda e ci sono alcuni messaggi congelati senza mittente, quindi Exim non può inviarli, perché se non c'è il mittente non può autenticarsi con l'ISP.

Dove posso iniziare a eseguire il debug di questo?

Grazie mille.

risposta

20

Questi sono messaggi di mancato recapito. Qualcosa sta inviando messaggi attraverso il tuo server di posta, ma il destinatario non lo accetta, quindi il tuo sistema genera un messaggio di mancato recapito. Anche i messaggi di rimbalzo vengono rifiutati, quindi vengono "congelati" dall'exim MTA. È necessario capire da dove originariamente provenivano i messaggi e interrompere il flusso di quei messaggi non autorizzati.

exigrep 1UorWC-0002Nz-Mz /var/log/exim/main.log (o qualunque sia il vostro percorso è)

che troverà il messaggio di rimbalzo nei log di posta elettronica. Ho scelto un messaggio congelato nella mia coda di posta come un esempio (1UosOk-0000ej-KG):

# exigrep 1UosOk-0000ej-KG /var/log/exim/main.log 
+++ 1UosOk-0000ej-KG has not completed +++ 
2013-06-18 09:40:22 1UosOk-0000ej-KG <= <> R=1UosOf-0000bX-BV U=www P=local S=894 
2013-06-18 09:40:24 1UosOk-0000ej-KG ** [email protected] P=<> R=dnslookup_forwarder 
    T=remote_smtp_forwarder: SMTP error from remote mail server after RCPT TO:<[email protected]>: 
    host mail.example.biz [80.76.197.72]: 554 5.7.1 <[email protected]>: Relay access denied 
2013-06-18 09:40:24 1UosOk-0000ej-KG Frozen (delivery error message) 

La prima riga dice che il messaggio di rimbalzo 1UosOk-0000ej-KG è stato creato in risposta al messaggio di 1UosOf -0000bX-B (questo è ciò che la frase R = nella riga < = indica). Ora cerca THAT id messaggio per scoprire da dove proviene effettivamente questo messaggio. Nel mio caso, non era un messaggio di rimbalzo, è stata risposta automatica di un cliente:

# exigrep 1UosOf-0000bX-BV /var/log/exim/main.log 
2013-06-18 09:40:18 1UosOf-0000bX-BV H=example.biz [62.189.29.157] Warning: SPF PASS (pass) to m.ivenue.com: 
    domain of example.biz designates 62.189.29.157 as permitted sender 
2013-06-18 09:40:22 1UosOf-0000bX-BV <= [email protected] H=example.biz [62.189.29.157] P=esmtp S=17624 
2013-06-18 09:40:22 1UosOf-0000bX-BV => /netapp3/mail/maildirs/b/o/y/boyexample.com/sarah/Maildir/ 
    ([email protected]) <[email protected]> P=<[email protected]> R=virtual_user T=address_directory 
2013-06-18 09:40:22 1UosOf-0000bX-BV => sarah <[email protected]> P=<[email protected]> 
    R=autoresponder_always T=autoresponder_always_t 
2013-06-18 09:40:22 1UosOf-0000bX-BV Completed 

Una volta a scoprire quale processo viene utilizzato per inviare i messaggi attraverso il sistema, è possibile adottare misure per impedire loro, supponendo che non siano messaggi validi per cominciare. Quali passi prenderete dipenderà molto da ciò che troverete.

In genere non vorrai provare a inviare nuovamente questi messaggi bloccati. Tuttavia, se i messaggi sono stati congelati a causa di qualche errore di configurazione o di rete temporanea e si desidera eseguire di nuovo il reinvio, è necessario generare un elenco di messaggi bloccati e comunicare a Exim di consegnarli. Il modo più semplice è con il programma exiqgrep:

exiqgrep -z -i | xargs -n 1 exim -M 
+0

Ciao, ho sperimentato questo oggi. Ben spiegato Quindi, come si rinviare questi messaggi congelati? E quali misure vengono adottate per impedirle di solito esattamente? Grazie mille! – jagc

+0

Aggiunto un paragrafo che spiega come inviare nuovamente. –

13

I messaggi di posta elettronica congelati non sono utilizzabili nella coda exim. È possibile rimuovere tutti questi elementi per ridurre l'elenco di code exim.

Il seguente comando rimuoverà tutte le mail congelati:

exim -bpr | grep frozen | awk {'print $3'} | xargs exim -Mrm

o

exiqgrep -z -i | xargs exim -Mrm

Se si desidera rimuovere mail congelati vecchi di un particolare ora, ad esempio 24 ore :

exiqgrep -zi -o 86400 | xargs exim -Mrm

86400 indica 24 ore in secondi. Questo può essere modificato di conseguenza.

+2

Questi sono buoni suggerimenti per la gestione delle code. IMHO, il comando exiqgrep è sempre meglio da usare rispetto all'output di exim -bpr (noto anche come comando "mailq"). Produrrà sempre un risultato coerente e controllato. –

5

I rimbalzi congelati possono essere automaticamente eliminati da exim impostando l'opzione di configurazione ignore_bounce_errors_after su un valore adatto, ad es.

ignore_bounce_errors_after = 12h 

rimuoverà automaticamente tali errori di rimbalzo dopo 12 ore.

+0

È inoltre necessario aggiungere "timeout_frozen_after = 1d' per annullare (rimuovere) i messaggi congelati che sono più vecchi di un giorno. – andreszs

Problemi correlati