我目前正在開發一個需要向用戶發送電子郵件通知的項目。它的工作方式是,用戶遵循某些帖子/組的帖子,只要帖子類別/組下有新帖子或評論,他們就會收到郵件通知,並通過帖子本身的片段通知他們。使用PHP的電子郵件通知系統MySQL
我期待每天發送超過5000封電子郵件。是否有效地使用cron作業來間隔地獲取用戶和發送電子郵件,或者有更好的方式來推送此電子郵件,同時避免電子郵件提供商將我的IP列入黑名單。
下面是我的表結構
首先表
Notification
ID // autoincrement
message // the message sent to users
createDate // date created
二表
User_Notification
ID // auto increment
userid // Id of users
notification_id // id of notification from first table
status // 0 or 1
因此,只要添加後的,我插入第一個表的通知(通知)和然後從另一個表(以下)中獲取該組的所有追隨者,其中存儲用戶標識和組標識。然後爲每個用戶插入第二個表(user_notification)。
我的cron作業從user_notification表中獲取20條記錄,並從通知表中獲取通知消息。我也從我的用戶表中獲取用戶電子郵件。
$firstquery = $lnk->mysqli->query("select * from user_notification where status=0 order by id ASC limit 0, 20", MYSQLI_USE_RESULT);
$secondquery = $lnk->mysqli->query("select * from notification where id=$notification_id", MYSQLI_USE_RESULT);
$thirdquery = $lnk->mysqli->query("select email from user_table where id IN($userids)", MYSQLI_USE_RESULT);
for($no=0;$no<counter;$no++)// loop to send emails
{
$lnk->emailsender($subject,$emailbody,$usr_email[$no]);
}
請問有沒有更好的方法來做到這一點?
通過isp列入黑名單並不重要,如果您按時間間隔發送它們並不重要。我們嘗試了這一點,我們的isp首先阻止了他們,因爲他們認爲我們被黑客攻擊了,在解除阻止並拒絕這樣做後,我們然後遇到了DNS服務器主機的問題,因爲他們表示,它會減慢DNS服務器的查詢量通過DNS製作。我們也權衡了選項,然後意識到最好使用已經擁有白名單IP地址的第三方,併爲這些應用程序構建 –
您將被列入黑名單,除非您使用其他方式發送您的電子郵件。 嘗試使用sendgrid真的很容易使用,並且不那麼昂貴。 http://sendgrid.com/docs/Code_Examples/php.html –
@LiamSorsby謝謝你的解釋,我很感激。 – andychukse