PHP mail()有时可以工作,但不';其他时间

PHP mail()有时可以工作,但不';其他时间,php,email,sendmail,Php,Email,Sendmail,我正在尝试为我正在建设的网站设置确认电子邮件,以便人们必须验证他们的电子邮件地址才能访问他们的帐户。我已经测试了这个过程,它对我很有效。我让其他人测试过,但对他们不起作用 我遇到的问题是,它偶尔工作。因此,我编写了一个虚拟脚本来测试服务器上的电子邮件发送。有些电子邮件每次都会收到一封电子邮件。其他人从未收到过电子邮件。因此,它适用于某些电子邮件,但不适用于其他电子邮件。从来没有一次我在一次测试中得到了一个,而在下一次测试中没有(使用相同的电子邮件地址进行测试)。抱歉,如果它是任意审查电子邮件地址

我正在尝试为我正在建设的网站设置确认电子邮件,以便人们必须验证他们的电子邮件地址才能访问他们的帐户。我已经测试了这个过程,它对我很有效。我让其他人测试过,但对他们不起作用

我遇到的问题是,它偶尔工作。因此,我编写了一个虚拟脚本来测试服务器上的电子邮件发送。有些电子邮件每次都会收到一封电子邮件。其他人从未收到过电子邮件。因此,它适用于某些电子邮件,但不适用于其他电子邮件。从来没有一次我在一次测试中得到了一个,而在下一次测试中没有(使用相同的电子邮件地址进行测试)。抱歉,如果它是任意审查电子邮件地址,但其中一些不是我的

这些电子邮件始终有效:

r-----@gmail.com

r-----@automatedtrafficsuite.com

s-----@automatedtrafficsuite.com

n--@allthecrazemedia.com

这些电子邮件永远不会起作用:

r-----@gatewaywd.com

r.l@gatewaywd.com

s--@jtau.net

a---@a----morrison.com

t*@***levelmediainc.com

下面是我编写的虚拟脚本(除了硬编码电子邮件)中的代码,与正常过程相同

        // SET EMAIL SUBJECT AND TO
    $to = 'ricky@gatewaywd.com';
    $subject = 'Activate Your Automated Traffic Suite Account!';

    // SET EMAIL HEADERS
    $headers = "From: ATS Activation <noreply@automatedtrafficsuite.com>\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    // MUST BE SETUP FOR HTML EMAIL
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

    // PREPARE THE EMAIL BODY MESSAGE
    $message = "Thank you for signing up for Automated Traffic Suite. Your login information is below but please note that you will not be able to use your account until you activate your account using the link at the end of this email:<br><br>";
    $message .= "You signed up on ". date("F j, Y") . " at " . date("g:i A e") . "<br><br>";
    $message .= "Login: ricky";
    $message .= "<br>Password: testing";
    $message .= "<br><br>To activate your account, please visit:<br>";
    $message .= "http://www.automatedtrafficsuite.com/activate/" . $to;

    $sent = mail($to, $subject, $message, $headers);
    if($sent) {
        echo 'Please check ' . $to . ' for the confirmation link to activate your account and sign in.';
    } else {
        echo 'Failed.';
    }
//设置电子邮件主题和
$to$ricky@gatewaywd.com';
$subject='激活您的自动流量套件帐户!';
//设置电子邮件标题
$headers=“From:ATS激活\r\n”;
$headers.=“MIME版本:1.0\r\n”;
//必须为HTML电子邮件设置
$headers.=“内容类型:text/html;字符集=iso-8859-1\r\n”;
//准备电子邮件正文消息
$message=“感谢您注册Automated Traffic Suite。您的登录信息如下所示,但请注意,在您使用此电子邮件末尾的链接激活您的帐户之前,您将无法使用您的帐户:

”; $message.=“您已注册”。日期(“F j,Y”)。“在”。日期(“g:IAE”)。“

”; $message.=“登录名:ricky”; $message.=“
密码:测试”; $message.=“

要激活您的帐户,请访问:
”; $message.=”http://www.automatedtrafficsuite.com/activate/" . $到 $sent=邮件($to、$subject、$message、$headers); 如果($已发送){ echo“请检查”。$to。“以获取激活您的帐户并登录的确认链接。”; }否则{ echo“失败”; }
我不知道问题是什么,以前也从未遇到过这个问题。我已经测试了每封电子邮件,看看它们是否发送/接收电子邮件到其他电子邮件地址,并且都能正常工作。因此,我不确定服务器为什么发送一些而不发送其他,以及为什么函数在不工作时返回true。任何和所有的帮助都将不胜感激


如果我忘了包括一些内容,请让我知道。

检查邮件服务器的发送邮件日志,并查看是否有退票。如果接收服务器正在悄悄地将您的邮件作为垃圾邮件丢弃,那么您对此无能为力。这不是100%正确的,您可以检查您的ip是否在RBL()中,我每天都会检查我们的day@MarcB-这可能是个愚蠢的问题,但我能做些什么来防止这种情况发生?例如,我拥有gatewaywd.com,那么我是否有办法阻止我的主机将其作为垃圾邮件丢弃?如果我能做到这一点,它将证实这一点,因为我的服务器的电子邮件地址都没有收到电子邮件。因此,如果我能以某种方式将其列入白名单,然后我开始收到电子邮件,我肯定知道这就是原因。不过,谢谢你的洞察力。我很感激。在这个网站上还有很多关于防止你的电子邮件被当作垃圾邮件扔掉的问答。最大的:不要使用mail()。它生成的电子邮件往往会被标记。使用phpmailer或swiftmailer。使用经过认证的传出smtp主机,使用域密钥/SPF记录等。与主机一起检查,了解他们在gatewaywd.com上可能有哪些垃圾邮件过滤功能--阅读并执行本文中建议的所有操作: