2012-01-02 39 views
-2

我試圖創建一些服務,某些人會輸入消息或提醒,然後將在x天后存儲和發送。我不確定如何存儲它然後發送它。我想使用cron,並且因爲它使用了電子郵件變量,所以我將不得不使用數據庫。我對PHP很陌生,所以我不知道我怎麼能做到這一點。我會把我的PHP代碼,我想知道該怎麼做,這樣的電子郵件和消息將被存儲,然後發送。這是我的php代碼:如何使用cron使用php電子郵件變量使用數據庫

<?php  
if(isset($_POST['email'])) 
{ 

$headers = "From: Memory Jet <[email protected]>\r\n"; 


$to_visitor = $_POST["email"]; 
$common_data = $_POST["message"]; 
mail($to_visitor, "Your Memory", $common_data, $headers); 

} ?> 

我該如何使用此代碼實現mySQL數據庫?我需要做什麼? 非常感謝! -ben

+0

那麼,將電子郵件和消息存儲在數據庫中,並將其發送。每x分鐘運行一次cron作業,它會從數據庫中獲取所有未發送的消息,然後發送它們。 – deceze 2012-01-02 00:45:13

+0

對不起,我不清楚。那是我的想法。但是我不知道任何有關數據庫的知識,因此有沒有可能有的代碼或文檔? – 2012-01-02 00:46:30

+4

然後,您可能需要先閱讀其中的無數PHP +數據庫教程,然後回來看看是否有特定的問題。 – deceze 2012-01-02 00:48:50

回答

2

你的數據庫表基本上會包含此:

id - some record identifier 
message - text of the message 
to - recipient 
from - sender 
date_to_send - date to send message on 
sent - boolean flag indicating pending/already sent 

你就會有一個單一的PHP腳本,將拉起他的「date_to_send」是過去任何消息,並沒有被已經發出:

SELECT id, message, to, from 
FROM yourtable 
WHERE (date_to_send < now()) AND (sent = false) 

你最好遍歷這些結果,發送需要去,然後更新記錄,以表明他們會被髮送的任何消息。

請注意,from幾乎可以保證是數據庫中的保留字。這個「代碼」只是一個例子,不應該從字面上剪切/粘貼。