2009-09-15 113 views
0

我最近在客户端遇到了这个问题。代码如下:PHP邮件功能中的奇怪行为,地址不存在

ini_set("sendmail_from", "[email protected]<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 & 7,Opera 9,Firefox 3)和Vista(IE 7)上测试它时,以及通过Ubuntu上的Konquerer和Firefox(在两台不同的机器上),它工作正常(我没有Mac)。我曾在四个不同的网络和三个不同的县尝试过这个网站。我竭尽所能地打破这个网站,并且我没有收到任何错误,并且电子邮件立即从noreply @ <当前域名> .com发送到预期地址。

当我的客户在他的办公室进行测试时,他得到了一个SMTP错误,说名字noreply @ <当前域>.com不存在,他没有收到电子邮件。但在我的服务器上运行时,同样的线路运行正常(基本LAMP设置运行PHP 5.3,它们具有Windows 5.2.6)。

究竟发生了什么?我最好的猜测是,这是一些奇怪的Windows服务器问题,我不知道它会是什么。不幸的是,我无法看到他们如何配置他们的本地机器来测试这个理论。

回答

0

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

尝试从'已知'好的[email protected]地址发送邮件,telnet到smtp服务器,...尝试缩小问题范围。

+0

会导致网站显示“用户不存在”,当他们查看网站?即使他们的电子邮件系统拒绝服务器发送的任何内容,PHP的行为也不应该相同吗? – cwallenpoole 2009-09-16 13:47:52