PHP:具有当前小时条件的单个cronjob,用于发送多个不同的电子邮件

时间:2012-06-22 11:42:02

标签: php cron scheduled-tasks

我有几种类型的自动电子邮件以编程方式发送给我的数据库中的用户。金额将发生变化,但执行时间为:00锐。

因此,我不打算在一天中的不同时间设置不同的cron作业,而是只创建一个每小时运行一次的脚本,它会检查时间并相应地发送电子邮件。这是一个粗略的想法:

date_default_timezone_set('America/Los_Angeles');
// setting the timezone to the one of the hosting server
$cur_hour = (int)date('G'); // PDT hour

if ($cur_hour == 1) { // 1am

    // collect information from db
    // send e-mail A to these users
    // update db

} elseif ($cur_hour == 2) { // 2am

    // collect information from db
    // send e-mail B to these users
    // update db

} elseif ($cur_hour == 3) { // 3am

    // likewise…

}

这是正确的方法,还是有更有效或更好的方法来做到这一点?

其他信息: 某些电子邮件中有变量,因此我无法在那里发送一封电子邮件。我需要发送,例如分别向每个适用的用户发送电子邮件。目前还没有数千名用户。

1 个答案:

答案 0 :(得分:0)

我会有一个字符串(模板)数组,其中可以包含$username等内容。根据小时从数组中选择适当的字符串。使用eval为该用户构建电子邮件。

尽管人们说,这是eval的好用。字符串在您的控制之下是安全的。只需确保已对变量进行了清理(但作为一名优秀的程序员,您可以在将它们放入数据库之前执行此操作,或者将其转义)。