Ошибка на моем первом задании CRON... [Сообщение об ошибке включено]
У меня небольшая проблема с работой 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";
}
}
?>
ОШИБКА E-MAIL:
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"
1 ответ
Я переписал свой код, и это сработало... Решение состояло в том, чтобы сначала извлечь контент и использовать цикл while для отправки контента по электронной почте один за другим вместо добавления всех электронных писем в BCC: список...
//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";
}
}
?>