我与我们的开发团队讨论了在应用程序服务器上安装本地 MTA,或者他们是否应该使用位于内部网络上的 MTA 服务器来发送电子邮件。两种解决方案各有利弊。
优点:发送电子邮件的程序可以将其发送到本地 MTA,而无需担心发送、重试或任何可能出现的错误。
缺点:发送电子邮件的用户可能会被告知发送邮件有问题。如果远程服务器不可用,程序可以立即检测到。缺点:安全性。必须充分配置本地 MTA 以确保服务器的安全 缺点:过程中增加了一层复杂性。
在我看来,我们应该保持简单。我们不是在谈论与不受我们控制且我们不知道其状态的 MTA 服务器进行通信的程序。在我看来,如果您不确定您的对应部件,则有一个本地 MTA 是必要的,但是在这里,该程序会将其交付给“已知”的 MTA 系统。所以我认为额外的层是没有必要的。此外,在尝试发送电子邮件的每个系统上都有一个本地 MTA 也可能导致额外的问题/错误和更多的管理任务(维护/修补)。有人可能会说,在 Unix 系统上,您总是有一个本地 MTA(sendmail)在运行,但在我们的组织中,我们将系统剥离到最低限度,以确保不会运行额外的服务,这可能会导致潜在的风险。
但是,我很想知道您将如何设计基础设施,记住您与已知/受控/受监控的 MTA 系统进行通信。还是只是观点问题?
非常感谢您的反馈。
伊夫