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

Guia passo a passo para configurar o FreeIPA em CentOS e Ubuntu

Este post é o Segundo de uma série de posts sobre o FreeIPA. Se ainda não leu a Parte #1, onde instalamos e configuramos o servidor do FreeIPA , é

Infraestrutura TI

Aumente a performance do Moodle com a configuração do MUC

O que é O MUC (Moodle Universal Cache) é um tipo de cache e um cache nada mais é do que um repositório de dados, que torna mais fácil e

Infraestrutura TI

Descubra como o RabbitMQ pode otimizar o processamento de dados em seu sistema web

O RabbitMQ é um software de controle e gerenciamento de filas de mensagens. Ele recebe e armazena mensagens em filas até que alguém solicite essas mensagens. As mensagens podem ser