Frederico de Castro

[Linux] Migrando e-mails de um servidor para outro utilizando imap

Neste guia prático vou ensinar como migrar seus e-mails utilizando iMAP de um servidor para outro. A mudança de hospedagem muitas vezes dá mais trabalho na questão dos e-mails do que na migração do site em si. Agora você vai ter um script para te ajudar nessa tarefa árdua.

Passo 1 – Instalar pré-requisitos

Vamos começar com a instalação de pacotes obrigatórios para o imapsync. Aqui está uma longa lista de bibliotecas Perl e outros pacotes para instalar em seu sistema.

sudo apt-get install git rcs make makepasswd cpanminus

sudo apt-get install libauthen-ntlm-perl libclass-load-perl libcrypt-ssleay-perl liburi-perl libdata-uniqid-perl libdigest-hmac-perl libdist-checkconflicts-perl libfile-copy-recursive-perl libio-compress-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-tee-perl libmail-imapclient-perl libmodule-scandeps-perl libnet-ssleay-perl libpar-packer-perl libreadonly-perl libsys-meminfo-perl libterm-readkey-perl libtest-fatal-perl libtest-mock-guard-perl libtest-pod-perl libtest-requires-perl libtest-simple-perl libunicode-string-perl

Além disso, instale os módulos Python necessários usando o CPAN no seu sistema.

sudo cpanm Mail::IMAPClient JSON::WebToken Test::MockObject 
sudo cpanm Unicode::String Data::Uniqid

Passo 2 – Instalar Imapsync

Depois de concluir a instalação dos pacotes necessários. Baixe o código mais recente do imapsync do repositório oficial do git em seu sistema local.

git clone https://github.com/imapsync/imapsync.git

Navegue até o repositório recém-clonado e instale-o com os seguintes comandos em seu sistema.

cd imapsync
mkdir -p dist
sudo make install

Nesse estágio, o sistema está pronto para migrar todos os dados de uma conta de e-mail para outras contas de e-mail usando o IMAP.

Passo 3 – Transferindo os e-mails

Então você está pronto para a migração. Antes da migração, verifique se ambas as contas têm o IMAP habilitado e acessível a partir do seu sistema. Depois disso, use a seguinte sintaxe de comando.

imapsync --host1 imap.dominio-do-email.com   --user1 email_origem@gmail.com --password1 SenhaDaOrigem123 --ssl1 --host2 imap.dominio-do-email.com --user2 email_destino@gmail.com --password2 SenhaDoDestino123   --ssl2

O comando demorará muito tempo de acordo com o tamanho da sua Caixa de Correio de origem. Depois de concluir todo o processo, você verá uma longa lista de saída. Verifique a saída para descobrir se ocorreu algum erro durante a transferência. Abaixo está a pequena parte do resultado.

Extra

Aqui um script shell pra facilitar a migração de várias caixas de e-mail.

@ = %40

--f1f2 FOLDER1=PASTA1

#!/bin/bash
PREFIXO=$1
SERVIDOR_ORIGEM='imap.dominio-do-email.com.br'
USUARIO_ORIGEM=$PREFIXO'@dominio-do-email.com.br'
PASSWORD_ORIGEM='temporaria@123'

SERVIDOR_DESTINO='mail.ita.locamail.com.br'
USUARIO_DESTINO=$PREFIXO'@dominio-do-email.com.br'
PASSWORD_DESTINO='Temporaria@123'

imapsync --nosyncacls --subscribe --syncinternaldates --f1f2 INBOX.Sent=INBOX.enviadas --f1f2 INBOX.Spam=INBOX.lixo --f1f2 INBOX.Drafts=INBOX.rascunho --host1 $SERVIDOR_ORIGEM --user1 $USUARIO_ORIGEM --password1 $PASSWORD_ORIGEM --tls1 --host2 $SERVIDOR_DESTINO --user2 $USUARIO_DESTINO --password2 $PASSWORD_DESTINO --tls2

Esse script leva em conta que a senha dos e-mails é sempre a mesma. Como você vai precisar saber a senha de origem e destino, é mais prático deixar todos os e-mails com a mesma senha antes de começar a migração, vai te poupar algum tempo.

Salve o script com o nome migrar e execute da seguinte forma:

./migrar contato

Com isso ele teria migrado a caixa contato@dominio-do-email.com.br

Nesse script eu migrei caixas com mesmo nome e mesmo domínio, porém de uma hospedagem para outra, então só difere o host, mas se você precisa mudar de domínio por exemplo, você pode ajustar o script.

Uma resposta

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Precisa de ajuda com algo relacionado a este assunto?

Me chama no WhatsApp que eu posso te ajudar!