2011-09-10 76 views
0

根據日期是否可以從數據庫發送自動郵件?當日期等於某個特定日期時,emain應該發送給用戶。自動從數據庫發送電子郵件

我創建了我的數據庫表MySQL中是這樣的:

create table tb1(name varchar(20), email varchar(30), date varchar(10)); 

我將使用PHP。請告訴我該怎麼做?

+3

你可以使用cron。 – CodeCaster

+0

編寫一個PHP來檢查日期併發送電子郵件並使用cron來觸發它 – lluismontero

+1

首先更改問題標題。其次,向表中添加一個已發送的列,這樣不會一遍又一遍地發送相同的電子郵件,然後像人們說的那樣使用cron作業。 –

回答

0

傳統的方法:
取決於操作系統,你可以設置一個計劃的任務(cron作業),運行一定的時間間隔(我認爲它不必非常準確,3-5分鐘似乎對我來說可以),根據交付狀態(成功,失敗,退回等)抓取表中過期的行,發送電子郵件並標記記錄(我建議添加email_status列)。您可能需要添加另一列來存儲郵件服務器響應。

另一種選擇更復雜。您可以編寫能夠發送電子郵件的本地UDF。然後,您創建調用此函數的定期調用event。這可能是一個很好的練習,但可能不是最好的解決方案。優點:完全在服務器端完成,不需要客戶端代碼。缺點:創建和調試本地函數可能是一個挑戰,功能必須上傳到服務器實例,邏輯駐留在數據庫服務器上

0

創建一個php文件來檢查當前日期與數據庫中的日期,如果它們匹配使用mail()將電子郵件發送給該用戶。

您還可以使用CRON按照您的喜好經常運行該文件(我會建議24小時以內沒有任何提示)。

0

首先,作爲a1ex07的回答,您有使用狀態字段過濾要發送的消息。 用查詢過濾你的消息,並用循環發送消息信息到(用get方法)php腳本(send.php),它偵聽要發送消息的'查詢字符串'。

要觸發你的PHP,你可以包括querylist頁面到你的網站或web應用程序。