使用 AWS SES 发送批量电子邮件
Sending Bulk Email with AWS SES
我目前的设置如下:
我有一个要向其发送批量电子邮件的客户列表。在我的软件中,我可以选择立即发送或安排发送时间。我正在使用 Laravel,所以我在我的数据库中保存了电子邮件详细信息以及发送时间和日期,然后在控制台 kernel.php 中设置了一个时间表来检查 table 以及是否有电子邮件由于要发送然后他们将被发送。
首先,我确认他们不需要将其排队到 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 呼叫的限制。
我目前的设置如下:
我有一个要向其发送批量电子邮件的客户列表。在我的软件中,我可以选择立即发送或安排发送时间。我正在使用 Laravel,所以我在我的数据库中保存了电子邮件详细信息以及发送时间和日期,然后在控制台 kernel.php 中设置了一个时间表来检查 table 以及是否有电子邮件由于要发送然后他们将被发送。
首先,我确认他们不需要将其排队到 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 呼叫的限制。