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

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

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

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

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

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

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

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

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

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

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

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

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

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

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特定标头X-SES-MESSAGE-TAGS中添加ses:feedback-id-<a or b>为消息标签。

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

如何使用事件发布

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

事件发布术语

以下列表定义了与SES活动发布相关的术语。

电子邮件发送事件

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

  • 发送-发送请求成功,Amazon SES 将尝试将邮件传送到收件人的邮件服务器。(如果使用账户级别或全局封禁,仍SES会将其计为发送,但传送被禁止。)

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

  • 拒绝 — Amazon SES 接受了这封电子邮件,但确定其中含有病毒,因此没有尝试将其发送到收件人的邮件服务器。

  • 达 — Amazon SES 成功将电子邮件传送到收件人的邮件服务器。

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

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

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

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

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

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

配置集

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

事件目标

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

邮件标签

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

自动标签

自动包含在事件发布报告中的邮件标签。配置集名称、“发件人” 地址的域、呼叫者的传出 IP 地址、传出 IP 地址和呼叫者的IAM身份都有一个自动标记。SES