Reliable email delivery is key in web applications, you don't want your customers to miss that order confirmation email or skip that very important Social Network notification. When using a service like Amazon SES, that additionally helps you improve your email sending quota if your web host gives you a rather small quota. It's fairly easy to get up and running with Amazon SES. You'll need to have an account with Amazon AWS (of course!)

Then, just follow these steps to get going -

Set up your Amazon SES account for sending

  1. Login to your AWS account and go to the SES section
  2. Note the "Region" from which you are enabling SES email. If you are working on Government or otherwise sensitive projects, regulations might be in effect to host and send mails and data from a specific regionRegion for Amazon SES
  3. Click on the 'Domains' link in the left navigation
  4. Add the domain from which you will be sending emails (Eg: techjoomla.com)
  5. Once you add the domain, Amazon will ask you to set a few host entries to confirm that you are authorised to send email on behalf of the domain. You'll need to add these host records in your domain's control panel. That screen will look something like this Verification and DKIM Records for Amazon SES
  6. Once you have added those records, Amazon will show the status of the domain as verified.
  7. Now, click the "SMTP Settings" link in the left navigation, and note the SMTP host and port.
  8. Click on the "Create my SMTP credentials" button. Follow on-screen instructions to create an SMTP username and password.

Get your account out of the SES Sandbox

  1. At this point, you should be able to start using your SES, but would be limited to 200 emails per day and would need to verify *each* *recipient* address :( So a few more steps needed before showtime
  2. Spam and bounces are the banes of the internet and you should do as much you can to reduce garbage. Amazon lets you use the SNS service to notify you of bounces and complaints. You'll need to set up SNS topics for bounce and complaints at least by following the instructions here - http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-sns-notifications.html
  3. Lastly, you will need to tell Amazon that you are ready for showtime by submitting a support ticket to raise your sending limit. Instructions here - http://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html

 

Set up Joomla to use the SES SMTP Details

Now, navigate to your Joomla Global Configuration configuration and set up the SMTP details from the previous steps. Try a test email by submitting a contact form or creating a user, if you successfully receive the email, you are set! If you don't, double check the settings and confirm that you are using the correct values that are presented on the Amazon website screen.

There's also a plugin that replaces the SMTP settings by an API call, but we always like to use minimum plugins on our sites and stay as close to the core as possible.

Here's a quick tool to test any SMTP service using a nifty PHP CLI script - https://github.com/creitive/smtp-tester