Como apagar um e-mail enviado por engano com o Zimbra: um guia passo a passo

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.

Anterior Guia prático: Acelere o Time To Market com DevOps e Vagrant
Próxima 8 Dicas para Sucesso em Exames de Certificações de TI: Avance Sua Carreira Agora!

About author

Gabriel Araujo
Gabriel Araujo 4 posts

Gabriel Policante Araujo, atua como Analista de Infraestrutura em Software Livre, formado em Redes de Computadores pelo Senai Suíço e cursando Análise e Desenvolvimento de Sistemas pela Universidade de Santo Amaro. Possui experiência em ferramentas voltadas para aplicação da cultura Devops, com ênfase em automação, Aplicações de e-mail como Zimbra e Arquiteto Multi Cloud. Detém expertise como instrutor de cursos voltados ao Sistema Operacional Linux, possui Certificação LPIC1 e LPIC2.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Descubra como otimizar sua experiência de jogos no Linux

Jogar é um excelente passatempo. Pessoas de todos os cantos do mundo se reúnem em grupos, seja para atirar, pilotar, construir, ou simplesmente socializar enquanto salvamos alguns reféns em perigo

Infraestrutura TI

Guia prático: Como otimizar buscas no MongoDB com Aggregate

Descubra como processar documentos distintos agrupados em uma única saída para facilitar a geração de resultados e performance quando preciso efetuar buscas em banco de dados MongoDB A seguir explicarei

Segurança

Keycloak: Gerenciamento de Identidade e Acesso para WebApps e Serviços RESTful

O Keycloak [1] é um software open source de gerenciamento de identidade e acesso voltado para WebApps e RESTful web services. Inicialmente desenvolvido em 2014 pela comunidade de JBoss. Em