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.955 ]
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/
Ajustar a hora com o Observatório Nacional
Zwifi - Conectar em rede Wi-Fi via terminal
Script para atualização de hora
Adiciona, remove e lista usuários web (htpasswd)
Nenhum comentário foi encontrado.
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Ativando o modo Quake no XFCE4-Terminal
[Tutorial] Configurando Multimaster no Samba 4 AD (DC02) + Explicação de FSMO Roles
[Resolvido] Google Chrome reclamando de perfil em uso após mudar hostname
Senhor Einstein tinha razão mesmo! [RESOLVIDO] (12)
Como insiro e excluo um elemento XML e JSON ao código Javascript (2)
Como instalar Warsaw no Gentoo? (4)
Da pra formatar um netbook MGB e usar algum linux nele? É possível usa... (4)









