微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS SES 签名不匹配

如何解决AWS SES 签名不匹配

我使用 nodemailer 和 AWS SES 服务来创建 nodemailer 传输器。当我尝试使用 SES SMTP 发送电子邮件时,它没有出现错误,整个代码可以正常运行,但使用 AWS SES 传输器时,它出现 SignatureDoesNotMatch 错误。而 SMTP 传输器和 SES 传输器中的 Access-key-ID 和 Secret-Access-Key 是相同的。

这是我的代码示例

AWS.config.update({
    accessKeyId: "<<Access-Key-ID>>",secretAccessKey: "<<Secret-Access-Key>>",region: "us-west-2",});

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

  // Check verified email
  ses.listVerifiedEmailAddresses(function (err,data) {
    if (err) {
      console.log(err);
    } else {
      console.log({ Message: "Here is list of all verified emails",data });
    }
  });

  // Verify customer email address
  const params = {
    EmailAddress: activeAlert.destination,};
  ses.verifyEmailAddress(params,function (err,data) {
    if (err) {
      console.log(err);
    } else {
      console.log({ message: "Email verification successfull",data });
    }
  });

     // Create nodemailer SES transporter
     // AWS SES transport
     let transporter = nodemailer.createTransport({
        SES: new AWS.SES({ apiVersion: "2010-12-01",region: "us-west-2" }),});

// While SMTP transporter is here just for example. I tried both of them but SMPT works fine for me. 
let transporter = nodemailer.createTransport({
    host: "<<AWS HOST>>",port: 465,auth: {
      user: "<<Access-Key-ID>>",pass: "<<Secret-Access-Key>>",},});

电子邮件部分与 SMTP 配合良好,但我想使用 AWS-SDK 的功能,这也给了我 SignatureDoesNotMatch 错误。我不知道我想念什么。我想消除调用 AWS-SDK 函数时的 SignatureDoesNotMatch 错误(listVerifiedEmailAddresses、verifyEmailAddress)。

如果我在代码中写错了请纠正我并帮助我摆脱这个错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。