如何使用 IMAP 将托管在一台服务器上的邮件帐户的所有电子邮件转移到另一台服务器?

如何使用 IMAP 将托管在一台服务器上的邮件帐户的所有电子邮件转移到另一台服务器?

IMAP 允许您访问文件夹层次结构和给定帐户上的所有电子邮件。

我们的主要电子邮件服务器出现了服务器故障(双关语),因此我们必须将所有电子邮件帐户转移到新系统。我使用的是共享主机,因此无法运行命令行。

是否可以连接到所有帐户,通过 IMAP 批量获取消息,然后使用 IMAP 和新电子邮件服务器将所有消息上传回来?前提是创建了电子邮件帐户。

答案1

落叶松是替代imapsync运行起来同样顺畅。有了可用的 Ruby 环境,安装非常简单:

gem install larch

要将数十个邮箱从一台服务器迁移到另一台服务器,您可以创建如下脚本:

#!/bin/bash

# pullmail.sh

function pullmail {
    larch \
        --all \
        --from imaps://source.example.com \
        --from-pass "$2" \
        --from-user "$1" \
        --max-retries 20 \
        --to imaps://dest.example.com \
        --to-pass "$2" \
        --to-user "$1"
}

PS4='\t+ '
set -x

pullmail alice password1
pullmail bob password2
[…and so on…]

然后,您可以使用以下命令运行它:./pullmail.sh 2>&1 >> pullmail-$(date +%Y%m%d%H%M).log &。完成后,您可以查看日志以解决同步时可能遇到问题的电子邮件。幸运的话,每个文件夹和每个帐户中的所有邮件都将从旧服务器复制到新服务器。

还,落叶松足够智能,可以跟踪已经同步的邮件,因此可以安全地反复重新运行同步,直到您满意为止。

您需要咨询文档才能完全理解发生了什么。还有一个支持论坛以防您遇到任何问题。

答案2

有一个名为 imapsync 的实用程序可以执行您所描述的操作。

答案3

我发现IMAP 迁移工具用 PHP 编写的是一个更好且更容易使用的替代方案。

而ImapSync应用程序需要付费,15美元。

答案4

对于简单的用例,图片尺寸也有助于

  • 通过 IMAP 协议从邮件服务器进行备份格式
  • 将备份还原到同一邮件服务器或任何其他邮件服务器
# after building the project
# and declaring source and destination mail server by updating
# ./build/resources/main/mbox.properties 
# in two separate steps

# to make a backup directory  
java -Xmx4096m -Xms512m -jar build/libs/imapsize-1.0-SNAPSHOT.jar -b

# to restore from a backup directory  
java -Xmx4096m -Xms512m -jar build/libs/imapsize-1.0-SNAPSHOT.jar -r

相关内容