首页 > 解决方案 > Laravel 批量邮件队列(按数量和时间划分)

问题描述

我有一个调度系统,可以发送带有每个系统成员各自日历的电子邮件。

我的邮件列表显着增加(超过 800 个收件人),并且我的电子邮件提供商正在生成某种限制,例如 SMTP 缓送。

我想我可以将所有这些收件人拆分并以小包的形式发送,也就是说,我可以使用Mail::queue().

关键是: 有什么方法可以每隔一段时间添加队列,例如 10 分钟,并且总是在队列末尾添加,即使有一个新的邮件包。

这个想法是(我不知道这是否是最好的解决方案),取这个总数,例如 800,除以 150,得到 5 次交互,在这 5 次交互中,每 10 分钟发送 25 封电子邮件。(25 X (60/10) X 5 == 750)。

标签: laravellaravel-queuelaravel-mail

解决方案


您可以将所有邮件扔到您的队列中,然后将队列配置为在给定时间执行特定数量(为此需要 redis):https ://laravel.com/docs/master/queues#rate-limiting

所以,你可以专注于你正在做的事情,而不是你如何做


推荐阅读