Forwarding a Postfix Virtual Alias to /dev/null

Forwarding a Postfix Virtual Alias to /dev/null


October 19, 2009

It's poor practice to send out email from email addresses that don't resolve, and may mean your mail ends up in a spamtrap. But sometimes you want to use a "do-not-reply" type of email address, and you don't want to have to mass-delete the mailbox at intervals.

The usual solution is to forward to /dev/null, and in a local-only setup you could do that in /etc/aliases:

do-not-reply: /dev/null
However, if you're using Postfix virtual domains, it gets a little more complicated. With virtual domains/users, you can't forward mail to a file. It must go to a user or an email address, like this:
juliet@example.com        juliet@example2.com
However, what you can do is set up an alias user in /etc/aliases:
devnull:	/dev/null
and then point to that in your virtual domain database file (which should be somewhere in /etc/postfix/virtual/, or it may be the /etc/postfix/virtual file itself):
do-not-reply@example.com	devnull
After you've made the change, run postmap /etc/postfix/virtual/dbfile and reload Postfix. You can check if the alias is properly set up with the command:
postmap -q do-not-reply@example.com /etc/postfix/virtual/dbfile
You should see the correct alias returned.

One last gotcha: On some systems, the /etc/aliases change may not work unless that user (devnull) already exists on the system. You may well already have a nobody user in /etc/passwd (one with a nonexistent home directory and no login shell), which you can use in place of devnull in /etc/aliases; otherwise you can set up a devnull user to operate similarly.

Juliet Kemp has been messing around with Linux systems, for financial reward and otherwise, for about a decade. She is also the author of "Linux System Administration Recipes: A Problem-Solution Approach" (Apress, 2009).

Follow ServerWatch on Twitter