Amazon SES can't send email to non-verified email address - amazon-web-services

I'm trying to send an email using Amazon SES. I've had this working with the us-east-1 region and just switched my region to eu-east-1 and I can't send an email to my personal gmail account. I have verified the from address, the error is explicitly asking to verifiy the to address, which seems super odd. What's going wrong here? If I change the to email to match the from it works, which is super odd.
Email address is not verified. The following identities failed the check in region

Do you have this at the top of your SES dashboard?
If so it's because you need to request to be approved out of "sandbox" mode.

Related

How to verify email address in AWS SES

I have bought a domain,then I have created domain identity in SES and verified it successfully, now comes the email part. I have created email address in identity management that is user#example.com (assume that example.com is my domain), documentation states that I need to go to the email inbox and click on the email but what inbox they mean? How can I access this inbox of this address that I've just created? If I have to use my own email here then what's the point of adding a domain If I can use gmail smtp straight away? Can someone please clarify this?
Here is the clear answer:
At first, you need to purchase and verify your domain in SES(you've done this already, it's good to go for next step)
You need to write a support ticket to move your SES account out from sandbox mode as it's in sandbox mode by default(You need to provide all info AWS requires in detail)
moving out from sandbox mode
This might take 1 day around, finally you can get production SES status and check in your statistics section from SES console.
Next, you need to go AWS WorkMail service console and create your email accounts to be used for sender or receiver in your platform by your purchased domain(i.e, if your domain is abc.com, info#abc.com or support#abc.com).
When I say creating email accounts, it says you need to create email address, username and password for each email account.
Finally, If you need to check out the inbox for above created accounts, WorkMail provides a cool web client for it.
Here is the WorkMail web client documentation from AWS
It says this:
The web client URL looks like this: https://alias.awsapps.com/mail. Replace alias with the alias you received from your site administrator.
Here, alias is configured by you when you create your organization in WorkMail console.
The reason why SES requires to verify domain is something like ID verification of email sender, and verification of 3rd party email addresses gives us a flexibility to work with any other email addresses not registered in SES, also allow development and test before registration of domain in sandbox mode.
Cheers
The email address you want to verify must have existing mail service, before you can validate the address in SES.
From AWS docs, about receiving email
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html
When you receive email, Amazon SES processes it according to instructions you provide. For example, Amazon SES can deliver incoming mail to an Amazon S3 bucket, publish it to an Amazon SNS topic, or send it to Amazon WorkMail.
If you need an inbox service, use Amazon WorkMail.
Creating a IAM user doesn't create an inbox. And SES has no inbox capability at all. The point of validation is to allow sending in behalf of the service. In certain use cases, you can process inbound email via Lambda, store attachments on S3 etc. but there is no POP3/IMAP inbox-like service included in the SES.
Creating an IAM user is not required to validate your email. That is only for authentication purposes for accessing AWS account services.
AWS SES can receive emails and mostly this is used for automated email processing.
If you have verified in identity that you own the domain(by adding txt record in your domain DNS table) then by default you have verified all emails that fall in that domain.
You don't have to follow the steps to verify individual emails by clicking the link received on the emails.
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html
From your example: since the domain examaple.com is verified, you don't have to again verify emails(user#example.com) that fall under same domain.
Individual email verification is for scenarios where you cant verify domain by placing dns records. Here you will not be able to receive emails, but if you still want to send emails from an address then you can verify it by clicking the link you receive on your inbox. This can be done with gmail or other mail providers.

How to Send Mail Using AWS SES Without verify Receiver Email Id?

Actually, I want to send bulk email using Amazone SES and I was stuck in verification of Receiver's Email Addresses.
So, can you ple.showing us the way how we can do it us without verifying the Receivers Email Id's ?
When you create a new account in SES, it goes to something called sandbox account which requires recipient email address verification.
You can submit a support ticket to get your account out of sandbox. Once you are not in sandbox account, you will not be required to verify recipient email addresses.
You can view the documentation to get your account out of sandbox at https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html

SES email not sending

I am using AWS SES service to send email with verified test email address in SES and used same for the Source.
I am trying to send email to other email address but not able to send it's giving me error "Email address is not verified. The following identities failed the check in region US-EAST-1".
Reference for code to send email: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-send-email-ses/
I have read in aws documentation (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/ses-errors.html) "If your account is still in the Amazon SES sandbox, you also must verify every recipient email address except for the recipients provided by the Amazon SES mailbox simulator" this is the reason or some settings needed?
Please let me know if anybody knows.
Yes,AWS initially puts your SES account in Sandbox mode where you need to verify both Sender and recipient addresses.
You can follow the below link and change the account status to Production:
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html
This will ask you a couple of questions, once this is done, you no longer to verify recipient email address (To,cc,bcc), however From/Sender email address is also required to be verified in SES(in both production and sandbox mode).
We also need to make sure we have those verified email addresses in the same region you have initialized AWS SES SDK.

Send email to new sign user using AWS sns with lambda function

I am working on one project with AWS lambda function, DynamoDB, serverless architecture with the node.js runtime environment.
Now thing is that I want to send an email when a new user signup in my system for email address confirmation.
First, I tried with SES(SMTP credentials) and nodemailer module. When we try to send an email using SES then we need to verify both the email addresses(From and TO). But thing is that suppose I verify my From email address but the new signup user has a new email address, so, this when I try to send an email to the new signup user's email address then it through error like email address not verified.
So, i want to know that if I want to send an email to this new signup user how can I send the email confirmation mail?
Can I use SNS with AWS lambda and serverless architecture?
Thanks in advance for the help.
I'm suspecting your Amazon SES is still in sandbox mode. As long as you are in sandbox mode, you can only do the following things:
You can only send mail to verified email addresses and domains, or to the Amazon SES mailbox simulator.
You can send a maximum of 200 messages per 24-hour period.
You can send a maximum of 1 message per second.
To get yourself removed out of sandbox mode, you need to open a SES Sending Limits Increase case to the AWS Support center.

Changing MAIL FROM Domain in Amazon AWS SES

I'm using a marketing email application called Mautic to use AWS SES to send emails. I'm receiving the emails successfully but they're all from the domain amazonses.com. I followed the AWS SES documentation to verify ownership of my domain, I enabled SPF and DKIM successfully, and I put the proper MX records into my GoDaddy DNS. Everything is 'verified' in the AWS Console, but I'm not sure how to get it to use the "MAIL FROM" domain I've setup. Mautic has no settings with respect to the "MAIL FROM" domain so I'm pretty sure I'm just missing the last step on the SES in order to get it to actually use the 'from' domain I've setup.
Please let me know if I can provide any more details that might be helpful. Thanks for your time in advance!
I had the same issue, but it was because I had verified my email address before I set up the MAIL FROM domain. In this case, if you look at the details for the verified email address, you will see the MAIL FROM domain set to amazonses.com. It appears that SES uses this value when sending from this email regardless of the MAIL FROM domain setting.
Since my domain is verified, my solution was to simply delete the verified email. Now when I send emails, it uses the domain default which is my MAIL FROM domain setting.
If you are using verified email addresses, check that it shows the MAIL FROM domain that you want to use in the details.
Ah, I figured it out. In Step 8 of this document it says "You can now use Amazon SES to send email that is signed using a DKIM signature from any valid address in the verified domain." I didn't realize I had to have a verified email from this domain under the "Email Addresses" section of the SES console. I created an email address in my domain, verified it using SES, and now my application can use SES to send email on behalf of my own domain!
AWS also has a Custom Mail From domain setup option. Here is the doc:
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html
Follow the directions very carefully and don't forget you need an SPF record for the new subdomain you create for the Mail From - otherwise SES won't pass it in the header.