0

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"
4

1 に答える 1

0

コードを書き直したところ、これが機能しました...解決策は、最初にコンテンツを取得し、whileループを使用して、すべての電子メールをBCCに追加する代わりにコンテンツを1つずつ電子メールで送信することでした:リスト...

//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-22T15:35:35.573 に答える