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ジョブを介して実行している場合は、whileコード... ONCEを実行するだけです。つまり、複数の行を取得して複数の電子メールを送信する必要がある場合、MySQLデータベースの最初の行を取り出して1つの電子メールを送信します。みんな助けてくれますか?ありがとう。
多分、GoDaddyはcron内から複数のメールを送信できないのでしょうか?電子メールで返される行の数を入れて、実際にクエリによって返される内容を確認してください。 – BillK
はサービスプロバイダによって禁止されたバルクメールかもしれません.gaskad – JYoThI
requireの代わりにrequire_onceを使用してループから取り出してください –