php - 使用 AWS SES 发送批量电子邮件
问题描述
我目前的设置如下:
我有一个要向其发送批量电子邮件的客户列表。在我的软件中,我可以选择立即发送或安排发送时间。我正在使用 Laravel,所以我将电子邮件详细信息与发送时间和日期一起保存在我的数据库中,然后在控制台 kernel.php 中设置一个时间表来检查该表,如果有电子邮件要发送,那么它们将被发送。
首先,我确认他们不需要将其排队到 SQS,因为基本上我的设置基本上是在排队(除非有我不知道的好处)
现在我可以看到有两种选择:
- 我遍历学生并单独发送到 SES。
- 通过 AWS SDK 中的模板选项发送并一次性发送电子邮件。
使用选项 1,我有 SES 每秒 14 封电子邮件的限制,所以我想出了这个。
$i=0;
foreach($clients as $client) {
// send email code
if(($i++ % 10) == 0) {
sleep(1);
}
}
我相信这只会每秒发送 10 个。
使用选项 2,我每次通话的电子邮件地址限制为 50 个(我认为这就是限制),因此需要分批发送 50 个,这将相当简单。
所以我的问题是哪个更好,如果我使用选项 1,我的代码是正确的还是有更好的编写方法?
还是我做错了,有更好的方法!!
解决方案
对于其他想要解决此问题的人,解决方案如下:
如果您要发送电子邮件并自己处理任何动态数据,只需使用选项 1 并遍历每个电子邮件地址并发送到 SES API 单独设置每次发送时脚本中的延迟。以下应每秒发送 10 个。
foreach($clients as $client) {
// send email code
usleep(100000);
}
如果您想个性化电子邮件正文中的收件人姓名,请使用模板选项并一次发送最多 50 个地址,因为这是每个 API 调用的限制。
推荐阅读
- html - 图像上的 SVG 剪辑路径在 iOS 上不起作用
- scheme - 在 scp 中评估 (ff) 的替代模型
- ios - 创建一个通用函数,将视图控制器类型作为参数并返回基于该类型的自定义视图控制器
- java - 错误告诉我运行类中的方法未定义,即使它是
- node.js - 获取正在进行的传出 Twilio 呼叫的状态
- python - 如何在 Python 中使用 sklearn 对模型进行单一预测?
- reactjs - 如何在函数 React 中将状态从父级传递给子级?
- excel - Excel 或 VBA:从多列和多张工作表进行比较的公式,然后添加数据
- assembly - 汇编中的快速 8 位乘法器
- css - 角材质垫网格列表最外边界