O @anahuac do canal zimBrasil do Telegram (https://t.me/zimBrasil) estava com uma situação onde era necessário re-enviar emails do dia anterior a partir de uma determinada hora. Acontece que o gateway de saída estava com uma configuração errada e bloqueou o envio de emails por um determinado período de tempo.
O Problema
Alguma dezena de e-mails não foram enviados! e agora?
A Solução
Fazer backup dos usuários com a seguinte query:
- pasta “Sent/Enviados”
- Data de ‘ontem’ – vamos supor que a data será: 25 de Julho de 2019 (no formato MM/DD/AAAA)
Para realização do backup, iremos utilizar o zmmailbox do pŕoprio zimbra – Rode todos os comandos com usuário zimbra (su – zimbra).
No exemplo, iremos utilizar a conta ananias@zimbrasil.com.br e o diretório para guardar os backups que vamos realizar será o /tmp/bkp_sent
mkdir /tmp/bkp_sent
cd /tmp/bkp_sent
zmmailbox -z -m ananias@zimbrasil.com.br gru ‘/?fmt=tgz&query=under:”sent” and date:”7/25/2019″‘ > /tmp/bkp_sent/ananias@zimbrasil.com.br.tgz
!!Tudo em uma única linha!!
Explicando:
zmmailbox -z -m ananias@zimbrasil.com.br – definindo a conta a ser realizado o backup.
gru – ou getRestURL – definindo que será através da API do próprio zimbra
fmt=tgz – Formato do backup do tipo tgz
query= – informaremos quais os parametros de consulta para realização do backup. Vamos utilizar o under e o date.
under:”sent” – Que estejam na pasta sent (se precisar de todas as subpastas da pasta sent, ao invés de under:, utilize in:)
date:”7/25/2019″ – Data que deve ser recuperada as mensagens.
/tmp/bkp_sent/ananias@zimbrasil.com.br.tgz – nome do arquivo onde será gravado o backup.
Descompactando o arquivo de backup gerado com o comando anterior.
tar -zxvf ananias@zimbrasil.com.br.tgz
Uma pasta chamada Sent deve ter sido criada. Entre nela:
cd Sent
Dentro dela deverá conter os arquivos .eml e .eml.meta.
Exemplo:
0000036362-Comprovantes.eml
0000036362-Comprovantes.eml.meta
0000036374-Solicitação das Notas fiscais.eml
0000036374-Solicitação das Notas fiscais.eml.meta
0000036384-Re_ RES_ Solicitação das Notas fiscais.eml
0000036384-Re_ RES_ Solicitação das Notas fiscais.eml.meta
Iremos precisar dos arquivos .eml para enviar novamente.
Para enviar arquivo por arquivo, faça o seguinte
cat 0000036362-Comprovantes.eml| sendmail -t
Pronto! o e-mail foi enviado mantendo todas as características do original (Remetente, Destinatário, Assunto, conteúdo, anexos, etc).
Enviando todos:
Dentro da pasta Sent, rode o comando abaixo:
for i in `ls`; do cat $email |sendmail -t; done
Cuidado para não fazer algo grotesco!
Dúvidas somente pelo canal zimBrasil do Telegram t.me/zimBrasil
Comentários