você está aqui: Home  → Colunistas  →  Segredos do Google

De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Backup de mensagens armazenadas no Gmail

Por Rubens Queiroz de Almeida

Data de Publicação: 09 de Junho de 2009

Em 2009 os serviços oferecidos pelo Gmail sofreram diversas falhas. Este assunto inclusive foi tema de capa da revista Info de abril de 2009. Eu confesso que sou um fã ardoroso dos serviços do Google e a filosofia da empresa sempre me atraiu, por sua simplicidade e engenhosidade. Por conta desta admiração, o Gmail se tornou um ponto fundamental nas minhas atividades diárias. Sem o Gmail não sei o que seria de mim.

Resolvi então procurar uma boa alternativa que me permitisse manter uma cópia de segurança de todas as mensagens guardadas no Gmail em um local alternativo, para uso em caso de necessidade.

Buscando na Web, descobri dois artigos muito interessantes, que ensinavam como fazer o backup das mensagens do Gmail utilizando o programa getmail4. O primeiro artigo chama-se How to back up your Gmail on Linux in four easy steps e o segundo chama-se Backup Gmail via IMAP using getmail. O segundo artigo, segundo o autor, Peng, foi inspirado pelo primeiro.

De forma resumida, o programa getmail4, se conecta ao servidor do Google, usando os protocolos POP ou IMAP. Usando o POP o Google limita em 99 o número de mensagens baixadas de cada vez. Isto pode ser muito inconveniente, pois com todo o espaço que o Google nos oferece, o número de mensagens pode chegar às centenas de milhares. Isto pode ser resolvido com um pequeno loop em shell, que fica executando o programa getmail4 repetidamente, até o fim da transferência de todas as mensagens.

O getmail4 permite que se especifique o formato das mensagens após serem recuperadas do Google: formato Mbox ou Maildir. No formato mbox todas as mensagens ficam em um único arquivo, o que é muito inconveniente, pois arquivos grandes são mais difíceis de serem processados por qualquer cliente de email. Já o formato Maildir cria um arquivo separado para cada mensagem, o que é igualmente inconveniente, pois você terá um diretório com centenas de milhares de mensagens. Quando isto ocorre, até comandos mais banais, como um simples ls, demoram minutos para ser executado.

A melhor alternativa é justamente aquela que combina elementos dos dois enfoques. Criar múltiplos arquivos mbox seguindo a um critério pré-definido. No Google temos os labels, que nos permitem agrupar as mensagens segundo critérios que definimos. Desta forma, primeiro você precisa agrupar as mensagens e atribuir labels a elas. Em seguida, fazemos o download das mensagens que atendam a este pré-requisito.

Os passos a serem seguidos são muito simples. A primeira coisa a ser feita é configurar o programa getmail4. Para isto criamos um dirétório para armazenar nossas preferências.

mkdir .getmail

Criamos a seguir, o diretório onde as mensagens serão armazenadas. Este diretório pode ser criado em qualquer lugar. No meu caso, como uso o cliente alpine, em que as mensagens são armazenadas no diretório mail, eu optei por criar o diretório do Gmail dentro desta estrutura:

mkdir ~/mail/gmail-archive

O próximo passo é criar o arquivo de configuração do programa getmail4, chamado ~/.getmail/getmail.gmail. Neste arquivo são guardadas as informações de sua conta no Gmail e o local onde as mensagens serão gravadas.

[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
username = seu.email@gmail.com
password = suasenha
mailboxes = ("out.dicas-l",)

[destination]
type = Mboxrd
path = ~/mail/gmail-archive/colaboracoes.mbox

[options]
# print messages about each action (verbose = 2)
# Other options:
# 0 prints only warnings and errors
# 1 prints messages about retrieving and deleting messages only
verbose = 2
message_log = ~/.getmail/gmail.log 

No primeiro conjunto de diretivas, agrupadas sob o rótulo [retriever], especifico os dados do Gmail (protocolo, nome de usuário, senha, etc.).

Na opção type são possíveis duas alternativas: SimplePOP3SSLRetriever e SimpleIMAPSSLRetriever. A minha opção foi pela alternativa SimpleIMAPSSLRetriever, que me permite baixar as imagens segundo a rotulação (labels) que atribui às mensagens. Esta rotulação está especificada na opção mailboxes. Neste exemplo, estou baixando as mensagens rotuladas como out.dicas-l.

No segundo grupo de diretivas, [destination], especifico como as mensagens serão gravadas em meu computador. Seleciono o formato mbox (Mboxrd), e o arquivo onde as mensagens serão gravadas. Importante, o arquivo, mesmo vazio, já deve existir. Caso não exista, você pode criá-lo com o comando touch:

touch ~/mail/gmail-archive/colaboracoes.mbox

O terceiro grupo de diretivas, [options], diz respeito às mensagens geradas pelo programa e onde serão gravadas.

O próximo passo é invocar o programa getmail4:

/usr/bin/getmail -r /home/queiroz/.getmail/getmail.gmail

A opção -r instrui o programa getmail4 a pegar as informações de configuração de um arquivo, em nosso caso, /home/queiroz/.getmail/getmail.gmail.

Esta forma de trabalho, selecionando as mensagens rotuladas segundo um critério pré-definido, dá um pouco mais de trabalho no começo, mas o trabalho de processar estas mensagens fica bem mais fácil. Dos 7 GB que o Google me dá, eu tenho aproximadamente 5 GB ocupados. Existem muitas funções que o Google ainda não oferece, como por exemplo, gravar em um folder local todas as mensagens que me foram enviadas por determinada pessoa, para que eu possa fazer um processamento posterior. Por exemplo, na dica Extração automática de anexos de mensagens, eu mostro como extrair automaticamente os anexos de mensagens em um folder de email. Com a interface atual do Gmail isto fica difícil. Mas eu posso criar um rótulo para todas as mensagens que possuirem anexos e baixá-las para meu computador pessoal, processando-as em seguida para extrair os anexos. Enfim, as possibilidades são variadas, mas o mais importante, é ter uma cópia de backup em seu computador pessoal.

Uma vez que você já tenha feito o processamento inicial, baixando as mensagens que lhe interessam, você pode colocar o programa getmail4 rodando diariamente em horários pré-determinados. Para isto, escreva um programa que invoque o programa getmail4:

#!/bin/bash
# getmail.sh - baixar automaticamente as mensagens do Gmail
# Note: -q means fetch quietly so that this program is silent
/usr/bin/getmail -q -r /home/queiroz/.getmail/getmail.gmail 

Note o acréscimo da flag -q. Como o programa está sendo rodado via cron, eu não quero (nem posso) ver as mensagens do programa. Caso eu deseje consultar alguma coisa, devo olhar diretamente no arquivo de log.

Em seguida, configure a crontab para invocar o script com a periodicidade desejada:

# Execute o programa a cada 30 minutos, em todas as horas
0,30 * * * * /home/queiroz/bin/getmail.sh

Para saber mais, recomendo a leitura dos dois artigos que listei anteriormente, em que mais detalhes são apresentados.

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna