【问题标题】:how to send automatically email如何自动发送电子邮件
【发布时间】:2014-03-06 17:59:46
【问题描述】:

我编写了一个根据创建日期检查记录的应用程序, 我需要从应用程序中自动检查发布日期,如果是的话 超过或等于 2 天,它将发送通知电子邮件,无需用户或管理员执行任何操作。

我知道 crontab 解决方案,但我知道它在指定时间工作。我怎样才能满足我的需求?

MySQL 发布表

id  |   post    |   date
1   |   post 1  |   1394094854
2   |   post 2  |   1394094754
3   |   post 3  |   1394094654
4   |   post 4  |   1394094554

我的脚本.php

<?php
define('DBHOST', 'localhost');
define('DBNAME', '-');
define('DBUSER', '-');
define('DBPASS', '-');
/*
/ $db ====> mysql connection
*/

$getPosts = $db->query("SELECT * FROM posts");
foreach($gp as $getPosts){
    if(time() - $gp['date'] >= 172800){ // morethan or equal 2 days
        // send notification email 
        mail('TO_EMAIL', 'SUBJECT', 'MESSAGE', 'HEADERS');
    }
}

请在这个问题上帮助我。 此致 萨米·曼苏尔

【问题讨论】:

  • 你知道你可以使用crontab 每5分钟左右运行一个脚本吗?
  • 您需要根据您的逻辑创建一个shell脚本,然后您可以安排crontab在特定时间调用该脚本。邮件根据脚本中满足的条件发送

标签: php mysql email date crontab


【解决方案1】:

您需要创建一个 cron 并调用发送电子邮件的脚本页面。

【讨论】:

    【解决方案2】:

    你需要创建一个 cronjob:

    0 1 * * * /path/to/php/file/script.php

    这将在每天凌晨 1:00 运行 script.php 文件。

    # Minute   Hour   Day of Month       Month          Day of Week        Command    
    # (0-59)  (0-23)     (1-31)    (1-12 or Jan-Dec)  (0-6 or Sun-Sat)                
        0        1          0             *                *            /usr/bin/find
    

    【讨论】:

      【解决方案3】:

      你需要创建一个 cronjobs 并且可以使用 mysql 函数来简化脚本

      $getPosts = $db->query("SELECT * FROM posts WHERE DATEDIFF(NOW(), FROM_UNIXTIME('date')) >= 2");
      

      因此,您获取发布时间超过或超过 2 天的数据。

      【讨论】:

        猜你喜欢
        • 2011-10-22
        • 2013-08-22
        • 1970-01-01
        • 2013-10-31
        • 2014-01-15
        • 2021-07-04
        • 2013-10-20
        相关资源
        最近更新 更多