我有一個簡單的用戶註冊表單,可以讓用戶每天收到電子郵件通知,如果他們的任何項目都有活動的話......就像Stack Overflow有一個「每天通知[email protected]任何新答案」。如何在PHP中向用戶發送每日電子郵件通知?
我在LAMP環境中實現這個目前的想法是:
在用戶數據庫中,如果用戶希望每天收到的電子郵件設置一個布爾值。
如果有任何項目活動,項目將使用當前時間戳更新。
每晚(午夜),執行一個PHP文件(可能通過cron作業),掃描項目數據庫以確定哪些項目當天有活動。對於具有活動的項目,選擇項目所有者名稱並掃描用戶表以檢查用戶是否希望收到每日電子郵件通知。如果是,則添加到收件人列表;否則,忽略。
問題/顧慮我有將不勝感激之前,我開始實施一些指導:
我在共享宿主環境。我需要採取哪些預防措施,以避免被託管公司或接收郵件服務器誤認爲垃圾郵件?
我是否需要「收集」收件人列表(每次發送50封電子郵件)並向每個組發送電子郵件?這就像睡覺一樣簡單(30);每次調用郵件()之間?
我正在使用CodeIgniter框架,並將cron作業調用控制器中的相應功能以在午夜運行此功能。如何限制僅來自cron作業的調用,以防止某些未經授權的用戶從瀏覽器調用此函數?
謝謝。
Re。 #3:我假設我在webroot上面保留了一個PHP文件,CodeIgniter真的不應該在意。我也可以讓cron坐在webroot之上,並調用掃描數據庫的PHP腳本,建立收件人列表,然後在午夜發送電子郵件給每個用戶。沒有? – zee 2011-05-18 13:33:02
Cron作爲一個Linux程序運行,因此它可以訪問它所運行的用戶所訪問的每個文件。 – 2011-05-18 15:49:16