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

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

[ Hits: 8.688 ]

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

Apache e o teimoso charset ISO-8859-1 que não funciona em páginas PHP

Como instalar versões antigas de aplicativos no Android

Gerando uma consulta randômica no MySQL

mimeit - enviando e-mail com anexo via linha de comando

Automatizando o download de fotos de um determinado site

Leitura recomendada

Error 403 do Apache no Mandriva 2008.1

Compartilhando conexão no Mandriva One e superior via modo texto

Git pull: "commit your changes or stash them before you merge" [Resolvido]

Lendo arquivos Markdown no terminal (*.md)

Instalando o Internet Explorer for Linux (ies4linux) via proxy

  

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