使用 的 Amazon SES 範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

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

使用 的 Amazon SES 範例 AWS CLI

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

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

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

主題

動作

下列程式碼範例示範如何使用 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 Easy DKIM 屬性

下列範例使用 get-identity-dkim-attributes命令來擷取身分清單的 Amazon SES Easy 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" } } }

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

如需 Easy DKIM 的詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南中的 Amazon SES DKIM中的 Easy Word。

下列程式碼範例示範如何使用 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 Resource Names (ARNs)。

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

如需通知的詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南中的搭配使用通知與 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 }

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

SentLast24Hours 是您在過去 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 Simple Email Service 開發人員指南中的監控您的 Amazon SES 用量統計資料。

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

下列程式碼範例示範如何使用 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 開發人員指南API中的使用 Amazon SES 傳送格式化電子郵件。

  • 如需 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 表示呼叫 to send-raw-email 成功。

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

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

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

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

AWS CLI

針對 Amazon DKIM 驗證身分啟用或停用 Easy SES

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

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

如需 Easy DKIM 的詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南中的 Amazon SES DKIM中的 Easy Word。

下列程式碼範例示範如何使用 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 Simple Email Service 開發人員指南中的搭配使用通知與 Amazon SES。

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

AWS CLI

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

下列範例使用 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 Simple Email Service 開發人員指南中的搭配使用通知與 Amazon SES。

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

AWS CLI

若要產生已驗證網域的 DKIM 權杖,以使用 Amazon SES 簽署 DKIM

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

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

輸出:

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

若要設定 DKIM,您必須使用傳回的 DKIM 權杖,使用指向 Amazon DNS 託管的 DKIM 公有金鑰的 CNAME 記錄來更新網域的 SES 設定。如需詳細資訊,請參閱 Amazon Simple Email Service 開發人員指南中的 Amazon SES DKIM中的 Easy Word。

  • 如需 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" }

若要完成網域驗證,您必須將 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 信箱模擬器提供的電子郵件地址除外。

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

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