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.913 ]
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/
Script para desmontar partição/unidade
SLAC - Programa de manutenção para Slackware 14x
Beckup .tar.gz com Data e Hora
Nenhum comentário foi encontrado.
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









