我当前的设置如下:
我有一个向其发送批量电子邮件的客户列表。在我的软件中,我可以选择立即发送或安排发送时间。我正在使用Laravel,所以我将电子邮件详细信息以及发送时间和日期保存在数据库中,然后在控制台kernel.php中设置了时间表以检查该表,如果有要发送的电子邮件,则将其发送。
首先,我确认他们没有必要将其排队到SQS,因为基本上我的设置实质上是在排队(除非有我不知道的好处)
现在我可以看到有两种选择:
对于选项1,使用SES时,我的每秒限制为14封电子邮件,因此我想出了这一点。
$i=0;
foreach($clients as $client) {
// send email code
if(($i++ % 10) == 0) {
sleep(1);
}
}
我相信这只会每秒发送10个。
使用选项2时,每个电话我最多只能有50个电子邮件地址(我认为这是限制),因此需要批量发送50个,这非常简单。
所以我的问题是哪个更好,如果我使用选项1,则我的代码正确还是有更好的书写方式?
或者我做错了什么,还有更好的方法!
答案 0 :(得分:0)
对于任何想要对此答案的人,解决方案如下:
如果您要发送电子邮件并处理任何动态数据,则只需使用选项1,然后遍历每个电子邮件地址,然后分别发送到SES API,并在每次发送时在脚本中设置延迟。以下应每秒发送10个。
foreach($clients as $client) {
// send email code
usleep(100000);
}
如果要个性化电子邮件正文中的收件人姓名,请使用模板选项并一次最多发送50个地址,因为这是每个API调用的限制。