você está aqui: Home → Colunistas → Segredos do Google
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.
Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS
Para saber mais sobre RSS, leia o artigo O Padrão RSS - A luz no fim do túnel.
Opinião dos Leitores
28 Out 2009, 01:05
Pode ser usado qualquer outro cliente de email com suporte a IMAP4.
As pastas que deseja que tenha um backup é só clicar na pasta e disponibilizar usar função para uso offline da pasta que baixa todas as mensagem por inteiro da pasta.
É possível fazer isso com maioria dos cliente de email com suporte a IMAP4, no caso do evolution além de disponibilizar as mensagens para uso offline é possivel fazer backups de todos seu emails que estejam cadastrado nele.
Mas com pop3 é possivel também, já estaria baixando todas as mensagens e depois usar o método de backup do seu cliente de email.
Espero estar acrescentando ao otimo artigo do Rubens que faz um ótimo trabalho ajudando várias comunidades não só opensource.
Vlw Rubens
14 Set 2009, 11:56
read_all = false
MUITO importante essa opção read_all!
com ela vc recomeça de onde parou sem a necessidade de baxiar tudo novamente!
13 Set 2009, 18:04
na parte
mailboxes("out.dicas-l",)
deve-se lembrar que o nome da label é o MESMO que aparece no seu gmail
no meu caso minha label aparecia "Galera FH" mas o nome da label era "galera-fh", custei pra entender esse detalhe!
outra coisa, o getmail continua de onde parou ou recomeça toda vez q é iniciado?!
obrgiado
12 Jun 2009, 17:12
Gostaria somente de incrementar com algumas dicas que me ajudaram.
Quando você cria mais de um script para receber várias pastas/labels em arquivos mbox separados (eu criei 10) é interessante chamar cada script com o parâmetro -g (parâmetro de diretório de configuração do aplicativo) apontando para pastas diferentes.
Por Exemplo (e no meu caso especificamente):
/usr/bin/getmail -r /home/pierre/.getmail/Hospedagem/getmail.Hospedagem -g /home/pierre/.getmail/Hospedagem/
/usr/bin/getmail -r /home/pierre/.getmail/Arquivado/getmail.Arquivado -g /home/pierre/.getmail/Arquivado/
A 1ª linha baixa os arquivos do Label Hospedagem e a 2ª linha baixa os arquivos do Label Arquivado. Neste exemplo foram criados 2 arquivos (distintos) de configuração, cada um deles com as seções [retriever], [destination] e [options] diferentes.
Desta forma, quando você executar o script pela segunda vez, ele não buscará todos os emails novamente. Isto se deve porque o programa sempre lê o arquivo de configuração para saber quais emails já foram baixados.
Também é importante colocar as seguintes clausulas na seção [options]:
delete = false
read_all = false
10 Jun 2009, 09:53
09 Jun 2009, 21:43
E o legal é que mesmo sem internet vc continua trabalhando numa boa !!
09 Jun 2009, 16:19
Acabei aprendendo alguns pontos que me ajudarão em outras tarefas, além do propósito do artigo, o back up de e-mails.
Parabéns, Queiroz!
Artigos Publicados
- Surpresas escondidas no Google
12/08/2009 - Backup de mensagens armazenadas no Gmail
09/06/2009 - Google Similar Images
19/05/2009 - Convertendo valores de moedas pelo Google
17/04/2009 - Usando o espaço do gmail para backup
18/12/2008 - Crie a sua própria Meta Search Engine - Google CSE
29/08/2008 - Mais segurança no GMail
15/07/2008 - Google, logo existo
13/05/2008 - Google & Busca Universal
12/05/2008 - Novos recursos de visualização de dados
03/12/2007 - Calculando áreas nos mapas do Google Earth com uma mãozinha do GIMP
20/11/2007 - Liberando espaço no Gmail
19/11/2007 - Buscas refinadas com o Google
15/11/2007 - Dica para encontrar MP3 usando o Google
08/11/2007 - O Bom Humor do Google
06/11/2007 - O significado da vida
23/10/2007 - Google Asshole Index
12/10/2007 - Busca no Google por tipo de arquivo
23/08/2007 - Dicas de busca com Google
22/05/2007 - Google Talk direto no navegador
29/04/2007 - Google Summer of Code 2007
20/03/2007 - Web 2.0 permite configurar a página do Google.
16/12/2006 - Pesquisa e Leitura de Livros no Google
04/12/2006 - Google oferece serviço de busca de linguagem de programação
03/11/2006 - Buscando Arquivos com Google.com
19/10/2006 - Planilha Eletrônica no Google
20/09/2006 - Google - Hospedando os emails do seu domínio sem custo
12/09/2006 - Google Pages
10/09/2006 - books.google.com
03/09/2006 - Google disponibiliza livros completos para download
31/08/2006 - Google Notebook
13/08/2006 - Google ToolBar
23/07/2006 - Google Earth para Linux
07/07/2006 - Google na Dicas-L
05/07/2006 - Eventos do Google Calendar no Web Clips do Gmail.
19/04/2006 - Usando metodos Track para o Googlebot
14/04/2006 - Mais dicas do Google
12/03/2006 - Dicas sobre o Google
05/03/2006 - Guia do Google
26/11/2005 - Subdominios Google
10/11/2005 - Google e RSS
05/10/2005 - Incremente seu site com o Google Maps.
06/09/2005 - Encontrando livros no Google
03/08/2005 - Google Maps e Google Earth
07/29/2005 - Conversão de Formatos no Google
14/07/2005 - Google acha arquivos pra você
19/06/2005 - XtraGoogle
23/03/2005 - Google - Buscas mais populares
13/03/2005 - Google Definitions
20/08/2004 - Google Blogspace
06/06/2004 - Personalizando suas buscas no Google por meio do Mozilla
20/05/2004 - Dicas Google
26/04/2004 - Google News Alerts
08/04/2004 - Google - Busca na Web
16/02/2004 - Google - Alternativas pouco conhecidas (mas muito úteis)
13/02/2004 - Calculadora Google
19/08/2003 - Busca com Google no seu site
27/06/2003 - Google - Configuração de Resultados
03/01/2003 - Google - Número de Resultados
09/12/2002 - Google - Buscas Linux
03/01/2002 - Google News
22/10/2002 - Google Killer
09/04/2002 - Logo do Google
21/03/2002 - Ícones para seu Website - Busca com Google
02/01/2002 - Google - 20 anos de usenet online...
19/12/2002 - Google e Linux
06/11/2001 - Acrescente Buscas com Google ao seu site
05/07/2001 - Novo Mecanismo de Busca - Google
24/08/1998











