TypeScript SES用户未被授权对资源执行SES:SendEmail



我正在尝试使用AWS SES发送电子邮件。我想知道为什么我有错误TypeScript SES用户没有被授权执行SES:SendEmail对资源。我要做什么?我必须像accesskeyID和秘密访问密钥那样验证aws配置吗?如果有,我该怎么做?我是新手。

电子邮件test@test.com是我为这篇文章改变的东西,但不同。

import { SES, AWSError} from 'aws-sdk';
import { SendEmailRequest, SendEmailResponse } from 'aws-sdk/clients/ses';
export const sendEmail = (email: string) =>{
const AWS = require("aws-sdk");
const REGION = "us-east-1";
const charset = "UTF-8"
const html = "<h1>Hello</h1>"
const ses = new SES({region:REGION});
const params: SendEmailRequest = {
Source: "test@test.com",
Destination: {
ToAddresses: [
email
]
},
Message: {
Subject: {
Data: "Welcome to Website",
Charset: charset
},
Body: {
Text: {
Data: "WELCOME TO Website!!!",
Charset: charset
},
Html: {
Data: html,
Charset: charset
}
}
}
}
ses.sendEmail(params, (err: AWSError, data: SendEmailResponse) => {
if (err) console.log(err, err.stack);
else console.log(data);
});
}

是的,您必须以某种方式通过凭据。这里描述了多种方法:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html.

您必须使用具有ses:SendEmail权限的IAM用户。

您需要做的最后一件事是验证用作源的域。它也可能导致一些错误(我猜你不拥有@test.com域名)。如何做的描述可以在https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html

找到。

最新更新