Migração IMAP · 5 min read · Sep 25, 2025

Como Migrar Caixas de Correio Entre Servidores IMAP Com imapsync

Este guia explica como você pode migrar caixas de correio entre servidores IMAP com imapsync. imapsync é uma ferramenta de sincronização, cópia ou migração IMAP. Mais de 32 diferentes softwares de servidor IMAP são suportados com sucesso. Todas as bandeiras são preservadas, não lidas permanecerão não lidas, lidas permanecerão lidas, excluídas permanecerão excluídas.

1 Nota Preliminar

Estou usando dois servidores Debian ou Ubuntu aqui (o procedimento deve ser o mesmo para outras distribuições, apenas a instalação do imapsync será diferente):

  • server1.example.com (origem)
  • server2.example.com (destino)

Quero migrar a caixa de correio [email protected] (nome de usuário: [email protected], senha: secreto) no server1.example.com para a caixa de correio [email protected] no server2.example.com (nome de usuário e senha são os mesmos que no server1.example.com).

2 Antes de Começarmos

Antes de começarmos, vamos dar uma olhada em ambas as caixas de correio para ver o que há nelas (você pode fazer isso com um cliente de email como Outlook, Thunderbird, ou um cliente de email baseado na web como SquirrelMail - estou usando o SquirrelMail aqui).

server1.example.com:

Caixa de correio antiga

server2.example.com:

Nova caixa de correio

Após a migração, as duas mensagens no server1.example.com devem estar disponíveis no server2.example.com.

3 Instalação do imapsync

Não importa se instalamos o imapsync no server1.example.com ou no server2.example.com - podemos até instalá-lo em um terceiro servidor não envolvido.

aptitude install imapsync

Para aprender sobre seu uso, dê uma olhada em

man imapsync

e

imapsync --help

4 Fazendo a Migração

Precisamos informar ao imapsync os nomes de usuário e senhas das contas de email que queremos migrar. Teoricamente, podemos usar os switches –password1 e –password2 para as senhas, mas isso é perigoso porque as senhas apareceriam na saída de

ps aux

(Então, qualquer usuário que tenha permissão para executar esse comando saberia as senhas.)

Portanto, é melhor criar dois arquivos ( /etc/secret1 e /etc/secret2 neste exemplo) que contenham as senhas (neste exemplo, é secreto para ambas as contas de email), fazer um chmod 600 nesses arquivos e usar os switches –passfile1 e –passfile2.

echo "secret" > /etc/secret1  
echo "secret" > /etc/secret2  
chmod 600 /etc/secret1  
chmod 600 /etc/secret2

Agora podemos fazer a migração com este comando simples:

imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2 --host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2

Aqui está uma saída de exemplo:

root@server1:~# imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2  
 --host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2  
$RCSfile: imapsync,v $ $Revision: 1.252 $ $Date: 2008/05/08 02:30:17 $  
Aqui está um [linux] sistema (Linux server1.example.com 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:45:36 UTC 2009 x86_64)  
com perl 5.10.0 e o módulo Mail::IMAPClient versão usada aqui é 2.2.9  
Linha de comando usada :  
/usr/bin/imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2  
 --host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2  
Sincronização interna ativada, definirá as datas internas no host2 iguais ao host1.  
Fuso Horário :[CEST]  
Tentará usar autenticação CRAM-MD5 no host1  
Tentará usar autenticação CRAM-MD5 no host2  
Do servidor imap [server1.example.com] porta [143] usuário [[email protected]]  
Para servidor imap [server2.example.com] porta [143] usuário [[email protected]]  
Banner : * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA  
 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP pronto. Copyright 1998-2008 Double Precision, Inc.  Veja COPYING para informações de distribuição.  
O servidor host server1.example.com diz que não tem NENHUMA CAPACIDADE para AUTENTICAR CRAM-MD5  
Erro de login : [server1.example.com] com usuário [[email protected]] auth [CRAM-MD5]: 3 NO Login falhou.  
   
Tentando LOGIN Mecanismo de autenticação no [server1.example.com] com usuário [[email protected]]  
Login bem-sucedido no [server1.example.com] com usuário [[email protected]] auth [CRAM-MD5]  
Banner : * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA  
 IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP pronto. Copyright 1998-2008 Double Precision, Inc.  Veja COPYING para informações de distribuição.  
O servidor host server2.example.com diz que não tem NENHUMA CAPACIDADE para AUTENTICAR CRAM-MD5  
Erro de login : [server2.example.com] com usuário [[email protected]] auth [CRAM-MD5]: 3 NO Login falhou.  
   
Tentando LOGIN Mecanismo de autenticação no [server2.example.com] com usuário [[email protected]]  
Login bem-sucedido no [server2.example.com] com usuário [[email protected]] auth [CRAM-MD5]  
Da capacidade : QUOTA STARTTLS NAMESPACE IDLE THREAD=ORDEREDSUBJECT ACL SORT UIDPLUS CHILDREN ACL2=UNION IMAP4REV1 THREAD=REFERENCES  
Para capacidade : QUOTA STARTTLS NAMESPACE IDLE THREAD=ORDEREDSUBJECT ACL SORT UIDPLUS CHILDREN ACL2=UNION IMAP4REV1 THREAD=REFERENCES  
Do estado Autenticado  
Para estado Autenticado  
Do separador e prefixo : [.][INBOX.]  
Para separador e prefixo : [.][INBOX.]  
++++ Calculando tamanhos ++++  
Da Pasta [INBOX]                             Tamanho:      2412 Mensagens:     2  
Da Pasta [INBOX.Drafts]                          Tamanho:          0 Mensagens:     0  
Da Pasta [INBOX.Sent]                            Tamanho:          0 Mensagens:     0  
Da Pasta [INBOX.Trash]                           Tamanho:          0 Mensagens:     0  
Tamanho total: 2412  
Total de mensagens: 2  
Tempo : 11 s  
++++ Calculando tamanhos ++++  
Para Pasta [INBOX]                             Tamanho:      16844 Mensagens:     6  
Para Pasta [INBOX.Drafts]                          Tamanho:          0 Mensagens:     0  
Para Pasta [INBOX.Sent]                            Tamanho:          0 Mensagens:     0  
Para Pasta [INBOX.Trash]                           Tamanho:          0 Mensagens:     0  
Tamanho total: 16844  
Total de mensagens: 6  
Tempo : 0 s  
++++ Listando pastas ++++  
Da lista de pastas : [INBOX] [INBOX.Drafts] [INBOX.Sent] [INBOX.Trash]  
Para lista de pastas : [INBOX] [INBOX.Drafts] [INBOX.Sent] [INBOX.Trash]  
++++ Looping em cada pasta ++++  
Da Pasta [INBOX]  
Para Pasta [INBOX]  
++++ De [INBOX] Analisando 1 ++++  
++++ Para [INBOX] Analisando 1 ++++  
++++ Verificando [INBOX] -> [INBOX] ++++  
+ NO msg #1 [FID6mR7SVC7csdmRce+7PQ:924] em INBOX  
+ Copiando msg #1:924 para a pasta INBOX  
bandeiras de : [\Seen]["26-May-2009 22:00:59 +0200"]  
Copiado msg id [1] para a pasta INBOX msg id [7]  
+ NO msg #2 [4lu3SCjZGH2mRuiP1dY7Mw:1488] em INBOX  
+ Copiando msg #2:1488 para a pasta INBOX  
bandeiras de : [()]["27-May-2009 14:12:59 +0200"]  
Copiado msg id [2] para a pasta INBOX msg id [8]  
Tempo : 0 s  
Da Pasta [INBOX.Drafts]  
Para Pasta [INBOX.Drafts]  
++++ De [INBOX.Drafts] Analisando 1 ++++  
++++ Para [INBOX.Drafts] Analisando 1 ++++  
++++ Verificando [INBOX.Drafts] -> [INBOX.Drafts] ++++  
Tempo : 0 s  
Da Pasta [INBOX.Sent]  
Para Pasta [INBOX.Sent]  
++++ De [INBOX.Sent] Analisando 1 ++++  
++++ Para [INBOX.Sent] Analisando 1 ++++  
++++ Verificando [INBOX.Sent] -> [INBOX.Sent] ++++  
Tempo : 0 s  
Da Pasta [INBOX.Trash]  
Para Pasta [INBOX.Trash]  
++++ De [INBOX.Trash] Analisando 1 ++++  
++++ Para [INBOX.Trash] Analisando 1 ++++  
++++ Verificando [INBOX.Trash] -> [INBOX.Trash] ++++  
Tempo : 1 s  
++++ Estatísticas ++++  
Tempo                       : 12 sec  
Mensagens transferidas       : 2  
Mensagens ignoradas         : 0  
Total de bytes transferidos: 2412  
Total de bytes ignorados    : 0  
Total de bytes erro        : 0  
Detectados 0 erros  
Por favor, avalie o imapsync em http://freshmeat.net/projects/imapsync/  
?Satisfeito com este software livre, de código aberto e gratuito GPL?  
Sinta-se à vontade para agradecer ao autor dando-lhe um livro:  
http://www.amazon.com/gp/registry/wishlist/1C9UNDIH3P7R7/  
(ou sua conta paypal [email protected])  
root@server1:~#

Depois, podemos excluir os dois arquivos de senha:

rm -f /etc/secret1  
rm -f /etc/secret2

No servidor de destino ( server2.example.com), saia da sua conta IMAP e faça login novamente (um simples refresh pode não ser suficiente), e você deve ver as mensagens do server1.example.com:

server2.example.com:

Nova caixa de correio após migrar os emails com sucesso

5 Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.