Trocar de servidor não precisa significar perder o histórico. O go-imapsync copia mensagens entre contas IMAP em uma direção: da origem para o destino. Conheça o processo, os limites e os cuidados antes de executar.
Ilustração conceitual, não uma tela do programa nem garantia de resultado.
Guia técnico: os comandos são para um administrador autorizado, em Bash no Linux. Não execute com caixas reais sem backup, conta piloto e aprovação do responsável. Para migrar uma conta Criare, combine o procedimento com o suporte.
É uma ferramenta de linha de comando escrita em Go, distribuída como binário. Pode ajudar na troca de provedor ou servidor quando as duas contas permitem acesso IMAP compatível. A máquina que executa o programa precisa alcançar ambos os servidores; não precisa ser o servidor de e-mail.
Este guia toma como referência a versão 0.1.3, release mais recente consultada em 10/10/2026. É um projeto de escopo inicial, inspirado no imapsync tradicional, mas não implementa todas as funções dele. Veja a documentação da versão.
A versão 0.1.3 não oferece XOAUTH2, migração por CSV ou tratamento especial de labels do Gmail. Não presuma funcionamento com provedores que exigem OAuth. Consulte os limites publicados pelo projeto.
Baixe o pacote correspondente ao seu sistema e arquitetura na release oficial 0.1.3. Confira a procedência e qualquer verificação de integridade disponibilizada. Um hash calculado sozinho, sem referência confiável, não autentica o download.
Extraia em uma pasta de trabalho protegida. No Linux, execute a partir dessa pasta:
./go-imapsync version ./go-imapsync --help
Os exemplos seguintes pressupõem o binário nessa pasta. Não é preciso instalar Go para executar o pacote pronto. Se sua arquitetura não estiver disponível, siga a compilação documentada no projeto em vez de baixar um executável desconhecido.
Abra uma sessão Bash privada. Os endereços abaixo são fictícios: substitua pelos nomes e usuários confirmados para cada conta. Não use uma gravação de terminal nem habilite set -x.
umask 077 mkdir -p "$HOME/go-imapsync-logs" read -rsp 'Senha da origem: ' GOIMAPSYNC_PASSWORD1 printf '\n' read -rsp 'Senha do destino: ' GOIMAPSYNC_PASSWORD2 printf '\n' export GOIMAPSYNC_PASSWORD1 GOIMAPSYNC_PASSWORD2 IMAP_ARGS=( --host1 imap.origem.example --user1 usuario@origem.example --host2 imap.destino.example --user2 usuario@destino.example )
Variáveis de ambiente evitam colocar a senha nos argumentos e no histórico, mas não são um cofre. Administradores e processos com permissões suficientes podem acessá-las. Proteja também logs, nomes de pastas e endereços registrados.
O padrão documentado é IMAPS na porta 993. Confira a ajuda da versão instalada. Os parâmetros com final 1 pertencem à origem; os com final 2, ao destino.
1. Simule as pastas. Esta etapa consulta os servidores sem criar pastas no destino:
./go-imapsync "${IMAP_ARGS[@]}" --justfolders --dry
Se a hierarquia ou o login estiver incorreto, pare e corrija antes de continuar.
2. Crie somente as pastas. Este comando já altera o destino:
./go-imapsync "${IMAP_ARGS[@]}" --justfolders
3. Simule as mensagens. Examine o resumo e as falhas; uma contagem na simulação não significa que mensagens foram gravadas:
./go-imapsync "${IMAP_ARGS[@]}" --dry \ --logfile "$HOME/go-imapsync-logs/plano.log"
4. Copie após a conferência. Este comando grava mensagens no destino:
./go-imapsync "${IMAP_ARGS[@]}" \ --logfile "$HOME/go-imapsync-logs/copia.log" rc=$? printf 'Resultado: %s\n' "$rc"
O projeto documenta códigos 0 para sucesso, 1 para falha de execução e 2 para erro de uso/configuração. Leia também o relatório. Não encerre a origem apenas porque o comando terminou.
Não confunda IMAPS com STARTTLS. Para uma origem que exige STARTTLS na porta 143, o ajuste documentado é acrescentar estes parâmetros ao array antes das etapas:
IMAP_ARGS+=(--nossl1 --tls1 --port1 143)
Para o destino, os parâmetros equivalentes terminam em 2. Faça isso somente se o administrador confirmar esse modo. Não use –nossl1 sozinho como solução de erro. Não use –insecuretls em produção: corrija hostname, certificado ou cadeia de confiança.
A identificação documentada usa os cabeçalhos Message-Id e Received, por pasta, não uma comparação integral de todos os bytes. Repetir a execução pode buscar mensagens novas, mas cabeçalhos ausentes ou modificados podem prejudicar o reconhecimento.
Mantenha os mesmos critérios entre rodadas e não altere –useheader por tentativa e erro em produção. Totais iguais também não provam que todas as mensagens corretas chegaram. O detalhe técnico está na implementação da identidade e no fluxo da cópia.
Conferir a cópia é uma etapa própria: terminar o comando não substitui a validação.
Abra o Webmail do destino. Confira amostras em Entrada, Enviados e subpastas: corpo, anexos, datas e estado de leitura. Investigue diferenças de contagem por pasta.
Repita a simulação com os mesmos parâmetros para observar pendências:
./go-imapsync "${IMAP_ARGS[@]}" --dry \ --logfile "$HOME/go-imapsync-logs/verificacao.log"
Combine separadamente a alteração da entrega de e-mail e dos aplicativos. Depois da mudança, pode ser necessária outra cópia para mensagens ainda recebidas na origem. Evite usuários reorganizando as duas caixas ao mesmo tempo.
Plano de retorno: se o destino já recebeu mensagens novas, apenas voltar o DNS ou o aplicativo não recupera esse conteúdo na origem. Preserve ambos os lados até a conferência e a aceitação do responsável.
Ao concluir, remova as credenciais da sessão:
unset GOIMAPSYNC_PASSWORD1 GOIMAPSYNC_PASSWORD2 unset IMAP_ARGS
Conclua somente após validar dados e uso real. Para planejamento de migração Criare: suporte@criarenet.com · (11) 2139-9400. Não envie senhas no chamado.
Revisado em 10/10/2026. Exemplos conferidos documentalmente; não foi realizada migração de caixas reais para produzir este artigo.