Respostas:
offlineimap é uma solução popular para isso.
Após a instalação, crie um .offlineimaprc
[general]
accounts = GMail
maxsyncaccounts = 3
[Account GMail]
localrepository = Local
remoterepository = Remote
autorefresh = 10 #refresh every 10 minutes
quick = 5 #Quick-syncs do not update if the only changes were to IMAP flags
[Repository Local]
type = Maildir
localfolders = /whatever/directory
[Repository Remote]
type = IMAP
remotehost = imap.gmail.com
remoteuser = your_username@gmail.com
remotepass = your_password
ssl = yes
maxconnections = 1
#Setting realdelete = yes will Really Delete email from the server.
#Otherwise "deleting" a message will just remove any labels and
#retain the message in the All Mail folder.
realdelete = no
Então você precisa executar offlineimap.
Em alguns casos, ter offlineimap em execução o tempo todo pode consumir grandes quantidades de memória, especialmente se você tiver uma caixa de correio grande, portanto, você pode adicionar uma verificação offlineimap ao cron para apenas verificar e sair, eis um backup diário:
@daily offlineimap -u Noninteractive.Basic
Os arquivos estarão no que você definir na linha de pastas locais como um Maildir . Você pode fazer o backup usando qualquer método de backup usado:
Eu fiz algumas pesquisas sobre COMO fazer backup de uma conta IMAP comparando diferentes ferramentas disponíveis em um conjunto de recursos e preocupações desejados. Como resultado, usei offlineimap
, como já sugerido acima. (Minha comparação salva ainda pode ser útil para ver uma imagem maior.) Além disso, resumi (respondendo a uma pergunta relacionada) alguns pontos referentes à arquitetura de uma solução desse tipo para fazer backup de uma conta IMAP e armazená-la no Git.