Haraka邮件服务器3.1.0版本发布:配置重构与功能增强
Haraka是一款基于Node.js开发的高性能SMTP服务器,以其模块化设计和丰富的插件系统著称。最新发布的3.1.0版本对核心配置系统进行了重大重构,并带来了多项功能改进和安全增强。
配置系统的重大重构
3.1.0版本最显著的变化是对配置文件系统的重构,将多个分散的配置文件整合到统一的connection.ini中。这一改变使得配置管理更加集中和直观。
配置文件迁移指南
新版本中,以下旧配置文件已被整合到connection.ini中:
haproxy_hosts→[haproxy] hostssmtpgreeting→[message] greetingehlo_hello_message→[message] heloconnection_close_message→[message] closebanner_includes_uuid→[uuid] banner_charsdeny_includes_uuid→[uuid] deny_charsdatabytes→[max] bytesmax_mime_parts→[max] mime_partsmax_line_length→[max] line_lengthmax_data_line_length→[max] data_line_length
此外,从smtp.ini迁移到connection.ini的配置项包括:
- 所有
headers.*相关配置 main.smtp_utf8main.strict_rfc1869
升级时,管理员需要将原有配置迁移到新文件中,并可以删除已废弃的旧配置文件。
功能改进与插件优化
邮件队列改进
在测试环境中发送邮件时,系统现在会自动为每封邮件附加UUID标识符,避免了测试邮件相互覆盖的问题。这一改进特别适合开发调试和自动化测试场景。
插件系统增强
3.1.0版本对多个内置插件进行了重构和优化:
-
early_talker插件:完全重构为独立插件,移除了旧版配置项
early_talker.pause的支持,现在应通过earlytalker.ini进行配置。 -
mail_from.is_resolvable插件:修复了配置变量路径错误的问题,确保域名解析检查功能正常工作。
-
relay插件:已重新打包为独立的
haraka-plugin-relay插件,提高了模块化程度。
安全性与稳定性提升
TLS连接处理优化
修复了TLS连接处理中的一个重要问题,现在系统会始终正确设置connection.notes.tls属性,确保TLS相关功能在各种情况下都能正常工作。
自定义欢迎消息改进
改进了SMTP连接欢迎消息的处理逻辑,现在支持累积多个自定义欢迎消息,而不是简单地覆盖,使服务器响应更加灵活。
出站邮件处理优化
在出站邮件处理中,当MX记录包含IP地址时,系统现在会正确使用mx.from_dns值,提高了邮件路由的准确性。
开发工具与文档更新
-
测试覆盖率工具:升级至Codecov v5版本,提供更精确的代码覆盖率分析。
-
代码质量检查:ESLint升级至v9版本,采用最新的代码规范检查规则。
-
文档改进:
- 修正了关于
early_talker.delay的错误文档说明(该功能已多年不可用) - 更新了LICENSE文件中的版权年份
- 标记了access、backscatterer和data.headers等已弃用插件的文档状态
- 统一了插件文档中的标题级别标记方式
- 修正了关于
升级建议
对于正在使用Haraka的生产环境,建议在测试环境中先行验证3.1.0版本的兼容性,特别注意:
-
配置文件系统的变化需要仔细处理,确保所有自定义配置正确迁移到新位置。
-
检查所有依赖已弃用插件的功能,考虑替代方案。
-
验证TLS连接和出站邮件路由功能是否正常工作。
-
对于使用早期版本自定义欢迎消息的场景,需要测试新的累积消息机制是否符合预期。
这一版本通过配置系统的简化和多项功能的优化,进一步提升了Haraka的易用性和稳定性,为构建高性能邮件服务提供了更加强大的基础。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C092
baihu-dataset异构数据集“白虎”正式开源——首批开放10w+条真实机器人动作数据,构建具身智能标准化训练基座。00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python058
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
AgentCPM-Explore没有万亿参数的算力堆砌,没有百万级数据的暴力灌入,清华大学自然语言处理实验室、中国人民大学、面壁智能与 OpenBMB 开源社区联合研发的 AgentCPM-Explore 智能体模型基于仅 4B 参数的模型,在深度探索类任务上取得同尺寸模型 SOTA、越级赶上甚至超越 8B 级 SOTA 模型、比肩部分 30B 级以上和闭源大模型的效果,真正让大模型的长程任务处理能力有望部署于端侧。Jinja00