微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理使用 Sendgrid 发送时事通讯的最佳方法是什么

如何解决处理使用 Sendgrid 发送时事通讯的最佳方法是什么

背景

我们的网站上有简报模块,每周两次处理大约 100,000 封电子邮件。用 PHP 5.6 编码的网站(我知道它太旧了,不再支持 PHP。但是,我们必须保留它,直到新网站准备好)并且时事通讯内容来自 wordpress(帖子)。我们有一个工具可以使用来自 wordpress内容来构建时事通讯。然后我们可以选择收件人列表并发送时事通讯。

时事通讯发送部分由 cronjob 处理为批处理(小批量,25),我们使用 sendgrid 作为邮件程序。我们使用的是 sendgrid PHP library 5.1.0 版,准确地说它使用 api v3 (https://api.sendgrid.com/v3)。

这是我用来将批次发送到 sendgrid(通过 sendgrid PHP 库)的示例代码

$sg_mail = array(
    "categories" => array( "MailID-XXX" ),"content" => array( array( "type" => "text/html","value" => $newsletter_html_code ) ),"from" => array( "email" => "newsletter@sample.domain","name" => "Sample Newsletter" ),"personalizations" => $personalizations,"subject" => "Sample Subject Line"
);

$sg = new \SendGrid(SG_MAIL_KEY);
$sg->client->mail()->send()->post($sg_mail);

在这里,我将发送时事通讯的完整 html 内容(大小约为 500KB),每个批次和 $personalizations 数组用于个性化详细信息,例如订阅者的姓名、地址和取消订阅链接

问题

此设置正在运行。但是,当 cronjob 运行时,它会使用服务器的大量资源,并且网站在发送过程中变得越来越慢。有时甚至无法到达。 PHP 5.6 的一个限制是为了寻求更现代的解决方案,但我们已经坚持了几个月。

我认为必须有一些解决方法来避免这种情况。我想在第一批中将时事通讯 HTML 内容一次发送到 sendgrid,并在后续批次中仅发送个性化数组以避免加载请求。不幸的是,我无法从 sendgrid 文档中找到任何文档来做这样的事情。

这里的任何人都知道任何此类程序或任何其他建议以改进此程序以避免在发送时事通讯时使用高服务器资源。处理这种情况的最佳方法是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。