Pesquisando pela Internet, descobri que existe uma maneira muito legal de migração de mensagens entre contas IMAP. De um servidor para outro por exemplo.
Nessas horas é bem comum administradores de rede usarem um cliente de email qualquer como um Thunderbird, Evolution ou o próprio Outlook, e cadastrar a conta antiga e a nova.
Uma vez cadastradas, basta copiar as mensagens e pastas da conta antiga para uma pasta local, e logo em seguida copiar da pasta local para a conta nova.
O problema é que muitas vezes os clientes de email e/ou ambos os servidores são falhos nessa tarefa. Não sincronizam direito. As vezes simplesmente param. Não geram mensagem de erro. Não dizem quais mensagens copiaram com sucesso, e não alertam em qual mensagem parou.
Então, descontente com esta situação, encontrei o imapsync.
É desenvolvido em Perl por Gilles Lamiral, um francês que comercializa este software por 50 euros, mas que também disponibiliza o código opensource para implementação no github. Para instalar em Ubuntu-based é fácil:
[root@localhost]# apt-get install \
libauthen-ntlm-perl \
libcrypt-ssleay-perl \
libdigest-hmac-perl \
libfile-copy-recursive-perl \
libio-compress-perl \
libio-socket-inet6-perl \
libio-socket-ssl-perl \
libio-tee-perl \
libmodule-scandeps-perl \
libnet-ssleay-perl \
libpar-packer-perl \
libterm-readkey-perl \
libtest-pod-perl \
libtest-simple-perl \
libunicode-string-perl \
liburi-perl \
cpanminus
Agora, insale manualmente o módulo do Perl Mail::IMAPClient:
[root@localhost]# cpanm Data::Uniqid Mail::IMAPClient
Faça o download do repositório:
[user@localhost]$ git clone https://github.com/gilleslamiral/imapsync.git
Dentro da pasta do repositório:
[user@localhost]$ ./imapsync –host1 imap.server1.com.br –user1 username@dominio.com.br –password1 senha_da_conta_antiga –host2 imap.server2.com.br –user2 username@dominio.com.br –password2 senha_da_conta2
E se por acaso tiver SSL em alguma das contas, é só usar parâmetro: –ssl1 –port1 993 ou –ssl2 –port2 993
Ao final da execução, o legal é que ele mostra as estatísticas confiáveis:
++++ Calculating sizes on Host2
Host2 folder [Archive] does not exist yet
Host2 folder [Drafts] Size: 0 Messages: 0 Biggest: 0
Host2 folder [INBOX] Size: 232358928 Messages: 3799 Biggest: 5536365
Host2 folder [Junk] does not exist yet
Host2 folder [Sent] Size: 35289450 Messages: 48 Biggest: 11040301
Host2 folder [Trash] Size: 0 Messages: 0 Biggest: 0
Host2 Nb messages: 3847 messages
Host2 Total size: 267648378 bytes (255.25 MiB)
Host2 Biggest message: 11040301 bytes (10.53 MiB)
Host2 Time spent: 20.4 seconds
++++ Statistics
Transfer started on : Wed Jan 27 18:55:17 2016
Transfer ended on : Wed Jan 27 19:46:45 2016
Transfer time : 3087.7 sec
Messages transferred : 1336
Messages skipped : 1485
Messages found duplicate on host1 : 0
Messages found duplicate on host2 : 671
Messages void (noheader) on host1 : 0
Messages void (noheader) on host2 : 0
Messages deleted on host1 : 0
Messages deleted on host2 : 0
Total bytes transferred : 67540850 (64.41 MiB)
Total bytes duplicate host1 : 0 (0.00 KiB)
Total bytes duplicate host2 : 54656054 (52.12 MiB)
Total bytes skipped : 100381257 (95.73 MiB)
Total bytes error : 0 (0.00 KiB)
Message rate : 0.4 messages/s
Average bandwidth rate : 21.4 KiB/s
Reconnections to host1 : 0
Reconnections to host2 : 0
Memory consumption : 133.2 MiB
Biggest message : 5536303 bytes
Initial difference host2 – host1 : -311 messages, 32149440 bytes (30.66 MiB)
Final difference host2 – host1 : 1026 messages, 99726271 bytes (95.11 MiB)
Detected 0 errorsNew imapsync release 1.678 available
Homepage: http://imapsync.lamiral.info/
Referências:
http://imapsync.lamiral.info/INSTALL.d/INSTALL.Ubuntu.txt
https://github.com/gilleslamiral/imapsync