Nesse post irei mostrar como eu faço pra apagar a fila do Qmail. Esse Qmail roda num linux (centos). Vamos supor que a conta de e-mail [email protected] está enviando uma porrada de emails e ta atrasando a fila.
Primeiro temos que parar os seviços send e smtpd do Qmail:
svc -d /service/smtpd
svc -d /service/send
O serviço smtpd é meio chatinho para parar, dai use pkill -u qmaill e pkill -u qmailr (matar os processos dos usuários internos do Qmail)
Verifique se os serviços estão parados com svstat /service/* (os serviços estarão como DOWN).
Cuidado: Não avance nas outras etapas se os seviços smtpd e send não estejam DOWN.
Com os serviços parados iremos capturar os IDs dos e-mails que estão na fila e queremos apagar:
cd /var/qmail/bin
./qmail-qread | grep [email protected] | awk -F ‘#’ ‘{ print $2 }’ | awk ‘{ print $1 }’ > /root/spam
Nesse caso foi capturado os IDs dos emails que [email protected] estava enviando. Foi criado o arquivo /root/spam
Agora vamos para o diretório /var/qmail/queue para capturar os caminhos dos arquivos que são gerados dentro do qmail. Os arquivos tem o mesmo nome dos IDs capturados anteriormente.
cd /var/qmail/queue
for i in $(cat /root/spam ); do find . -name $i >> /root/spam2 ; done
Foi criado um outro arquivo /root/spam2 com todos os caminhos, nesse arquivo teria entradas desse tipo:
./remote/0/104259
./info/0/104259
./mess/0/104259
./remote/0/105294
./info/0/105294
./bounce/105294
Veja que os nomes dos arquivos são iguais aos IDs. Dê um cat em /root/spam (arquivo com os IDs)
Para apagar usei esse comando:
cd /var/qmail/queue
for i in $(cat /root/spam2); do rm -rf $i; done
Agora é so levantar os serviços:
svc -u /service/send
svc -u /service/smtpd