Migrar e-mails com Imapcopy

Existem muitas ferramentas por aí, mas vamos nos concentrar no imapcopy que é simples, eficiente eá fcil de usar.

Então para começar vamos instalar o Imapcopy, como este está disponível nos repositórios do Ubuntu, fazemos assim simplesmente (sempre como root, é claro :) ):

apt-get install imapcopy

Você pode trabalhar a partir de qualquer diretório em qualquer sistema como qualquer usuário (você não precisa estar na origem ou servidor de destino). Basta criar um arquivo chamado imapcopy.cfg. Existe um arquivo exemplo no seguinte diretório: /usr/share/doc/imapcopy/examples/ImapCopy.cfg, porém vou lhes mostrar uma configuração simples para começar.

SourceServer imap.foo.tld SourcePort 143
DestServer imap.bar.tld destPort 143
#    SourceUser     SourcePassword  DestinationUser DestinationPassword
Copy "user@foo.tld" "SuperPassowrd" "user@bar.tld"  "OtherGreatPassword" 

Bom esto comando só vai funcionar se os servidores não estiverem usando criptografia

A primeira coisa que você precisá fazer para usar a porta 993 TLS / SSL. Como isso não funciona diretamente com Imapcopy, aqui apresento uma solução simples, utilizando stunnel. Vamos instalá-lo a partir dos repositórios:

apt-get install stunnel

No exemplo apresento a configuração do stunnel tanto para os servidores de origem quanto para o destino, segue o exemplo.

stunnel-c-f-d 1143-r imap.foo.tld: 993-P'' stunnel-c-f-d 1144-r imap.bar.tld: 993-P''

O que acontece aqui é que o programa stunnel irá criar um túnel seguro de 127.0.0.1:1143 (e 127.0.0.1:1144) para os servidores IMAP em suas portas 993. Você pode substituir 1143 e 1144 com o que quiser. O endereço 127.0.0.1 agora se tornará a fonte e o destino para os servidores que se irá conectar.

Então, de volta ao nosso exemplo de configuração, precisamos mudar os servidores e portas para:

SourceServer 127.0.0.1 SourcePort 1143 
DestServer 127.0.0.1 destPort 1144

Você pode simplesmente executar imapcopy -t ou com a opção -i. Isso só irá se conectar aos servidores, sem fazer login,-t irá testar os logins e mostrar algumas informações (número de mensagens, pastas, etc.)

imapcopy -t

Há também uma opção para copiar apenas uma mensagem por pasta, -1, opções de subscrição de pastas e assim por diante. Idealmente, você deve criar uma conta de teste em ambos os servidores, gera um monte de e-mails, pastas, etc na fonte e ver como a cópia no outro servidor fica após a execução do comando. Execute imapcopy -h para ver todas as outras opções.

Então, para começar a copiar apenas executar o programa, sem opções:

imapcopy

Isso é apenas isso é suficiente … exceto por uma coisa, se você executar o comando de cópia de duas vezes, você vai voltar a importar as mensagens para o sevidor destino …