0

我有几种类型的自动电子邮件要以编程方式发送给我数据库中的用户。金额会发生变化,但执行时间是: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…

}

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

附加信息: 某些电子邮件中存在变量,因此我无法在那里发送一封电子邮件。我需要分别向每个适用的用户发送例如电子邮件 A。而且还没有成千上万的用户。

4

1 回答 1

0

我会有一个字符串(模板)数组,其中可以包含诸如$usernameetc 之类的东西。根据小时从数组中选择适当的字符串。用于eval为该用户构建电子邮件。

不管人们怎么说,这是一个很好的使用eval. 这是安全的,因为字符串在您的控制之下。只需确保变量已被清理(但作为一名优秀的程序员,您会在将它们放入数据库之前执行此操作,或者将它们转义)。

于 2012-06-22T11:58:28.360 回答