Como apagar um e-mail enviado por engano com o Zimbra: um guia passo a passo
Em um dos meus projetos de zimbra recebi aquela pergunta que todo analista de T.I. já recebeu:
” Enviei e-mail errado e foi para toda a empresa, preciso apagar este e-mail da caixa postal de todo mundo, socorro !!! “
E agora ? Vamos chorar e já ligar para o RH ? Não se usar Zimbra. Veja como proceder.
O Zimbra possui um mundo de possibilidades, o que temos que fazer é explorar este mundo e juntar os comandos do zimbra com o pai de todos, o shell script.
Antes de entregar o script, vamos aos comandos do zimbra.
Primeiro devemos listar todos os contatos do meu domínio no zimbra, com o usuário zimbra, envie o comando :
zmprov -l gaa 4linux.com.br
Este comando irá listar todos os usuários do domínio 4linux.com.br
Beleza, mas o que isto vai nos ajudar ? Então, para você apagar a mensagem, primeiro você deverá consultar se ela existe na caixa postal do usuário e para isto, você deve passar o usuário ” caixa postal ” que você deseja consultar.
Para pesquisar se o e-mail existe na caixa postal daquele usuário, você irá usar o comando, tudo na mesma linha:
zmmailbox -z -m gabriel@4linux.com.br s -l 999 -t message "from:xpto@4linux.com.br Subject: Assunto enviado errado"
O que este comando está fazendo, primeiro passei a conta que irei consultar se a mensagem existe, depois passei o número máximo de mensagens que ele irá consultar na caixa postal no meu caso 999 e por último informações que constam na mensagem, no meu caso passei remetente que enviou a mensagem errada e o assunto da mensagem errada.
Este comando irá sair o ID dessa mensagem na caixa postal do zimbra, esta informação que é importante para nós, porquê é por ele que irei apagar a mensagem da caixa postal.
Para trazer apenas o ID da mensagem utilizei expressões regulares:
zmmailbox -z -m gabriel@4linux.com.br s -l 999 -t message "from:xpto@4linux.com.br Subject: Assunto enviado errado" | tail -n2 | head -n1 | awk '{print $2}'Beleza, já tenho as informações necessárias para deletar a mensagem então vamos excluir a mensagem da conta do gabriel@4linux.com.br
Para isto, utilize o binário :
zmmailbox -z -m gabriel@4linux.com.br dm 49670424
sendo que 49670424 é o ID da mensagem que você retirou anteriormente.
Beleza, agora e se você 500k de caixa postal ? No meu cenário era isto, então vamos para o Shell Script, este script utilizei como base o curso 451 da formação linux, caso queira segue link : formação linux.
#!/bin/bash
#Escolha o dominio para trazer a lista de todos os usuários.
DOMINIO=4linux.com.br
for conta in $(zmprov -l gaa $DOMINIO); do
# Na variavel MENSAGEM, preencha o from e o subject da mensagem a ser deletada.
MENSAGEM=$(/opt/zimbra/bin/zmmailbox -z -m "$conta" s -l 999 -t message "from:xpto@4linux.com.br Subject: Assunto enviado errado" | tail -n2 | head -n1 | awk '{print $2}')
if [ "$MENSAGEM" = "0," ]
then
echo -e "\n conta $conta nao tem a mensagem "
else
# Confirmando antes de apagar a mensagem se o script está funcionando
echo -e "\n /opt/zimbra/bin/zmmailbox -z -m $conta dm $MENSAGEM "
# Para deletar a mensagem de fato, descomente a linha abaixo :
# /opt/zimbra/bin/zmmailbox -z -m $conta dm $MENSAGEM
fi
doneEste script verifica todas as contas de um domínio dentro de um for, depois ele irá consultar se possui ID o filtro que utilizei, caso a mensagem não possua a mensagem, irá aparecer “0,” então utilizei um if para isto, se conter 0, significa que não possui a mensagem, se não a mensagem está ali e o conteúdo da variável MENSAGEM é o ID da mensagem, ai sim irei excluir a mensagem de uma vez.
About author
Você pode gostar também
12 Práticas Eficazes para Combater Ataques DDoS em Seu Servidor
Muito bem… como primeiro post por aqui… eu pensei em abordar um assunto que constantemente me abordam nos treinamentos e palestras e bate papos que tenho, que e sobre ataque
Guia completo: Como instalar e configurar o OCS Inventory
O OCS Inventory é um software de gerência para inventários de dispositivos em rede, com ele é possível registrar todas as características de um computador incluindo: Versão do sistema operacional;
Entenda o Processo de Consulta SQL no Sistema Gerenciador de Banco de Dados Postgres
Sempre que utilizamos o Sistema Gerenciador de Banco de Dados (SGBD) Postgres ou PostgreSQL, o foco principal de sua utilização é a realização de consultas (Querys), afinal de nada adiantaria







