Going Postal

As mentioned previously, I went with a barebones roll-your-own approach to setting up this server. One of the things that slipped my mind initially was mail forwarding. My former cPanel site made setting up things like mail forwarding a matter of a few clicks. Instead, I got to play with DNS and Postfix1 this morning.

Here is what I ended up doing:

  • Modified my DNS records

    When I set up my original DNS, I only did the bare minimum, pointing my raw domain at my IP address. Now, I added a couple of CNAME records, www and mail to point to my main domain and an MX record to point to my mail subdomain with a priority of 1. Digital Ocean has a control panel to make these changes. When all were entered, the configuration had the following new entries:

www.brianmajewski.com. 1800 IN CNAME brianmajewski.com.  
mail.brianmajewski.com. 1800 IN CNAME brianmajewski.com.  
brianmajewski.com. 1800 IN MX 1 mail.brianmajewski.com.  
  • Took a shower while the DNS propagated.

  • Now, with my server listening for incoming mail, I had to send it somewhere. I wanted to forward all mail to this domain to a catch-all address I have with gmail. So, first, ensure that Postfix is installed, with dpkg -s postfix and if not, install it with apt-get install postfix

  • Now we want to tell Postfix about our virtual domain. I added the following lines to /etc/postfix/main.cf:

virtual_alias_domains = brianmajewski.com  
virtual_alias_maps = hash:/etc/postfix/virtual  
  • And then I created the mapping rules in /etc/postfix/virtual. You can do individual mapping of addresses, but for me, the catch-all is more useful.
@brianmajewski.com   (not-really-)my-actual-address@gmail.com
  • Time to reload Postfix.
postmap /etc/postfix/virtual  
/etc/init.d/postfix reload

And all of this before 8:30am on a Sunday morning...

1. I use the word play loosely. I used to regularly do work like this, had the O'Reily book and everything, but it's amazing what one forgets over a couple decades.