亚马逊向亚马逊SES发布的事件数据内容 SNS - Amazon Simple Email Service

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

亚马逊向亚马逊SES发布的事件数据内容 SNS

亚马逊以JSON格式向亚马逊简单通知服务SES发布电子邮件发送事件记录。

您可以在 Amazon SES 发布到 Amazon SNS 的事件数据示例 中找到所有这些通知类型的示例记录。

顶级JSON对象

电子邮件发送事件记录中的顶级JSON对象包含以下字段。事件类型决定了存在哪些其他对象。

字段名称 描述

eventType

一个描述事件类型的文本字符串。可能的值:BounceComplaintDeliverySendRejectOpenClickRendering FailureDeliveryDelaySubscription

如果尚未设置事件发布,则此字段将命名为 notificationType

mail

一个JSON对象,其中包含有关生成事件的电子邮件的信息。

bounce

仅当 eventTypeBounce 时,此字段才存在。它包含有关退信的信息。

complaint

仅当 eventTypeComplaint 时,此字段才存在。它包含有关投诉的信息。

delivery

仅当 eventTypeDelivery 时,此字段才存在。它包含有关送达的信息。

send

仅当 eventTypeSend 时,此字段才存在。

reject

仅当 eventTypeReject 时,此字段才存在。它包含有关拒绝的信息。

open

仅当 eventTypeOpen 时,此字段才存在。它包含有关打开事件的信息。

click

仅当 eventTypeClick 时,此字段才存在。它包含有关点击事件的信息。

failure

仅当 eventTypeRendering Failure 时,此字段才存在。它包含有关呈现失败事件的信息。

deliveryDelay

仅当 eventTypeDeliveryDelay 时,此字段才存在。它包含有关延迟送达电子邮件的信息。

subscription

仅当 eventTypeSubscription 时,此字段才存在。它包含有关订阅首选项的信息。

邮件对象

每个电子邮件发送事件记录都包含有关 mail 对象中的原始电子邮件的信息。包含JSON对象相关信息的mail对象具有以下字段。

字段名称 描述

timestamp

发送消息的日期和时间,采用 ISO86 01 格式(YYYY-MM--: mm: ss.sz DDThh)。

messageId

Amazon 为消息SES分配的唯一编号。在您发送消息时,Amazon 将此值SES返回给您。

注意

此消息编号由 Amazon 分配SES。您可以在 mail 对象的 headerscommonHeaders 字段中找到原始电子邮件的邮件 ID。

source

发送消息的电子邮件地址(信封MAILFROM地址)。

sourceArn

用于发送电子邮件的身份的 Amazon 资源名称 (ARN)。如果是发送授权,则sourceArn是身份所有者授权委托发件人用来发送电子邮件的身份。ARN有关发送授权的更多信息,请参阅电子邮件身份验证方法

sendingAccountId

用于发送电子邮件的账户的账户 ID。 AWS 在发送授权的情况下,sendingAccountId 是委托发件人的账户 ID。

destination

作为原始邮件的收件人的电子邮件地址的列表。

headersTruncated

一个字符串,指定标头是否会在通知中被截断,如果标头大于 10 KB,则会发生截断。可能的值为 truefalse

headers

电子邮件的原始标头的列表。列表中的每个标头均有一个 name 字段和一个 value 字段。

注意

headers字段中的任何消息 ID 均来自您传递给 Amazon 的原始消息SES。Amazon SES 随后为该消息分配的消息 ID 位于mail对象的messageId字段中。

commonHeaders

电子邮件的原始常用标头的映射。

注意

commonHeaders字段中的任何消息 ID 都是 Amazon SES 随后在mail对象messageId字段中为消息分配的消息 ID。

tags

与电子邮件关联的标签的列表。

退信对象

包含Bounce事件相关信息的JSON对象具有以下字段。

字段名称 描述

bounceType

反弹的类型,由 Amazon SES 确定。

bounceSubType

反弹的子类型,由 Amazon 确定。SES

bouncedRecipients

包含已退回的原始邮件收件人相关信息的列表。

timestamp

发送退回通知的日期和时间,采ISO86用 01 格式(YYYY-MM--: mm: ss.sz DDThh)。ISP

feedbackId

退信的唯一 ID。

reportingMTA

Reporting-MTA字段的值来自DSN。这是试图执行中描述的传送、中继或网关操作的邮件传输权限 (MTA) 的值DSN。

注意

仅当退回邮件中附有配送状态通知 (DSN) 时,才会显示此字段。

退信的收件人

退信事件可能与一个收件人或多个收件人有关。bouncedRecipients 字段包含一系列对象(其电子邮件地址导致退信的每个收件人各有一个对象)并包含以下字段。

字段名称 描述

emailAddress

收件人的电子邮件地址。如果 a 可DSN用,则为该Final-Recipient字段的值DSN。

或者,如果向反弹附加了 aDSN,则还可能存在以下字段。

字段名称 描述

action

Action字段的值来自DSN。这表示报告MTA在尝试将邮件传送给该收件人后所执行的操作。

status

Status字段的值来自DSN。这是每个收件人与传输无关的状态代码,用于指示邮件的传输状态。

diagnosticCode

报告发布的状态码MTA。这是来自的Diagnostic-Code字段的值DSN。中可能不存在此字段DSN(因此也没有JSON)。

退信类型

每个退信事件都属于下表中所示的类型之一。

事件发布系统仅发布 Amazon 不再重试的硬退回和软退回。SES当您收到标有退回邮件时Permanent,应从邮件列表中删除相应的电子邮件地址;将来您将无法向他们发送邮件。 Transient当一封邮件多次被软退回,而且 Amazon SES 已停止尝试重新投递时,系统会向您发送退回邮件。您将来或许能够成功重新发送到最初导致了 Transient 退信的地址。

bounceType bounceSubType 描述

Undetermined

Undetermined

Amazon SES 无法确定具体的退货原因。

Permanent

General

亚马逊SES收到了普遍的强劲反弹。如果您收到此类退信,您应从邮件列表中删除收件人的电子邮件地址。

Permanent

NoEmail

由于目标电子邮件地址不存在,Amazon SES 收到了永久性的硬退邮件。如果您收到此类退信,您应从邮件列表中删除收件人的电子邮件地址。

Permanent

Suppressed

Amazon SES 已禁止向该地址发货,因为该地址最近曾被当作无效地址退回。要覆盖全局黑名单,请参阅 使用 Amazon SES 账户级别的禁止名单

Permanent OnAccountSuppressionList Amazon SES 已禁止向该地址发送商品,因为该地址已被列入账户级别的封禁名单。这不计入您的跳出率指标。

Transient

General

亚马逊SES收到了普遍的反弹。将来,您也许能够向该收件人成功发送电子邮件。

Transient

MailboxFull

Amazon SES 收到了邮箱全额退回邮件。将来,您也许能够向该收件人成功发送电子邮件。

Transient

MessageTooLarge

Amazon SES 收到的消息退回量过大。如果您减小邮件的大小,则也许能够向该收件人成功发送电子邮件。

Transient

ContentRejected

亚马逊SES收到了退回的内容被拒绝。如果您更改邮件的内容,则也许能够向该收件人成功发送电子邮件。

Transient

AttachmentRejected

亚马逊SES收到了拒绝退回的附件。如果您删除或更改附件,则也许能够向该收件人成功发送电子邮件。

投诉对象

包含Complaint事件相关信息的JSON对象具有以下字段。

字段名称 描述

complainedRecipients

包含可能已提交投诉的收件人的相关信息列表。

timestamp

发送投诉通知的日期和时间,采ISO86用 01 格式(YYYY-MM--: mm: ss.sz DDThh)。ISP

feedbackId

投诉的唯一 ID。

complaintSubType

投诉的子类型,由 Amazon 确定。SES

此外,如果反馈报告已附加到投诉,则以下字段也可能存在。

字段名称 描述

userAgent

反馈报告中的 User-Agent 字段的值。此值表示生成了报告的系统的名称和版本。

complaintFeedbackType

从收到的反馈报告中该Feedback-Type字段的值ISP。此值包含反馈的类型。

arrivalDate

反馈报告中Arrival-DateReceived-Date字段的值,格式为 ISO86 01(YYYY-MM-DDThh-: mm: ss.sz)。报告中可能没有此字段(因此也没有JSON)。

已投诉的收件人

complainedRecipients 字段包含可能已提交投诉的收件人的列表。

重要

大多数ISPs会删除提交投诉的收件人的电子邮件地址。出于此原因,complainedRecipients 字段包含域中已向其发送电子邮件而该地址发布了投诉通知的所有人的列表。

JSON此列表中的对象包含以下字段。

字段名称 描述

emailAddress

收件人的电子邮件地址。

投诉类型

根据互联网号码分配机构的网站,您可能会在该complaintFeedbackType字段中看到举报ISP分配的以下投诉类型:

字段名称 描述

abuse

指示未经请求的电子邮件或某种其他类型的电子邮件滥用。

auth-failure

电子邮件身份验证失败报告。

fraud

指示某种欺诈或网络钓鱼活动。

not-spam

指示提供报告的实体不会将邮件视为垃圾邮件。这可用于更正被错误地标记或分类为垃圾邮件的邮件。

other

指示不适合其他已注册类型的任何其他反馈。

virus

报告在原始邮件中发现病毒。

投诉子类型

complaintSubType 字段的值可以为 null 或 OnAccountSuppressionList。如果值为OnAccountSuppressionList,则 Amazon SES 接受了该消息,但由于该消息在账户级别的禁止列表中,因此没有尝试发送。

送达对象

包含Delivery事件相关信息的JSON对象具有以下字段。

字段名称 描述

timestamp

亚马逊SES将电子邮件发送到收件人邮件服务器的日期和时间,格式为 ISO86 01(YYYY-MM-DDThh-: mm: ss.sz)。

processingTimeMillis

从亚马逊SES接受发件人的请求到亚马逊将邮件SES传递到收件人的邮件服务器之间的时间(以毫秒为单位)。

recipients

传送事件应用于的预定收件人的列表。

smtpResponse

接受 Amazon 电子邮件ISP的遥控器的SMTP回复消息SES。此消息因电子邮件、接收邮件服务器和接收而异ISP。

reportingMTA

发送邮件的 Amazon SES 邮件服务器的主机名。

发送对象

包含send事件相关信息的JSON对象始终为空。

拒绝对象

包含Reject事件相关信息的JSON对象具有以下字段。

字段名称 描述

reason

电子邮件被拒绝的原因。唯一可能的值是Bad content,这意味着 Amazon SES 检测到电子邮件中包含病毒。当邮件被拒绝时,Amazon SES 会停止处理该邮件,也不会尝试将其传送到收件人的邮件服务器。

打开对象

包含Open事件相关信息的JSON对象具有以下字段。

字段名称 描述

ipAddress

收件人的 IP 地址。

timestamp

打开事件发生的日期和时间采用 ISO86 01 格式(YYYY-MM-DDThh-: mm: ss.sz)。

userAgent

收件人用于打开电子邮件中的设备或电子邮件客户端的用户代理。

单击对象

包含Click事件相关信息的JSON对象具有以下字段。

字段名称 描述

ipAddress

收件人的 IP 地址。

timestamp

点击事件发生的日期和时间,格式为 ISO86 01(YYYY-MM-DDThh-: mm: ss.sz)。

userAgent

收件人单击电子邮件中链接时使用的客户端的用户代理。

link

收件人点击的链接。URL

linkTags

使用 ses:tags 属性添加到链接的标签的列表。有关向电子邮件中的链接添加标签的更多信息,请参阅 Amazon SES 电子邮件发送指标常见问题中的问题 5:我能否用唯一标识符来标记链接?

呈现失败对象

包含Rendering Failure事件相关信息的JSON对象具有以下字段。

字段名称 描述

templateName

用于发送电子邮件的模板的名称。

errorMessage

提供有关呈现失败详细信息的消息。

DeliveryDelay 对象

包含DeliveryDelay事件相关信息的JSON对象具有以下字段。

字段名称 描述

delayType

延迟的类型。可能的值有:

  • InternalFailure— Amazon 内部SES问题导致消息延迟。

  • 常规 — 通SMTP话期间发生一般故障。

  • MailboxFull— 收件人的邮箱已满,无法接收其他消息。

  • SpamDetected— 收件人的邮件服务器检测到来自您的帐户的大量未经请求的电子邮件。

  • RecipientServerError— 收件人的电子邮件服务器暂时出现问题,导致邮件无法传送。

  • IPFailure— 发送邮件的 IP 地址被收件人的电子邮件提供商屏蔽或限制。

  • TransientCommunicationFailure— 在与收件人的电子邮件提供商的SMTP对话中出现临时通信故障。

  • BYOIPHostNameLookupUnavailable— Amazon SES 无法查找您的 IP 地址DNS的主机名。这种类型的延迟仅在您使用自带 IP 时发生。

  • 未确定 — Amazon SES 无法确定配送延迟的原因。

  • SendingDeferral— Amaz SES on 认为在内部推迟该消息是适当的。

delayedRecipients

包含有关电子邮件收件人的信息的对象。

expirationTime

Amazon SES 停止尝试发送消息的日期和时间。此值以 ISO 8601 格式显示。

reportingMTA

报告延迟的邮件传输代理 (MTA) 的 IP 地址。

timestamp

延迟发生的日期和时间,以 ISO 8601 格式显示。

延迟的收件人

delayedRecipients 对象包含以下值。

字段名称 描述

emailAddress

导致邮件送达延迟的电子邮件地址。

status

与配送延迟相关的SMTP状态码。

diagnosticCode

接收消息传输代理提供的诊断代码 (MTA)。

订阅对象

包含Subscription事件相关信息的JSON对象具有以下字段。

字段名称 描述

contactList

联系人所在的列表的名称。

timestamp

发送订阅通知的日期和时间,采ISO86用 01 格式(YYYY-MM--: mm: ss.sz DDThh)。ISP

source

发送消息的电子邮件地址(信封MAILFROM地址)。

newTopicPreferences

一种JSON数据结构(地图),它指定联系人列表中所有主题的订阅状态,指示更改后的状态(联系人已订阅或取消订阅)。

oldTopicPreferences

一种JSON数据结构(地图),它指定联系人列表中所有主题的订阅状态,指示更改前的状态(联系人已订阅或取消订阅)。

新/旧主题首选项

newTopicPreferencesoldTopicPreferences 对象包含以下值。

字段名称 描述

unsubscribeAll

指定联系人是否已取消订阅联系人列表中的所有主题。

topicSubscriptionStatus

在字段中指定主题的订阅状态,该topicName字段指示该主题当前是否已订阅以接收来自SES指定事件类型的通知。字段中可能的值为 OptIn(已订阅)或 OptOut(取消订阅)。subscriptionStatus

topicDefaultSubscriptionStatus

topicName字段中指定主题的默认订阅状态,以确定默认情况下是订阅还是取消订阅添加到活动目标的新主题。字段中可能的值为 OptIn(默认情况下已订阅)或 OptOut(默认取消订阅)。subscriptionStatus