【问题标题】:Scheduling emails with data from MySQL database or text file使用 MySQL 数据库或文本文件中的数据安排电子邮件
【发布时间】:2012-04-20 02:18:03
【问题描述】:

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

我知道这不是 PHP 的用途,而且我读过一个叫做 Cron 的东西来完成这项工作,但我想知道是否还有其他选择?是否有一个脚本可以从 Gmail 发送,可能带有粘贴或附加的数据?

【问题讨论】:

    标签: php mysql email cron scheduling


    【解决方案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】:

      最好的方法是使用 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.
      

      【讨论】:

      • 是的,如果由于某种原因您没有 cron 访问权限,则另一种选择 - webcron.org
      【解决方案3】:

      如果您需要始终运行 php 脚本,那么我建议您使用 upstart 作业/服务

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-27
        • 2015-12-30
        • 2015-07-18
        • 2012-09-11
        • 1970-01-01
        • 1970-01-01
        • 2013-10-10
        相关资源
        最近更新 更多