If you are frustrated by the price email services (godaddy, google, etc) charge you (Google charges 5$ per GoogleApps account per month!) - this guide will show you how to forward emails sent to @yourdomain.com to your gmail account in few minutes!
Starting an ec2 micro instance is a fairly easy task.
Read about it here.
Few points worth mentioning:
- Choose a linux image (I prefer ubuntu, but it doesn't matter, choose one that you are comfortable with)
- Create a security group that allows connections from all IPs on port 25 (SMTP) as well as port 22 (SSH)
- Don't forget to create a key-value pair and download the pem file to a secured location
Once you have the ec2 micro instance up and running, login via ssh (usually ssh -i [pem file] ubuntu@[ec2-address])
Next step - install Postfix.
Postfix is an MTA (similar to sendmail in linux) and has the ability to some very cool stuff. For example, as an SMTP server, it can add automatic signatures to your emails, send copies to a 3rd party and more...
To install postfix on ubuntu:
sudo apt-get install postfix
Then, edit the following config file:
add/edit these lines:
virtual_alias_domains = yourdomain.com # virtual_alias_domains = yourdomain.com example.com moredomains.com .. virtual_alias_maps = hash:/etc/postfix/virtual
Notice that you can tell postfix to manage several domains!
Next, edit the following file:
add forwarding addresses as necessary:
And also create a catch-all address:
Once you are done, restart the postfix service:
sudo postmap /etc/postfix/virtual sudo service postfix reload
Now you need to edit the MX records of your domain to point to your ec2 micro instance. In GoDaddy, read this short article on how to do it.
Few important points worth mentioning:
Google has a strict policy against spammers. Spammers usually use fake addresses to send their messages, So if you don't change your MX records to point to your newly formed email server, it will not deliver your mail (it won't even arrive to the spam folder).
Even if you change the MX records, mail sent to you may arrive to the spam folder at first. Simply mark them as "not spam"
In order to be able to send mail from your @yourdomain.com address and not from your @gmail, you'll need to validate your new address at Gmail. (Settings -> Accounts/Import -> Send mail as -> Add another email address you own).
And for that, you'll need to enable SMTP authentication for postfix.
Note: default configuration makes postfix run in a chrooted environment. The guide above doesn't assume that, so you'll end up having authentication errors in your logs identical to this one:
warning: SASL authentication failure: cannot connect to saslauthd server: No such file or directory
if you have this error in the /var/log/mail.log file , then read this github post on how to fix it.
Let's add some mailboxes! In order to add a mailbox user, simply add a user to linux (almost) the usual way:
sudo adduser --shell /sbin/nologin username sudo passwd username
Now with close to 0$ we have an email account with our domain name, and as much mailboxes as we like :-)