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 物件中原始電子郵件的相關資訊。包含JSON物件相關資訊的mail物件具有下列欄位。

欄位名稱 描述

timestamp

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

messageId

Amazon SES指派給訊息的唯一 ID。當您傳送訊息時,Amazon 會將此值SES傳回給您。

注意

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

source

傳送訊息的電子郵件地址 (信封MAILFROM地址)。

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隨後指派給mail物件messageId欄位中訊息的訊息 ID。

tags

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

退信物件

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

欄位名稱 描述

bounceType

退信的類型,由 Amazon 決定SES。

bounceSubType

退信的子類型,由 Amazon 決定SES。

bouncedRecipients

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

timestamp

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

feedbackId

退信的唯一 ID。

reportingMTA

來自 Reporting-MTA的欄位值DSN。這是 訊息傳輸授權機構 (MTA) 的值,其嘗試執行 中所述的交付、轉送或閘道操作DSN。

注意

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

退信的收件人

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

欄位名稱 描述

emailAddress

收件人的電子郵件地址。如果 DSN 可用,這是來自 Final-Recipient的欄位值DSN。

或者,如果 DSN 連接到退信,則下列欄位也可能存在。

欄位名稱 描述

action

來自 Action的欄位值DSN。這表示報告因嘗試將訊息傳遞給此收件人MTA而執行的動作。

status

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

diagnosticCode

報告 發佈的狀態碼MTA。這是來自 Diagnostic-Code的欄位值DSN。此欄位可能在 中不存在 DSN(因此在 中也不存在JSON)。

退信類型

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

事件發佈系統只會發佈不再由 Amazon 重試的硬退信和軟退信SES。當您收到標記為 的退信時Permanent,您應該從郵件清單中移除對應的電子郵件地址;您未來將無法傳送給他們。當訊息軟退信數次,且 Amazon SES 已停止嘗試重新傳送退信時,Transient便會將退信傳送給您。未來您也許可以成功重新傳送給一開始導致 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

CustomTimeoutExceeeded

Amazon SES 無法在電子郵件寄件者指定的時間內成功傳送電子郵件。(退信訊息將指定定義 內任何可能交付嘗試失敗的原因TTL。)

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

從 收到的意見回饋報告中Feedback-Type的欄位值ISP。這包含意見回饋的類型。

arrivalDate

意見回饋報告中 Arrival-DateReceived-Date 欄位的值,格式為 ISO8601 (YYYY-MM-DDThh:mm:ss.sZ)。此欄位可能在報告中不存在 (因此在 中也不存在JSON)。

提出投訴的收件人

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

重要

大部分會ISPs編輯提交投訴之收件人的電子郵件地址。因此,complainedRecipients 欄位將包含曾收過電子郵件、且地址位於發出抱怨通知的網域內之所有地址的清單。

JSON 此清單中的物件包含下列欄位。

欄位名稱 描述

emailAddress

收件人的電子郵件地址。

抱怨類型

根據網際網路指派號碼管理局網站 ISP,您可以在報告 指派的 complaintFeedbackType 欄位中看到下列投訴類型:

欄位名稱 描述

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

ISP 接受來自 Amazon 之電子郵件的遠端 回應SMTP訊息SES。此訊息會因電子郵件、接收郵件伺服器和接收 而異ISP。

reportingMTA

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

傳送物件

包含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問題導致訊息延遲。

  • 一般 – SMTP對話期間發生一般失敗。

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

  • SpamDetected – 收件人的郵件伺服器偵測到來自您帳戶的大量主動電子郵件。

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

  • IPFailure – 收件人的電子郵件提供者正在封鎖或調節傳送訊息的 IP 地址。

  • TransientCommunicationFailure – 與收件人的電子郵件提供者SMTP對話期間發生暫時性通訊失敗。

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

  • 未確定 – 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

傳送訊息的電子郵件地址 (信封MAILFROM地址)。

newTopicPreferences

JSON 資料結構 (地圖),指定聯絡人清單中所有主題的訂閱狀態,指出變更後的狀態 (聯絡人已訂閱或已取消訂閱)。

oldTopicPreferences

JSON 資料結構 (地圖),指定聯絡人清單中所有主題的訂閱狀態,指出變更前的狀態 (聯絡人已訂閱或已取消訂閱)。

新/舊主題偏好

newTopicPreferencesoldTopicPreferences 物件包含下列數值:

欄位名稱 描述

unsubscribeAll

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

topicSubscriptionStatus

topicName 欄位中指定主題的訂閱狀態,指出主題目前是否訂閱接收來自SES指定事件類型的通知。可能的值在 subscriptionStatus 欄位中為 OptIn (訂閱) 或 OptOut(取消訂閱)。

topicDefaultSubscriptionStatus

topicName 欄位中指定主題的預設訂閱狀態,以決定新增至事件目的地的新主題是否預設訂閱或取消訂閱。可能的值在 subscriptionStatus 欄位中為 OptIn(預設訂閱) 或 OptOut(預設取消訂閱)。