我有一个SaaS应用程序,每个付费客户可能会有成千上万的成员,他们可能偶尔会发送电子邮件。
目前,通过AWS SES发送简单的BCC已经成功了,但现在我正在寻找发送个性化电子邮件,因此我必须能够逐个发送电子邮件。
根据我的知识,SES没有任何队列系统,您必须按电子邮件进行API调用。简而言之,发送批处理(我的限制是每秒14次)需要永远,并且用户在执行时无法关闭页面(如果你离开页面,即使AJAX调用也会停止执行,我是对的吗?)。
我正在考虑构建一个系统,我将电子邮件存储在数据库表中,然后是:
1)使用每5秒左右执行一次的CRON,抓取几封电子邮件并发送。
2)每5秒执行一次AJAX脚本,仅批量抓取所述登录客户的电子邮件并将其发送出去,但同样,如果客户在执行时退出,则可能是特定的批次被中断(其余的仍然会在下次客户登录时继续发送。)
有没有更好的想法?或者,上述两个中哪一个更受欢迎?
答案 0 :(得分:1)
使用发送到SES SMTP服务器的cronjob。这样,您可以个性化电子邮件,还可以控制要发送的电子邮件数量。你的cronjob可以睡在每批电子邮件之间。
答案 1 :(得分:0)
您应该使用几个月前AWS引入的模板和SendBulkTemplatedEmail端点:https://aws.amazon.com/blogs/ses/introducing-email-templates-and-bulk-sending/。
通过这种方式,您可以使用单个SES API调用发送最多50个个性化电子邮件。所以700次,有14次通话。
您不应该考虑在用户的浏览器中对它们进行排队,并通过发出一系列AJAX请求来发送它们。您应该只发送一个Ajax请求来启动作业。在大多数服务器端语言(我能想到的任何一种语言)中,您可以响应HTTP请求并在响应后继续进行处理。您还可以通过多种方式实施进度检查。
答案 2 :(得分:0)
您可以使用芹菜进行后台作业。用户在通过芹菜启动后台作业的网页上提交请求。后台作业负责发送电子邮件。发送电子邮件完成后,请通过电子邮件通知用户。