Amazon SES nodemailer连接失败

use*_*995 7 amazon-ses nodemailer

我正在使用nodejs nodemailer连接到Amazon SES电子邮件服务.这看起来很简单,但我一直收到错误:

"我们计算的请求签名与您提供的签名不匹配.请检查您的AWS秘密访问密钥和签名方法.有关详细信息,请参阅服务文档."

我已经在网上搜索过,大多数人都说这是因为你的秘密密钥末尾有一个空格,或者有时正斜线可能导致问题.最后一个不再是问题,因为我一直在创建SMTP凭据,直到没有.我现在创建了大约10个SMTP凭据,每次都复制并粘贴了AccessKey和SecretKey,我仍然收到此错误.我也尝试过使用http://email-smtp.us-west-2.amazonaws.com,但仍然遇到了同样的错误.

这是我的代码:

var nodemailer = require("nodemailer");
var transport = nodemailer.createTransport("SES", 
{
    AWSAccessKeyID: 'AKIA************',
    AWSSecretKey: 'AqlwF*****************************',
    SeviceUrl: 'http://email-smtp.us-east-1.amazonaws.com'
});
nodemailer.sendMail({
    transport : transport,
    sender : 'some@thing.com' ,
    to : 'another@address.com',
    subject : 'TEST',
    html: '<p> Hello World </p>'
}, function(error, response)
{
    if(error){ console.log(error); }   
    else{ console.log("Message sent: " + response.message);}
});
Run Code Online (Sandbox Code Playgroud)

谁知道我还能做什么?

Jel*_*tok 3

当您使用 AWS SMTP 凭证时会发生这种情况。应创建一个 AIM 用户并为其分配如下所示的策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["ses:SendEmail", "ses:SendRawEmail"],
      "Resource": "*"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)