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

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

[ Hits: 9.342 ]

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 criar um pendrive bootável de qualquer Linux

Como restaurar as cores do terminal

Instagram Direct no Linux

Habilitar highlight na busca do Vim

Erro do Lynx acessando Google: Bad Request

Leitura recomendada

Cybrary - Treinamento Gratuito em Linux e Segurança da Informação

Instalação do servidor WebLogic no Linux

Lamp Fedora 21

Samba4 Erro no Bind(Named) zone XXX.in-addr.arpa/NONE: has no NS records [RESOLVIDO]

Como editar arquivos ODF sem um editor com suporte a ODF

  

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