Postfix - jak ponowić próbę dostarczenia poczty w kolejce?

94

Mam zapasowy serwer poczty w przypadku awarii głównego. W przypadku awarii wiadomości przychodzą na serwer zapasowy i pozostają tam, dopóki główny nie wróci.

Jeśli poczekam kilka razy, dostawa zostanie wykonana automatycznie, gdy tylko główny serwer wróci, ale może być długi. Jak więc wymusić ponowne wysłanie wszystkich wiadomości e-mail?

Na przykład: postqueue -p: daj mi listę maili

Następnie spróbowałem postqueue -f (ze strony podręcznika: Opróżnij kolejkę: spróbuj dostarczyć całą kolejkę). Z pewnością opróżnił kolejkę, ale maile nie zostały dostarczone ...

Nicolas
źródło
wygląda na to, że -f ma kolor, a -q to kolejka (wyślij kolejkę)
erm3nda
1
nie ma postqueue -q. Istnieje sendmail -qobsługa składni sendmaila, aby postfix mógł całkowicie zastąpić sendmaila, ale to synonim. Różne litery to jsut, ponieważ Postfiks wybrał inne niż zrobił to sendmail.
Johannes H.
Przepraszam jeszcze raz, skomentuj tego samego dnia :), więc oba są w błędzie.
erm3nda

Odpowiedzi:

112

Zgodnie z postqueue (1) możesz po prostu uruchomić, postqueue -faby opróżnić swoją kolejkę pocztową. Jeśli wiadomości e-mail nie są dostarczane po opróżnieniu kolejki, ale są wymagane, możesz sprawdzić dzienniki poczty pod kątem błędów.

Pomocne może być również zerknięcie na postuper (1) . Być może wiadomości są zawieszone i trzeba je najpierw udostępnić.

joschi
źródło
36

postqueue -fpowinno działać. Jeśli nie, ma ku temu dobry powód. Sprawdź dzienniki. Również pfqueue jest bardzo przydatnym poleceniem do sprawdzania bufora poczty.

Janne Pikkarainen
źródło
15

sendmail -q natychmiast ponawia próbę dostarczenia wszystkich wiadomości w kolejce.

the-wabbit
źródło
Czy to nie to samo, co uruchomienie postqueue -f?
Dalibor Filus
2
@NoICE to jest. Z dokumentów : -q Próba dostarczenia całej kolejki poczty. Jest to realizowane przez wykonanie polecenia postqueue (1).
the-wabbit
Nie sprawdziłem tego, ale wydaje się, że -f jest flush, a -q to kolejka. Jeden próbuje wysłać, a drugi po prostu wyczyść kolejkę. Chyba lepiej spróbować dostarczyć.
erm3nda
1
@ erm3nda Najpierw sprawdź przynajmniej strony podręcznika. Ze strony podręcznika postqueue: „-f Opróżnij kolejkę: spróbuj dostarczyć całą kolejkę. Ta opcja implementuje tradycyjne polecenie„ sendmail -q ”, kontaktując się z demonem Postfix qmgr (8).” => są synonimami i robią dokładnie to samo. „
Johannes H.,
@JohannesH. Doh ... przepraszam, masz rację, że powinienem to przeczytać. Dziękuję za poprawę.
erm3nda
4

postqueue -s domain.tldpowinien spowodować, że zapasowa maszyna przekaźnikowa opróżni wszystkie wiadomości e-mail dotyczące Twojej witryny. Domyślna konfiguracja Postfix umożliwia opróżnianie poszczególnych witryn dla wszystkich domen w relay_domains. postqueue -fzrobi to również, ale także wypchnie pocztę dla zewnętrznych stron, tj. robi więcej, niż potrzebujesz.

Jak ustalasz, że poczta nie została dostarczona? Czy nadal znajdują się na hoście zapasowym, czy zostały wysłane do głównego hosta, a następnie zgubiły się?

araqnid
źródło