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:
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:
However, what you can do is set up an alias user in /etc/aliases:
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/virtualfile itself):
After you've made the change, run postmap /etc/postfix/virtual/dbfileand reload Postfix. You can check if the alias is properly set up with the command:
postmap -q email@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).