【问题标题】:Error On My First CRON Job... [Error Message Included]我的第一个 CRON 作业出错... [包括错误消息]
【发布时间】:2013-01-21 20:23:33
【问题描述】:

我在运行 cron 作业时遇到了一点问题。如果数据库中的日期与今天的日期匹配,我创建了这个脚本来帮助我自动发送电子邮件公告,否则它将向管理员发送电子邮件以通知他们没有发送公告。我检查了所有电子邮件以及电子邮件组收件箱都存在,并且没有收到任何电子邮件。下面写的脚本,然后是我在 cron 作业运行时收到的电子邮件错误。提前致谢!

//Set variable which contains the query to the database
$userbcc = $connection->prepare("SELECT email FROM users ORDER BY email ASC") or die("could not connect");

//Execute the query through MySQLi
$userbcc->execute();

//Stores the number for counting
$userbcc->store_result();

//Bind results to their variables
$userbcc->bind_result($email);

//While results 
while ($userbcc->fetch()) {
    $userlist .= $email . ",";
}

//Count the rows
$user_rows = $userbcc->num_rows;

$userbcc->close();


//Set and sanitize the variable which contains perameter
$today = date("Y-m-d 00:00:00");

//Set variable which contains the query to the database
$mailpromo = $connection->prepare("SELECT id,venid,title,intro,body,sdate,edate FROM venpromo WHERE `sdate` =  ?") or die("could not connect");

//Set the query 'WHERE state = ?' to the query
$mailpromo->bind_param("s",$today);

//Execute the query through MySQLi
$mailpromo->execute();

$mailpromo->store_result();

//Bind results to their variables
$mailpromo->bind_result($id,$venid,$title,$intro,$body,$sdate,$edate);

$ad_rows = $mailpromo->num_rows;

//While results 
while ($mailpromo->fetch()) {
    $to = "[EMAIL ADDRESS]";
    $from = "[EMAIL ADDRESS]";
    $subject = "A New Promo Starts Today! \"$title\"";
    $message = "MESSAGE";
        $headers = "From: Norris Portal Intranet System <[EMAIL ADDRESS]>\r\n";
    $headers .= "Reply-To: ". strip_tags($from) . "\r\n";
    $headers .= "BCC: " . substr($userlist, 0, -1) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    if ($from != "" && $to != "" && $subject != "" && $message != "") {
        if (mail($to, $subject, $message, $headers)) {
            $mailsuccess = 1;
        } else {
            $mailfail = "1";
        }
    } else {
        $mailfail = "1";
    }
}

$mailpromo->close();


if ($ad_rows == 0) {
    $to = "[EMAIL ADDRESS]";
    $from = "[EMAIL ADDRESS]";
    $subject = "There were no promo's pulled from today's bulletin.";
    $message = "There were no promo's emailed to the staff today. Only promo's with a start day of today will be emailed to the staff.";
    $headers = "From: Norris Portal Intranet System <[EMAIL ADDRESS]>\r\n";
    $headers .= "Reply-To: ". strip_tags($from) . "\r\n";
    $headers .= "BCC: [EMAIL ADDRESS]\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    if ($from != "" && $to != "" && $subject != "" && $message != "") { 
        if (mail($to, $subject, $message, $headers)) { 
            $mailsuccess = 1;
        } else {
            $mailfail = "1";
        }
    } else {
        $mailfail = "1";
    }
}

?>

错误电子邮件:

220-host238.hostmonster.com ESMTP Exim 4.80 #2 Mon, 21 Jan 2013 13:10:02 -0700 
220-We do not authorize the use of this system to transport unsolicited, 
220 and/or bulk e-mail.
250-host238.hostmonster.com Hello localhost.localdomain [127.0.0.1]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
250-host238.hostmonster.com Hello localhost [127.0.0.1]
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
250 OK
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
550 No Such User Here"

【问题讨论】:

  • $userlist 中的额外逗号?
  • @KarolyHorvath - substr($userlist, 0, -1) 已经从电子邮件列表中删除了最后一个逗号。不过谢谢! (抱歉,我不知道如何将其突出显示为代码。)

标签: php cron mysqli cpanel hostmonster


【解决方案1】:

我重写了我的代码,这很有效...解决方案是首先提取内容并使用 while 循环逐个通过电子邮件发送内容,而不是将所有电子邮件添加到密件抄送:列表...

//Set variable which contains the query to the database
$mailpromo = $connection->prepare("SELECT id,venid,title,intro,body,sdate,edate FROM venpromo WHERE `sdate` =  ?") or die("could not connect");

//Set the query 'WHERE state = ?' to the query
$mailpromo->bind_param("s",$today);

//Execute the query through MySQLi
$mailpromo->execute();

//Stores the number for counting
$mailpromo->store_result();

//Bind results to their variables
$mailpromo->bind_result($id,$venid,$title,$intro,$body,$sdate,$edate);

//Bind results to their variables
$mailpromo->fetch();

//Count the number of bulletins today
$mail_count = $mailpromo->num_rows;

//Close the session
$mailpromo->close();



//Set variable which contains the query to the database
$userbcc = $connection->prepare("SELECT email FROM users") or die("could not connect");

//Execute the query through MySQLi
$userbcc->execute();

//Stores the number for counting
$userbcc->store_result();

//Bind results to their variables
$userbcc->bind_result($email);

//While results 
while ($userbcc->fetch()) {


    $to = $email;
    $from = "[email held]";
    $subject = "A New Promo Starts Today! \"$title\"";
    $message = "[content held]"

    $headers = "From: [email held] \r\n";
    $headers .= "Reply-To: ". strip_tags($from) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    if ($from != "" && $to != "" && $subject != "" && $message != "") {
        if (mail($to, $subject, $message, $headers)) {
            $mailsuccess = 1;
        } else {
            $mailfail = "1";
        }
    } else {
        $mailfail = "1";
    }




}

//Close the session
$userbcc->close();


if ($mail_count == 0) {
    $to = "[email held]";
    $from = "[email held]";
    $subject = "There were no promo's pulled from today's bulletin.";
    $message = "There were no promo's emailed to the staff today. Only promo's with a start day of today will be emailed to the staff.";
    $headers = "[email held]\r\n";
    $headers .= "Reply-To: ". strip_tags($from) . "\r\n";
    $headers .= "BCC: [email held]\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    if ($from != "" && $to != "" && $subject != "" && $message != "") { 
        if (mail($to, $subject, $message, $headers)) { 
            $mailsuccess = 1;
        } else {
            $mailfail = "1";
        }
    } else {
        $mailfail = "1";
    }
}

?>

【讨论】:

    猜你喜欢
    • 2013-01-25
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2015-10-29
    相关资源
    最近更新 更多