Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

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.

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir
  • Currently 3.31/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.3 /5 (252 votos)


Para se manter atualizado sobre as novidades desta coluna, consulte sempre o newsfeed RSS

Segredos do Google 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

Rui Andrada
28 Out 2009, 01:05
Acho legal, conheço esse programa também mas não vale também usar o evolution e o que ele salvar já seria o backup.
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
guimaluf
14 Set 2009, 11:56
Também é importante colocar as seguintes clausulas na seção [options]:
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!
guimaluf
13 Set 2009, 18:04
cara! uma coisa importante
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
Pierre Mark
12 Jun 2009, 17:12
Excelente tutorial!!!

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
walter
10 Jun 2009, 09:53
Apenas a título de colaboração, utilizo o Thundbird, num pendrive e quando ele acessa baixa todos os emails, mantendo sempre atualizado as mensagens do gmail. Automaticamente.
Carlos VALENTE
09 Jun 2009, 21:43
RUBENS, não seria mais fácil utilizar o recurso fantástico do GOOGLE GEARS, que faz o sincronismo na base local, com o que está na Web, num perfeito aplicativo Cloud Computing.
E o legal é que mesmo sem internet vc continua trabalhando numa boa !!
Murilo Fujita
09 Jun 2009, 16:19
Texto muito agregador de informações.
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!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Artigos Publicados

SEM e SEO - Dominando o Marketing de Busca

Marketing de Otimização de Buscas, por Martha Carrer Cruz Gabriel



 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis