Remover e-mails com MX inexistente e status deferred em servidores Postfix
Publicado por Marcelo Ferreira (última atualização em 23/04/2010)
[ Hits: 6.643 ]
Download 2010-04-19-scripts_postfix.tar.gz
Estes 2 scripts tem a função de auxiliar nos passos para remover e-mails com MX inexistente e status deferred em servidores Postfix.
Pré-requisitos para instalação:
1. Crie o arquivo /root/limpa.pl com o conteúdo abaixo:
#http://tonyvirelli.com/2010/03/05/clearing-out-postfix-deferred-mail-queue/
# gravar com nome /root/limpa.pl
#!/usr/bin/perl
$REGEXP = shift || die "no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!";
@data = qx</usr/sbin/postqueue -p>;
for (@data) {
if (/^(\w+)(\*|\!)?\s/) {
$queue_id = $1;
}
if($queue_id) {
if (/$REGEXP/i) {
$Q{$queue_id} = 1;
$queue_id = "";
}
}
}
#open(POSTSUPER,"|cat") || die "couldn't open postsuper" ;
open(POSTSUPER,"|postsuper -d -") || die "couldn't open postsuper" ;
foreach (keys %Q) {
print POSTSUPER "$_\n";
};
close(POSTSUPER);
2. Criar o arquivo /root/executalimpeza.sh com o conteúdo abaixo:
########################################################
# levantar e limpar domínios em deferred
# created by mfcandido@fazenda.sp.gov.br
#!/bin/bash
########
rm -f /tmp/limpadeferred.txt
rm -f /tmp/naolimpadeferred.txt
rm -f /tmp/statuspostfix.txt
echo `date` > /tmp/limpadeferred.txt
echo `date` > /tmp/naolimpadeferred.txt
echo `date` > /tmp/statuspostfix.txt
# Verificando domínios Deferred no POSTFIX
DOMINIOS=`qshape deferred | awk '{print $1}' | grep -Ev '^(T|TOTAL)$' | fmt -u`
for i in $DOMINIOS ;
do
dig -t MX $i | egrep 'MX' | grep -v ";"
if [[ $? -eq 0 ]];
then
echo "@$i possui MX" >> /tmp/naolimpadeferred.txt
else
echo "@$i não possui MX" >> /tmp/limpadeferred.txt
#/root/limpa.pl @$i
fi
done
######
#Verificando status das filas de email no POSTFIX
QUEUES="incoming active deferred hold corrupt"
for i in $QUEUES; do
COUNT=`qshape $i | grep TOTAL | awk '{print $2}'` >> /tmp/statuspostfix.txt
echo " " >> /tmp/statuspostfix.txt
printf "$i:$COUNT " >> /tmp/statuspostfix.txt
done
#
echo " "
echo permanecera no postfix
cat /tmp/naolimpadeferred.txt
echo " "
echo serah removido do postfix
cat /tmp/limpadeferred.txt
echo " "
echo status atual do postfix
cat /tmp/statuspostfix.txt
########################################################
Execução dos procedimentos:
1. Como root execute os comandos abaixo:
cd /root
chmod 700 /root/executalimpeza.sh
chmod 700 /root/limpa.pl
./root/executalimpeza.sh
2. Ao final da execução verifique os domínios em status de deferred removidos (MX não existentes):
cat /tmp/limpadeferred.txt
3. Ao final da execução verifique os domínios em status de deferred não removidos (MX existente):
cat /tmp/naolimpadeferred.txt
4. Verifique o status do Postfix:
cat /tmp/statuspostfix.txt
Referência: http://tonyvirelli.com/2010/03/05/clearing-out-postfix-deferred-mail-queue/
Acessar celular Motorola via USB
Beckup .tar.gz com Data e Hora
DELETAR arquivos a X semanas passadas
Nenhum comentário foi encontrado.
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Linux Lite Demorando Muito Para Ligar (2)
Remoção de propaganda com o programa Comskip[AJUDA] (4)