我希望能够根据 mysql 日期自动发送电子邮件。我知道我可以使用 Crontabs 安排它们,但问题是 Crontabs 只指定天、月、周等 - 它不够具体..
MySQL 表中填充了不同的日期。我想要它,以便我可以在特定记录日期起 3 个月时自动发送电子邮件。
有谁知道我能做什么?
安排一个每天运行一次的 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);
}