IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    imapsync 邮箱迁移 Plesk 到 Hestia

    R0uter发表于 2024-08-05 11:30:52
    love 0

    去落格博客阅读完整排版的imapsync 邮箱迁移 Plesk 到 Hestia

    最近更新:5th 8 月, 2024

    通常来说,可能不是很多人会遇到这种情况,就是你想要更换邮箱,但又需要将当前邮箱里的邮件带过去。可一旦发生,你就会发现,一个和互联网几乎相同年龄的东西,居然没有一个成熟的导出和导入功能。

    比这更令人头疼的是,如果你是一个邮件服务器管理员,你就悲惨的发现,有服务器权限也不行。邮箱里的内容是使用特殊各式存储的,它不是一个简单的数据库,需要使用相应的服务进行存取,直接移动文件很可能导致数据损坏,得不偿失。 imapsync 就派上用场了,它直接使用邮件的 IMAP 协议,下载旧邮箱的数据,然后同步到新的邮箱,邮件的发件人,收件人,时间,附件等等等等一应俱全!

    难题

    当然,如果是这么简单就结束了,那这片文章的意义也就不存在了——我有一个更复杂的使用情况,我的客户需要将邮箱迁移到新的服务器,使用新的面板,即从 Plesk 迁移到 Hestia。 那么问题来了,域名只有一个,我怎么才能实现从 A 到 B 但只能使用 A 的情况呢?

    最后我的解决方案是创建一个临时邮箱,使用域名 B,这样我就可以先把邮件从 A 同步到 B,然后修改域名配置,将域名解析到新的服务器,再将邮件从 B 同步回 A。由于此时域名已经解析到了新的服务器,实际上则是将邮件同步到了新的邮件服务器上。然后新服务器上创建的用户使用同样的账号和密码,理论上客户不需要做任何更改,只要忍耐短时间的服务暂停就可以了。

    配置/踩坑

    有一些额外的配置需要完成,默认情况下,如果你打开 Hestia 的 webmail,会看到内部错误,这是由于文件权限导致的,使用以下两个命令修复:

    sudo chown -R hestiamail:hestiamail /etc/roundcube/
    sudo find /etc/roundcube/ -type f -iname "*php" -exec chmod 640 {} \;

    imapsync

    如果你恰好和我一样使用 macOS 的话,请不要使用 homebrew 来安装 imapsync。从 2021 年开始,brew 安装的 imapsync 就有奇怪的内存泄露问题,该问题至今没有得到修复(没错,我也遇到了)。方便省心的解决办法是安装依赖后在 Ubuntu 上直接运行它。当然如果你觉得麻烦,也可以使用 Docker,这里我找到了一个支持 arm64 的镜像  你可以直接使用这个镜像来跑 imapsync,稳定高效!

    这里给出一个我使用的命令举例:

    docker run --rm -it jauderho/imapsync:latest \
    --host1 hostFrom.com --user1 your_address1 --password1 "pwd1" \
    --host2 hostTo.com --user2 your_address2 --password2 "pwd2" \
    --automap

    值得注意的是,你的密码应该使用双引号引起来,这样可以避免一些特殊符号冲突导致的命令错误。

    垃圾邮件以及杀毒功能开关

    给 Hestia 配置 spamassassin 和 clamaav 。如果你和我一样使用了小内存的 Lightsail 作为服务器,那么即使你勾选了这两个模块,它们也可能不会被安装,这时就需要我们手动安装它们: sudo apt install spamassassin clamav clamav-daemon

    编辑 Hestia 的配置文件 sudo vi /usr/local/hestia/conf/hestia.conf ,在文件开头加入如下两行:

    ANTISPAM_SYSTEM='spamassassin'
    ANTIVIRUS_SYSTEM='clamav-daemon'

    在 Hestia 管理员账户界面进入设置→exim4 的编辑界面,将下面 4 行取消注释:

    取消垃圾邮件和杀毒相关配置的注释

    取消垃圾邮件和杀毒相关配置的注释

    然后逐行执行下面的命令来配置 clamav

    gpasswd -a clamav mail > /dev/null 2>&1
    gpasswd -a clamav Debian-exim > /dev/null 2>&1
    cp -f /usr/local/hestia/install/deb/clamav/clamd.conf /etc/clamav/
    update-rc.d clamav-daemon defaults
    systemctl start clamav-daemon

    还有下面的命令配置 spamassassin

    update-rc.d spamassassin defaults > /dev/null 2>&1
    sed -i "s/ENABLED=0/ENABLED=1/" /etc/default/spamassassin
    systemctl start spamassassin
    systemctl enable spamassassin > /dev/null 2>&1

    最后编辑文件 /etc/roundcube/config.inc.php ,在顶部加入以下内容:

    // See real folder names in Roundcube, only temp. activated:
    // Disable localization of the default folder names listed above
    $config['show_real_foldernames'] = true; 
    
    // default folder to store spam messages
    // NOTE: Use folder names with namespace prefix (INBOX. on Courier-IMAP)
    $config['junk_mbox'] = 'Spam';

    重启服务器,然后你就能在 Hestia 邮箱配置界面看到垃圾邮件和杀毒的开关了。

    imapsync 邮箱迁移 Plesk 到 Hestia,首发于落格博客。

    其他推荐:
    1. 迁移 Plesk 到 Hestia
    2. snap nextcloud with Nextcloud Office
    3. 搭建 OpenConnect VPN 服务器 AnyConnect (ocserv)
    4. 中兴C200三网宽带业务简要配置流程命令
    5. 部署 SNI Proxy 加速网页访问 反代 无需证书



沪ICP备19023445号-2号
友情链接