如何自动发送电子邮件

时间:2014-03-06 09:40:39

标签: php mysql email date crontab

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

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

MySQL发布表

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

我的script.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');
    }
}

请在这个问题上帮助我。 最好的祝福 萨米曼苏尔

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你需要创建一个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

答案 2 :(得分:0)

您需要创建一个cronjobs并使用mysql函数简化脚本

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

因此,您需要发布更多或等于2天的数据。