Removendo e-mails da fila do queue
Publicado por Gustavo Pardellas Feijó 25/04/2008
[ Hits: 14.716 ]
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
Compilação do QMPlay2 no Deepin 20
Atualização Multilib no Slackware
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Script de montagem de chroot automatica
Instalar Dual Boot, Linux+Windows. (8)
Eaí? Já programou no windows? (2)
Erro ao enviar arquivos para o Storage Synology NAS (0)
Conky, alerta de temperatura alta (17)
De volta para o futuro - ou melhor, para o presente (parte 2) (3)









