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

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

[ Hits: 8.353 ]

Blog: https://mestrefabio.com

 


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

Comando watch com saída em cores

Compartilhando arquivos entre computadores com Woof

Configurando adaptador USB WIFI Realtek RTL190CT no Debian

Extraindo seu endereço IP com shell script (egrep + awk)

Permitir mudança de senha via SSH (e só!)

Leitura recomendada

Sobrevivendo ao Terminal do Xenserver 7

Instalando Slackware ou Debian em HD (formato GPT) com Secure Boot / UEFI

Abrindo outra sessão gráfica no Linux

PuTTY Connection Manager

Explorando e resolvendo vulnerabilidade local no kernel Linux

  

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