在边缘节点上复刻服务器邮件通知环境:Postfix 本机中继方案实践
背景 在多台服务器和个人设备组成的运维环境中,系统通知邮件是一项非常基础但重要的能力。备份任务、定时任务、系统服务、自动化脚本和监控程序,都可能需要在异常发生时主动发出通知。 已有几台系统已经具备稳定的本机邮件发送能力。这些系统并不直接对外提供邮件服务,也不负责接收邮件,而是通过本机邮件程序把通知交给 Postfix,再由 Postfix 中继到外部 SMTP 服务器。新的边缘节点也需要具备同样的能力,以便后续承载系统通知、自动化任务提醒和本机代理程序通知。 目标不是搭建完整邮件服务器,而是搭建一个安全、轻量、统一的本机发信环境。 目标设计 最终目标如下: 该方案具备几个特点: 既有系统方案盘点 在正式搭建新节点之前,先对已有系统进行了只读检查。检查对象包括两类服务器节点和一台桌面工作站。 检查重点包括: 盘点结果显示,已有几台系统虽然发行版不同,但实际发信路径已经收敛到同一种思路: 其中,Debian/Ubuntu 系系统使用 hash:/etc/postfix/… 类型的 Postfix 映射文件;Arch 系系统则使用 lmdb:/etc/postfix/… 类型的映射文件。这一点非常重要,因为不同发行版的 Postfix 默认映射类型可能不同,不能直接照抄。 新节点是 Ubuntu 系统,因此更适合复刻 Debian/Ubuntu 系的 Postfix hash 方案,而不是照搬 Arch 系的 lmdb 方案。 为什么选择 Postfix,而不是 msmtp 轻量脚本发信可以使用 msmtp,但如果目标是让整个系统具备统一发信能力,Postfix 更合适。 原因包括: 因此,新节点采用: 而不是: 安全边界 该方案的安全边界非常明确: …