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 ...


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.


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.


16

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


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?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.