在 Amazon SES 中使用收据规则 - AWS SDK for JavaScript

帮助我们改进AWS SDK for JavaScript版本 3 (V3) 文档,方法是使用反馈链接,或者在上创建议题或拉取请求GitHub.

这些区域有:AWS SDK for JavaScriptV3 API 参考指南详细描述了所有的 API 操作AWS SDK for JavaScript版本 3 (V3)。

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

在 Amazon SES 中使用收据规则

JavaScript code example that applies to Node.js execution

此 Node.js 代码示例演示:

  • 如何创建和删除接收规则。

  • 如何将接收规则组织为接收规则集。

Amazon SES 中的接收规则指定如何处理您拥有的电子邮件地址或域接收的电子邮件。接收规则 包含一个条件和一个有序操作列表。如果传入电子邮件的收件人与接收规则条件中指定的收件人相匹配,则 Amazon SES 将执行接收规则指定的操作。

要使用 Amazon SES 作为电子邮件接收方,您必须至少具有一个活动。集接收规则集. 接收规则集是接收规则的有序集合,用于指定 Amazon SES 如何处理其接收的来自您的已验证域中的邮件。有关更多信息,请参阅 。为 Amazon SES 电子邮件接收创建接收规则为 Amazon SES 电子邮件接收创建接收规则集在《Amazon Simple Email Service 开发人员指南》中。

场景

在本示例中,使用了一系列 Node.js 模块以多种方式发送电子邮件。Node.js 模块使用 JavaScript 开发工具包来创建和使用电子邮件模板。SES客户端类:

前提任务

要设置和运行此示例,您必须先完成以下任务:

  • 设置项目环境以运行这些 Node TypeScript 示例,然后安装所需的AWS SDK for JavaScript和第三方模块。按照上的说明操作GitHub.

  • 使用用户凭证创建共享配置文件。有关提供凭证 JSON 文件的更多信息,请参阅从共享凭证文件加载 Node.js 中的凭证

重要

这些示例演示了如何使用 ECMASCRIPT6 (ES6) 导入/导出客户端服务对象和命令。

创建 Amazon S3 收据规则

Amazon SES 的每个接收规则都包含一组有序操作。在本示例中,创建具有 Amazon S3 操作的接收规则,该操作将邮件传送到 Amazon S3 存储桶。有关收款规则操作的详情,请参阅操作选项在《Amazon Simple Email Service 开发人员指南》中。

要使 Amazon SES 将电子邮件写入 Amazon S3 存储桶,请创建一个存储桶策略来提供PutObject允许 Amazon SES。有关创建此存储桶策略的信息,请参阅。授予 Amazon SES 写入 Amazon S3 存储桶的权限在《Amazon Simple Email Service 开发人员指南》中。

在本示例中,使用 Node.js 模块在 Amazon SES 中创建接收规则,将接收的消息保存到 Amazon S3 存储桶中。

创建libs目录,并创建文件名为的 Node.js 模块sesClient.js. 将以下代码复制并粘贴到其中,这将创建 Amazon SES 客户端对象。Replace领域和您的AWS区域。

import { SESClient } from "@aws-sdk/client-ses"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SES service object. const sesClient = new SESClient({ region: REGION }); export { sesClient };

可以找到这个示例代码GitHub 上的.

创建文件名为 ses_createreceiptrule.js 的 Node.js 模块。按前面所示配置开发工具包。

创建一个参数对象来传递创建接收规则集所需的值。调用CreateReceiptRuleSetCommand方法中,调用 Amazon SES 服务对象并传递参数。

注意

ReplaceS3_BUCKET_NAME使用 Amazon S3 存储桶的名称,MAIL_地址| 域使用电子邮件或域名,RULE_NAME使用规则的名称,以及RULE_SET_NAME使用规则集的名称。

// Import required AWS SDK clients and commands for Node.js import { CreateReceiptRuleCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { Rule: { Actions: [ { S3Action: { BucketName: "BUCKET_NAME", // S3_BUCKET_NAME ObjectKeyPrefix: "email", }, }, ], Recipients: [ "EMAIL_ADDRESS", // The email addresses, or domain /* more items */ ], Enabled: true | false, Name: "RULE_NAME", // RULE_NAME ScanEnabled: true | false, TlsPolicy: "Optional", }, RuleSetName: "RULE_SET_NAME", // RULE_SET_NAME }; const run = async () => { try { const data = await sesClient.send(new CreateReceiptRuleCommand(params)); console.log("Rule created", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

要运行示例,请在命令提示符处输入以下内容。Amazon SES 创建收款规则。

node ses_createreceiptrule.js

可以找到这个示例代码GitHub 上的.

删除接收规则

在本示例中,使用 Node.js 模块通过 Amazon SES 发送电子邮件。创建文件名为 ses_deletereceiptrule.js 的 Node.js 模块。如前所示配置 SDK,包括安装所需的客户端和软件包。

创建一个参数对象以传递要删除的接收规则的名称。调用DeleteReceiptRuleCommand方法中,调用 Amazon SES 服务对象并传递参数。

注意

ReplaceRULE_NAME使用规则的名称,以及RULE_SET_NAME使用规则集名称。

// Import required AWS SDK clients and commands for Node.js import { DeleteReceiptRuleCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the deleteReceiptRule params var params = { RuleName: "RULE_NAME", // RULE_NAME RuleSetName: "RULE_SET_NAME", // RULE_SET_NAME }; const run = async () => { try { const data = await sesClient.send(new DeleteReceiptRuleCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

要运行示例,请在命令提示符处输入以下内容。Amazon SES 将创建收款规则集列表。

node ses_deletereceiptrule.js

可以找到这个示例代码GitHub 上的这里.

创建接收规则集

在本示例中,使用 Node.js 模块通过 Amazon SES 发送电子邮件。创建文件名为 ses_createreceiptruleset.js 的 Node.js 模块。如前所示配置 SDK,包括安装所需的客户端和软件包。

创建一个参数对象以传递新接收规则集的名称。调用CreateReceiptRuleSetCommand方法中,调用 Amazon SES 客户端服务对象并传递参数。

注意

Replace领域和您的AWS地区,RULE_SET_NAME使用规则集名称。

// Import required AWS SDK clients and commands for Node.js import { CreateReceiptRuleSetCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { RuleSetName: "RULE_SET_NAME" }; //RULE_SET_NAME const run = async () => { try { const data = await sesClient.send(new CreateReceiptRuleSetCommand(params)); console.log( "Success", data ); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

要运行示例,请在命令提示符处输入以下内容。Amazon SES 将创建收款规则集列表。

node ses_createreceiptruleset.js

可以找到这个示例代码GitHub 上的.

删除接收规则集

在本示例中,使用 Node.js 模块通过 Amazon SES 发送电子邮件。创建文件名为 ses_deletereceiptruleset.js 的 Node.js 模块。如前所示配置 SDK,包括安装所需的客户端和软件包。

创建一个对象以传递要删除的接收规则集的名称。调用DeleteReceiptRuleSetCommand方法中,调用 Amazon SES 客户端服务对象并传递参数。

注意

ReplaceRULE_SET_NAME使用规则集名称。

// Import required AWS SDK clients and commands for Node.js import { DeleteReceiptRuleSetCommand } from "@aws-sdk/client-ses"; import { sesClient } from "./libs/sesClient.js"; // Set the parameters const params = { RuleSetName: "RULE_SET_NAME" }; //RULE_SET_NAME const run = async () => { try { const data = await sesClient.send(new DeleteReceiptRuleSetCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();

要运行示例,请在命令提示符处输入以下内容。Amazon SES 将创建收款规则集列表。

node ses_deletereceiptruleset.js // If you prefer JavaScript, enter 'node ses_deletereceiptruleset.js'

可以找到这个示例代码GitHub 上的这里.