データベース内のユーザーにプログラムで送信する自動電子メールには、いくつかの種類があります。金額は変わりますが、執行のタイミングはきっかりです。
そこで、1 日の異なる時間帯に異なる cron ジョブを実行するように設定する代わりに、1 時間ごとに実行するスクリプトを 1 つだけ作成して、時間をチェックし、それに応じて電子メールを送信することを考えていました。大まかなアイデアは次のとおりです。
date_default_timezone_set('America/Los_Angeles');
// setting the timezone to the one of the hosting server
$cur_hour = (int)date('G'); // PDT hour
if ($cur_hour == 1) { // 1am
// collect information from db
// send e-mail A to these users
// update db
} elseif ($cur_hour == 2) { // 2am
// collect information from db
// send e-mail B to these users
// update db
} elseif ($cur_hour == 3) { // 3am
// likewise…
}
これは正しいアプローチですか、それともこれを行うためのより効率的またはより良い方法はありますか?
追加情報: 一部の電子メールには変数が含まれているため、単一の電子メールを送信することはできません。該当するユーザーごとに、たとえばメール Aを個別に送信する必要があります。そして、まだ何千人ものユーザーはいません。