If you are experiencing errors sending emails with AWS there could be a couple of reasons as to why.
Your Account is in Sandbox Mode.
Your AWS SES account may be in SandBox mode. You can request for it to be taken out of sandbox mode to send emails to unvalidated email addresses.
To do this, please follow the official AWS documentation.
Your email address is not validated.
If your email address is not validated then any outgoing email you try to send will fail.
AWS MUST verify ownership of your email before you can send any outgoing email.
You've reached your sending limit.
Production SES accounts typically have a maximum rate of 50,000 emails per day. If you are sending more than that you will need to request a limit increase.
Manually subscribe to your SNS endpoint.
1. go to SNS and create a new topic.
2. Click on the topic name and then find " Create Subscription"
3. Select protocol as HTTPS and enter the endpoint
4. Now go to SES and click on your production server domain name.
5. Under the notification tab for complaint and bounce select the SNS topic you just created and that's all.
Emails get stuck in the email queue.
There are various reasons behind emails getting stuck in the email queue.
Lack of Cron job
The most common reason behind emails getting stuck in the email queue is the lack of cron jobs. AWS email queue has its own cron job. You need to set up an external cron job run the email queue every minute.
You can find the setup instructions to set up the AWS cron job here: Setup AWS Cron for Better Performance
Security Plugin On your website
Users install various security plugins on their websites to protect their websites from various attacks. Cron job makes a request to your website every minute and some security plugin considers this frequent request as an attack on the website and discards the request which is the same as no external cronjob.
To troubleshoot this issue please disable your security plugin temporarily and check if the problem is fix. once you determine the plugin please turn on the security plugin follow their documentation on how to exclude URL from their security firewall.
CDN caching (Cloudflare)
Some CDN providers (Cloudflare) provide the functionality to cache the website along with some advanced security options.
If you are using a CDN that provides these kinds of options please makes sure Groundhogg is not cached in any way as Groundhogg does all the processing on the local server and caching prevents Groundhogg from updating data.
Cloudflare also prevents Cron job requests from external URL's Please exclude the Cron job URL's from the list.