PHP邮件功能中的奇怪行为,地址不存在

时间:2009-09-15 19:57:49

标签: php email smtp

我最近与客户有这个问题。代码如下:

ini_set( "sendmail_from", "noreply@<current-domain>.com" );

// $target_email has been validated as a value username.
// $subject is a simple String.
// $message is an HTML message.
mail( $target_email, $subject, $message );

当我在我的机器上测试它时,它工作正常。当我在家里,在工作中,在Windows 2000(IE6),XP(四种不同的机器和一个VirtualBox实例)(IE6&amp; 7,Opera 9,Firefox 3)和Vista(IE 7)上进行测试时,以及通过Ubuntu上的Konquerer和Firefox(在两台不同的机器上),它运行良好(我没有Mac)。我曾在四个不同的网络和三个不同的县试过这个网站。我尽我所能打破了这个网站,我没有收到任何错误,电子邮件来自noreply @&lt; current-domain&gt; .com迅速到达预期的地址。

当我的客户在他的办公室对其进行测试时,他收到了SMTP错误,说noreply @&lt; current-domain&gt; .com这个名称不存在,并且他没有收到该电子邮件。但是在我的服务器上运行时,相同的行工作正常(基本的LAMP设置运行PHP 5.3,它们有Windows 5.2.6)。

究竟发生了什么?我最好的猜测是,这是一个奇怪的Windows服务器问题,我没有其他可能的最模糊。不幸的是,我无法看到他们如何配置他们的本地机器来测试这个理论。

1 个答案:

答案 0 :(得分:0)

我的猜测:客户端SMTP服务器被配置为仅中继已知(例如:来自Active Directory)地址的邮件并拒绝(理所当然地,可能会争辩)所有其他“发件人”?客户端域中是否存在noreply地址?

尝试从“已知”良好的user@clientdomain.com地址发送邮件,telnet到smtp服务器,...以尝试缩小问题范围。