使用亚马逊的SES示例 AWS CLI - AWS Command Line Interface

本文档 AWS CLI 仅适用于版本 1。有关版本 2 的文档 AWS CLI,请参阅版本 2 用户指南

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

使用亚马逊的SES示例 AWS CLI

以下代码示例向您展示了如何通过 AWS Command Line Interface 与 Amazon 一起使用来执行操作和实现常见场景SES。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例显示了如何使用delete-identity

AWS CLI

删除身份

以下示例使用delete-identity命令从通过 Amazon 验证的身份列表中删除身份SES:

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

有关经过验证的身份的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “SES在亚马逊中验证电子邮件地址和域名”。

以下代码示例显示了如何使用get-identity-dkim-attributes

AWS CLI

获取身份列表的 Amazon E SES asy DKIM 属性

以下示例使用get-identity-dkim-attributes命令检索身份列表的 Amazon E SES asy 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,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的 Eas DKIM y in Amazon。

以下代码示例显示了如何使用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 } } }

此命令返回电子邮件反馈转发的状态,如果适用,还会返回向其发送退信、投诉和送达通知的亚马逊SNS主题的亚马逊资源名称 (ARNs)。

如果调用此命令时,列表包含从未提交验证的身份,则该身份将不会出现在输出中。

有关通知的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》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" } } }

如果调用此命令时,列表包含从未提交验证的身份,则该身份将不会出现在输出中。

有关经过验证的身份的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “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 份发送配额。

有关更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “管理您的亚马逊SES发送限制”。

以下代码示例显示了如何使用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 分钟间隔内发送的。

有关更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “监控您的亚马逊SES使用统计信息”。

以下代码示例显示了如何使用list-identities

AWS CLI

列出特定 AWS 账户的所有身份(电子邮件地址和域名)

以下示例使用list-identities命令列出已提交给 Amazon 进行验证的所有身份SES:

aws ses list-identities

输出:

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

返回的列表包含所有身份,无论验证状态如何(已验证、待验证、失败等)。

在此示例中,由于未指定 identity-type 参数,因此返回了电子邮件地址 域。

有关验证的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “SES在亚马逊中验证电子邮件地址和域名”。

以下代码示例显示了如何使用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。除非收件人是亚马逊邮箱模拟器SES,否则您还必须验证每个收件人的电子邮件地址,除非收件人是亚马逊SES邮箱模拟器。有关验证的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “SES在亚马逊中验证电子邮件地址和域名”。

输出中的消息 ID 表示 send-email 调用成功。

如果您没有收到电子邮件,请检查垃圾邮件。

有关发送格式化电子邮件的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SESAPI中的使用亚马逊发送格式化电子邮件

以下代码示例显示了如何使用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。除非收件人是亚马逊邮箱模拟器SES,否则您还必须验证收件人的电子邮件地址,除非收件人是亚马逊SES邮箱模拟器。有关验证的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》中的 “SES在亚马逊中验证电子邮件地址和域名”。

输出中的消息 ID 表示对的调用 send-raw-email成功。

如果您没有收到电子邮件,请检查垃圾邮件。

有关发送原始电子邮件的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SESAPI中的使用亚马逊发送原始电子邮件

以下代码示例显示了如何使用set-identity-dkim-enabled

AWS CLI

启用或禁用 Easy f DKIM or Amazon SES 验证身份

以下示例使用set-identity-dkim-enabled命令对经过验证DKIM的电子邮件地址禁用:

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

有关 Easy 的更多信息DKIM,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的 Eas DKIM y in Amazon。

以下代码示例显示了如何使用set-identity-feedback-forwarding-enabled

AWS CLI

为SES经亚马逊验证的身份启用或禁用退回邮件和投诉电子邮件反馈转发

以下示例使用set-identity-feedback-forwarding-enabled命令使经过验证的电子邮件地址能够通过电子邮件接收退信和投诉通知:

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

您需要通过亚马逊SNS或电子邮件反馈转发来接收退信和投诉通知,因此,只有在为退回通知和投诉通知都选择亚马逊SNS主题时,才能禁用电子邮件反馈转发。

有关通知的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的在亚马逊上使用通知。

以下代码示例显示了如何使用set-identity-notification-topic

AWS CLI

设置亚马逊SES将发布针对已验证身份的退货、投诉和/或送达通知的亚马逊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

有关通知的更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的在亚马逊上使用通知。

以下代码示例显示了如何使用verify-domain-dkim

AWS CLI

生成经过验证的域名的DKIM令牌以在 Amazon 上DKIM签名 SES

以下示例使用verify-domain-dkim命令为已通过 Amazon 验证的域名生成DKIM令牌SES:

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

输出:

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

要进行设置DKIM,您必须使用返回的DKIM令牌使用指向 Amazon 托管的DKIM公钥的CNAME记录来更新您的域名DNS设置SES。有关更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的 Eas DKIM y in Amazon。

以下代码示例显示了如何使用verify-domain-identity

AWS CLI

使用 Amazon 验证域名 SES

以下示例使用 verify-domain-identity 命令验证域:

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

输出:

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

要完成域名验证,您必须在域名DNS设置中添加一条包含返回的验证令牌的TXT记录。有关更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的在亚马逊中验证域名。

以下代码示例显示了如何使用verify-email-identity

AWS CLI

向 Amazon 验证电子邮件地址 SES

以下示例使用 verify-email-identity 命令验证电子邮件地址:

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

在使用 Amazon 发送电子邮件之前SES,您必须验证发送电子邮件的地址或域名,以证明您拥有该电子邮件。如果您还没有生产访问权限,则还需要验证除亚马逊SES邮箱模拟器提供的电子邮件地址之外的所有电子邮件地址。

接 verify-email-identity到电话后,该电子邮件地址将收到一封验证电子邮件。用户必须单击此电子邮件中的链接才能完成验证过程。

有关更多信息,请参阅《亚马逊简单电子邮件服务开发者指南》SES中的在亚马逊中验证电子邮件地址。