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

Infraestrutura

Gerenciamento de filas assíncronas com Celery e Redis

O Celery é uma fila de tarefas assíncrona de trabalho, implementada em python, com base na passagem de mensagens distribuídas. Está focado na operação em tempo real, mas também oferece

Infraestrutura

12 Metodos para prevenir-se de ataques DDOS

Muito bem… como primeiro post por aqui… eu pensei em abordar um assunto que constantemente me abordam nos treinamentos e palestras e bate papos que tenho, que e sobre ataque

Infraestrutura

Instalação e Migração OTRS

Introdução OTRS, Open-source Ticket Request System (Sistema Livre de Requisição de Chamados), é um sistema de gerenciamento de incidentes, livre e de código aberto, que qualquer organização pode usar na