代码之家  ›  专栏  ›  技术社区  ›  cwallenpoole

php邮件函数中的奇怪行为,地址不存在

  •  0
  • cwallenpoole  · 技术社区  · 15 年前

    我最近和一个客户有过这个问题。代码读取:

    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&7、Opera 9、Firefox 3)和Vista(IE 7)上测试它时,以及通过Ubuntu上的konquerer和firefox(在两台不同的机器上),它工作得很好(我没有Mac)。我在四个不同的网络和三个不同的县尝试过这个网站。我竭尽所能破坏了这个网站,没有收到任何错误,电子邮件来自noreply@<current domain>.com,很快就到达了预期的地址。

    当我的客户在他的办公室测试它时,他收到了一个SMTP错误,说noreply@<current domain>.com名称不存在,他没有收到电子邮件。但在我的服务器上运行时,同样的行也可以正常工作(运行php 5.3的basic lamp设置,它们有Windows5.2.6)。

    到底发生了什么?我的最佳猜测是,这是一个奇怪的Windows服务器问题,我不知道还有什么可能。不幸的是,我无法看到他们如何配置本地机器来测试这个理论。

    1 回复  |  直到 12 年前
        1
  •  0
  •   ChristopheD    15 年前

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

    尝试从“已知”的good user@clientdomain.com地址、telnet向SMTP服务器发送邮件…试图缩小问题范围。