在两个服务器之间传输邮件

在两个服务器之间传输邮件

我有两台服务器运行 Ubuntu 14.04。两台服务器上都安装了 Postfix 和 Dovcote。两台服务器上的邮件服务器都运行正常。我想将邮件从服务器 1 传输到服务器 2。有人能建议一下具体步骤吗

答案1

您可以使用“imapsync”脚本传输它们,这是我用于迁移到 Google 邮件的脚本。它可以与任何支持 imap 的邮件服务器一起使用:

SERVER1=imap.source.com
SERVER2=imap.dest.com

#Uncomment to hide folder sizes
FAST="--nofoldersizes"

#Uncomment to do a dry run (no actual changes)
#DRY="--dry" 

#Uncomment to just sync folders (no messages)
#JUSTFOLDERS="--justfolders" 

#Uncomment to just connect (no syncs at all)
#JUSTCONNECT="--justconnect" 

#Set the path to your imapsync binary
imapsync=imapsync

#Users file
if [ -z "$1" ]
then
echo "No users text file given." 
exit
fi

if [ ! -f "$1" ]
then
echo "Given users text file \"$1\" does not exist" 
exit
fi

while IFS=';' read  u1 p1 u2 p2; do {

$imapsync --usecache --syncinternaldates --nosyncacls --tmpdir /var/tmp --host1 ${SERVER1} --user1 "$u1" --password1 "$p1" --host2 ${SERVER2} --port2 993 --user2 "$u2" --password2 "$p2" --ssl2 ${FAST} ${DRY} ${JUSTFOLDERS} ${JUSTCONNECT} --exclude "Sent|^Delet|Drafts|Spam|Calendar|Brouillons|^Calend|envoi|^Contacts|Flux|sirable|Flux RSS|^Historiqu|Infected|Journal|Junk|LinkedIn|Notes|Outbox|^Probl|supprim|Courrier ind&AOk-sirable" --regextrans2 "s,^&AMk-l&AOk-ments envoy&AOk-s$,[Gmail]/Messages envoy&AOk-s," --regextrans2 "s,^INBOX/,," --regextrans2 's{Sent Items$}{[Gmail]/Messages envoy&AOk-s}' --regextrans2 's{Sent Messages$}{[Gmail]/Messages envoy&AOk-s}' --regextrans2 's{&AMk-l&AOk-ments envoy&AOk-s$}{[Gmail]/Messages envoy&AOk-s}' --regextrans2 's{Éléments envoyés$}{[Gmail]/Messages envoy&AOk-s}'
}
done < $1

启动脚本的命令行是

./script.sh sample.txt

其中 sample.txt 是包含两个服务器的每个用户的地址和密码的文件:

[email protected];password1;[email protected];password2

相关内容