使用账户级黑名单 - Amazon Simple Email Service

这是 Amazon SES Classic 的用户指南。更新和新功能仅在新 Amazon SES 开发人员指南,我们建议使用。

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

使用账户级黑名单

Amazon SES 包含账户级黑名单(适用于您在当前 AWS 区域中的 AWS 账户。此黑名单将阻止您向之前产生退回邮件或投诉事件的地址发送电子邮件。配置账户级黑名单时,您可以指定是否要在电子邮件地址导致硬退回、投诉或同时导致两者时将其添加到黑名单中。您可以使用 Amazon SES API v2 手动在账户级黑名单中添加或删除单个或批量地址或批量地址。

注意

要批量添加或删除地址,您必须具有生产访问权限。如需了解有关沙盒的详细信息,请参阅脱离 Amazon SES 沙盒

Amazon SES 还包含一个全局禁名单。有关更多信息,请参阅 使用 Amazon SES 全局黑名单

账户级黑名单注意事项

使用账户级黑名单时,您应该注意以下事项:

  • 如果您在 2019 年 11 月 25 日之后开始使用 Amazon SES,则默认情况下,您的账户将使用账户级黑名单来处理退回邮件和投诉。如果您在此日期之前开始使用 Amazon SES,则必须使用PutAccountSuppressionAttributes操作。

  • 如果您尝试将邮件发送到账户级黑名单中的地址,则 Amazon SES 会接收该邮件,但不会将其发送出去。

  • Amazon SES 不会将您发送到账户级黑名单中地址的邮件计入您账户的退回邮件率。

  • Amazon SES 会将您发送到账户级黑名单中的地址的邮件计入您的每日发送配额。

  • 账户级黑名单中的电子邮件地址会保留在那里,直到您使用DeleteSuppressedDestination在 Amazon SES API v2 中执行操作。

  • 如果您账户的电子邮件发送功能已暂停,Amazon SES 会在 90 天后自动从账户级黑名单中删除您账户的电子邮件地址。如果您账户的电子邮件发送功能在此 90 天的期限结束之前恢复,则不会删除账户级黑名单中的地址。

  • Gmail 不会向 Amazon SES 提供投诉数据。如果收件人使用 Gmail Web 客户端中的 Spam (垃圾邮件) 按钮将您发送的电子邮件举报为垃圾邮件,则这些邮件地址不会被添加到账户级黑名单中。

  • 如果您的账户位于 Amazon SES 沙盒中,则可以启用账户级别禁止列表。但是,您不能使用PutSuppressedDestination或者CreateImportJob操作,直到您的帐户从沙盒中删除。如需了解有关沙盒的详细信息,请参阅脱离 Amazon SES 沙盒

  • 当您使用账户级黑名单时,Amazon SES 还会将导致 “查无此人的邮件” 的邮件地址添加到全局黑名单。

启用账户级黑名单

您可以使用PutAccountSuppressionAttributes操作来启用和设置账户级 Amazon SES 名单。您可以使用 AWS CLI 轻松快速地配置此设置。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要使用 AWS CLI 来配置账户级黑名单,请执行以下操作:

  • 在命令行输入以下命令:

    Linux, macOS, or Unix
    aws sesv2 put-account-suppression-attributes \ --suppressed-reasons BOUNCE COMPLAINT
    Windows
    aws sesv2 put-account-suppression-attributes ` --suppressed-reasons BOUNCE COMPLAINT

    要启用账户级黑名单,您必须为 suppressed-reasons 参数指定至少一个原因。您可以指定 BOUNCECOMPLAINT,也可以同时指定两者,如上例所示。

为配置集启用账户级黑名单

您还可以对账户级黑名单进行配置,使其仅适用于指定的配置集。执行此操作后,仅当您在发送导致退回邮件或投诉事件的电子邮件时指定了配置集时,才会将地址添加到黑名单。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要使用 AWS CLI 为配置集配置账户级黑名单,请执行以下操作:

  • 在命令行输入以下命令:

    Linux, macOS, or Unix
    aws sesv2 put-configuration-set-suppression-options \ --configuration-set-name configSet \ --suppressed-reasons BOUNCE COMPLAINT
    Windows
    aws sesv2 put-configuration-set-suppression-options ` --configuration-set-name configSet ` --suppressed-reasons BOUNCE COMPLAINT

    在上述示例中,将 configSet 替换为应使用账户级黑名单的配置集的名称。

将单个电子邮件地址手动添加到账户级黑名单

您可以使用手动将单独的地址添加到账户级黑名单,请执行以下操作:PutSuppressedDestination在 Amazon SES API v2 中执行操作。您可以添加到账户级黑名单中的地址数量没有限制。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要使用 AWS CLI 手动将地址添加到账户级黑名单,请执行以下操作:

  • 在命令行输入以下命令:

    Linux, macOS, or Unix
    aws sesv2 put-suppressed-destination \ --email-address recipient@example.com \ --reason BOUNCE
    Windows
    aws sesv2 put-suppressed-destination ` --email-address recipient@example.com ` --reason BOUNCE

    在上述示例中,将 recipient@example.com 替换为您要添加到账户级黑名单中的电子邮件地址,将 BOUNCE 替换为您要将电子邮件地址添加到黑名单中的原因(可接受的值为 BOUNCECOMPLAINT)。

批量添加电子邮件地址到账户级黑名单

您可以手动批量添加地址,方法是首先将您的联系人列表上传到您有权访问的 Amazon S3 数据元,然后使用CreateImportJob在 Amazon SES API v2 中执行操作。

注意

您可以添加到账户级黑名单中的地址数量没有限制,但每次 API 调用,Amazon S3 数据元中的地址数量没有限制。

要将电子邮件地址批量添加到帐户级别的禁止列表中,请完成以下步骤。

  • 以 CSV 或 JSON 格式将您的地址列表上传到 Amazon S3 对象中。

    用于添加地址的 CSV 格式示例:

    recipient1@example.com,BOUNCE

    recipient2@example.com,COMPLAINT

    仅支持换行符分隔的 JSON 文件。在此格式中,每一行都是一个完整的 JSON 对象,其中包含单独的地址定义。

    用于添加地址的 JSON 格式示例:

    {"emailAddress":"recipient1@example.com","reason":"BOUNCE"}

    {"emailAddress":"recipient2@example.com","reason":"COMPLAINT"}

    在上述示例中,替换recipient1@example.comrecipient2@example.com,其中包含要添加到账户级黑名单中的电子邮件地址。您将地址添加到禁止列表的可接受原因是BOUNCECOMPLAINT

  • 使用CreateImportJob在 Amazon SES API v2 中执行操作。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要使用手动将批量地址添加到账户级黑名单,请执行以下操作:AWS CLI

  • 在命令行输入以下命令:

    Linux, macOS, or Unix
    aws sesv2 create-import-job \ --import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\":\"PUT\"}}" \ --import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"
    Windows
    aws sesv2 create-import-job ` --import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\":\"PUT\"}}" ` --import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"

    在上述示例中,替换S3Buckets3 对象与 Amazon S3 存储桶名称和 Amazon S3 对象名称相同。

查看账户级别黑名单中的地址列表

您可以查看账户的账户级黑名单中的所有电子邮件地址的列表,方法是使用ListSuppressedDestinations在 Amazon SES API v2 中执行操作。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

查看账户级别黑名单中的所有电子邮件地址的列表

  • 在命令行输入以下命令:

    aws sesv2 list-suppressed-destinations

前一个命令返回您账户的账户级别黑名单中的所有电子邮件地址。输出与以下内容类似:

{ "SuppressedDestinationSummaries": [ { "EmailAddress": "recipient2@example.com", "Reason": "COMPLAINT", "LastUpdateTime": 1586552585.077 }, { "EmailAddress": "recipient0@example.com", "Reason": "COMPLAINT", "LastUpdateTime": 1586552666.613 }, { "EmailAddress": "recipient1@example.com", "Reason": "BOUNCE", "LastUpdateTime": 1586556479.141 } ] }

可以使用 StartDate 选项来只显示在特定日期以后 添加到列表中的电子邮件地址。

查看在特定日期以后添加到账户级别黑名单中的地址列表

  • 在命令行输入以下命令:

    aws sesv2 list-suppressed-destinations --start-date 1604394130

    在前一个命令中,使用开始日期的 Unix 时间戳替换 1604394130

您还可以使用 EndDate 选项来只显示在特定日期之前 添加到列表中的电子邮件地址。

查看在特定日期之前添加到账户级别黑名单中的地址列表

  • 在命令行输入以下命令:

    aws sesv2 list-suppressed-destinations --end-date 1611126000

    在前一个命令中,使用结束日期的 Unix 时间戳替换 1611126000

在 Linux、macOS 或 Unix 命令行中,您也可以使用内置的grep实用程序来搜索特定地址或域。

在账户级别黑名单中搜索特定地址

  • 在命令行输入以下命令:

    aws sesv2 list-suppressed-destinations | grep -A2 'example.com'

    在上一个命令中,将 example.com 替换为要搜索的文本字符串(例如地址或域)。

从账户级黑名单中删除电子邮件地址

如果某个地址位于您账户的黑名单上,但您知道该地址不应该在列表中,您可以使用手动将其删除。DeleteSuppressedDestination在 Amazon SES API v2 中执行操作。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要使用 AWS CLI 从账户级黑名单中删除地址,请执行以下操作:

  • 在命令行输入以下命令:

    Linux, macOS, or Unix
    aws sesv2 delete-suppressed-destination \ --email-address recipient@example.com
    Windows
    aws sesv2 delete-suppressed-destination ` --email-address recipient@example.com

    在上述示例中,将 recipient@example.com 替换为您要从账户级黑名单中删除的电子邮件地址。

从账户级黑名单中批量删除电子邮件地址

您可以手动批量删除地址,方法是首先将您的联系人列表上传到您有权访问的 Amazon S3 数据元,然后使用CreateImportJob在 Amazon SES API v2 中执行操作。

注意

您可以从账户级黑名单中删除的地址数量没有限制,但 Amazon S3 数据元每次 API 调用的地址数量在每个 API 调用中有 10,000 个地址。

要从帐户级别禁止列表中批量删除电子邮件地址,请完成以下步骤。

  • 以 CSV 或 JSON 格式将您的地址列表上传到 Amazon S3 对象中。

    用于删除地址的 CSV 格式示例:

    recipient3@example.com

    仅支持换行符分隔的 JSON 文件。在此格式中,每一行都是一个完整的 JSON 对象,其中包含单独的地址定义。

    用于添加地址的 JSON 格式示例:

    {"emailAddress":"recipient3@example.com"}

    在上述示例中,替换recipient3@example.com使用您要从账户级黑名单中删除的电子邮件地址。

  • 使用CreateImportJob在 Amazon SES API v2 中执行操作。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要使用手动从账户级黑名单中删除批量地址,请执行以下操作:AWS CLI

  • 在命令行输入以下命令:

    Linux, macOS, or Unix
    aws sesv2 create-import-job \ --import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\":\"DELETE\"}}" \ --import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"
    Windows
    aws sesv2 create-import-job ` --import-destination "{\"SuppressionListDestination\": {\"SuppressionListImportAction\":\"DELETE\"}}" ` --import-data-source "{\"S3Url\": \"s3://s3bucket/s3object\",\"DataFormat\": \"CSV\"}"

    在上述示例中,替换S3Buckets3 对象与 Amazon S3 存储桶名称和 Amazon S3 对象名称相同。

查看账户的导入作业列表

您可以查看账户的账户级黑名单中的所有电子邮件地址的列表,方法是使用利斯蒂姆波特乔布在 Amazon SES API v2 中执行操作。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

查看帐户的所有导入任务的列表

  • 在命令行输入以下命令:

    aws sesv2 list-import-jobs

前面的命令返回帐户的所有导入作业。输出与以下内容类似:

{ "ImportJobs": [ { "CreatedTimestamp": 1596175615.804, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "PUT" } }, "JobStatus": "COMPLETED", "JobId": "755380d7-fbdb-4ed2-a9a3-06866220f5b5" }, { "CreatedTimestamp": 1596134732.398, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "DELETE" } }, "JobStatus": "COMPLETED", "JobId": "076683bd-a7ee-4a40-9754-4ad1161ba8b6" }, { "CreatedTimestamp": 1596645918.134, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "PUT" } }, "JobStatus": "COMPLETED", "JobId": "6e261869-bd30-4b33-b1f2-9e035a83a395" } ] }

获取有关账户的导入任务的信息

您可以通过使用GetImportJob在 Amazon SES API v2 中执行操作。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

要获取有关帐户的导入作业的信息

  • 在命令行输入以下命令:

    aws sesv2 get-import-job --job-id JobId

前面的命令返回有关账户的导入作业的信息。输出与以下内容类似:

{ "ImportDataSource": { "S3Url": "s3://bucket/object", "DataFormat": "CSV" }, "ProcessedRecordsCount": 2, "FailureInfo": { "FailedRecordsS3Url": "s3presignedurl" }, "JobStatus": "COMPLETED", "JobId": "jobid", "CreatedTimestamp": 1597251915.243, "FailedRecordsCount": 1, "ImportDestination": { "SuppressionListDestination": { "SuppressionListImportAction": "PUT" } }, "CompletedTimestamp": 1597252002.583 }

禁用账户级黑名单

您可以使用PutAccountSuppressionAttributesAmazon SES 作,通过删除从suppressed-reasons属性。

注意

以下过程假定您已安装 AWS CLI。有关安装和配置 AWS CLI 的更多信息,请参阅 AWS Command Line Interface 用户指南

使用 AWS CLI 来禁用账户级黑名单

  • 在命令行输入以下命令:

    aws sesv2 put-account-suppression-attributes --suppressed-reasons