Exim - Removendo todas as mensagens da fila de espera (spool)

Publicado por Fábio Berbert de Paula em 15/04/2015

[ Hits: 9.138 ]

Blog: https://fabio.automatizando.dev

 


Exim - Removendo todas as mensagens da fila de espera (spool)



Hoje fui fazer manutenção num servidor de e-mail Exim4 e após corrigir a configuração do SMTP, fechando o relay, percebi que haviam cerca de 50 mil mensagens em fila de espera, em que quase a totalidade era composta por SPAM.

Antes de habilitar o serviço foi necessário fazer a remoção destas mensagens. Como fazer? Simples!

Para listar todas as mensagens em fila de espera:

# exim -bp

Exemplo de output:

 6m  2.9K 1YiCOR-0006Aw-0j <dtrzwpx@yandex.ru>
          pko74@list.ru
          carlito@ngs.ru
          7775715@bk.ru
          sales@techauto.rbauto.ru
          jemchyg-stc@mail.ru
          2391640a@mail.ru

 5m  3.1K 1YiCPJ-0006C7-Jf <yxnxbavbn@yandex.ru>
          info@kinder-store.ru
          madou59@mail.ru
          zooskazka@mail.ru
          martinenko-avto@rambler.ru
          zakaz@bestparts.ru
          panterapaintball@mail.ru

Para remover uma mensagem em particular:

# exim -Mrm {message-id}

No caso acima, a primeira mensagem possui como ID "1YiCOR-0006Aw-0j". O comando ficaria assim:

# exim -Mrm 1YiCOR-0006Aw-0j

Para remover TODAS as mensagens da fila de espera:

# exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash

Resolução de problemas

Cada e-mail armazenado no Exim4 é composto por dois arquivos plain-text. Eles ficam no diretório /var/spool/exim/input e possuem o seguinte formato:
  • 1YiCOR-0006Aw-0j-H :: ID da mensagem com final "-H", corresponde aos headers do e-mail;
  • 1YiCOR-0006Aw-0j-D :: ID da mensagem com o final "-D", corresponde ao corpo (e anexos) do e-mail.

Em alguns casos onde o spool está infestado de arquivos, o comando supracitado pode demorar muito para executar. Nestes casos a forma mais rápida de se remover todas as mensagens é limpando todo o conteúdo do diretório.

Método 1:

# cd /var/spool/exim/input
# rm -Rf *


Método 2:

# cd /var/spool/exim/input
# find . -type f -exec rm {} \;
# find . -type d -exec rm -Rf {} \;


Fonte: Exim Remove All messages From the Mail Queue - cyberciti.biz

Um abraço.

Outras dicas deste autor

Contabilizando Linhas e Palavras de um Projeto com Shell Script

Resolvendo flash sem som no Firefox

Como fazer "quit" no SED

Ferramentas CASE para Linux

Como somar todos os números contidos num arquivo texto

Leitura recomendada

Backup e restore das regras de ACLs

Bloqueando pasta no Linux

Bloqueando alteração de papel de parede

Seminário Linux em São Paulo - 22/10/2004 - entrada franca

Prova LPI no Rio em Abril

  

Comentários
[1] Comentário enviado por hellnux em 16/04/2015 - 15:17h

O comando (exim -bp | awk '/^ *[0-9]+[mhd]/{print "exim -Mrm " $3}' | bash) é o mais rápido para remoção que já testei.

Agora quando tiver muitas mensagens na fila, talvez seja mais rápido parar o exim, renomear o spool e recriar a estrutura de diretórios.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts