0

mysql の日付に基づいて電子メールを自動的に送信できるようにしたいと考えています。Crontabs を使用してそれらをスケジュールできることはわかっていますが、問題は、Crontabs が日、月、週などを指定するだけであることです。十分に具体的ではありません..

MySQL テーブルにはさまざまな日付が入力されています。特定のレコードの日付から 3 か月になると、自動的にメールを送信できるようにしたいと考えています。

私に何ができるか知っている人はいますか?

4

1 に答える 1

1

その日に電子メールを送信する必要があるレコードをチェックする 1 日 1 回実行される cron をスケジュールします。

日時であるような列があると想像してくださいnotify_at-そして、毎日あなたのcronは基本的に行います

SELECT * FROM records WHERE notify_at = DATE(NOW())

cronは次の場所に保存できます/etc/cron.d

/etc/cron.d/send_reminders:

# run once a day at 1AM
0 1 * * * someuser /path/to/your/script

スクリプトの内容は、疑似コードでのロジックです。

results = fetch_by_sql("SELECT * FROM records WHERE notify_at = DATE(NOW()) AND last_notified_at IS NULL");
foreach(results as record) {
  send_email(record.recipient, "Your subject", "Your body");
  /* mark the record as notified so we dont ever send multiple emails */
  update_sql("UPDATE records SET last_notified_at = NOW() WHERE id = " + record.id);
}
于 2012-09-15T18:01:40.320 に答える