如何高效的向大量用户,发送邮件?

假设管理员要向几百万用户发送邮件通知,怎么要怎么高效的实现?
每个人都绑定了邮箱,邮件能正常发送和接收,这几百万用户要怎么查询才高效?分块查询然后foreach到发送邮件的队列?

GDDD
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13

楼上说的都是片面的,在如此发送量面前多线程以及队列都是大型邮件系统中的一小部分而已;
如果楼主想自己实现这个百万级别邮件模块你需要了解的知识有:

  • IP 预热,所谓的预热就是通过慢慢的提高发送频率以达到让 ESP(Email Service Provider) 信任你 IP 的目的
  • IP 托管,一些严格的 ESP 甚至会对你的周围 IP 进行是否有过违规行为(发送垃圾邮件)进行检测,所以你需要一大段连续的 IP 地址,一般人很难做到这点
  • 域名的维护、使用公认的 DNS、mx 记录指向、相对于每个 ESP 使用正确的认证机制(SPF、DKIM……)、良好的邮件发送记录维护、根据软回弹策略正确的处理回退邮件(FBL)、邮件内容的过滤机制……

否则你的邮件送达率可以说基本为0,所以楼主如果你不是想发送垃圾邮件的话,还是走第三方吧,Mailgun 是个不错的选择

以上内容都可以在 Mailgun 的最佳实践中找到相关说明:documentation.mailgun.com/en/lates... ,此外 Mailgun 作为大型邮件服务提供商,它们官方输出的博客也非常具有参考意义 www.mailgun.com/blog/category/for-...

2个月前 评论
24K大白羊 2个月前

我觉得这个业务可以mq来实现

2个月前 评论

队列 然后多端消费

2个月前 评论

你的头像我傻傻的等了一分钟

2个月前 评论

添加到队列里面,开多个线程去队列里面消费,实现发送邮件给用户。

2个月前 评论

队列分发,1000人一个队列,多线程异步很快的

2个月前 评论

@奕鹏 PHP如何实现多线程发送邮件,可以举个demo么?

2个月前 评论
wuyan94zl 2个月前
奕鹏 2个月前
candivan 2个月前

楼上说的都是片面的,在如此发送量面前多线程以及队列都是大型邮件系统中的一小部分而已;
如果楼主想自己实现这个百万级别邮件模块你需要了解的知识有:

  • IP 预热,所谓的预热就是通过慢慢的提高发送频率以达到让 ESP(Email Service Provider) 信任你 IP 的目的
  • IP 托管,一些严格的 ESP 甚至会对你的周围 IP 进行是否有过违规行为(发送垃圾邮件)进行检测,所以你需要一大段连续的 IP 地址,一般人很难做到这点
  • 域名的维护、使用公认的 DNS、mx 记录指向、相对于每个 ESP 使用正确的认证机制(SPF、DKIM……)、良好的邮件发送记录维护、根据软回弹策略正确的处理回退邮件(FBL)、邮件内容的过滤机制……

否则你的邮件送达率可以说基本为0,所以楼主如果你不是想发送垃圾邮件的话,还是走第三方吧,Mailgun 是个不错的选择

以上内容都可以在 Mailgun 的最佳实践中找到相关说明:documentation.mailgun.com/en/lates... ,此外 Mailgun 作为大型邮件服务提供商,它们官方输出的博客也非常具有参考意义 www.mailgun.com/blog/category/for-...

2个月前 评论
24K大白羊 2个月前

mq,多线程发

2个月前 评论

用swoole协程去发

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!