Friday, December 20, 2013

Configuring postfix to forward all email to a smtp gateway

SkyHi @ Friday, December 20, 2013

Introduction

Suppose you want all your web servers to locally send all email (maybe from your contact forms, or whatever) to a real smtp gateway. If you're running postfix as your mta, this is quite easily to achieve.

Configuration

In your main.cf file (usually /etc/postfix/main.cf or /usr/local/etc/postfix/main.cf), specify your transport maps:
  1. transport_maps =  hash:/etc/postfix/transport  
And in your transport file (usually /etc/postfix/transport or /usr/local/etc/postfix/transport), specify your gateways per domain. This allows you to specify with regular expressions which emails go where. In this case, an asterisk specifies every domain (the transport file allows very complex setups, this is of course an extreme and trivial example):
  1. *              smtp:myotherhost.com  
Then invoke postmap to regenerate the transports db, and reload postfix:
  1. # postmap hash:/etc/postfix/transport  
  2. # postfix reload  
That should do it. All email generated in this host should now be forwarded to the smtp gateway. Remember to configure your smtp gateway to accept mail from all the hosts that will forward emails to it.