Postfix - como tentar novamente a entrega do correio na fila?

95

Eu tenho um servidor de email de backup em caso de falha no servidor principal. Nesse caso de falha, os e-mails chegam no servidor de backup e ficam lá até que o principal volte.

Se eu esperar algumas vezes, a entrega será feita automaticamente assim que o servidor principal voltar, mas pode demorar. Então, como forçar uma nova tentativa de envio de todos os emails?

Por exemplo: postqueue -p: me dê uma lista de emails

Tentei postqueue -f (na página de manual: Liberar a fila: tente entregar todos os emails em fila). Certamente esvaziou a fila, mas os e-mails não foram entregues ...

Nicolas
fonte
Parece -f é flush e q é fila (enviar a fila)
erm3nda
1
não existe postqueue -q. Existe sendmail -qsuporte à sintaxe do sendmail para que o postfix possa substituir completamente o sendmail, mas isso é um sinônimo. As letras diferentes são justas porque o postfix escolheu letras diferentes das do sendmail.
Johannes H.
Desculpe novamente, comente no mesmo dia :) para que ambos estejam errados.
Erm3nda

Respostas:

113

De acordo com o postqueue (1), você pode simplesmente executar postqueue -fa limpeza da sua fila de mensagens. Se os e-mails não forem entregues após a limpeza da fila, mas estiverem sendo reencaminhados, convém verificar se há erros nos logs de e-mail.

Dar uma olhada no postsuper (1) também pode ser útil. Talvez as mensagens estejam em espera e precisem ser liberadas primeiro.

joschi
fonte
36

postqueue -fDeveria trabalhar. Caso contrário, há uma boa razão para isso. Verifique os logs. Também pfqueue é um comando muito útil para inspecionar o spool de correio.

Janne Pikkarainen
fonte
16

sendmail -q tenta novamente a entrega de todos os emails na fila imediatamente.

o wabbit
fonte
Não é o mesmo que executar o postqueue -f?
Dalibor Filus 30/05
2
@NoICE é. Dos documentos : -q Tente entregar todos os emails em fila. Isso é implementado executando o comando postqueue (1).
the-wabbit
Eu não verifiquei isso, mas parece -f é nivelado e -q é fila. Um tenta enviar e o outro apenas limpa a fila. É melhor tentar entregar, eu acho.
Erm3nda
1
@ erm3nda Você deve pelo menos verificar as páginas de manual primeiro. Na postqueuepágina do manual: "-f Limpe a fila: tente entregar todos os emails em fila. Esta opção implementa o comando" sendmail -q "tradicional, entrando em contato com o daemon Postfix qmgr (8)." => são sinônimos e fazem exatamente o mesmo. "
Johannes H.
@JohannesH. Doh ... desculpe, você está certo sobre eu deveria ler. Obrigado pela correção.
Erm3nda
4

postqueue -s domain.tlddeve fazer com que a máquina de retransmissão de backup libere todos os emails do seu site. A configuração padrão do postfix permite a liberação por site para todos os domínios no relay_domains. postqueue -ftambém fará isso, mas também enviará emails para sites externos, ou seja, faz mais do que você precisa.

Como você está determinando que o correio não foi entregue? Eles ainda estão no host de backup ou foram enviados para o host principal e depois se perderam?

araqnid
fonte