PHP mail() - Exchange 2003不接收电子邮件

时间:2015-05-15 12:41:31

标签: php email exchange-server

我有一个PHP mail()脚本,用于发送包含嵌入图像的HTML电子邮件。

代码基本上是这样的:

mail($to, $subject, $message, $headers);

标题是这样的:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="--a9cf4407bac7d49ebd2d94af284cb0d8"
From: Myname <name@domain.co.uk>
Reply-To: name@domain.co.uk

该电子邮件适用于所有outlook.com和gmail.com地址。我已经测试过,当发送到运行Microsoft Exchange 2003的办公室时,电子邮件无法提供。它甚至没有到达困扰我的日志。 Exchange没有阻止电子邮件,甚至没有收到它。

是否存在已知的PHP / Exchange 2003冲突?或者其他地方的问题是什么?

如果需要,我很乐意提供更多代码。

2 个答案:

答案 0 :(得分:0)

您似乎正在使用php的本机邮件功能。配置和排除故障通常很麻烦。

通过查看PHPMailer或Swift Mailer,您可以节省大量时间。这些库经常被维护和修复,以便与交换和其他系统保持兼容。

此外,通过交换,您可以更轻松地在其上设置电子邮件帐户并让您的应用程序使用它。

答案 1 :(得分:0)

几年前我有同样的症状,如果你的问题与我的问题相同,你会惊讶地发现它与你的代码无关。

就我而言,我是从内部托管的Web服务器向内部托管的邮件服务器发送邮件。 Web服务器位于DMZ接口(防火墙/网络术语)中,邮件服务器位于内部接口上。每个接口都在不同的IP子网上运行(再次是网络设备)。邮件域的DNS(mail.ourdomain.com)已解析为防火墙的外部IP - 配置为将该流量路由到内部邮件服务器。但是,该配置仅适用于来自外部接口(外部流量)的流量。来自DMZ界面的流量(从我们的网络服务器发送的邮件)无法路由到内部邮件服务器。

您可以快速检查一下是否有同样的问题。 SSH到您的Web服务器并尝试使用DNS名称ping邮件服务器。

ping mail.domain.co.uk

如果您收到回复,那么这可能不是同一个问题。

否则,请与负责防火墙/网络安全的人员一起检查并与他们合作,找出从网络服务器到邮件服务器的流量需要做些什么。在我们的例子中,我们为mail.domain.com添加了一个hosts文件条目,解析为邮件服务器的内部IP而不是外部IP。