我们有多个应用程序当前通过 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”配置。以下是一些可用的指南:
- 后缀:http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client
- 发送邮件:http://www.sendmail.org/m4/features.html
对于 sendmail,您需要做的就是:
FEATURE(`nullclient', `mailhub.domain.notused')dnl
一些发行版(openSuSE)为此目的提供了单独的“nullclient.mc”配置文件。
答案3
SMART_HOST 参数正是您要找的。确切的配置细节将取决于您的 sendmail 版本,但它相当简单。在配置外部 MTA 时,您将指定其名称作为智能主机。(确保您配置的机器也可以解析智能主机的名称。)