我使用的 PHP 邮件功能无法完全正常工作。它可以很轻松地将邮件发送到 GMail。但是,直接路由到我内部托管的 Exchange 服务器的电子邮件无法通过。
服务器/域的设置如下。
URL 已通过网络解决方案 ( www.independentsservice.com
& www.isco.net
) 注册。
NS 将所有流量导向我们的 ISP(Socket.net
)。Socket 导向如下:
- 邮寄到我们的本地服务器
- 通过 FTP 连接到我们的本地服务器
- HTTP 到我们的网站托管于
Chihost.com
此外,电子邮件源自位于 chihost 的外部服务器。PHP 就是在那里执行的。
到我们本地服务器的流量会经过 Watchguard 防火墙,该防火墙会将邮件流量路由到我们本地托管的 Exchange 服务器。
由于某种原因导致交易所不接受这些电子邮件?
答案1
使用 PHP 的服务器是基于 Linux 还是 Windows?目前我假设它是基于 Linux 的。无论如何,下面的一些建议都是有效的,你只需要采取略有不同的方法。
首先要确定电子邮件是否到达了您的 Exchange 服务器。当您 ping 域时,您是否获得了预期的 IP 地址?
发出的电子邮件应该有一个“Return-Path”标头。如果 Exchange 拒绝了该电子邮件,您应该会收到“Return-Path”中地址的回复,说明电子邮件被拒绝的原因。通常,sendmail 的退回邮件最终会进入 /var/mail。
使用 PHP 的邮件功能时,需要注意以下几点。您是否设置了“发件人:”标头?该地址是否可访问?如果您要设置标头(至少应设置发件人:),请确保标头后没有任何尾随行。有些邮件服务器不喜欢这样。
最后要检查的是电子邮件标头中的传出 IP 地址。有时 sendmail 会输入 127.0.0.1 而不是公共 IP 地址。这在过去给我带来了问题。由于 sendmail 很难配置,我最终使用了 postfix。
另一件需要考虑的事情是,您可以尝试配置 PHP 以使用您的 Exchange 服务器发送电子邮件,而不是从 PHP 框上的本地服务器发送邮件。