繁体   English   中英

如何从发送网格获取发送给多个收件人的单个 email 的 email 活动状态

[英]How to get the email activity status from send grid for a single email sent to multiple recipients

我正在向收件人列表中的多个收件人发送一个 email(带有自定义参数)并接收一个消息 ID。

现在我正在尝试使用 sendgrid email 活动 api 通过提供自定义参数使用查询来获取 email 状态。

在这个 email 活动的响应中,我只收到一个收件人的状态,但没有收到其他收件人的状态。

在发送 email 或搜索 email 活动时,我是否遗漏了什么?

我尝试在 sendgrid 中搜索相同的 email,我可以看到各个收件人的状态,但无法使用 email 活动获取相同的信息

在做了一些研究和调查之后,我可以解决这个问题。

作为 email 活动 api 的一部分,我尝试通过更改查询来搜索不同的邮件。我发现它返回了多封电子邮件。 因此,我可以看到从 sendgrid 响应返回了一系列邮件。

为了深入了解这个问题,我向多个收件人发送了一个 email。 在发送网格活动中,我验证了每个收件人 email 以查看是否存在导致我的过滤器不返回数据的差异。

我发现当一封邮件被发送给多个收件人时,自定义 arguments 仅被添加到 To email 地址的第一个收件人,CC 等的第一个收件人。

下面是我在 C# 中用来发送邮件的代码。

    SendGridMessage msg = MailHelper.CreateSingleEmailToMultipleRecipients(from, recipients, subject, plainText, htmlContent);
msg.AddCustomArgs(uniqueArgs);
SendGrid.Response response = await client.SendEmailAsync(msg);

它从未将这些自定义 arguments 附加到其他收件人的 rest。

要解决此问题,我必须使用“AddGlobalCustomArgs”而不是“AddCustomArgs”将 arguments 添加到邮件中,这会将 arguments 添加到所有收件人邮件中。

msg.AddGlobalCustomArgs(uniqueArgs);

使用此发送邮件后,自定义 arguments 将添加到所有收件人邮件中。 针对作为 Sendgrid 活动的一部分发送的每个收件人邮件验证了这一点。

现在,尝试使用我拥有的相同查询过滤器运行 email api,现在我可以检索使用自定义 arguments 发送的所有电子邮件。

希望这个答案有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM