hMailServer 官网上面的 hMailServer 邮件服务器软件版本长期停留在 5.6.8 – Build 2574 (正式版)和 5.6.9 – Build 2607 (BETA 版),而这两个版本分别于2021年10月3日和2023年3月12日发布,也就是说已经长时间没有更新了。因为邮件系统的特殊性,如果一个邮件服务器系统长期不更新,一旦被爆出有安全风险,很容易造成信息泄露,甚至可能在不经意间成为一些不法分子的帮凶。但 hMailServer 的官方正式版已经长期不更新了,但又不想迁移到新的邮件服务器系统,那怎么办?
虽然 hMailServer 官方已经宣布该软件不再积极开发或维护,并建议大家迁移到可替代、更可靠的邮件服务器系统,但是 hMailServer 在 Github 上仍不时地对代码进行更新,对于不想更换邮件服务器软件的朋友来说,只要具备一定的技术能力,可以把代码下载下来,自行编译和封装,然后在邮件服务器系统上执行更新操作。那如果不懂怎么编译呢?该怎么办?没关系,网上有些朋友已经把这些编译了下来,并提供了安装程序,放到了互联网上,有兴趣的可以进入这个页面进行查看:https://d-fault.nl/files/hMailServer-Builds/ 。截止至目前为止,这个页面提供了 5.6.9-B2641(32位)、5.7.0-B2730-x64(64位)两个版本,大家可以根据自己的实际情况进行选择,不过个人建议,如果版本跨度不是很大的,建议直接上 5.7.0-B2730-x64(64位),64位版可以解决一些内存不足所引起的问题,像笔者就遇到了下面的这种情况:
在 hMailServer(5.6.9 – Build 2607)的 Log 目录下发现若干 dmp 文件,抽出其中一个文件,使用 windbg 工具进行分析,分析结论是:hMailServer.exe 在尝试分配内存时(调用 new 运算符),抛出了 std::bad_alloc 异常。这意味着系统内存不足,或者该进程的虚拟地址空间已被耗尽,此外,也有很大概率是由内存碎片或句柄耗尽导致的,而不是真的没有物理内存可用。根据相关的资料,要解决这种问题,建议升级到64位版本。

但是在升级之前,建议先仿照现实环境,建立一个测试环境,在测试环境中测试 hMailServer 的升级,测试结束并且通过之后才能在正式环境中进行升级,并且在升级之前做好程序文件、配置文件、邮件数据以及数据库的备份,一旦出现升级失败或其它异常情况,可以用备份数据进行恢复。笔者就是在测试环境中完成了测试之后,才在朋友公司的正式环境下进行升级的。升级之前,先做好备份操作,备份结束之后再执行5.7.0-B2730-x64的安装程序进行升级。升级之后,通过 hMailServer 的管理控制台查看各项功能是否正常,使用客户端连接 hMailServer 邮件服务器和测试邮件收发,最后测试一下与 Webmail 系统的连接,以上都试了一遍,除了控制台语言问题,未出现过其它的意外情况,一切顺利。

至于语言问题,可能是在升级过程中把language目录下的简体中文配置文件删除了,导致在进入控制台管理程序之后提示“The language which hMailServer is configured to use chinese is no avaiable”(hMailServer 设置的中文语言不可用),然后使用英文代替。

解决过程也比较简单,可以在以下链接下载简体中文语言包,放到language目录下,然后到bin目录下找到并打开“hMailServer”文件,把配置文件中的“ValidLanguages=english,swedish”改为“ValidLanguages=chinese,english,swedish”(即在“english”前增加“chinese,”)然后保存退出,到 Windows 的服务控制台中重启 hMailServer 服务,最后打开 hMailServer 管理控制台,点击“File”——“Select language”菜单,选择“chinese”,点击“OK”按钮,把语言切换到简体中文。语言包文件如下(适用于5.7.0-B2730-x64 版本,其它版本未做测试):
链接: https://pan.baidu.com/s/1wKKEqVy4rQ1w6cT8cvWmOA?pwd=s69k 提取码: s69k 解压密码:www.cntse.com
上述链接中的文件因为不是来自于 hMailServer 官方,而是来自于第三方提供的程序,存在着一定的风险,建议大家先在测试环境里面进行测试,确认安全之后方可做后续的操作。
以上方案仅作为暂时的过渡措施,并非长久之策。即使是最新的社区编译版本,据社区反馈仍可能依赖被视为不安全的算法(如 SHA1)和过时版本的 OpenSSL,存在已知安全风险。如有条件,建议尽早规划迁移至仍在活跃维护的邮件服务器系统。

注:本文仅代表作者个人观点,系技术经验分享,不具权威性和普适性。涉及的任何软件操作均存在风险,请在测试环境充分验证后再应用于生产。文中第三方资源链接仅供参考,作者不对其安全性及可用性负责。读者据此操作,一切后果自行承担。








