问题描述:在使用AWS Amplify的SES sendmail功能时,出现了访问被拒绝的错误。
解决方法:
示例代码:
const AWS = require('aws-sdk');
AWS.config.update({accessKeyId: 'YOUR_ACCESS_KEY', secretAccessKey: 'YOUR_SECRET_ACCESS_KEY', region: 'us-west-2'});
const ses = new AWS.SES({apiVersion: '2010-12-01'});
const params = {
Destination: {
ToAddresses: ['recipient@example.com'] // 接收方的邮件地址
},
Message: {
Body: {
Html: {
Charset: 'UTF-8',
Data: 'Hello, world!
' // 邮件的内容
}
},
Subject: {
Charset: 'UTF-8',
Data: 'Test email' // 邮件的主题
}
},
Source: 'sender@example.com' // 发送方的邮件地址
};
ses.sendEmail(params, (err, data) => {
if (err) {
console.log("Error sending email", err);
} else {
console.log("Email sent successfully", data);
}
});
请注意,您需要将YOUR_ACCESS_KEY和YOUR_SECRET_ACCESS_KEY替换为您自己的AWS访问密钥。另外,确保您的AWS凭证具有访问SES的权限。
验证您的邮箱地址是否已经在SES中验证。在使用SES发送邮件之前,您需要先验证发送方和接收方的邮箱地址。您可以通过登录AWS SES控制台并在“Email Addresses”部分验证您的邮箱地址。
检查您的AWS Amplify应用程序是否设置了正确的区域。您可以在AWS Amplify配置文件中设置区域,确保与您的SES服务所在的区域一致。
确保您的AWS账户没有超出SES的配额限制。SES有一些配额限制,例如每天可发送的邮件数量和每秒可发送的邮件数量。如果您超出了这些限制,您将无法发送邮件。您可以通过AWS SES控制台查看您的配额限制。
通过以上步骤,您应该能够解决AWS Amplify SES sendmail访问被拒绝的问题。如果问题仍然存在,请确保您的AWS账户和SES服务的配置正确,并检查AWS文档和支持资源以获取更多帮助。