我正在创建一项服务,用户提交存储在MySQL数据库或文本文件中的数据,并在每周的特定时间通过电子邮件发送到特定地址。
据我所知,这不是PHP的用途,我读过一些叫Cron的东西,但是我想知道是否有其他选择?是否有可以从Gmail发送的脚本,可能是粘贴或附加的数据?
答案 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)
我只能用两种方式来思考:
让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 :(得分:0)
如果您需要始终运行php脚本,那么我建议使用upstart jobs / services