Remover mensagens do assunto correspondente da fila do sendmail

2

Estou executando o centos e tenho uma quantidade ridícula de e-mails no mailqueue devido a um erro de script. Existe alguma maneira de remover mensagens que tenham uma certa linha de assunto no mailqueue do sendmail.

    
por David 16.01.2013 / 10:21

2 respostas

5

Isso funcionou para mim agora, nos testes (e é por isso que tem uma linha de assunto tão estranha embutida no código). Ele se baseia no fato de que os dois arquivos que compõem uma mensagem na fila do sendmail compartilham o mesmo nome de arquivo, exceto pelo primeiro caractere.

cd /var/spool/mqueue
for file in 'grep "Subject:.*litigate gasworks" *|cut -f 1 -d:|cut -c2-'; do echo *${file} ; done

Quando estiver satisfeito com a lista de arquivos que produz, altere echo para rm . Não se esqueça de parar o sendmail antes de mexer na fila desse jeito; pode se tornar grosseiro se a fila mudar por baixo dele.

    
por 16.01.2013 / 10:27
2

No diretório sendmail contrib/ há um script perl qtool.pl que permite fazer intervenções seguras em diretórios de spool enquanto o sendmail está sendo executado. Você pode excluir, rejeitar, mover e filtrar por idade, tamanho, remetente, destinatário e assunto (entre outras coisas).

Inexplicavelmente, ele não está incluído no pacote principal do sendmail do CentOS, mas você pode encontrá-lo no sendmail-doc rpm (graças ao kubanczyk por notar isso), ou você pode extraí-lo da distribuição fonte (ftp://ftp.sendmail.org/pub/sendmail/sendmail-current.tar.gz ) . Tem dependências mínimas, todas devem fazer parte de uma instalação perl normal.

Para excluir mensagens, use -d :

qtool.pl -d -e '($msg{headers}->{Subject} =~ /whatever you need/i)' /var/spool/mqueue

Para movê-los para um diretório off-line de mensagens (mais seguro):

mkdir /var/spool/mqueue-junk
qtool.pl -e '($msg{headers}->{Subject} =~ /whatever you need/i)' \
    /var/spool/mqueue-junk /var/spool/mqueue

Note que é " qtool.pl destination/ source/ ". Arquivos bloqueados (aqueles com um "*" pelo ID da fila em mailq output) não serão movidos, você pode precisar tentar novamente para pegá-los.

Você tem a opção de executar essa fila mais tarde com sendmail -qR [...] -O QueueDirectory=/var/spool/mqueue-junk .

(Sabe-se que versões mais antigas de qtool.pl não analisam os cabeçalhos corretamente, você precisa omitir a primeira letra na maioria dos cabeçalhos, por exemplo, $msg{headers}->{ubject} em vez de {Subject} )

    
por 01.02.2013 / 20:51