我目前正在开展一个需要向用户发送电子邮件通知的项目。它的工作方式是,用户关注特定类别的帖子/组,每当在帖子类别/组下有新帖子或评论时,他们都会收到电子邮件通知他们,其中包含帖子本身的片段。
我预计每天发送超过 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
因此,每当添加帖子时,我都会在第一个表(通知)中插入通知,然后从存储用户 ID 和组 ID 的另一个表(以下)中获取该组的所有关注者。然后我在第二个表(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]);
}
请问有没有更好的方法来做到这一点?