Live Chat Software by Kayako |
Migração de caixas de email usando o imapsync
Postado por Jean Carlo Milanez Melo on 14/Jul 09:40
|
|
O objetivo principal de uso do imapsync é quando não temos como migrar as caixas postais que estão em formato diferente de Maildir, como por exemplo em banco de dados. Ou caso não queria converter o formato mailbox para Maildir. O imapsync conecta no servidor de origem e destino fazendo a sincronia das caixas postais. É um processo rápido e simples. Como pré-requisito é necessário configurar uma conta administrativa global em cada um dos servidores imap para que seja possível logar com qualquer usuário e transferir os dados. No dovecot isso é simples, basta adicionar o seguinte na configuração no dovecot.conf e reiniciar o serviço: auth_master_user_separator = * passdb { driver = passwd-file args = /usr/local/etc/dovecot/passwd.masterusers master = yes result_success = continue } Criar o arquivo /usr/local/etc/dovecot/passwd.masterusers com htpasswd, exemplo: htpasswd -c admin /usr/local/etc/dovecot/passwd.masterusers 123 Ou seja criamos o usuario admin com a senha 123. Agora basta reiniciar o serviço e você conseguirá conectar com qualquer usuario via imap usando a seguinbet sintaxe: usuario*admin senha Na autenticação via imap seria: a login usuario*admin senha Caso a migração esteja sendo feita a partir de outro tipo de servidor imap procure na documentação respectiva como colocar um administrador global para conseguir fazer a autenticação sem precisar saber a senha de todos os usuários. Feito isso instale o imapsync: # pkg install imapsync Agora use o script a seguinte fazer as devidas alterações para gerar a sincronia. Mude o host1 (origem) e host2 (destino) e altere os dados dos usuários administradores da origem e destino: #!/bin/sh set -xv logfile="sinklog.txt" host1=192.168.242.238 # host1 is Source host2=127.0.0.1 # host2 is Dest # everything after @ symbol
###### Do not modify past here ###### date=`date +%X_-_%x` echo "" >> $logfile echo "------------------------------------" >> $logfile echo "IMAPSync started.. $date" >> $logfile echo "" >> $logfile
{ while IFS=';' read u1; do user=$u1 echo "Syncing User $user" date=`date +%X_-_%x` echo "Start Syncing User $u1" echo "Starting $u1 $date" >> $logfile imapsync --nosyncacls --syncinternaldates --host1 $host1 --user1=$user --authuser1='franciney.souza@prodap.ap.gov.br' --password1 '1010' --host2 $host2 --user2=$user*admin --password2 '123' date=`date +%X_-_%x` echo "User $user done" echo "Finished $user $date" >> $logfile echo "" >> $logfile done ; } < userlist.txt
date=`date +%X_-_%x` echo "" >> $logfile echo "IMAPSync Finished.. $date" >> $logfile echo "------------------------------------" >> $logfile
Dentro do diretorio onde rodara o script crie o arquivo userlist.txt com a lista de todos usuários no formato usuário@dominio, pois ele vai pegar a informação para migrar a partir dai. Feito isso basta rodar o script. Todos os logs de sincronia serão gerados no arquivo sinklog.txt. | |
|