Sendgrid:在一个请求中向不同的收件人发送不同的邮件
本文关键字:收件人 请求 一个 Sendgrid | 更新日期: 2023-09-27 17:53:39
尝试使用个性化替换,如%body%
。然而,我得到一个错误说Substitutions are limited to 10000 bytes per personalization
。基本上每个接受者的身体都是不同的。
是否有另一种有效的方式将不同的邮件发送给不同的收件人?
每个请求发送一封邮件会非常慢。
请注意:模板不是一个选项,因为邮件是根据用户当前的活动创建的。
我认为你所问的在Sendgrid的API下是根本不可能的。他们已经为您提供了包含变量(10000字节)的选项。
建议# 1:您可以使用一个Queue (ApacheMQ或Amazon SQS)系统和几个worker来处理电子邮件的发送。队列是为了防止任何未发送的电子邮件,而工人是为了让你一次发送多封电子邮件(2个工人,2封电子邮件并行发送)。
建议# 2:有一个简单的cronjob,它每5分钟运行一次(你需要根据你要发送的邮件数量和发送邮件的可接受延迟来计算),并根据数据库中告诉你是否发送了邮件的一列,得到100个客户向谁发送邮件,这样你就可以避免向同一客户发送多封邮件。
理想情况下,我会坚持第一个建议,但它可能需要更多的工作。你可以从#2开始,然后一点一点地做#1。
希望有帮助!
我也达到了10000字节的限制。在我的情况下,这是一个边缘情况,所以我为这些调用添加了一个使用常规SMTP发送的回退。
- 调用SendGrid的API并获取模板的HTML
- 迭代替换并替换主题和主体
- 迭代接收方并对每个接收方执行一次smtp调用
不是每个人都可以选择,但是很容易设置。