Sincronizando MTA's diferentes usando o ImapSync

De Wiki Hackstore

Requisitos

  • CentOS 6.4 64bits
  • ImapSync


Instalando dependências

yum install perl-YAML perl-Mail-DKIM perl-IO-Socket-SSL perl-TermReadKey perl-Date-Manip perl-MailTools perl-Parse-RecDescent perl-CPAN wget
perl -MCPAN -e 'install Test::More'

Caso ocorra erro de compilação via cpan, tente um pacote RPM:

wget ftp://ftp.muug.mb.ca/mirror/centos/6.4/updates/x86_64/Packages/perl-Test-Simple-0.92-131.el6_4.x86_64.rpm
wget http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/perl-Mail-IMAPClient-3.23-1.el6.rf.noarch.rpm
wget http://pkgs.repoforge.org/imapsync/imapsync-1.350-1.el6.rf.noarch.rpm
rpm -Uvh perl-Test-Simple-0.92-131.el6_4.x86_64.rpm
rpm -Uhv perl-Mail-IMAPClient-3.23-1.el6.rf.noarch.rpm 
rpm -Uvh imapsync-1.350-1.el6.rf.noarch.rpm


Para sincronização de qualquer conta de email utilizando o ImapSync, basta utilizar o comando abaixo:

imapsync --host1 ${HOST_ORIGEM} --user1 "${usuario_origem}" --password1 "${senha_origem}" --host2 ${HOST_DESTINO} --user2 "${usuario_destino}" --password2 "${senha_destino}"

Caso queira apenas testar a conexão, utilize o parâmetro --justlogin.


Script para sincronização utilizando uma lista pré-definida

Crie uma lista no padrão abaixo:

### Padrão de lista de contas ###
#
#{usuario_atual}:{senha_atual}:{usuario_novo}:{senha_novo}
#
# Domínio @hackstore.com.br
raphael@hackstore.com.br:oldpasswd:raphael@hackstore.com.br:newpasswd


Crie um script seguindo o exemplo abaixo:

#!/bin/bash

cat /root/sync/lista-full|grep -v "^#" | sed '/^ *$/d' > /tmp/lista-full
LISTA="/tmp/lista-full"
HOST_ORIGEM="mx1.hackstore.com.br"
HOST_DESTINO="zimbra.hackstore.com.br"

while IFS=: read usuario1 senha1 usuario_zimbra senha_zimbra;do

echo -e "\n\nsincronizando conta ${usuario1}...\n\n"
imapsync --host1 ${HOST_ORIGEM} --user1 "${usuario1}" --password1 "${senha1}" --host2 ${HOST_DESTINO} --user2 "${usuario_zimbra}" --password2 "${senha_zimbra}"

done < ${LISTA}


Dê permissão de execução para o script criado acima:

chmod +x /root/sync/sync_contas_imap.sh