500通を超えるメールを送信しない

email php
500通を超えるメールを送信しない
$t_email = explode(", ", $list);
$sentEmails = count($t_email);
updateEmail($sentEmails);
for ($i = 0; $i < (count($t_email)); $i = $i + 1) {
    if(sentQueue <= 500) {
        if (mail($t_email[$i], $subject, $body, $headers)) {
            $err .= "Message successfully sent to " . $t_email[$i] . "
";
        } else {
            $err .= "Message failed to be sent to " . $t_email[$i] . "
";
        }
    } else {
        echo "Sent over 500 emails. Please wait until the hour is up.";
    }
}

そしてforループの後、私はこれを持っています:

$result = mysql_query("SELECT * FROM emailLimit");
    while ($row = mysql_fetch_assoc($result)) {
        $later = $row['hourLater'];
        $sent = $row['sentEmails'];
        if ($sent == 500) {
            echo "Sent all available emails for this hour.
";
        }
        else if ($timeNow > $later || $sent == 0) {
            mysql_query("UPDATE `emailLimit` SET hourLater = '$hourLater', sentEmails = '0'") or die(mysql_error());
        } else {
            echo "$sent/500 emails sent.  " . RelativeTime(($later)) . " remain in the hour.";

        }
    }

sentQueue関数

function sentQueue() {
    $q = "select * from emailLimit";
    $result = mysql_query($q);
    $dbarray = mysql_fetch_array($result);
    return $dbarray["sentEmails"];
}

編集:投稿するのを忘れた

function updateEmail($vp) {
        $q = "select * from emailLimit";
        $result = mysql_query($q);
        $dbarray = mysql_fetch_array($result);
        $vp = $vp + $dbarray["sentEmails"];
        $q = "update emailLimit set sentEmails = '$vp'";
        mysql_query($q) or die(mysql_error());
    }

メーリングリストにメールを送信すると、500通を超えるメールを送信できます。 止まらない。 500に達したらメールの送信を完全に停止するようにするにはどうすればよいですか? または、500時間を超えるメールをログに記録して、1時間が過ぎたらメールで返信できるようにしますか? (私のホストは1時間あたり500に制限されています)。

助けてくれてありがとう。

  -1  0


ベストアンサー

私の問題を見つけました、私は愚かな私を関数と呼んでいませんでした。 if(sentQueue()⇐ 500){

今すぐ修正しました。

0


タイトルとURLをコピーしました