Migrar e-mails com Imapcopy
Existem muitas ferramentas por aí, mas vamos nos concentrar no imapcopy que é simples, eficiente eá fcil de usar.
Instalação
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
Configuração e testes
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
Configuração do stunnel
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
Teste da configuração
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.
Copiar e-mails
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 …