Amazon SES 發佈至 Amazon SNS 的事件資料內容 - Amazon Simple Email Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon SES 發佈至 Amazon SNS 的事件資料內容

Amazon SES 以 JSON 格式將電子郵件傳送事件記錄發佈到 Amazon Simple Notification Service。

您可於 Amazon SES 發佈至 Amazon SNS 的事件資料範例 找到這些所有通知類型的範例記錄。

最上層 JSON 物件

電子郵件傳送事件記錄中最上層的 JSON 物件包含下列欄位。事件類型會決定有哪些其他物件。

欄位名稱 描述

eventType

描述事件類型的字串。可能的數值:BounceComplaintDeliverySendRejectOpenClickRendering FailureDeliveryDelaySubscription

如果您未不設定事件發佈,此欄位將命名為 notificationType

mail

包含生產該事件的電子郵件相關資訊之 JSON 物件。

bounce

此欄位只有在 eventType 的值為 Bounce 才會顯示。其中包含退信的資訊。

complaint

此欄位只有在 eventType 的值為 Complaint 才會顯示。其中包含投訴的資訊。

delivery

此欄位只有在 eventType 的值為 Delivery 才會顯示。其中包含交付的資訊。

send

此欄位只有在 eventType 的值為 Send 才會顯示。

reject

此欄位只有在 eventType 的值為 Reject 才會顯示。其中包含拒收的資訊。

open

此欄位只有在 eventType 的值為 Open 才會顯示。其中包含開啟事件的資訊。

click

此欄位只有在 eventType 的值為 Click 才會顯示。其中包含點選事件的資訊。

failure

此欄位只有在 eventType 的值為 Rendering Failure 才會顯示。其中包含轉譯失敗事件的資訊。

deliveryDelay

此欄位只有在 eventType 的值為 DeliveryDelay 才會顯示。其中包含電子郵件延遲傳遞的相關資訊。

subscription

此欄位只有在 eventType 的值為 Subscription 才會顯示。其中包含訂閱偏好設定的資訊。

郵件物件

每個電子郵件傳送事件記錄包含 mail 物件中原始電子郵件的相關資訊。其中包含 mail 物件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

timestamp

傳送訊息的日期和時間,格式為 ISO8601 (YYYY-MM-DDThh:mm:ss.sZ)。

messageId

Amazon SES 指派給訊息的專有 ID。您傳送訊息後,Amazon SES 會回傳此數值給您。

注意

此訊息 ID 是由 Amazon SES 指派。您可以在原始電子郵件內 headers 物件的 commonHeadersmail 欄位找到訊息 ID。

source

傳送出該訊息的電子郵件地址 (信封的「寄件人」地址)。

sourceArn

用以傳送電子郵件之身分的 Amazon Resource Name (ARN)。在傳送授權的情況下,sourceArn 為身分持有者授權給委託寄件者之身分的 ARN,用以傳送電子郵件。如需關於傳送授權的詳細資訊,請參閱 電子郵件身分驗證方法

sendingAccountId

用以傳送電子郵件之帳戶的 AWS 帳戶 ID。在傳送授權的情況下,sendingAccountId 為委託寄件者的帳戶 ID。

destination

原始郵件收件人的電子郵件地址清單。

headersTruncated

說明通知中的標題是否已截斷的字串,會在標題大於 10 KB 時顯示。可能值為 truefalse

headers

電子郵件原始標題的清單。清單中的每項標題都有 name 欄位與 value 欄位。

注意

headers 欄位中的任何訊息 ID 都來自於您傳遞給 Amazon SES 的原始訊息。Amazon SES 隨即指派給訊息的訊息 ID 位於 mail 物件的 messageId 欄位內。

commonHeaders

電子郵件常用的原始標頭映射。

注意

任何 commonHeaders 欄位內的訊息 ID 皆為 Amazon SES 隨即指派給訊息的訊息 ID,位於 mail 物件的 messageId 欄位內。

tags

與電子郵件相關聯的標籤清單。

退信物件

其中包含 Bounce 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

bounceType

退信類型,由 Amazon SES 判定。

bounceSubType

退信的副類型,由 Amazon SES 判定。

bouncedRecipients

其中包含遭退信的原始郵件收件人之相關資訊的清單。

timestamp

ISP 傳送退信通知時的日期和時間,其格式為 ISO8601 格式 (YYYY-MM-DDThh:mm:ss.sZ)。

feedbackId

退信的唯一 ID。

reportingMTA

來自 DSN 的 Reporting-MTA 欄位數值。這是嘗試執行傳遞、轉傳或閘道操作的 Message Transfer Authority (MTA) 值,如 DSN 中所述。

注意

此欄位只有在傳遞狀態通知 (DSN) 與退信連接時才會顯示。

退信的收件人

退信事件可能與單一收件人或多個收件人相關。bouncedRecipients 欄位擁有物件清單 (電子郵件地址發生退信的每個收件人都有一個物件),且包含下列欄位。

欄位名稱 描述

emailAddress

收件人的電子郵件地址。若有可用的 DSN,此為來自 DSN 的 Final-Recipient 欄位值。

或者,如果 DSN 連接到退信,也可能會顯示下列欄位。

欄位名稱 描述

action

來自 DSN 的 Action 欄位數值。這表示回報 MTA 所執行的動作為嘗試傳送訊息給此收件人的結果。

status

來自 DSN 的 Status 欄位數值。此為每個收件人的獨立傳輸狀態碼,表示訊息的傳遞狀態。

diagnosticCode

由回報 MTA 發出的狀態碼。此為來自 DSN 的 Diagnostic-Code 欄位數值。此欄位可能不會在 DSN 中顯示 (因而也不會在 JSON 中顯示)。

退信類型

每個退信事件都是下表所列的其中一個類型。

事件發佈系統只會發佈 Amazon SES 不會再重試傳送的硬退信與軟退信。當您收到標示為 Permanent 的退信時,您應該從電子清單中移除對應的電子郵件地址,您將來無法再傳送給他們。當訊息發生多次軟退信時,您會收到 Transient 退信,而 Amazon SES 會停止嘗試重新遞送該訊息。未來您也許可以成功重新傳送給一開始導致 Transient 退信的地址。

bounceType bounceSubType 描述

Undetermined

Undetermined

Amazon SES 無法判斷具體退信原因。

Permanent

General

Amazon SES 收到一般硬退信。如果您收到此類退信,應該從您的郵寄清單中移除該收件人的電子郵件地址。

Permanent

NoEmail

Amazon SES 收到永久硬退信,因為目標電子郵件地址不存在。如果您收到此類退信,應該從您的郵寄清單中移除該收件人的電子郵件地址。

Permanent

Suppressed

Amazon SES 已禁止寄至此地址的傳送,因為它最近因無效地址而出現退信歷程記錄。若要複寫全域禁止名單,請參閱 使用 Amazon SES 帳戶級別禁止列表

Permanent OnAccountSuppressionList Amazon SES 已禁止傳送至此地址,因為它列於帳戶層級禁止名單中。這不會計入您的退信率指標。

Transient

General

Amazon SES 收到一般退信。未來您也許可成功傳送給此收件人。

Transient

MailboxFull

Amazon SES 收到信箱已滿退信。未來您也許可成功傳送給此收件人。

Transient

MessageTooLarge

Amazon SES 收到訊息過大退信。若您減少訊息大小,也許可成功傳送給此收件人。

Transient

ContentRejected

Amazon SES 收到內容遭拒退信。若您更改訊息內容,也許可成功傳送給此收件人。

Transient

AttachmentRejected

Amazon SES 收到附件遭拒退信。若您移除或更改附件,也許可成功傳送給此收件人。

投訴物件

其中包含 Complaint 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

complainedRecipients

清單中包含可能曾提出投訴的收件人相關資訊。

timestamp

ISP 傳送抱怨通知時的日期和時間,其格式為 ISO8601 格式 (YYYY-MM-DDThh: mm: ss.sZ)。

feedbackId

投訴的唯一 ID。

complaintSubType

投訴的子類型,由 Amazon SES 判定。

此外,如果意見回饋報告連接到該投訴,可能顯示下列欄位。

欄位名稱 描述

userAgent

來自意見回饋報告的 User-Agent 欄位數值。這表示產生報告的系統名稱和版本。

complaintFeedbackType

自 ISP 傳送的意見回饋報告中的 Feedback-Type 欄位數值。這包含意見回饋的類型。

arrivalDate

來自回饋報告的 Arrival-DateReceived-Date 欄位值,其格式為 ISO8601 格式 (YYYY-MM-DDThh:mm:ss.sZ)。此欄位可能不會在報告中顯示 (因而也不會在 JSON 中顯示)。

提出投訴的收件人

complainedRecipients 欄位包含可能曾提出投訴的收件人清單。

重要

大多數 ISP 會修改提出抱怨的收件人之電子郵件地址。因此,complainedRecipients 欄位將包含曾收過電子郵件、且地址位於發出抱怨通知的網域內之所有地址的清單。

在這個清單中的 JSON 物件包含下列欄位。

欄位名稱 描述

emailAddress

收件人的電子郵件地址。

抱怨類型

您可能看到 complaintFeedbackType 欄位中由回報 ISP 根據 Internet Assigned Numbers Authority website 指派的下列投訴類型:

欄位名稱 描述

abuse

指出自動發出的電子郵件或其他形式的電子郵件濫用。

auth-failure

電子郵件身分驗證故障報告。

fraud

指示某些形式的詐騙或網路釣魚活動。

not-spam

指示提供報告的實體不會將訊息視為垃圾郵件。這可能會用於修正內含不正確標籤或者被歸類為垃圾郵件的訊息。

other

指示不符合其他註冊類型的任何其他意見回饋。

virus

回報在原始訊息中找到病毒。

抱怨子類型

complaintSubType 欄位的值可以是 null 或 OnAccountSuppressionList。如果該值為 OnAccountSuppressionList,Amazon SES 會接受訊息,但不會嘗試傳送它,因為它位在帳戶層級禁止名單中。

交付物件

其中包含 Delivery 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

timestamp

Amazon SES 傳遞電子郵件到收件人的郵件伺服器之日期和時間,以 ISO8601 格式 (YYYY-MM-DDThh:mm:ss.sZ) 顯示。

processingTimeMillis

從 Amazon SES 接受來自寄件者請求,到 Amazon SES 將訊息傳遞給收件人電子郵件伺服器之間的毫秒數。

recipients

套用傳遞事件的預期收件人清單。

smtpResponse

接受 Amazon SES 所傳送電子郵件的遠端 ISP 之 SMTP 回應訊息。此訊息會隨著電子郵件、接收郵件伺服器以及接收 ISP 而有所不同。

reportingMTA

傳送郵件的 Amazon SES 郵件伺服器主機名稱。

傳送物件

包含關於 send 事件資訊的 JSON 物件將一律為空白。

拒絕物件

其中包含 Reject 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

reason

電子郵件遭拒的原因。唯一可能的值為 Bad content,這表示 Amazon SES 偵測到電子郵件包含病毒。當訊息遭到拒絕時,Amazon SES 會停止處理訊息,且不會嘗試將它遞送到收件人的電子郵件伺服器。

開啟物件

其中包含 Open 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

ipAddress

收件人的 IP 地址。

timestamp

開啟事件發生時的日期和時間,其格式為 ISO8601 格式 (YYYY-MM-DDThh:mm:ss.sZ)。

userAgent

收件人用於開啟電子郵件中的連結的裝置或電子郵件用戶端使用者代理程式。

點選物件

其中包含 Click 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

ipAddress

收件人的 IP 地址。

timestamp

點擊事件發生時的日期和時間,其格式為 ISO8601 格式 (YYYY-MM-DDThh:mm:ss.sZ)。

userAgent

收件人用於點選電子郵件中的連結的用戶端使用者代理程式。

link

收件人點選的 URL 連結。

linkTags

使用 ses:tags 屬性新增到連結的標籤清單。如需新增標籤至電子郵件中連結的相關資訊,請參閱 問題 5:我可以使用獨特的識別碼來標籤連結嗎? 中的 Amazon SES 電子郵件傳送指標常見問答集

算圖失敗物件

其中包含 Rendering Failure 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

templateName

用於傳送電子郵件的範本名稱。

errorMessage

提供更多關於轉譯失敗資訊的訊息。

DeliveryDelay 物件

其中包含 DeliveryDelay 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

delayType

延遲的類型。可能值為:

  • InternalFailure - 內部 Amazon SES 問題造成訊息延遲。

  • General - 在 SMTP 對話期間發生一般失敗。

  • MailboxFull - 收件人的信箱已滿,無法接收其他訊息。

  • SpamDetected - 收件人的郵件伺服器偵測到來自您帳戶大量未經要求的電子郵件。

  • RecipientServerError - 收件人的電子郵件伺服器暫時發生問題,導致無法遞送訊息。

  • IPFailure - 傳送訊息的 IP 地址遭到收件人的電子郵件供應商的封鎖或節流。

  • TransientCommunicationFailure - 在與收件人的電子郵件供應商的 SMTP 對話期間發生暫時性的通訊失敗。

  • BYOIPHostNameLookupUnavailable - Amazon SES 無法查詢您的 IP 地址的 DNS 主機名稱。只有當您使用自有 IP時,才會發生這種類型的延遲。

  • Undetermined - Amazon SES 無法判斷傳送延遲的原因。

  • SendingDeferral - Amazon SES 認為適合內部延遲的訊息。

delayedRecipients

包含有關電子郵件收件人資訊的物件。

expirationTime

Amazon SES 將停止嘗試傳遞訊息的日期和時間。此數值以 ISO 8601 格式顯示。

reportingMTA

報告延遲之郵件傳輸代理程式 (MTA) 的 IP 地址。

timestamp

延遲發生的日期和時間,以 ISO 8601 格式顯示。

延遲的收件人

delayedRecipients 物件包含下列數值:

欄位名稱 描述

emailAddress

導致訊息傳遞延遲的電子郵件地址。

status

與傳遞延遲相關聯的 SMTP 狀態碼。

diagnosticCode

接收訊息傳輸代理程式 (MTA) 所提供的診斷代碼。

訂閱物件

其中包含 Subscription 事件相關資訊的 JSON 物件有下列欄位。

欄位名稱 描述

contactList

聯絡人名稱清單為開啟。

timestamp

ISP 傳送訂閱通知時的日期和時間,其格式為 ISO8601 格式 (YYYY-MM-DDThh:mm:ss.sZ)

source

傳送出該訊息的電子郵件地址 (信封的「寄件人」地址)。

newTopicPreferences

JSON 資料結構 (映射) 指定聯絡清單中所有主題的訂閱狀態,顯示更改後的狀態 (已訂閱或已取消訂閱)。

oldTopicPreferences

JSON 資料結構 (映射) 指定聯絡清單中所有主題的訂閱狀態,顯示更改前的狀態 (已訂閱或已取消訂閱)。

新/舊主題偏好

newTopicPreferencesoldTopicPreferences 物件包含下列數值:

欄位名稱 描述

unsubscribeAll

指定聯絡人是否取消聯絡清單中的所有主題。

topicSubscriptionStatus

指定 topicName 欄位中的主題並映射 subscriptionStatus 欄位中的訂閱狀態 (OptInOptOut)。

topicDefaultSubscriptionStatus

指定 topicName 欄位中的主題並映射 subscriptionStatus 欄位中的訂閱狀態 (OptInOptOut)。