Reputation: 4983
I want to use Amazon's Simple Email Service to send emails.
I verified my domain as well as the email address I want to send from.
For both it says verified
.
Now when I use the Send Test Email from the AWS Console to send a test email to myemail@outlook.com
, I only get the error message:
Email address is not verified. The following identities failed the check in region EU-WEST-1:
myemail@outlook.com
(Request ID: 9fb78de1-2673-11e6-bbbc-5f819fabe4f4)
Now it strikes me because it says myemail@outlook.com
was not verified but I tried to send from admin@mydomain.example
. The Send Test Email Dialog even forces you to use an email which already is registered.
How can this issue be resolved? Did I miss anything?
Upvotes: 304
Views: 244727
Reputation: 1213
One thing to check, that I did not see referenced in other answers, and caused this issue for me:
Ensure that you are calling the correct SES instance
AWS has a priority of credential precedence, per their documentation:
For example, if you were setting your credentials via a credentials file, but forgot about AWS environment variables, you may not be calling the SES instance you think you are calling.
Upvotes: 0
Reputation: 1
Net::SMTPFatalError (554 Message rejected: Email address is not verified. The following identities failed the check in region US-EAST-1
I encountered the same error and after typing the e-mail address in the field I specified in the image, the problem was solved.
"System Admin e-mail address "jenkins@**********. ***.com" Notification e-mails from Jenkins to project owners will be sent with this address in the from header. This can be just "foo@acme.org" or it could be something like "Jenkins Daemon <foo@acme .org>"
Upvotes: 0
Reputation: 5035
My error is like Net::SMTPFatalError (554 Message rejected: Email address is not verified. The following identities failed the check in region US-EAST-1:
, in Rails 6.
I think it is because my SES account is in the sandbox. I need to click Get set up
to Request production access
.
I am waiting for Amazon to allow me in production (it takes up to 24 hours).
Upvotes: 1
Reputation: 691
I know there's a lot of comments here; just adding my 2 cents to document the ever evolving AWS console. There's a wizard now in the top left 'get set up' (new). If you're like me, you probably instinctively avoid wizards & get straight into the nuts and bolts. Looks like visually, its the only way to verify external email addresses at the moment
Clicking the button in the left hand side of the get started screen to verify a new identity allowed me to add a gmail address to my custom domain (screen shot is after I verified it).
Upvotes: 2
Reputation: 433
Note that when in sandbox at least it seems SES will throw this error if you set the recipient and the sender to the same address (even if verified).
Upvotes: 2
Reputation: 1
In my case, I was using cdk. My email used a custom domain, and the domain said it was verified. When configuring my email with SES through the cdk, I hadn't added the attribute sesVerifiedDomain
. Setting that value to the custom domain I was using solved my problem.
Upvotes: 0
Reputation: 11
I had the same problem; after reading this document, I realized some parameters were missing.
If you are using boto3
you should send ReturnPathArn
and SourceArn
too in send_email
, that worked for me.
Upvotes: 1
Reputation: 452
Since you are in Sandbox mode, you can add and verify email: "myemail@outlook.com" for temporary workout. Otherwise you need to move from production account to sandbox account.
Upvotes: 2
Reputation: 775
In my case, I wanted to email to the same verify email address. So, I verified my email by DKIM as @Greg Wozniak mentioned. I saw the field tick green and verified:
But I was still seeing:
Email address is not verified. The following identities failed the check in region...
The solution in my case was to add this function in the code:
def verify_email_identity():
ses_client = boto3.client("ses", region_name="us-east-1")
response = ses_client.verify_email_identity(
# Email address that will receive the email
# In my case the same email address
# that was verified on Amazon SES
EmailAddress="receipientemail@gmail.com"
)
print(response)
Taken from this website
So, I received a new email to verify the recipient email address. After verify the recipient email address by clicking on the link sent by Amazon SES. I was able to send the email with this code:
client = boto3.client('ses',region_name="us-east-1")
# Try to send the email.
try:
#Provide the contents of the email.
response = client.send_email(
Destination={
'ToAddresses': [
receipientemail@gmail.com,
],
},
Message={
'Body': {
'Html': {
'Charset': "UTF-8",
'Data': "Test",
},
},
'Subject': {
'Charset': "UTF-8",
'Data': "Test",
},
},
Source=receipientemail@gmail.com,
)
# Display an error if something goes wrong.
except ClientError as e:
print(e.response['Error']['Message'])
else:
print("Email sent! Message ID:"),
print(response['MessageId'])
Upvotes: 3
Reputation: 21
For me the issue was that I was mismatching cases. The verified email and the email sent have to match exactly.
test@gmail.com vs Test@gmail.com
Upvotes: 2
Reputation: 100
I had this issue and none of the above worked for me. My issue related specifically to sending via python using boro3. I eventually figured out that the system I was working on had a different set of aws credentials stored in the windows system than it did on the Linux subsystem on the same windows machine. The solution was to set both sets of aws credentials to match the appropriate aws account. I add this here just in case anyone has the same issue and, like me, couldn't find an answer.
Upvotes: 0
Reputation: 7292
Confusion comes from the fact that your e-mail address shows as "Verified" in AWS SES -> Verified identities and still not working.
In fact, there are two verification:
That means you must use the e-mail address which you have access to (mailbox) in order to click in the verification link.
Without clicking the link in the e-mail, your identity may be verified but you'll still see the error everywhere.
I am using AWS WorkMail but I've created a new Group instead of another WorkMail account, then added my personal account to it, received a verification e-mail and managed to get: "noreply@..." working.
Upvotes: 1
Reputation: 1108
Be aware the Verified Identities are actually case sensitive. I was wondering why I got such error, even though my email was verified and out of SandBox.
Upvotes: 3
Reputation: 29
I was having the same issue a couple minutes ago, although this time I'm working with the SDK in PHP.
I had to double check the SesClient instantiation code.
$SesClient = new SesClient([
'profile' => 'default',
'version' => '2010-12-01',
'region' => 'us-west-2',
]);
I discovered that the region in the instantiation code is us-west-2. I went back to my console and discovered that SES account was sandboxed in us-east-2 (Ohio).
I implemented the change in the instantiation code like so
$SesClient = new SesClient([
'profile' => 'default',
'version' => '2010-12-01',
'region' => 'us-east-2',
]);
It's working now.
Upvotes: 1
Reputation: 2189
I had verified an email address, and then a few days later my domain. When the domain was fully verified (inc DKIM) I was still getting the 'Email address is not verified' error when trying to send emails to email addresses within my domain, that weren't my specific verified address.
I deleted my verified email address, and re-verified it, and it worked immediately. I could then send domain wide emails, whereas before - I could only send to and from the email I had previously verified.
Upvotes: 3
Reputation: 50
I had this issue. I verified domain and email, even the DKIM settings was verified. But still getting this message :
Email address is not verified. The following identities failed the check in region {aws_region}: {email}
I added SourceArn as parameter for sendEmail than get this message :
User `arn:aws:iam::{account_id}:user/{username}' is not authorized to perform `ses:SendEmail' on resource `arn:aws:ses:{aws_region:{account_id}:identity/{email}'
After 2 days I found out the I was using wrong IAM user !
Upvotes: 2
Reputation: 39
Make sure
-You have submitted your case request to support customer and explain in what purposes confirm it for to 24 maybe they will ask you about some additional information about your application
Upvotes: 2
Reputation: 1022
Make sure
Upvotes: 5
Reputation: 689
In my case I needed to verify the email again in the region where it failed. You can try to change your region in the top right then you have click again "Verify a New Email Address"
Upvotes: 37
Reputation: 960
@Matt Houser has already answered the questions but I am adding a screenshot from June, 2020 that explains what he said.
Upvotes: 8
Reputation: 23391
If the email is already verified and you're out of the SES Sandbox, check that you've the correct AWS region for the SMTP server. I was trying to connect to email-smtp.eu-west-1.amazonaws.com
when my SMTP credential was for the email-smtp.us-east-1.amazonaws.com
server.
Upvotes: 12
Reputation: 36103
When your SES account is in "sandbox" mode, you can:
In order to send to anyone else, you must move your account out of sandbox mode by contacting AWS support and requesting it:
https://docs.aws.amazon.com/console/ses/sandbox
Upvotes: 539