Postfix: come riprovare la consegna della posta in coda?


95

Ho un server di posta di backup in caso di errore su quello principale. In quel caso di errore, le e-mail arrivano sul server di backup e rimangono lì fino a quando quella principale non è tornata.

Se aspetto alcune volte, la consegna verrà eseguita automaticamente non appena il server principale è tornato, ma può essere lungo. Quindi, come forzare un tentativo di invio di tutte le mail?

Ad esempio: postqueue -p: dammi un elenco di mail

Ho quindi provato postqueue -f (dalla pagina man: Svuota la coda: tenta di consegnare tutta la posta in coda.). Ha sicuramente svuotato la coda ma le mail non sono state recapitate ...


sembra -f è flush e -q è la coda (invia la coda)
erm3nda

1
non c'è postqueue -q. È sendmail -qnecessario supportare la sintassi di sendmail in modo che postfix possa sostituire completamente sendmail, ma questo è un sinonimo. Le diverse lettere sono jsut perché postfix ne ha scelte diverse rispetto a sendmail.
Johannes H.

Scusami di nuovo, commenta lo stesso giorno :) quindi entrambi hanno torto.
erm3nda,

Risposte:


113

Secondo postqueue (1) si può semplicemente eseguire postqueue -fper svuotare la coda di posta. Se i messaggi di posta elettronica non vengono recapitati dopo aver svuotato la coda ma vengono invece riproposti in coda, è consigliabile verificare la presenza di errori nei registri di posta.

Anche dare un'occhiata a postsuper (1) potrebbe essere utile. Forse i messaggi sono in attesa e devono essere rilasciati per primi.


36

postqueue -fdovrebbe funzionare. In caso contrario, ha una buona ragione per questo. Controlla i registri. Anche pfqueue è un comando molto utile per ispezionare lo spool della posta.


16

sendmail -q ritenta immediatamente la consegna di tutti i messaggi nella coda.


Non è lo stesso di postqueue -f?
Dalibor Filus,

2
@NoICE lo è. Dai documenti : -q Tentativo di recapitare tutta la posta in coda. Questo viene implementato eseguendo il comando postqueue (1).
the-wabbit

Non l'ho verificato, ma sembra -f è flush e -q è in coda. Uno tenta di inviare, quindi l'altro pulisce semplicemente la coda. È meglio provare a consegnare immagino.
erm3nda,

1
@ erm3nda Devi almeno controllare prima le pagine man. Dalla postqueuepagina man: "-f Svuota la coda: tenta di recapitare tutta la posta in coda. Questa opzione implementa il tradizionale comando" sendmail -q ", contattando il demone Postfix qmgr (8)." => sono sinonimo e fanno esattamente lo stesso. "
Johannes H.

@JohannesH. Doh ... scusa, hai ragione sul fatto che dovrei leggerlo. Grazie per la correzione.
erm3nda,

4

postqueue -s domain.tlddovrebbe far sì che la macchina di inoltro di backup svuoti tutta l'e-mail per il tuo sito. L'impostazione predefinita per postfix abilita lo svuotamento per sito per tutti i domini in relay_domains. postqueue -flo farà anche, ma spingerà anche fuori la posta per i siti esterni, cioè fa più del necessario.

Come stai determinando che la posta non è stata recapitata? Sono ancora sull'host di backup o sono stati inviati all'host principale e poi si sono persi?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.