我有一组服务器,每个服务器都有自己的任务。Web 服务器、计费服务器、游戏服务器。每个服务器都需要发送面向客户的电子邮件,或者只是将其系统邮件发送到一个地址,以便于管理。
我有一个邮件服务器设置来接收所有传入邮件,使用 postfix、dovecot 等。
我知道我需要在每台服务器上安装 postfix,但是它们是否都需要进行完整的设置(包括 dns spf 记录等),或者它们是否都应该将邮件服务器用作远程 smtp 服务器,并将所有出站邮件都从这个箱子中发出?
答案1
不知道为什么你会说:“我知道我需要在这些服务器上安装 Postfix”。除非你的各种应用程序需要它(这很奇怪)来发送任何东西,否则你可以让一台服务器安装 Postfix,而你的所有其他服务器只需配置它们的 SMTP 服务器就是你运行 Postfix 的服务器即可。
但是,您可能希望在每台服务器上都使用 Postfix,这是出于故障安全原因。假设 ServerA 运行 Postfix,而 ServerB 是您的 Web 服务器。ServerB 想要发送电子邮件消息并尝试通过 ServerA 发送,但 ServerA 已关闭。现在会发生什么?用户收到错误?如果您在每台服务器上都有本地 Postfix,则邮件会被接受,并且由于 ServerA 已关闭,因此邮件会被推迟并重试。
总体而言,我建议只配置其中一台服务器来发送电子邮件,这样您只需为一台电子邮件服务器配置 SPF、电子邮件路由等。如果您实施了上述第 2 点(如果您有充分的理由实施它),那么您的 Web 服务器等只需在 Postfix 中设置一行,即可使每封电子邮件都通过您的 1 台 Postfix 服务器进行中继。如果您在每台机器上都没有 Postfix 服务器,那么您的 Web 应用程序等将使用 Postfix 服务器配置为 SMTP。
最后,还有一点建议。如果您要为各种应用程序发送邮件,并且这些应用程序非常不同,您可能希望每个应用程序都从自己的 IP 地址发送电子邮件。这是为了防止一台可能产生大量流量的服务器被标记为垃圾邮件,现在您的所有电子邮件都被标记为垃圾邮件。例如,通过不同的网关(IP 地址)发送批量电子邮件、通信电子邮件和交易电子邮件(订单确认等)是一种很好的做法,这样就不会影响您到达收件箱的机会。(例如,Return Path 上有很多关于此内容的文档)。
因此,正确的实施实际上取决于您的确切需求、数量、应用程序类型。但这应该为人们提供良好的指导。
答案2
我建议将所有服务器配置为卫星服务器,将其邮件发送到中央后缀。这有一些好处:
更易于维护,因为您只需要配置一个具有 SPF、垃圾邮件防御、邮件路由等功能的邮件网关。所有其他节点只需将其邮件发送到网关节点即可。
传入邮件仅需要由一台服务器处理(只要您的卫星节点不需要处理传入邮件)。