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

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

[ Hits: 9.217 ]

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

Como passar parâmetros para um alias no Bash

sunclock - mais que um simples relógio

netrw - o explorador de arquivos nativo do Vim

Redirecionando porta de saída no IPTABLES

Como seu Samsung Galaxy S3 pode se transformar num PC

Leitura recomendada

Desabilitando DNS Recursivo

Prova LPI no Rio em Abril

Slackware 12 no Dell 320n

MikeOS: Sistema operacional para PCs x86

Dual boot: Qualquer distribuição GNU/Linux + Windows 8

  

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