问题描述
几天前,我们收到了一封来自 sendgrid 的电子邮件,说他们将改变他们 API 中的一些行为,我已经做了研究,但我还没有找到他们所指的具体内容,目前我们正在使用 PHP API ,至少对于 2) 我认为我们没问题,因为我们使用 SendGrid 类来构建电子邮件
检查您使用邮件发送端点的代码并确保 如果适用,“启用”参数包含在过滤器下。
你需要做什么?
为避免您的邮件发送服务中断,请务必使 2021年8月10日前的以下操作
-
检查您的邮件发送标头以确保您只使用一个 X-SMTPAPI 头和地址头的类型相同。删除多个 相同类型的标题,因此您只有 1 个相同类型的标题。 例如,如果您当前正在使用多个“来自”标头,则您 应该修改您的代码,以便您有一个“发件人”标头。
但是第三项呢?我们有以下时尚的替代品:$mail->personalization[0]->addSubstitution('%url%',$link);
但我还没有发现像“自定义参数中的块替换”之类的东西
第一项也让我担心,我也没有发现类似的东西,所以我担心 PHP API 在幕后做了一些事情。
这是我们使用的代码示例。
$sendgrid = new SendGrid(env('SENDGRID_APIKEY'));
$from_m = new SendGrid\Email(null,$from);
$to_m = new SendGrid\Email(null,$from);
$content = new SendGrid\Content("text/html",$body);
$mail = new SendGrid\Mail($from_m,'.',$to_m,$content);
$mail->personalization[0]->addBcc($tos);
$mail->personalization[0]->setSubject($subject);
$mail->personalization[0]->addSubstitution('%MemberName%',$name);
$mail->personalization[0]->addSubstitution('%url%',$hash_url);
$mail->setTemplateId($template_id);
$sendgrid->client->mail()->send()->post($mail);
我们正在使用 sendgrid/sendgrid: ~6.2
解决方法
这里是 Twilio SendGrid 开发者布道者。
从我阅读您的代码和发送给您的指南来看,您应该没问题。
-
您似乎没有使用任何需要通过 API 启用的东西,尽管您可以check all the
mail_settings
andtracking_settings
in the API reference here。 -
当您使用库并调用 API 时,您似乎没有发送任何额外的标头。
-
您似乎没有使用任何自定义参数,因此您没有对它们应用任何替换。
我确实建议您将 PHP 帮助程序库从 6 版升级到 7 版。这将确保底层库也以最新的方式使用 API。