2014-03-06 233 views
0

我編程一個應用程序,根據創建日期檢查記錄, 我需要從應用程序自動檢查發佈日期,如果它是 大於或等於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'); 
    } 
} 

請幫助我在這個問題上。 最好的問候 薩米·曼蘇爾

+0

您是否知道可以使用'crontab'每隔5分鐘左右運行一次腳本? – anurupr

+1

您需要根據您的邏輯創建一個shell腳本,然後您可以安排crontab在特定時間調用腳本。郵件是根據腳本中滿足的條件發送的 – user3256147

回答

0

您需要創建一個cron並調用發送電子郵件的腳本頁面。

0

您需要創建一個cronjob:

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

這港島線每天1:00 AM運行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 
0

你需要創建一個cronjobs,並可以使用MySQL的函數

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

簡化腳本所以,你混帳被貼得更或equel超過2天的數據。