【问题标题】:How to send mail in php at scheduled time?如何在预定时间用php发送邮件?
【发布时间】:2011-05-30 22:30:57
【问题描述】:

我想构建一个应用程序,使用户能够安排电子邮件随时发送。简单地说,编写电子邮件消息并安排它,以便服务器在指定的时间发送它。我正在使用zend框架。如何在php中做到这一点?可以用cron作业来完成吗?如果是,那么使用 cron 的缺点是什么?

【问题讨论】:

    标签: php email zend-framework cron


    【解决方案1】:

    可以用 cron 作业来完成吗?

    Cron 是类 Unix 计算机操作系统中基于时间的作业调度程序。 cron 的名称来自单词“chronos”,希腊语中的“时间”。1 Cron 使用户能够安排作业(命令或 shell 脚本)在特定时间或日期定期运行。它通常用于自动化系统维护或管理,尽管它的通用性意味着它可以用于其他目的,例如连接到 Internet 和下载电子邮件。

    http://ubuntuforums.org/showthread.php?t=586478

    我会每分钟运行一次 cron 作业并检查是否有任何邮件准备好被安排。下面论坛主题的引述说明了如何每分钟运行一次 cron。

    crontab -e

    然后设置一个标签

    * * * * * /command

    第一个星是分钟部分, 所以有一颗星星就会执行 每一分钟

    如果你更清楚 每 5 分钟想要一次,然后就可以了

    */5 * * * * /command/to/execute

    而其他星星从左到右 对了

    分钟 小时 dayofmonth 月 星期*

    *0=星期日

    cron 的缺点?

    如果是,那是什么 使用 cron 的缺点

    当执行大量 cronjobs 时,您将不得不生成大量进程(支付昂贵的生成进程成本)。在这种情况下,最好让后台进程持续运行并从消息队列中获取消息。但是,当您只想每分钟运行一次 cronjob 时,我认为这不是什么大问题。

    【讨论】:

      【解决方案2】:

      我会使用 cron 作业来解决这个问题。

      只需创建一个脚本来检查在特定时间发送的消息。用户安排说下午 1 点(当然使用数据库),脚本每 5 分钟左右运行一次,它检查(数据库),当前时间是否有任何消息要发出?如果是,它会发送电子邮件,否则它会休眠。

      干净简单的处理方式。

      缺点?

      我什么都看不到,这就是 cron 的用途,在特定时间运行任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-06
        • 2018-04-27
        相关资源
        最近更新 更多