Zimbra: com remover e-mail enviado por engano

Zimbra: com remover e-mail enviado por engano

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 Vagrant: Crie ambientes de Desenvolvimento Ágil
Próxima Certificação: 8 dicas para ter sucesso em exames

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

DevOps

Graylog – Gerenciando todos os seus Logs

Este post tem como objetivo apresentar um guia para instalação e configuração do Graylog em Debian 8 (Jessie), suportado pelos bancos de dados noSQL  MongoDB e ElasticSearch e com alta

Infraestrutura

MongoDB Aggregation

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

Infraestrutura

Vault: Autenticação SSH com OneTime Password

Vault é uma ferramenta desenvolvida pela HashiCorp, essa ferramenta tem como objetivo fazer um armazenamento inteligente de “segredos”, podem ser eles, chaves de ssh, dados de acesso a um banco