2010-06-09 180 views
2

我有一个PEAR邮件脚本,用于从客户网站发送简讯。我之前使用过相同的代码来生成另一个通讯系统,它运行良好并且已被用于发送电子邮件到各种地址,但是我们的最新客户端并未收到任何电子邮件。PEAR邮件不发送到某些电子邮件地址

当通讯从网站发送到各种订户(包括Gmail,Hotmail,雅虎和我们自己的公司电子邮件)时,除客户电子邮件地址以外的所有电子邮件均可正确接收。由于邮件系统和我们自己的邮件系统之间没有任何区别,我们必须得出结论,这与域名有关。

电子邮件正在从系统发送到地址,因为我有一个日志文件存储邮件输出功能时的电子邮件地址,但通讯从不出现在收件箱中。我为该域创建了一个新的电子邮件帐户,并且也没有收到该电子邮件。它不会进入垃圾邮件文件夹,因为webmail系统通过向主题添加垃圾邮件来标记垃圾邮件。

我试图登录是否有使用以下

$mail =& Mail::factory('mail'); 

foreach($subscribers as $recipient) 
{ 
    $send_newsletter = $mail->send($recipient, $headers, $body); 

    // LOG INFO 
    $message = $recipient; 

    if($send_newsletter) 
    { 
     $message .= ' SENT'; 
    } 
    elseif(PEAR::isError($send_newsletter)) 
    { 
     $message .= ' ERROR: '.$send_newsletter->getMessage(); 
    }   
    $message .= ' | '; 
    fwrite($log_file,$message); 
} 

但是这个简单找来所有收件人回报任何错误,所以在理论上没有什么错的邮件功能。 [编辑 - 虽然我刚刚注意到这可能不起作用,因为我使用'邮件'类型和错误报告似乎只适用于'sendmail'或'smtp' - 是这样吗?)

I对PEAR或邮件功能不了解太多,所以我可能会错过一些重要的东西,但我一直以为看到发生的最后一件事是发送电子邮件,这似乎工作,那么它应该达到客户收件箱。

什么原因导致某个特定域名在其他域名托管于同一家公司时可能无法接收电子邮件?

任何帮助都非常感谢,因为客户和我自己都感到困惑和沮丧的整个事情。

干杯

回答

0

似乎在使用邮件选项进行出厂设置时发生了一些情况。当我将它设置为SMTP时,它会正确发送到所有电子邮件地址。

如果有人有任何想法,为什么这是,请让我知道。能够分类某些东西真是太好了,但最好知道为什么某些东西不起作用。

1

PHP的邮件功能实际上不会将电子邮件发送到收件人的邮箱。它只是将邮件发送到您的服务器的实际邮件服务器软件(postfix,sendmail,exim等),而这就是实际的交付工作。

由于大多数邮件正在通过,显然脚本的工作。因此,请检查服务器的邮件日志(大多数类Unix系统上的/ var/log/maillog)并搜索相关的电子邮件地址。如果在将邮件发送到收件人的邮件服务器时出现问题,则会将其记录在此处。

原因传递失败:

a)接收邮件服务器(客户端)非常挑剔的邮件头和你的服务器在过度宽松的格式 b送出的东西)服务器的一个或多个(直接或通过从整个网络块余波被列)反垃圾邮件RBL列出了客户端服务器预订 C)客户端服务器执行灰名单,你的服务器灰名单超时期满

不管它是什么之前放弃,梳理你的邮件服务器的日志,看看收件人的电子邮件地址发生了什么。如果因任何原因而弹跳,它将被记录下来,并可以从那里开始工作。如果发现邮件已发送(“250 OK”类型的邮件为发送状态),那么它就在客户端,因为电子邮件已成功发送到他们的系统,您需要他们帮助调试它。

+0

感谢Marc的回复,帮助我理解它是如何工作的。我会看看服务器日志,看看我遇到了什么。 使我困惑的主要原因是客户端邮件服务器和我自己的公司都由同一个提供商托管,并由我们控制(尽管可能不在同一个共享服务器上)与发送电子邮件的服务器(尽管这是一个专用服务器),所以理论上它应该具有相同的黑名单,如果这是问题。 – andyface 2010-06-10 10:45:59

相关问题