Abe Estrada

mbsync (isync) gmail

Vivo en la paranoia que en cualquier momento alguna de mis cuentas de algún servicio gratuito sea cerrada por cualquier motivo. Para esto, intento tener un respaldo de los correos actualizado, para esto utilizo mbsync que se encarga de descargar todos mis correos de Gmail y de una cuenta que utilizo para trabajar.

Una vez instalado isync, hay que generar la contraseña en Gmail para poder accesar al correo.

Luego en macOS agregamos las contraseñas al Keychain, en Linux se puede utilizar pass que almacena las contraseñas en archivos protegidos con gpg.

security add-generic-password -a 'user@gmail.com' -s 'isync' -w xxxxxxxxxxxxxxx

Para confirmar que se a guardado la contraseña, que es el mismo comando (PassCmd) utilizado por mbsync para obtener la contraseña de una forma segura:

security find-generic-password -a 'user@gmail.com' -s 'isync' -w

En la siguiente configuración, yo guardo mis correos en dos diferentes carpetas, una para trabajo ~/Mail/Work/ y otra para Gmail ~/Mail/Gmail/.

~/.mbsyncrc

CopyArrivalDate yes  # Don't mess up message timestamps when moving them between folders.
Sync Pull            # Download changes only, don't sync local changes up to the server.
Create Near          # Automatically create new folders in the local copy.
Remove Near          # Automatically remove deleted folders from the local copy.
Expunge Near         # Expunge deleted messages from the local copy.

### Work

IMAPAccount work
SSLType IMAPS
Host imap.domain.com
User user@domain.com
PassCmd "security find-generic-password -a 'user@domain.com' -s 'isync' -w"

IMAPStore work-remote
Account work

MaildirStore work-local
Path ~/Mail/Work/
Inbox ~/Mail/Work/Inbox
SubFolders Verbatim

Channel work
Far :work-remote:
Near :work-local:
Patterns *
SyncState *

### Gmail

IMAPAccount gmail
SSLType IMAPS
AuthMechs LOGIN
Host imap.gmail.com
User user@gmail.com
PassCmd "security find-generic-password -a 'user@gmail.com' -s 'isync' -w"
Pipelinedepth 1
Timeout 60

IMAPStore gmail-remote
Account gmail

MaildirStore gmail-local
Path ~/Mail/Gmail/
Inbox ~/Mail/Gmail/Inbox
SubFolders Verbatim

Channel gmail
Far :gmail-remote:
Near :gmail-local:
Patterns *
SyncState *

Y para crear el respaldo de los correos, solo se ejecuta el siguiente comando:

mbsync -a

Fuentes: