强制邮件服务器通过互联网发送而不先进行本地检查

强制邮件服务器通过互联网发送而不先进行本地检查

有什么方法可以阻止邮件服务器在发送电子邮件时进行本地检查并每次都通过互联网发送?

一个例子:

我有一个域名附加到我服务器上的一个帐户以服务网站流量,但客户想使用另一家托管公司来托管他们的电子邮件。

该网站有一个 PHP 联系表单,使用 PHPMailer,需要向他们的电子邮件地址发送电子邮件[电子邮件保护]以及访客的电子邮件地址[电子邮件保护]

有没有什么办法可以做到这一点而不必每次都设置 MX 记录?

谢谢

答案1

如果客户希望使用 B 公司提供邮件主机服务,则MX公共 DNS 数据库中发布的资源记录必须存在,向世界展示 B 公司 SMTP 中继服务器的实际位置。就这么简单。如果他们不这样做,那么世界就会寻找A/AAAA资源记录,并找到您,即 A 公司,而这并不是客户想要的。

一旦您处于这种情况并且MX资源记录集存在,您(提供内容 HTTP 服务的公司 A)就无需做任何特殊的事情。您的 HTTP 服务器以及它们与之通信的 MTA 默认与 Internet 的其余部分处于相同的情况。它们会做其他人所做的事:它们发现邮件要传递到远程域,查找远程域的MX资源记录集,然后将邮件推送到其中列出的 SMTP 中继服务器。

这实际上只是一个问题,你确实做了一些明确改变此默认设置的事情在您的机器上执行此操作 — 例如,明确告诉您的 MTS 相关域是本地域。大多数 MTS 都遵循这样的原则:任何未明确声明为本地的域都是远程的,因此您必须明确执行某些操作来告诉 MTS 不要将域视为远程域。(例如,qmail 如果域未在locals或中明确列出,则该域为远程域virtualdomains. 对于 Postfix,如果域未明确列为 mydestination、虚拟别名或虚拟邮箱,则该域为远程域其他软件的机制不同,但二分法是一样的。)

也许这是您为客户制定的标准程序 — 您告诉 MTS 该域是本地的,同时告诉内容 HTTP 服务器该域与特定的“文档根目录”(或其他)相关联,并告诉内容 DNS 服务器该域在其数据库中。如果是这样,那么简单的答案是那么就不要这么做。 简单地不要做涉及修改您的 MTS 以将域视为本地托管域的部分。

答案2

根据您使用的 MTA,您可以将其设置为将该域的邮件直接发送到接受该域邮件的主机。

对于 sendmail,您可以使用 mailertables;对于 postfix,您可以使用 transport map;对于 exim,您可以为特定域创建一个路由器

相关内容