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
Descubra como o Puppet pode otimizar a administração de sistemas Open Source
Durante muito tempo o cotidiano do sysadmin de soluções Open Source foi regido por scripts caseiros que, aparentemente, eram capazes de solucionar todas as questões do dia a dia
Linux 5.17: Novo lançamento traz melhorias e ajustes de desempenho
Linux 5.17 estável chega ao mercado com uma série de ajustes e melhorias. Confira! Esta semana foi lançada a versão estável do Linux 5.17, que apresenta uma série de melhorias
Gitlab CI + Terraform – Deploy de uma EC2
Olá pessoal!!! Tudo bem com vocês? Espero que sim! Hoje no nosso blog da 4Linux vamos falar de como desenvolver uma pipeline para criar uma EC2 na AWS usando o







