Error: Amazon SES 554 Message: Rejected Email Address is not Verified
What's Causing This Error?
This error occurs due to numerous reasons.
It occurs when you have not verified the sender email (sender identity) on Amazon SES.
If you're using the Amazon SES in the sandbox environment and have not verified the recipient's email address, you may encounter this error.
You may encounter this error when you've provided an invalid recipient email address.
Solution - Here's How To Resolve It
You can try the following steps mentioned below.
Open the Amazon SES console and verify that the sender email identity you are using has a verification status of "verified."
If you're using the sandbox environment, ensure that you have added the recipient email address as a verified identity on the SES console. It is mandatory to add the recipient emails on Amazon SES when running in the Sandbox environment.
If both the sender and recipient email addresses are verified, ensure that you have provided the correct recipient email address for the "To" parameter.
If none of the above works for you, verify that the region specified in your AWS SDK is the same region that contains the verified identities. For example, if the verified identities are located in the Virginia region (us-east-1), you should initialize the Amazon SES instance in the same region.
The snippet shown below addresses the fixes discussed above and will help resolve your error.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const AWS = require('aws-sdk');
const SES = new AWS.SES({region: 'us-east-1'}); // specify the region you've configured SES.
const sendEmail = async () => {
let params = {
Source: '<<VERIFIED-SENDER-EMAIL>>',
Destination: {
ToAddresses: [
<<RECIPIENT-EMAIL>>
],
},
ReplyToAddresses: [],
Message: {
Body: {
Html: {
Charset: 'UTF-8',
Data: 'This is the body of my email!',
},
},
Subject: {
Charset: 'UTF-8',
Data: `Hello, ${name}!`,
}
},
};
await SES.sendEmail(params).promise();
}
sendEmail();