Sendmail 不会发送到同一个域

Sendmail 不会发送到同一个域

我在我的网络服务器上使用 sendmail,到目前为止运行良好。但是,当我将电子邮件发送到我发送它们的同一域时,它们从未被送达。我暂时将应用程序中的电子邮件信息更改为另一个域,此时它发送到我的域邮件帐户没有问题。

// does not work
$from = '[email protected]'
$to = '[email protected]'
// works fine
$from = '[email protected]'
$to = '[email protected]'

此外,运行此项服务的服务器与设置了邮件帐户和域的服务器是分开的。(+我在 Linux 上)

sendmail 使用默认配置。

我尝试使用以下命令进行测试,但是似乎收到一堆未验证发件人错误。当我使用我的 gmail 帐户执行此操作时,一切正常。

echo -e "To: [email protected]\nSubject: Test\nTest\n" | sendmail -bm -t -v

编辑

事实证明,它只需要其发件人的电子邮件地址即可。有什么方法可以绕过这个问题吗?

答案1

正如您自己已经发现的那样,这是因为发送地址无效。

大多数邮件服务器在接受电子邮件时都会检查域名是否有效,但通常不会尝试验证实际地址。(有些邮件服务器会在您询问时假装地址存在,即使地址不存在,也会阻止自动系统建立有效地址列表)

但是,您自己的邮件服务器知道 noreply@ 不是一个有效的地址,因此会拒绝该电子邮件。

解决此问题的最简单方法是将 noreply@ 设置为有效地址,然后丢弃发送给它的电子邮件。在 UNIX/Linux 上,您通常可以将地址指向别名中传递到 |/dev/null 的条目。

答案2

在没有更多信息的情况下,我猜想您的本地 smtp 守护程序配置错误,并且正在本地将邮件发送到 @mydomain.com,而不是将其转发到上游。如果您想要更详细的答案,请将您的完整邮件服务器配置添加到您的帖子中。

答案3

您的 smtp 服务正在使用您的内部 dns,它不会将 @mydomain.com 发送到已启用 MX 记录的 Web NS。如果您从该 Web 服务器 ping 您的 mydomain.com,它可能会显示您的 IIS 内部地址。我添加了相同的问题,在我的情况下,由于它是一个没有其他服务的独立服务器,我放置了一个 Web 静态 DNS(如 8.8.8.8)来测试该理论,并且它有效。(假设您在 Windows 服务器上)

相关内容