Removendo e-mails da fila do queue
Publicado por Gustavo Pardellas Feijó 25/04/2008
[ Hits: 14.744 ]
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
Front para o slackpkg em dialog
Instalação Android Studio no Linux
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Linux Mint: Zram + Swapfile em Btrfs
O widget do Plasma 6 Área de Notificação
tentei instalar o steam pelo terminal, agora ele não abre (3)
Internet não funciona corretamente no Linux (1)
Após todos esses anos... youtube! (4)









