I will show how to host your own email domain (or domains) for free!
Yeah, you can have your own pam@domain.com instead of pam1985b@gmail.com, which is more professional, and for free.
But calm down. This is a complex solution based on email redirection, using a free Gmail account behind the scenes. Yeah, it's a poor man's solution, but your email address will look professional. Your customers will never know that you are using Gmail (or whatever provider) behind the scenes.
WARNING:
This tutorial doesn't show how to implement a full POP3/SMTP service. It's only an MTA server with redirection. But it's a good enough solution for small sites.
WARNING:
If you want to host your own email domain because you are afraid of NSA or something like that, I recommend to you a psychiatrist I recommend stop selling drugs, this won't be a good solution because it uses Gmail as an SMTP/POP3 server, which means they will have access to your emails. But the process to implement a full email server is pretty similar to this, only a bit more complicated (you will have to install postfix and courier too).
# Ingredients
Shell access to a server that will manage this;
Access to the domain's DNS management;
A generic email account (eg. bob2387@google.com);
# Our recipe
1. Let's implement 3 email addresses
bob@example.com: Alias to bob.example@gmail.com;
pam@example.com: Alias to pam.example@gmail.com;
info@example.com: Alias to bob.example@gmail.com + pam.example@gmail.com;
2. Create your DNS records
Create an A record named mail pointing to your server IP;
Create an MX record named example.com pointing to mail.example.com (replace example.com with your actual domain, without www)
TIP:
After that, you can test your MX record with this tool: https://mxtoolbox.com/SuperTool.aspx(opens new window)
WARNING:
On MX Toolbox, "SMTP Test" will give an error because we haven't configurated Exim4 yet. We will fix this through this tutorial.
3. Install Exim4
sudo apt-get install exim4 exim4-base exim4-config exim4-daemon-heavy
4. Re-create the configuration files
Run:
sudo dpkg-reconfigure exim4-config
On interfaces, you need to leave it empty.
On split files?, you need to answer YES!!!.
5. Edit /etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='internet'
dc_other_hostnames='example.com;example2.com'
dc_local_interfaces=''
dc_readhost=''
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost=''
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname=''
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
dc_other_hostnames is optional. You can leave it blank or even incomplete, but if you want to fill it:
Replace example.com and example2.com with your actual domains.
If you have just one domain, use something like: dc_other_hostnames='example.com'
6. Remove the override configuration file, if existing
sudo rm /etc/exim4/exim4.conf
7. Re-create the auto-generated config file (/var/lib/exim4/config.autogenerated)
sudo update-exim4.conf
8. Create a folder /etc/valias
sudo mkdir /etc/valias
9. Create a configuration file for each domain in /etc/valiases
sudo nano /etc/valiases/example.com
Contents:
bob: bob.example@gmail.com
pam: pam.example@gmail.com
info: bob.example@gmail.com, pam.example@gmail.com
*: bob.example@gmail.com, pam.example@gmail.com
TIP:
Notice the * at the last line. It's a catch-all email address. It's optional and it means that any email that doesn't match the above rules will end up there. For example, test@example.com will be sent to bob and pam in this configuration.
10. Edit /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs
Set the virtual aliases directory (/etc/valiases):
#domainlist local_domains = MAIN_LOCAL_DOMAINS
domainlist local_domains = @:localhost:dsearch;/var/mail/virtual:dsearch;/etc/valiases
11. Edit /etc/exim4/conf.d/router/350_exim4-config_vdom_aliases
vdom_aliases:
driver = redirect
allow_defer
allow_fail
domains = dsearch;/etc/valiases
data = ${expand:${lookup{$local_part}lsearch*@{/etc/valiases/$domain}}}
retry_use_local_part
pipe_transport = address_pipe
file_transport = address_file
no_more
12. Add your domains to /etc/hosts (OPTIONAL – just for speed sake)
127.0.1.1 example.com
127.0.1.1 example2.com
13. Re-start exim4 service
sudo /etc/init.d/exim4 restart
14. Test if it's all working
sudo exim -bt -d-resolver bob@example.com
See logs with:
tail -f /var/log/exim4/mainlog
Check with an external tool: https://mxtoolbox.com/SuperTool.aspx(opens new window)
15. TLS (optional)
If you want to enable TLS, you can use this tutorial and a CAcert.org SSL cert for free: https://github.com/Exim/exim/wiki/EximServerSslCertificate
No comments:
Post a Comment