Postfix: Sending “do not reply” mail to /dev/null
If you want to set up a do-not-reply address in Postfix for the local delivery transport, it’s easy enough to do so via aliases:
do-not-reply: /dev/null
This will throw all the locally delivered mail to the do-not-reply alias into the file /dev/null.
What about if you have a more complex setup with stuff like relay_domains, transport_maps, relay_recipient_maps, etc.? Here’s how you do it.
In my setup, I have a relay_domain specified for a domain; let’s say foo.com:
relay_domains = $mydestination, foo.com
Furthermore, I have a relay_recipient_map defined to weed out certain mail such as to only relay to users that exactly exist where I’m about to relay for foo.com:
relay_recipient_maps = hash:/etc/postfix/relay_recipients
The contents of /etc/postfix/relay_recipients might look like:
bob@foo.com na
bill@foo.com na
I also have a transport_maps specified:
transport_maps = /etc/postfix/transport
This is where the bulk of the magic happens. The contents of /etc/postfix/transport might look like:
do-not-reply@foo.com local:
foo.com :[mail-exchanger.bar.com]
In this transport map, I’m specifying that I want postfix to use the local transport agent for ‘do-not-reply@foo.com’. For everything else, I want it to send it to a relay, in this case I want to relay all foo.com mail (for which I am the MX record) to a different provider/service where the actual mail boxes live. So I relay foo.com mail to mail-exchanger.bar.com. (See the manpage on transport for more information and also check out the main.cf documentation [and everything else on postfix.org].)
So… you end up with all this in the end:
- ‘do-not-reply@foo.com na’ in your relay_recipient_map
- ‘do-not-reply@foo.com local:’ in your transport
- ‘do-not-reply: /dev/null’ in your aliases file
Mail to do-not-reply@foo.com (for which a mailbox doesn’t really exist at the bar.com service):
- is checked against relay recipients
- moves on to transport where it is decided that it should be delivered locally
- delivered to the do-not-reply local user
- is sent to the bit bucket
Voila. Yay postfix configuration!