将 sendmail 配置为多域中继服务器

将 sendmail 配置为多域中继服务器

我有几个不同的服务器,它们内部运行不同的操作系统,每个服务器处理特定域的电子邮件。由于我只有一个面向公众的 IP,所以我想配置我的基于 CentOS 的服务器,使其只接受来自外部世界的特定域的传入消息,然后根据收件人域将这些消息转发到适当的内部服务器。

我不想破解 DNS 来实现这一点。我知道我可以在 CentOS 服务器上简单地创建区域,其中 MX 条目指向正确的内部地址,但这有点不切实际。我需要该机器继续使用每个域区域的公开版本,所以这不是一个选择。顺便说一句,所有正确的 MX 条目都已指向我的面向公众的 IP 地址。

我读了一些关于智能表的文章,似乎只检查发件人的域。我可能错了,所以没有排除这种可能性。

Sendmail 能解决这个问题吗?如果能,我可以使用哪些配置选项和功能来实现?如果能提供示例,我将不胜感激。

答案1

我们正是这么做的。

您需要在两个配置文件中进行输入。

首先,在 中输入您要中继的域/etc/mail/relay-domains,每行一个。包括所有变体。

其次,在 中/etc/mail/mailertable,您必须告诉 sendmail 如何处理发往该域的邮件。

例子:

/etc/mail/relay-domains

exampledomain.com
otherdomain.com

/etc/mail/mailertable

exampledomain.com    relay:mailboxes.exampledomain.com

记得运行 make/etc/mail以使更改mailertable生效。

请注意,如果您没有为域名输入条目mailertable,它将查阅 DNS 并尝试发送到“更好”的 MX;如果 DNS 没有任何用处,它将尝试在本地传递邮件(并会失败,除非您已篡改/etc/mail/local-host-names)。

相关内容