如何设置 sendmail 将所有邮件转发到外部 MTA?

如何设置 sendmail 将所有邮件转发到外部 MTA?

我们有多个应用程序当前通过 SMTP 与外部 MTA 通信。这些电子邮件有任意目标域(它们是要发送给我们用户的电子邮件),但都来自同一个内部域([电子邮件保护])。

我想设置一个内部 MTA(我猜是用 sendmail)来排队所有邮件,并让内部 MTA 将这些电子邮件转发到外部 MTA,因为外部 MTA 偶尔会宕机,这会导致我们的应用程序出现各种问题。我想我可以将 sendmail 设置为排队中间件。

如果上述假设正确,那么 sendmail 配置将会是什么样的?'mailertable' 功能看起来很有前途,'SMART_HOST' 也是如此。

在我探索这些可能性之前有什么想法吗?

答案1

智能主机确实是正确的选择,但空客户端是。示例:

FEATURE(`nullclient',`mta.external.com') dnl
define(`SMART_HOST',`mta.external.com') dnl

基本区别在于,与 SMART_HOST 相反,nullclient 还会将本地用户的消息转发到远程主机。SMART_HOST 仅将非本地用户的消息转发到远程主机。此外,在与问题中描述的情况类似的情况下,以下选项可能很有用:LOCAL_RELAY、MAIL_HUB、LUSER_RELAY

我在这里找到了对这些选项的很好的解释:http://docstore.mik.ua/orelly/other/Sendmail_3rd/1565928393_sendmail3-chp-4-sect-5.html

另请参阅此帖子sendmail 将本地邮件转发到中继主机

我知道这个问题已经过时了,但发布这些信息似乎很合适。我花了一段时间才把所有信息收集到一起。

答案2

此类配置(将所有邮件转发至单个其他 MTA)称为“nullclient”配置。以下是一些可用的指南:

对于 sendmail,您需要做的就是:

FEATURE(`nullclient', `mailhub.domain.notused')dnl

一些发行版(openSuSE)为此目的提供了单独的“nullclient.mc”配置文件。

答案3

SMART_HOST 参数正是您要找的。确切的配置细节将取决于您的 sendmail 版本,但它相当简单。在配置外部 MTA 时,您将指定其名称作为智能主机。(确保您配置的机器也可以解析智能主机的名称。)

答案4

这个问题与之前问过的一些问题非常相似。

考虑使用 SSMTP 作为我的在这里回答

避免使用 Sendmail 执行如此简单的任务所带来的复杂性和安全问题。

相关内容