1
我試圖運行執行下面的PHP代碼cron作業:如果我直接通過瀏覽器訪問該文件Godaddy的cron作業只發送一個電子郵件
<?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作業運行它,它將僅執行代碼ONCE ...意味着它只會將第一行從MySQL數據庫中拉出併發送一封電子郵件,當它應該拉動多行併發送多封電子郵件時。你們能幫我嗎?謝謝。
也許GoDaddy的防止從cron中發送多個電子郵件?嘗試將您在電子郵件中返回的行數看作實際返回的查詢結果。 – BillK
可能是您的服務提供商阻止的大容量郵件.ask godaddy – JYoThI
請使用require_once而不是require,並將其從循環中取出 –