【问题标题】:sending email before 12 hours of specified time在指定时间的 12 小时之前发送电子邮件
【发布时间】:2014-09-17 04:45:07
【问题描述】:

我必须在会议时间的 12 小时之前向员工发送一封关于他的会议的电子邮件。会议时间存储在 mysql 表中。我应该使用 PHP 发送电子邮件。谁能帮我解决这个问题?

【问题讨论】:

    标签: php email time


    【解决方案1】:

    是的,做一个搜索每条记录的 Cron 作业,需要时间。

    然后检查 (time - 43200) 是否等于当前时间戳。 43200 秒是 12 小时。

    if (($time_from_db - 43200) === time())
    {
        // send email
    }
    

    【讨论】:

    • 如果您有很多会议要处理,这将是相当低效的。
    【解决方案2】:

    如果您在类 Unix 平台上,则系统 at 队列比常规 cron 作业消耗的资源更少。只需在将事件添加到数据库时安排作业:

    echo "echo 'Subject: meeting at $date' | sendmail '$user'" |
    at "$(date -d "12 hours before $date")"
    

    (概念证明;您可能想用您的宿主语言进行日期算术,即使它是 PHP。)

    记下队列号,以便在活动移动或取消时将其删除。

    【讨论】:

      猜你喜欢
      • 2013-04-04
      • 1970-01-01
      • 2012-03-16
      • 2017-06-11
      • 2012-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      相关资源
      最近更新 更多