1

そのため、テーブルのレコードをチェックしてメールで送信するコードがあります。table1 フィールドは次のとおりです: id - ユーザー ID - 電子メール - 件名 - txt コードは次のとおりです (簡略化):

$sql = "SELECT * FROM table1 where userid='$userid'";
$results = mysql_query($sql);
while ($row = mysql_fetch_array($results)) 
{
mail($row['email'],$row['subject'],$row['txt']);
}

これにより、すべてのメールが一度に送信されます。ランダムな遅延でメールを送信できるようにしたい。例: 最初のメールを送信し、1 時間待ってから、2 番目のメールを送信し、2 時間待って、メール 3 を送信して 5 時間待って、メール 5 を送信してから 2 時間待って... 機能を使用することを考えてrand(); いましたが、実装方法がわかりません遅延...何か考えはありますか?ご意見をお待ちしております

4

1 に答える 1

3

乱数を生成し、時間形式でタイムスタンプに追加して、データベースに保存します。

これは、PHPrand()関数と mysql を使用して行うことができます (具体的には、この mysql コード: DATE_ADD(NOW(), INTERVAL $randInteger HOUR)) 。

送信する必要がある電子メールがあるかどうか、または送信する電子メールがあるかどうかをデータベースで確認し、返された情報に基づいて実行するスクリプトを 1 時間ごとに実行します。

cron を使用してこれを行うことができます (cpanel を提供するホストがある場合、これは cpanel にあります)。

于 2012-07-11T02:14:44.557 に答える