You want free email for your domain (firstname.lastname@example.org), don’t you? Of course you do. And chances are your shared hosting provider has this service available to you. However, as we know for my recent article
Your shared hosting provider is most likely slowing your site down, reducing your rank in Google’s SERPs, and is wholly incompetent when it comes to handling anything but the most basic support requests. That’s why I moved this site off of Bluehost’s shared hosting and it is why you should move yours.
One of the biggest problems that needed addressed during the move was what to do about email. I have several different email addresses at several different domains. I wanted all the email to show up in the same box, be labeled as the the account it was sent to, and automatically reply with the address to which it was originally delivered. Tall order, right? Oh, and I want to do all of this for free. Here are the services that we’re going to use:
If you don’t have a free email account at GMail I would like to personally welcome you to the 21st Century. GMail is hands down the best free email service on the web. ‘nuff said.
Google Domains BETA is providing registrar service. It’s $12 / year for a .com, which is probably cheaper than your current host. The interesting thing here for our purposes is that they provide free email forwarding for up to 100 addresses per domain. Say what?
Even if you’re moving your domain hosting elsewhere I highly recommend moving your domain registration over to Google. The idea behind Google Voice is: The last phone number you’ll ever need. I think we should look at Google Domains the same way. Why do we drag our domain registrations from webhost to webhost with our websites? It just doesn’t make any sense.
Amazon Simple Email Service (SES)
Did I say FREE? I may have been pulling your leg a little. My total bill for email services for 7 domains with Amazon SES last month was $0.01. That’s right, 1 cent. And that’s just because I’m using the service from outside the AWS Cloud. If you’re inside the cloud you can likely stay within these free tier parameters:
If you are an Amazon EC2 user, you can start sending with Amazon SES for free. You can send 62,000 messages per month to any recipient when you call Amazon SES from an Amazon EC2 instance directly or through AWS Elastic Beanstalk. Additionally, you can also receive 1,000 messages per month for free on Amazon SES. Many applications are able to operate entirely within this free tier limit, and it does not expire after a year.
Got it? Good. Now let’s take a look at getting all of these services working together to provide domain email service. I actually have a new domain Raft for Fun that I’ve been tinkering with that doesn’t have email service yet. Let’s walk through the steps of getting it setup. I’m going to assume that you already have a GMail account and take it from there.
Setup Google Domains Email Forwarding
Head on over to domains.google.com. Once you have moved your domain or registered a new one, click on email settings and add the following info like so:
If you have not previously registered the account you’re forwarding to you’ll have to go through a standard email verification process. Note, after you have forwarded your first address in the domain Google Domains automatically sets up Synthetic DNS records for email service:
Give it a test. You should now receive email for email@example.com in your GMail Account. That’s the easy part.
Sending Mail With Amazon Simple Email Service (SES)
If you don’t already have an AWS account head on over to aws.amazon.com and create one.
One thing to be mindful of is that when you first create an SES account it will be sandboxed. This means that SES will only send email to approved and verified addresses. You can find instructions on the SES console homepage to “free” your account from the sandbox.
The first thing you want to do is verify your domain. Click “Verify Domain” in the Console, enter your domain name, and you’ll get this box:
The important information here is the Domain Verification Record. Head back over to Google Domains > DNS Settings > And create a new text record like so:
After a few minutes your domain should show in SES as verified.
While your waiting. Head to the “Email Addresses” section of SES and verify your email address.
This is another standard email verification process. Once your finished verifying your email address check back and make sure that your domain has been successfully verified. If both are successful (and you are no longer sandboxed) you are now ready to send email. Let’s create our SMTP Credentials. In the SES console go to SMTP Settings > Create My SMTP Credentials > Click Create in the Bottom Right Corner You should get something like this:
Save that and we’re back to GMail. Remember, we can already receive mail because we setup forwarding in Google Domains. Now to send mail, in GMail, we’re going to click on the Gear > Settings > Accounts and Import > Send Mail As > Add Another Account You Own. Input your information as follows:
These are the credentials from the previous step.
You will once again be prompted to verify your email account. After you verify that’s it. You can now send and receive your domain email right from your GMail account.
The very last thing to do is go back to your GMail settings and set GMail to reply using the address the email was originally sent to:
It’s a little bit of work, but using this method I have setup free email for multiple addresses at multiple domains that all lands in the same place, is marked with where it was sent to, and automatically replies from the address it was sent to. What more can you ask for from almost free?