【发布时间】:2013-08-09 02:07:40
【问题描述】:
我目前正在处理一个需要向用户发送电子邮件通知的项目。它的工作方式是,用户遵循某些帖子/组的类别,每当在帖子类别/组下有新帖子或评论时,他们都会收到电子邮件通知他们,其中包含帖子本身的 sn-p。
我预计每天发送超过 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]);
}
请问有什么更好的办法吗?
【问题讨论】:
-
isp 是否将它们列入黑名单并不重要。我们尝试了这个,我们的 isp 首先阻止了他们,因为他们认为我们被黑客入侵了,在解除阻止并拒绝这样做之后,我们的 DNS 服务器主机出现问题,因为他们说这会减慢 DNS 服务器的查询量通过 DNS 制作。我们还权衡了各种选项,然后意识到最好使用已经拥有白名单 IP 地址并且专为此类应用程序构建的第三方
-
除非您使用其他方式发送电子邮件,否则您将被列入黑名单。尝试使用 sendgrid 真的很容易使用,而且也不贵。 sendgrid.com/docs/Code_Examples/php.html
-
@LiamSorsby 感谢您的解释。
-
@dvidsilva 感谢您的建议,目前正在考虑 mandrill.com 提供比 sendgrid 便宜得多的现收现付选项。
-
@andychukse 好的,这是一个不错的选择,我没有检查过不同的定价,因为不幸的是我从来没有超过 10 封每日电子邮件:P
标签: php mysql email notifications