Amazon Simple Email Service (Amazon SES) is a cloud-based email sending service designed to help digital marketers and application developers send marketing, notification, and transactional emails. It is a reliable, cost-effective service for businesses of all sizes that use email to keep in contact with their customers
Reliable email delivery is key in web based application, you don't want your customers to miss that order confirmation email or a very important notification.
The following guide utilises Amazon SES to send emails from with Joomla;
Please be familiar with the Amazon SES costs before your system goes into production, for latest pricing see https://aws.amazon.com/ses/pricing/
Configuration of SES
Search for Simple Email Service within the AWS Management Console.
Make sure you are in the correct Region from which you are enabling SES email
Click on the 'Domains' link in the left navigation
Add the domain from which you will be sending emails (i.e. infra.engineer)
Once you add the domain, Amazon will ask you to create certain valued DNS records to verify you are authorised to send email on behalf of the domain.
These records will have to be added to your domain's control panel for verification, if is recommended to add the DKIM records
Add these DNS records into your DNS management console, below is an example of adding the records into AWS Route 53
When Amazon Web Services has confirmed that these values are present in the DNS settings for the domain, the Status for the domain will change to "verified".
This may take up to 72 hours with certain companies but if you are using AWS Route 53 (Highly recommended) these should be verified in under 10 minutes.
Click the "SMTP Settings" link in the left navigation, and note the SMTP host and port.
Click on the "Create my SMTP credentials" button. Follow on-screen instructions to create a logically named IAM SMTP username and password.
Note/download your SMTP Username and Password for use in Joomla
In the sandbox environment, you will also have to verify an email address in which mail will be sent to, select Email Addresses then verify a new email address (In my environment, i have to verify a gmail email address)
Set up Joomla to use the SES SMTP Details
Login to Joomla administration, navigate to System > Global Configuration > Server > Mail Settings
Enter the SMTP Username and password recorded earlier along with the region specified and the following settings;
Try a test email by selecting the Send Test Mail button, if you successfully receive the email proceed to setup a contact form or creating a user. If the email does not come through ensure the details are the same as what was issued by Amazon.
Finally, you will need to tell Amazon that you are ready to take it out of the sandbox (which limits SES to 200 emails per day and where you need to verify each recipient email address) by submitting a support ticket to raise your sending limit following these instructions. https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html