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 done
Este 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
Conhecendo o Kernel Linux pelo /proc (parte 3) – Mapeamento de memória virtual
Como vimos nos posts anteriores, o Linux trabalha com conceito de memória virtual, ou seja, cada processo tem seu próprio endereçamento virtual totalmente isolados dos outros processos, porém o que
Descubra como o Rundeck pode otimizar suas tarefas de sysadmin
O que é? Rundeck é mais que simplesmente um software. Trata-se de uma plataforma open-source com interface web, que auxilia o administrador na automatização de rotinas operacionais em data-center ou
Guia sobre como criar um cluster com o centralizador de logs Graylog 3.3
O Graylog [1] é uma ferramenta open source e serve para monitorar, centralizar e organizar mensagens de log em sua infraestrutura. É uma alternativa ao famoso ELK. O Graylog oferece