Não é a melhor solução, mas parece que isync é um boa maneira de lidar com o problema.
Um problema é que o google limita a quantidade de dados permitidos, então você precisa acionar a sincronização repetidamente. Assim, dura bastante tempo se você enviar grandes contas de e-mail.
Aqui está minha configuração .mbsyncrc
:
IMAPAccount gmail
Host imap.gmail.com
User emailaddress
Pass password
UseIMAPS yes
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore gmail-imap
Account gmail
MaildirStore gmail-local
# you have to manually create ~/.mbsync/gmail/
Path /path/to/Maildir/
# Inbox required, even if one specifies :gmail-local:INBOX
# otherwise it goes in ~/Maildir
Inbox /path/to/Maildir/
Channel gmail-inbox
Master :gmail-imap:
Slave :gmail-local:
MaxSize 25MB
Pattern *
Create Both
Expunge Slave
Sync Push
SyncState *
E usei este script de shell para lidar com o problema de o Google redefinir a conexão:
while true; do
mbsync gmail-inbox
echo "5 minutes pause to next try"
sleep 240
echo "one minute remaining"
sleep 60
done
Se suas pastas começarem com .
, você precisará remover o ponto. talvez com esta linha:
for f in .*; do mv $f "'echo $f | cut -c2- '"; done
Agora eu posso deixar e esperar até amanhã:)
observação
Eu tinha trobles com algumas pastas que continham muitos caracteres em seus nomes ou sobrenomes respectivamente como sublimes de umlauts. mbsync então trew um erro sobre um buffer muito pequeno. mudar os nomes me ajudou. Em seguida, alterei os nomes de volta nas contas do Gmail, onde também recriou a estrutura de pastas, que era apenas flattend pela exportação.