ses.sendCustomVerificationEmail 不是使用 AWS JavaScript SDK v2 的函数

ses.sendCustomVerificationEmail is not a function using AWS JavaScript SDK v2

我正在尝试使用 AWS SES API 来验证我放在一起的 Nodejs/Express 应用程序中的电子邮件,并且我正在尝试使用自定义模板进行验证电子邮件而不是 Amazon 发送的默认电子邮件,以消除混淆,因为我不希望我的用户收到一封电子邮件,上面写着“亲爱的 Amazon Web Services 客户,我们已收到授权此电子邮件地址用于 Amazon SES 的请求... . 等”,根据这里的 AWS Docs,它看起来很简单: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-verify-address-custom.html https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendCustomVerificationEmail-property

然而,当我尝试它时,我不断收到此错误“ses.sendCustomVerificationEmail 不是函数”

任何人都可以告诉我哪里出了问题,也许可以指出正确的方向....这是我的代码:

const express = require("express");
const aws = require("aws-sdk");
require("dotenv").config();

const app = express();

aws.config.update({
  accessKeyId: process.env.AWS_ACCESS_KEY_ID,
  secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
  region: process.env.region
});

// Instantiate SES.
const ses = new aws.SES();

// Verify email addresses.
app.get("/verify/:email", (req, res) => {
  const params = {
    EmailAddress: req.params.email,
    TemplateName: "SampleTemplate" // template is already created
  };

  ses.sendCustomVerificationEmail(params, (err, data) => {
    if (err) {
      res.send(err);
    } else {
      res.send(data);
    }
  });
});


// Start server.
const server = app.listen(8000, () => {
  const port = server.address().port;

  console.log("AWS SES example app listening on port", port);
});

谢谢!!

此错误通常是由于您的包管理器安装的 aws-sdk 版本过时所致。就您而言,您一直在使用严重过时的 v2.1.35。当您更新到最新版本的 AWS JavaScript SDK v2,即 v2.973.0 时,您会看到以前缺少的方法现在可以在 aws.SES 命名空间中使用。

您还应该考虑将您的代码迁移到 AWS JavaScript SDK v3,因为它取代 v2 版本的 SDK 已经有一段时间了。