每次在php(Yii框架)中的特定日期向用户发送电子邮件

时间:2015-08-18 12:58:03

标签: php email yii

我是php的新用户并使用Yii框架。目前我遇到了如何向用户发送邮件的问题。我有一个表,其中有一个日期字段,指示何时需要发送电子邮件。此日期字段对于每个用户都不相同。当日期时间到来时,系统将向特定用户发送邮件。我怎样才能做到这一点。如果有人能给我一些代码示例,那将会更有帮助。我不想用玉米工作。需要一些代码示例。

表:

User_id  job_title_id   cv_type  review_date       status
A        B              C        16/05/2015        yes

1 个答案:

答案 0 :(得分:0)

老实说一个cron作业(linux)或任务调度程序(windows)对这种情况特别有用,我强烈建议你使用这些内置的OS功能但是你在这里不这样做了我走了:

php中可能的解决方案是创建一个带有sleep的无限循环,如:

while(true){
    try{
        // Here should be the actual functionality to check the database
        // and send e-mails to the specific user(s) if needed.
    } catch(\Exception $e) { //this try catch exists to catch all exceptions that could crash this script.
        echo $e->getMessage(); 
        //notify yourself (by email) that an error has occurred 
    }

    sleep(60*60); //In this case 1 hour sleep 60 seconds * 60 = 60 minutes
}

缺点是您必须手动启动作业一次,即如果世界是完美的......但是因为脚本可能会遇到PHP致命错误或服务器重启你,每次都必须手动重启这个脚本。要在linux中启动脚本,请执行以下操作:

nohup php script_name.php >> error.log & // nohup prevents the script from being closed when you exit the terminal