使用 Amazon SES 事件发布监控电子邮件发送 - Amazon Simple Email Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon SES 事件发布监控电子邮件发送

为了使您能够精细地跟踪电子邮件的发送,您可以将 Amazon SES 设置为根据您定义的特征向亚马逊、Amazon Data Firehose CloudWatch、Amazon Pinpoint 或亚马逊简单通知服务发布电子邮件发送事件

您可以跟踪多种类型的电子邮件发送事件,包括发送、送达、打开、点击、退回、投诉、拒绝、呈现失败和送达延迟。此信息可用于操作和分析目的。例如,您可以将电子邮件发送数据发布到 CloudWatch 并创建控制面板来跟踪电子邮件活动的效果,也可以使用 Amazon SNS 在某些事件发生时向您发送通知。

事件发布如何与配置集和消息标签配合使用

要使用事件发布,您首先要设置一个或多个配置集。配置集用于指定发布事件的位置和要发布的事件。然后,每次发送电子邮件时,您都要提供配置集的名称和一个或多个邮件标签(采用名称/值对的形式)以对邮件进行分类。例如,如果您要宣传书籍,则当您为关联的营销活动发送电子邮件时,可以将邮件标签命名为 genre,并指定值 sci-fiwestern

根据您使用的电子邮件发送接口,您可以将消息标签作为 SendEmailAPI 操作EmailTags字段的参数提供,也可以将消息标签添加到 SES 特定的电子邮件标题中。X-SES-MESSAGE-TAGS有关配置集的更多信息,请参阅在 Amazon 中使用配置集 SES

除了您指定的邮件标签之外,Amazon SES 还会将自动标签添加到您发送的邮件。您无需执行任何其他步骤就能使用自动标签。

下表列出了自动应用于您使用 Amazon SES 发送的邮件的自动标签。

Amazon SES 自动标签
自动标签名称 描述
ses:caller-identity 发送电子邮件的 Amazon SES 用户的 IAM 身份。
ses:configuration-set 与电子邮件关联的配置集的名称。
ses:from-domain “发件人”地址的域。
ses:outgoing-ip Amazon SES 用来发送电子邮件的 IP 地址。
ses:source-ip 发起人用来发送电子邮件的 IP 地址。
ses:source-tls-version 调用方用来发送电子邮件的 TLS 协议版本。

电子邮件营销活动的细粒度反馈

ses:feedback-id-<a or b>标签是一个可选的消息标签,您可以将其视为混合或半自动标签,虽然它与上一节中讨论的自动标签类似,但不同之处在于您必须手动添加它并使用前缀密钥。ses:您最多可以使用两个定义为ses:feedback-id-a和的标签ses:feedback-id-b

当您指定这些标签时,SES 会自动将它们附加到用于提供投递统计信息(例如投诉和垃圾邮件率)的标准Feedback-ID标题中,作为反馈循环 (FBL) 的一部分,请参阅。反馈循环Feedback-ID题由 SES 用于收集投诉信息的标识符 sesInternalId 和标识 SES 为发送平台的静态标签 Amazon SES 组成,例如:

FeedBackId:feedback-id-a:feedback-id-b:((SESInternalID):(AmazonSES))

这些可选的反馈ID标签是为了让你生成细粒度的反馈,例如针对你作为电子邮件活动的一部分发送的消息。您可以ses:feedback-id-<a or b>通过在SendEmail操作请求的EmailTags字段中将其指定为消息标签来使用,如以下示例所示:

{ "FromEmailAddress": "noreply@example.com", "Destination": { "ToAddresses": [ "customer@example.net" ] }, "Content": { "Simple": { "Subject": { "Data": "Hello and welcome" }, "Body": { "Text": { "Data": "Lorem ipsum dolor sit amet." }, "Html": { "Data": "Lorem ipsum dolor sit amet." } } } }, "EmailTags": [ { "Name": "ses:feedback-id-a", "Value": "new-members-campaign" }, { "Name": "ses:feedback-id-b", "Value": "football-campaign" } ], "ConfigurationSetName": "football-club" }

如果以原始格式发送,则应将其ses:feedback-id-<a or b>作为消息标签添加到特定于 SES 的标头中。X-SES-MESSAGE-TAGS

也可以在亚马逊 CloudWatch 中跟踪ses:feedback-id-<a or b>消息标签,方法是将其指定为 CloudWatch 价值来源,就像任何其他消息标签一样,请参阅 添加 CloudWatch 事件目标(需支付额外费用,参见每个指标的价格 CloudWatch。)

如何使用事件发布

以下几节包含设置和使用 Amazon SES 事件发布所需的信息。

事件发布术语

以下列表定义了与 Amazon SES 事件发布相关的术语。

电子邮件发送事件

与您提交到 Amazon SES 的电子邮件的结果关联的信息。发送事件包括:

  • Send(发送)– 发送请求成功,Amazon SES 将尝试将邮件发送到收件人的邮件服务器。(如果使用账户级别或全局抑制,SES 仍会将其计为发送,但会抑制送达。)

  • RenderingFailure— 由于模板渲染问题,电子邮件未发送。当模板数据丢失或模板参数与数据不匹配时,可能会发生此事件类型。(此事件类型仅在您使用 SendTemplatedEmailSendBulkTemplatedEmail API 操作发送电子邮件时发生。)

  • Reject(拒绝)– Amazon SES 已接受电子邮件,但确定它包含病毒,而未尝试将其发送到收件人的邮件服务器。

  • Delivery(送达)– Amazon SES 成功将电子邮件发送到收件人的邮件服务器。

  • 退信 – 收件人的邮件服务器永久拒绝了电子邮件的硬退信。(仅当 S ES 不再尝试发送电子邮件时,才会包含软退件。 通常,这些软退件表示投递失败,尽管在某些情况下,即使邮件成功到达收件人收件箱,也可以返回软退件。 当收件人发送 out-of-office 自动回复时,通常会发生这种情况。 在这篇 re AWS : Post 文章中了解有关软反弹的更多信息。)

  • Complaint(投诉)– 电子邮件已成功送达收件人的邮件服务器,但收件人将其标记为垃圾邮件。

  • DeliveryDelay— 由于出现临时问题,无法将电子邮件发送到收件人的邮件服务器。例如,当收件人的收件箱已满,或者当接收电子邮件服务器遇到临时问题时,可能会发生传送延迟。

  • Subscription(订阅)– 电子邮件已成功发送,但收件人通过单击电子邮件标头中的 List-Unsubscribe 或脚注中的 Unsubscribe 链接更新了订阅首选项。

  • Open(打开)– 收件人已收到邮件并在其电子邮件客户端中打开了邮件。

  • Click(单击)– 收件人单击了电子邮件中包含的一个或多个链接。

配置集

一组规则,用于定义 Amazon SES 将电子邮件发送事件发布到的目标以及要发布的电子邮件发送事件的类型。在发送您希望用于事件发布的电子邮件时,您将指定与电子邮件关联的配置集。

事件目标

您发布 Amazon SES 电子邮件向其发送事件的 AWS 服务。您设置的每个事件目标都属于一个(且仅属于一个)配置集。

邮件标签

一个名称/值,用于出于事件发布目的对电子邮件进行分类。示例包括营销活动/书籍营销活动/服装。在发送电子邮件时,您可以将邮件标签指定为 API 调用的参数或指定为特定于 Amazon SES 的电子邮件标题。

自动标签

自动包含在事件发布报告中的邮件标签。有一个用于配置集名称、“发件人”地址的域、发起人的出站 IP 地址、Amazon SES 出站 IP 地址和发起人的 IAM 身份的自动标签。