首页 文章

基于MySQL日期发送自动电子邮件

提问于
浏览 1714
0

我希望能够根据mysql日期自动发送电子邮件 . 我知道我可以使用Crontabs安排它们,但问题是Crontabs只指定天,月,周等等 - 它不够具体......

MySQL表中填充了不同的日期 . 我想要它,以便我可以在特定记录的3个月后自动发送电子邮件 .

有谁知道我能做什么?

1 回答

  • 0

    安排一天运行一次的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);
    }
    

相关问题