ユーザーがMySQLデータベースまたはテキストファイルに保存され、毎週特定の時間に特定のアドレスに電子メールで送信されるデータを送信するサービスを作成しています。
これはPHPの目的ではないことを理解しており、その仕事をするCronと呼ばれるものを読んだことがありますが、他にオプションがあるかどうか疑問に思っていました。おそらくデータを貼り付けたり添付したりしてGmailから送信できるスクリプトはありますか?
ユーザーがMySQLデータベースまたはテキストファイルに保存され、毎週特定の時間に特定のアドレスに電子メールで送信されるデータを送信するサービスを作成しています。
これはPHPの目的ではないことを理解しており、その仕事をするCronと呼ばれるものを読んだことがありますが、他にオプションがあるかどうか疑問に思っていました。おそらくデータを貼り付けたり添付したりしてGmailから送信できるスクリプトはありますか?
最良の方法は、cronジョブを使用することです。何らかの理由でそれらを使用できない場合は、ジョブをスケジュールできるthecloudblocks.comのサービスを使用できます。
または、仕事の時間になるまでスリープする関数を作成することもできます。好き、
function do_some_job_at($time){
time_sleep_until($time);
JOB();
}
do_some_job_at(time() + 20); //Runs job after 20 seconds.
私はそれを行うために2つの方法でしか考えることができません:
x分ごとに送信スクリプトを呼び出すcronジョブがある
$database->query("SELECT * FROM `mail_queue` WHERE `time` < " . time());
while($object = $res->fetch_object()){
mail($object->to, $object->subject, $object->message, "FROM: xpto@domain.com");
}
(ウェブホスティングアカウントを使用している場合は、コントロールパネルで簡単に作成できます)
* * * * * /bin/php complete_path_to_your_php_script.php
スクリプトをループで実行している(タイムアウト、エラー、メモリの停止などが原因で動作を停止する可能性があるため、信頼性が低い)
phpスクリプトを常に実行する必要がある場合は、upstartジョブ/サービスを使用することをお勧めします