Amazon SES 示例使用 AWS CLI - AWS Command Line Interface

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

Amazon SES 示例使用 AWS CLI

下列程式碼範例說明如何透過 AWS Command Line Interface 與 Amazon SES 搭配使用來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用delete-identity

AWS CLI

刪除身分

下列範例使用 delete-identity 命令從透過 Amazon SES 驗證的身分清單中刪除身分:

aws ses delete-identity --identity user@example.com

如需驗證的身分詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址和網域」。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考DeleteIdentity中的。

下列程式碼範例會示範如何使用get-identity-dkim-attributes

AWS CLI

若要取得身分清單的 Amazon SES 簡易 DKIM 屬性

下列範例會使用get-identity-dkim-attributes命令擷取身分清單的 Amazon SES 簡易 DKIM 屬性:

aws ses get-identity-dkim-attributes --identities "example.com" "user@example.com"

輸出:

{ "DkimAttributes": { "example.com": { "DkimTokens": [ "EXAMPLEjcs5xoyqytjsotsijas7236gr", "EXAMPLEjr76cvoc6mysspnioorxsn6ep", "EXAMPLEkbmkqkhlm2lyz77ppkulerm4k" ], "DkimEnabled": true, "DkimVerificationStatus": "Success" }, "user@example.com": { "DkimEnabled": false, "DkimVerificationStatus": "NotStarted" } } }

如果您使用從未提交進行驗證的身分來呼叫此命令,則該身分不會出現在輸出中。

如需簡易 DKIM 的詳細資訊,請參閱 Amazon 簡易電子郵件服務開發人員指南中的 Amazon SES 中的簡易 DKIM。

下列程式碼範例會示範如何使用get-identity-notification-attributes

AWS CLI

取得身分清單的 Amazon SES 通知屬性

下列範例使用get-identity-notification-attributes命令擷取身分清單的 Amazon SES 通知屬性:

aws ses get-identity-notification-attributes --identities "user1@example.com" "user2@example.com"

輸出:

{ "NotificationAttributes": { "user1@example.com": { "ForwardingEnabled": false, "ComplaintTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:MyTopic", "BounceTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:MyTopic", "DeliveryTopic": "arn:aws:sns:us-east-1:EXAMPLE65304:MyTopic" }, "user2@example.com": { "ForwardingEnabled": true } } }

此命令會傳回電子郵件意見反應轉寄的狀態,並傳送退回、抱怨和交付通知之 Amazon SNS 主題的 Amazon 資源名稱 (ARN) (如果適用)。

如果您使用從未提交進行驗證的身分來呼叫此命令,則該身分不會出現在輸出中。

如需有關通知的詳細資訊,請參閱 Amazon 簡單電子郵件服務開發人員指南中的透過 Amazon SES 使用通知。

下列程式碼範例會示範如何使用get-identity-verification-attributes

AWS CLI

取得身分清單的 Amazon SES 驗證狀態

下列範例使用 get-identity-verification-attributes 命令來擷取身分清單的 Amazon SES 驗證狀態:

aws ses get-identity-verification-attributes --identities "user1@example.com" "user2@example.com"

輸出:

{ "VerificationAttributes": { "user1@example.com": { "VerificationStatus": "Success" }, "user2@example.com": { "VerificationStatus": "Pending" } } }

如果您使用從未提交進行驗證的身分來呼叫此命令,則該身分不會出現在輸出中。

如需驗證的身分詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址和網域」。

下列程式碼範例會示範如何使用get-send-quota

AWS CLI

取得您的 Amazon SES 傳送限制

下列範例使用 get-send-quota 命令來傳回 Amazon SES 傳送限制:

aws ses get-send-quota

輸出:

{ "Max24HourSend": 200.0, "SentLast24Hours": 1.0, "MaxSendRate": 1.0 }

Max24 HourSend 是您的發送配額,這是您在 24 小時內可以發送的最大電子郵件數量。傳送配額所反映的是一段時間內的配額。每當您嘗試傳送電子郵件時,Amazon SES 會檢查您在過去的 24 小時內傳送的電子郵件數量。只要您已傳送的電子郵件總數量低於您的配額,您的傳送請求將被接受並將傳送您的電子郵件。

SentLast24 小時是您在過去 24 小時內發送的電子郵件數量。

MaxSendRate 是您每秒可傳送的電子郵件數目上限。

請注意,傳送限制依據收件人而定,而非訊息。例如,一封電子郵件中有 10 個收件人,就會佔用 10 個您的傳送配額。

如需詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「管理您的 Amazon SES 傳送限制」。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetSendQuota中的。

下列程式碼範例會示範如何使用get-send-statistics

AWS CLI

為了讓您的 Amazon SES 發送統計

下列範例使用命get-send-statistics令來傳回 Amazon SES 傳送統計資料

aws ses get-send-statistics

輸出:

{ "SendDataPoints": [ { "Complaints": 0, "Timestamp": "2013-06-12T19:32:00Z", "DeliveryAttempts": 2, "Bounces": 0, "Rejects": 0 }, { "Complaints": 0, "Timestamp": "2013-06-12T00:47:00Z", "DeliveryAttempts": 1, "Bounces": 0, "Rejects": 0 } ] }

結果為資料點清單,代表最近兩週的傳送活動。清單中的每個資料點都包含 15 分鐘間隔的統計資料。

在此範例中,只有兩個資料點,因為使用者在過去兩週傳送的唯一電子郵件間隔在兩個 15 分鐘內。

如需詳細資訊,請參閱 Amazon 簡單電子郵件服務開發人員指南中的監控 Amazon SES 使用統計資料。

下列程式碼範例會示範如何使用list-identities

AWS CLI

列出特定 AWS 帳戶的所有身分 (電子郵件地址和網域)

下列範例使用 list-identities 命令來列出已提交給 Amazon SES 驗證的所有身分:

aws ses list-identities

輸出:

{ "Identities": [ "user@example.com", "example.com" ] }

傳回的清單包含所有身分,無論驗證狀態為何 (已驗證、等待驗證、失敗等)。

在此範例中,因為我們未指定 identity-type 參數,所以會傳回電子郵件地址 網域。

如需驗證詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址和網域」。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考ListIdentities中的。

下列程式碼範例會示範如何使用send-email

AWS CLI

使用 Amazon SES 傳送格式化電子郵件

下列範例使用 send-email 命令來傳送格式化電子郵件:

aws ses send-email --from sender@example.com --destination file://destination.json --message file://message.json

輸出:

{ "MessageId": "EXAMPLEf3a5efcd1-51adec81-d2a4-4e3f-9fe2-5d85c1b23783-000000" }

目的地和訊息是在目前目錄中以 .json 檔案形式儲存的 JSON 資料結構。這些檔案如下:

destination.json:

{ "ToAddresses": ["recipient1@example.com", "recipient2@example.com"], "CcAddresses": ["recipient3@example.com"], "BccAddresses": [] }

message.json:

{ "Subject": { "Data": "Test email sent using the AWS CLI", "Charset": "UTF-8" }, "Body": { "Text": { "Data": "This is the message body in text format.", "Charset": "UTF-8" }, "Html": { "Data": "This message body contains HTML formatting. It can, for example, contain links like this one: <a class=\"ulink\" href=\"http://docs.aws.amazon.com/ses/latest/DeveloperGuide\" target=\"_blank\">Amazon SES Developer Guide</a>.", "Charset": "UTF-8" } } }

將寄件者和收件者的電子郵件地址取代為您要使用的地址。請注意,必須透過 Amazon SES 驗證寄件者的電子郵件地址。在您取得 Amazon SES 生產存取權之前,除非收件者是 Amazon SES 信箱模擬器,否則您還必須驗證每個收件者的電子郵件地址。如需驗證詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址和網域」。

輸出中的訊息 ID 表示對 send-email 的呼叫成功。

如果您沒有收到電子郵件,請檢查您的垃圾郵件匣。

如需傳送格式化電子郵件的詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中「使用 Amazon SES API 傳送格式化電子郵件」。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考SendEmail中的。

下列程式碼範例會示範如何使用send-raw-email

AWS CLI

使用 Amazon SES 傳送電子郵件原始碼

下列範例使用 send-raw-email 命令來傳送包含 TXT 附件的電子郵件:

aws ses send-raw-email --raw-message file://message.json

輸出:

{ "MessageId": "EXAMPLEf3f73d99b-c63fb06f-d263-41f8-a0fb-d0dc67d56c07-000000" }

原始訊息是在目前目錄中以名為 message.json 的檔案儲存的 JSON 資料結構。其中包含下列各項:

{ "Data": "From: sender@example.com\nTo: recipient@example.com\nSubject: Test email sent using the AWS CLI (contains an attachment)\nMIME-Version: 1.0\nContent-type: Multipart/Mixed; boundary=\"NextPart\"\n\n--NextPart\nContent-Type: text/plain\n\nThis is the message body.\n\n--NextPart\nContent-Type: text/plain;\nContent-Disposition: attachment; filename=\"attachment.txt\"\n\nThis is the text in the attachment.\n\n--NextPart--" }

如您所見,「資料」是一個長字串,其中包含 MIME 格式的整個原始電子郵件內容,包括名為 attachment.txt 的附件。

將 sender@example.com 和 recipient@example.com 取代為您要使用的地址。請注意,必須透過 Amazon SES 驗證寄件者的電子郵件地址。在您取得 Amazon SES 生產存取權之前,除非收件者是 Amazon SES 信箱模擬器,否則您還必須驗證收件者的電子郵件地址。如需驗證詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址和網域」。

輸出中的訊息 ID 表示呼叫 send-raw-email 成功。

如果您沒有收到電子郵件,請檢查您的垃圾郵件匣。

如需傳送電子郵件原始碼的詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「使用 Amazon SES API 傳送電子郵件原始碼」。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考SendRawEmail中的。

下列程式碼範例會示範如何使用set-identity-dkim-enabled

AWS CLI

為 Amazon SES 驗證身分啟用或停用簡易 DKIM

下列範例會使用命set-identity-dkim-enabled令來停用已驗證電子郵件地址的 DKIM:

aws ses set-identity-dkim-enabled --identity user@example.com --no-dkim-enabled

如需簡易 DKIM 的詳細資訊,請參閱 Amazon 簡易電子郵件服務開發人員指南中的 Amazon SES 中的簡易 DKIM。

下列程式碼範例會示範如何使用set-identity-feedback-forwarding-enabled

AWS CLI

啟用或停用 Amazon SES 驗證身分的退信和投訴電子郵件意見反應轉寄

下列範例會使用set-identity-feedback-forwarding-enabled命令啟用經過驗證的電子郵件地址,以便透過電子郵件接收退信和投訴通知:

aws ses set-identity-feedback-forwarding-enabled --identity user@example.com --forwarding-enabled

您必須透過 Amazon SNS 或電子郵件意見反應轉送接收退信和投訴通知,因此只有在針對退信和投訴通知選取 Amazon SNS 主題時,才能停用電子郵件意見反應轉送。

如需有關通知的詳細資訊,請參閱 Amazon 簡單電子郵件服務開發人員指南中的透過 Amazon SES 使用通知。

下列程式碼範例會示範如何使用set-identity-notification-topic

AWS CLI

設定 Amazon SES 將針對已驗證身分發佈退信、抱怨和/或交付通知的 Amazon SNS 主題

下列範例使用命set-identity-notification-topic令來指定經過驗證的電子郵件地址將接收退信通知的 Amazon SNS 主題:

aws ses set-identity-notification-topic --identity user@example.com --notification-type Bounce --sns-topic arn:aws:sns:us-east-1:EXAMPLE65304:MyTopic

如需有關通知的詳細資訊,請參閱 Amazon 簡單電子郵件服務開發人員指南中的透過 Amazon SES 使用通知。

下列程式碼範例會示範如何使用verify-domain-dkim

AWS CLI

若要產生經過驗證網域的 DKIM 權杖,以便使用 Amazon SES 進行 DKIM 簽署

下列範例會使用verify-domain-dkim命令為已通過 Amazon SES 驗證的網域產生 DKIM 權杖:

aws ses verify-domain-dkim --domain example.com

輸出:

{ "DkimTokens": [ "EXAMPLEq76owjnks3lnluwg65scbemvw", "EXAMPLEi3dnsj67hstzaj673klariwx2", "EXAMPLEwfbtcukvimehexktmdtaz6naj" ] }

若要設定 DKIM,您必須使用傳回的 DKIM 權杖,使用指向 Amazon SES 託管的 DKIM 公開金鑰的 CNAME 記錄來更新網域的 DNS 設定。如需詳細資訊,請參閱 Amazon SES 中的簡易 DKIM,其中的 Amazon 簡易電子郵件服務開發人員指南

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考VerifyDomainDkim中的。

下列程式碼範例會示範如何使用verify-domain-identity

AWS CLI

透過 Amazon SES 驗證網域

下列範例會使用 verify-domain-identity 命令來驗證網域:

aws ses verify-domain-identity --domain example.com

輸出:

{ "VerificationToken": "eoEmxw+YaYhb3h3iVJHuXMJXqeu1q1/wwmvjuEXAMPLE" }

若要完成網域驗證,您必須將帶有傳回驗證 Token 的 TXT 記錄新增至網域的 DNS 設定。如需詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證網域」。

下列程式碼範例會示範如何使用verify-email-identity

AWS CLI

透過 Amazon SES 驗證電子郵件地址

下列範例會使用 verify-email-identity 命令來驗證網域:

aws ses verify-email-identity --email-address user@example.com

您必須先驗證您要用於傳送電子郵件的寄件地址或網域來證明您擁有該地址或網域,才可使用 Amazon SES 傳送電子郵件。如果您尚未擁有生產存取權,除了由 Amazon SES 信箱模擬器提供的電子郵件地址外,您仍需驗證任何您傳送電子郵件的收件電子郵件地址。

verify-email-identity 被調用後,電子郵件地址將收到一封驗證電子郵件。使用者必須按一下電子郵件中的連結,以完成驗證程序。

如需詳細資訊,請參閱《Amazon Simple Email Service 開發人員指南》中的「在 Amazon SES 中驗證電子郵件地址」。