使用MySQL数据库或文本文件中的数据调度电子邮件

时间:2012-04-06 13:06:35

标签: php mysql email cron scheduling

我正在创建一项服务,用户提交存储在MySQL数据库或文本文件中的数据,并在每周的特定时间通过电子邮件发送到特定地址。

据我所知,这不是PHP的用途,我读过一些叫Cron的东西,但是我想知道是否有其他选择?是否有可以从Gmail发送的脚本,可能是粘贴或附加的数据?

3 个答案:

答案 0 :(得分:1)

最好的方法是使用Cron作业。如果由于某些原因您无法使用它们,那么您可以使用thecloudblocks.com的服务,这可以让您安排工作。

或者,您可以创建一个睡眠功能,直到作业到来。像,

function do_some_job_at($time){
       time_sleep_until($time);
       JOB();
}

do_some_job_at(time() + 20); //Runs job after 20 seconds.

答案 1 :(得分:1)

我只能用两种方式来思考:

  1. 让cron作业每x分钟调用一次发送脚本

    $database->query("SELECT * FROM `mail_queue` WHERE `time` < " . time());
    while($object = $res->fetch_object()){
        mail($object->to, $object->subject, $object->message, "FROM: xpto@domain.com");
    }
    

    (如果您使用的是虚拟主机帐户,只需在控制台上创建)

    * * * * * /bin/php complete_path_to_your_php_script.php
    
  2. 让一个脚本在循环中运行(由于超时,错误,内存中断等原因,它可以停止工作,因此不可靠)

答案 2 :(得分:0)

如果您需要始终运行php脚本,那么我建议使用upstart jobs / services