php - 通过 php 和 codeigniter 批量发送电子邮件

标签 php email codeigniter

我正在构建一个接受用户注册的脚本,并在注册后向用户发送一封电子邮件以进行电子邮件验证。现在,在用户登录时验证电子邮件后,当自动电子邮件发送给与用户在站点上交互的其他用户时,用户会执行各种事件。

例如,当用户向站点上的关注者发送私有(private)消息时,还会向关注者的电子邮件地址发送一封自动电子邮件,通知他执行的用户事件。

现在假设站点上有大约 1000 名用户,他们每天执行大约 2000 到 5000 次发送自动电子邮件的事件。

我正在使用 codeigniter 来构建我的网站,我想知道我可以设计系统的最佳方法,以便正确无误地发送电子邮件。

最佳答案

似乎是事件/消息队列的情况。

Web 生成的事件 - 注册、向关注者发送直接消息等 - 将消息/任务/项目添加到工作/消息队列中。 cron 进程使用队列,实际执行发送。请注意,此处的“消息”只是一个对象或数据库记录,其中包含足以执行指定任务的信息:将类型 X 的消息从发件人/用户 Y 发送到收件人/用户 Z 等。它甚至可以包含当前状态的审计字段,项目何时添加到队列中,何时完成等。可能在一段时间后队列中已完成的任务被清除。

从好的方面来说,您的 Web 进程(注册等)不会等待这些消息发出,因此在浏览器端等待的客户端会得到更快的 Web 响应。

不利的一面是,Web 进程确实无法确定任务是否已执行;它所知道的只是请求已传递到队列以进行最终处理。

不过,您可以向用户提供报告待处理/完成请求状态的 Web 界面,这可能就足够了。

只是大声思考...;-)

关于php - 通过 php 和 codeigniter 批量发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6640852/

相关文章:

php - 如何使用XMPP和BOSH实现facebook聊天

PHP 邮件客户端库

php - sendgrid 发送多个收据电子邮件

codeigniter - CodeIgniter 中的 Paypal Express Checkout

javascript - 在 codeigniter 中单击按钮时更新后端的状态值

php - 如何阻止 Tidy2 添加额外的 HTML 标签? ( Notepad++ )

javascript - 为什么在 PHP 中使用 intval 和 hexdec 内置函数的十六进制到十进制字符串输出不同?

php - symfony 查询问题

java - 电子邮件 Java 附件

php - 自定义类型自动递增 id codeigniter