【问题标题】:How to perform PHP action based on date/time?如何根据日期/时间执行 PHP 操作?
【发布时间】:2015-11-16 13:11:14
【问题描述】:

我想让我的服务器根据我的网络托管服务提供商服务器上的数据库中的生日日历向我发送生日提醒e-mails。我知道如何从PHP 发送e-mails,但仅作为在客户端单击按钮后的操作。这也是执行我能找到的操作的唯一方法。

如何让我的服务器在没有用户交互的情况下向我发送特定date/time 上的e-mail

编辑
我不认为我的问题是重复的。假定的重复链接指的是关于 cron 的问题,答案是关于语法的,但它没有解释 cron 是如何工作的,或者我如何使用它来解决我的问题。

【问题讨论】:

  • 可以设置cron作业发送邮件
  • 是的,Joris 在服务器中有一个选项可以为任何时间间隔设置 cron 作业文件。你应该去争取它。
  • 没错,您需要为此设置 Cron 作业。您可以将此表单设置为您的服务器面板。在那里你会看到一个名为 Cron Job 的选项卡,你会在那里获得所有相关信息。
  • 查看他的编辑,这不是 stackoverflow.com/q/1830208/3664960 的副本,而是来自 stackoverflow.com/q/23028783/3664960

标签: php email


【解决方案1】:

您可以编写一个 php 脚本在命令行上执行。要从命令行运行 php 脚本,只需使用 php 命令:

php myscript.php

在此示例中,如果myscript.php 具有发送电子邮件的所有逻辑,那么您只需设置一个 cron 作业以每天或每小时自动执行文件(无论您希望它执行的频率如何)。然后你需要做的就是在你的 PHP 脚本中编写逻辑来检查它是否“时间”发送这些电子邮件。

为 php 脚本设置 cron 作业的answer on this post has a great explanation

【讨论】:

    【解决方案2】:

    详细说明Apb给出的评论;

    1. 使用内容创建您的 php 文件(脚本部分是按钮)
    2. 使用cron for linux os 或者如果您使用windows 来执行您的php 脚本

    另一个选项是setcronjob.com 由 Santosh Acari 在enter link description here 问题上回答

    【讨论】:

    • 我把这个放在哪里?我所拥有的只是我的虚拟主机上的网页目录。
    • 检查您的虚拟主机帮助,其中必须提供 cron 选项
    【解决方案3】:

    正如其他人所说的那样,cronjobs 是实现这一目标的好方法。

    例如(非常初级)script.php

    include '../connect.php';   
    $birthday_list =[];
    $today = date("m.d.y"); 
    
    
    try {           
        $sql = "SELECT `Birthday`, `Name`, `Surname`,  FROM `Friends` WHERE Friends.Birthday = '$today'";               
        foreach ($conn->query($sql) as $row) {          
            $temp = [$row['Birthday'],$row['Name'],$row['Surname']];
            $birthday_list[] =  $temp;                  
                        }    
                }
        catch(PDOException $e)
            {
            echo "Connection failed: " . $e->getMessage();
        }
    
    foreach ($birthday_list as $el){
        $name = $el[1];
        $surname = $el[2];
        $message = 'Todays is'.$name.' '.$surname.' birthday'; 
        mail('me@example.com', 'My Subject', $message);
    }
    

    然后您可以将此脚本作为 cronjob 运行,一些主机(例如 godaddy)允许您从 cpanel 设置 crons,否则您必须从服务器 shell 设置 crons。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 2013-10-03
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      相关资源
      最近更新 更多