Я пытаюсь запустить хрон, который выполняет следующий PHP код:Godaddy хрон отправляет только одно сообщение
<?php
require 'public_html/db.php';
mysql_query("SET NAMES utf8");
$aa = mysql_query("SELECT * from send where sent='0' LIMIT 20");
while($rw = mysql_fetch_array($aa)) {
$id = $rw ['id'];
$email = $rw ['email'];
$nick_sent= $rw ['nick'];
$nick_rw = $rw ['nick_pr'];
require 'public_html/mailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->setFrom('[email protected]', 'Email');
$mail->addReplyTo('[email protected]', 'Email');
$mail->addAddress($email);
$mail->IsHTML(true);
$mail->Subject = 'Message';
$mail->Body = 'My message';
$mail->CharSet = "utf-8";
if ($mail->send()) {
mysql_query("UPDATE send SET sent = '1' WHERE id='$id'");}
}
?>
Если я получить доступ к файлу непосредственно через браузер, он отлично работает. Однако, если вы запускаете его с помощью задания cron, он будет выполнять только код while ONCE ... что означает, что он вытаскивает первую строку из базы данных MySQL и отправляет ОДИН электронный адрес, когда он должен вытягивать несколько строк и отправлять несколько писем. Можете ли вы, ребята, помочь мне? Благодарю.
Возможно, GoDaddy предотвращает отправку более одного письма изнутри cron? Попробуйте поместить количество строк, возвращенных в вашем электронном письме, чтобы узнать, что на самом деле возвращается запросом. – BillK
может быть наложенным почтовым переводом, предотвращенным вашим поставщиком услуг .ask godaddy – JYoThI
, пожалуйста, используйте require_once вместо требуемого, и вытащите его из цикла –