PHP mail()有时可以工作,但有时则不然

时间:2013-07-29 19:39:24

标签: php email sendmail

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

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

这些电子邮件始终有效:

ř----- @ gmail.com

ř----- @ automatedtrafficsuite.com

取值------ @ automatedtrafficsuite.com

<磷>氮--- @ allthecrazemedia.com

这些电子邮件从不起作用:

[R ---- @ gatewaywd.com

[R ----。升--- @ gatewaywd.com

秒 - @ jtau.net

一个------ @一个------ 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.';
    }

我不知道问题是什么,以前从未遇到过这个问题。我已经测试了每封电子邮件,看看他们是否向其他电子邮件地址发送/接收电子邮件,但这些邮件都有效。所以我不确定为什么服务器发送一些而不发送其他服务器,以及为什么函数在它不工作时返回true。任何和所有的帮助将不胜感激。

如果我忘记包含某些内容,请告诉我。

0 个答案:

没有答案