使用 AWS SDK for JavaScript 和 Amazon SES 实现电子邮件接收规则和发送功能

在使用 AWS SDK for JavaScript 和 Amazon Simple Email Service (SES) 时,了解如何通过这些工具来管理电子邮件接收规则和发送功能是非常重要的。以下是一些实用的代码示例,展示了如何在 Node.js 环境中使用这些工具来实现这些功能。

使用接收规则

接收规则是 Amazon SES 中的一项重要功能,它允许您指定从特定电子邮件地址或域接收到的电子邮件应该如何处理。例如,您可以配置接收规则,以便将邮件传送到 Amazon S3 存储桶。

创建接收规则

要创建一个接收规则,您需要以下步骤:

  1. 配置 AWS SDK:

    1
    2
    var AWS = require("aws-sdk");
    AWS.config.update({ region: "REGION" });
  2. 定义接收规则参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var params = {
    Rule: {
    Actions: [
    {
    S3Action: {
    BucketName: "S3_BUCKET_NAME",
    ObjectKeyPrefix: "email",
    },
    },
    ],
    Recipients: ["DOMAIN | EMAIL_ADDRESS"],
    Enabled: true,
    Name: "RULE_NAME",
    ScanEnabled: true,
    TlsPolicy: "Optional",
    },
    RuleSetName: "RULE_SET_NAME",
    };
  3. 调用 createReceiptRule 方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var newRulePromise = new AWS.SES({ apiVersion: "2010-12-01" })
    .createReceiptRule(params)
    .promise();

    newRulePromise.then(function (data) {
    console.log("Rule created");
    }).catch(function (err) {
    console.error(err, err.stack);
    });

删除接收规则集

要删除一个接收规则集,您可以使用以下代码:

1
2
3
4
5
6
7
8
9
var newRulePromise = new AWS.SES({ apiVersion: "2010-12--01" })
.deleteReceiptRuleSet({ RuleSetName: "NAME" })
.promise();

newRulePromise.then(function (data) {
console.log(data);
}).catch(function (err) {
console.error(err, err.stack);
});

发送电子邮件

发送电子邮件是 Amazon SES 的另一个重要功能,可以通过 AWS SDK for JavaScript 来实现。以下是一个示例代码,展示了如何发送一个简单的文本或 HTML 电子邮件:

发送文本或 HTML 电子邮件

要发送一个文本或 HTML 电子邮件,您需要以下步骤:

  1. 配置 AWS SDK:

    1
    2
    var AWS = require("aws-sdk");
    AWS.config.update({ region: "REGION" });
  2. 定义发送邮件参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    var params = {
    Destination: {
    CcAddresses: ["EMAIL_ADDRESS"],
    ToAddresses: ["EMAIL_ADDRESS"],
    },
    Message: {
    Body: {
    Html: {
    Charset: "UTF-8",
    Data: "HTML_FORMAT_BODY",
    },
    Text: {
    Charset: "UTF-8",
    Data: "TEXT_FORMAT_BODY",
    },
    },
    Subject: {
    Charset: "UTF-8",
    Data: "Test email",
    },
    },
    Source: "SENDER_EMAIL_ADDRESS",
    ReplyToAddresses: ["EMAIL_ADDRESS"],
    };
  3. 调用 sendEmail 方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
    .sendEmail(params)
    .promise();

    sendPromise.then(function (data) {
    console.log(data.MessageId);
    }).catch(function (err) {
    console.error(err, err.stack);
    });

使用模板发送电子邮件

还可以使用模板发送电子邮件,这样可以更灵活地控制邮件内容。以下是一个示例代码,展示了如何使用模板发送电子邮件:

使用模板发送电子邮件

要使用模板发送电子邮件,您需要以下步骤:

  1. 配置 AWS SDK:

    1
    2
    var AWS = require("aws-sdk");
    AWS.config.update({ region: "REGION" });
  2. 定义发送邮件参数:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    var params = {
    Source: "SENDER_EMAIL_ADDRESS",
    Destination: {
    ToAddresses: ["EMAIL_ADDRESS"],
    },
    Message: {
    Body: {
    Html: {
    Charset: "UTF-8",
    Data: templateBody,
    },
    Text: {
    Charset: "UTF-8",
    Data: templateBody,
    },
    },
    Subject: {
    Charset: "UTF-8",
    Data: "Test email",
    },
    },
    Template: {
    TemplateName: "TemplateName",
    TemplateData: '{ "REPLACEMENT_TAG_NAME":"REPLACEMENT_VALUE" }',
    },
    };
  3. 调用 sendTemplatedEmail 方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    var sendPromise = new AWS.SES({ apiVersion: "2010-12-01" })
    .sendTemplatedEmail(params)
    .promise();

    sendPromise.then(function (data) {
    console.log(data);
    }).catch(function (err) {
    console.error(err, err.stack);
    });

通过这些示例代码,您可以轻松地在 Node.js 环境中使用 AWS SDK for JavaScript 和 Amazon SES 来管理电子邮件接收规则和发送功能。这些示例不仅提供了基本的操作流程,还帮助您理解了如何通过 Amazon SES 来实现更复杂的电子邮件处理任务。