【问题标题】:Send email one hour after a PHP script is run using Windows Task Scheduler使用 Windows 任务计划程序运行 PHP 脚本一小时后发送电子邮件
【发布时间】:2014-07-29 15:23:01
【问题描述】:

当用户将视频添加到我的网站时,我想在他们发布后一小时发送一封电子邮件,提醒他们视频已上传并可供他们查看。

无论如何要使用 Windows 任务计划程序来执行此操作?电子邮件是使用 php 文件发送的,因此理想情况下 php 文件会运行,然后在运行后一小时就是发送电子邮件的时间。

【问题讨论】:

  • 简短的回答是,实际上没有任何方法可以使用 Windows 任务计划程序执行此操作。您想使用队列或 Cron 作业来实现此类功能
  • 视频上传的时候为什么不发邮件呢?为什么要晚 1 小时?
  • 因为目前视频完成上传和处理大约需要一个小时。
  • 重点还是有的,上传处理完为什么不发呢?
  • 一个优雅的解决方案是使用 MSMQ 消息传递,让站点向 MSMQ 写入一条消息,然后使用一个处理程序检查消息队列并为一小时前的消息发送电子邮件。哦,如果您在 SQL 中设置了电子邮件,则可以使用 sql 作业调度程序,具体取决于您的环境。因素。

标签: php email


【解决方案1】:

一些假设:

  • 您已将文件上传日期/时间存储在数据库中的某处。
  • 您编写了一个 PHP 脚本来读取此数据库字段,并且 检查上传后是否有一个小时。
  • 您还有一个字段,用于标记电子邮件是否已发送 上传。

假设以上三个都是真的,你可以有一个类似的任务计划程序条目

C:\Path\to\php.exe -f "C:\Path\to\send_email.php"

如果您使用的是旧版本的 Windows,它不允许您在其中输入命令而只能选择一个程序,则将此命令另存为 batch file 并从界面中选择它

现在请记住,如果您希望它在一小时后发送电子邮件,那么您需要安排此任务每分钟运行一次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 2023-03-25
    • 2013-09-29
    • 2017-05-05
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多