Removendo e-mails da fila do queue
Publicado por Gustavo Pardellas Feijó 25/04/2008
[ Hits: 14.713 ]
Homepage: http://www.gldc.com.br
Download remove_by_email-1.0.sh
Algumas vezes algum script gera um erro e começa a disparar e-mails, o que acaba "entupindo" o diretório queue do seu servidor de e-mails.
Este script foi desenvolvido para remover as mensagens da fila, tomando como base o endereço que se quer remover.
Foi testado com o postfix e o sendmail, bastando alterar a variável referente ao diretório queue do seu servidor.
Comentários e melhorias são bem vindos.
#!/bin/bash
## remove_by_email.sh
## remove emails da fila queue.
## recebe como parametro um endereco
## de e-mail para remover.
## Desenvolvido por Gustavo Feijo
## chmod@gfeijo.eti.br
## Diretorio queue do servidor de e-mail
QUEUE_DIR=/var/spool/postfix
ENDERECO=$2
if [ $UID != 0 ]
then
echo -e "Desculpe, voce precisa ser root!!"
exit 1
fi
if [ ! $1 ]
then
echo -e "Por favor, especifique um endereco para remover:\n Usage: $0 [ --from | --to ] 'usuario@provedor.com.br'\n"
exit 2
fi
echo -e "Procurando por mensagens a remover..."
case $1 in
--from)
QUEUE_FILES=( ${QUEUE_FILES[@]} `/usr/bin/mailq | grep ${ENDERECO} | awk '{print $1}'` )
;;
--to)
QUEUE_FILES_TO=( ${QUEUE_FILES_TO[@]} `/usr/bin/mailq | grep ^[0-9A-F] | awk '{print $1}'` )
for i in ${QUEUE_FILES_TO[@]};
do
tmp=`/usr/bin/find ${QUEUE_DIR} -type f -name ${i} -exec grep "recipient=${ENDERECO}" {} \;`
if [ ! -z $tmp ]
then
QUEUE_FILES=( ${QUEUE_FILES[@]} `echo ${i}` )
fi
done
;;
*)
echo "Parametro invalido \"$1\""
echo -e "Usage: $0 [ --from | --to ] 'usuario@provedor.com.br'\n"
exit 3
;;
esac
QT_MSG=${#QUEUE_FILES[*]}
if [ -z $QUEUE_FILES ]
then
echo -e "Nenhuma mensagem encontrada.\n"
exit 1
else
echo -e "Removendo ${QT_MSG} mensagens.\nPor favor aguarde..."
faltam=${QT_MSG}
fi
for LOCATOR in ${QUEUE_FILES[@]};
do
`/usr/bin/find ${QUEUE_DIR} -type f -name ${LOCATOR} -delete`;
let "faltam = ${faltam} - 1"
echo -ne "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"
echo -ne "Faltam: "
printf "%10d" "${faltam}"
done
echo ''
exit 0
Script para liberar acesso ao PC-Anywhere para pc da rede interna
Counter Strike Dedicated Server
Beckup .tar.gz com Data e Hora
Gerar a linha do Depends prontinha para o "control" para gerar pacotes DEB
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Atualizar Linux Mint 22.2 para 22.3 beta
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Conky, alerta de temperatura alta (11)
Assisti Avatar 3: Fogo e Cinzas (3)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (42)









