To create a test email server, I have a similar requirement as:

How to redirect all outgoing email from postfix to a single address for testing

But I need to send all the emails to an external account, not a local one.

I would like to do something like:

but xyz is not local nor smtp.

3 Answers 3


Create /etc/postfix/virtual-regexp with the following content:

/.+@.+/ [email protected]

Edit /etc/postfix/main.cf and add the file to virtual_alias_maps. The end result might look like this:

virtual_alias_maps = regexp:/etc/postfix/virtual-regexp

If you had existing virtual_alias_maps, separate the values with commas (eg. virtual_alias_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp).

Build the mapfile by typing:

postmap /etc/postfix/virtual-regexp

Then restart postfix :

sudo service postfix restart


  • 1
    Thank you Mattias Ahnberg for your answer, How about sending multiple mails to the machine with postfix installed with one unique email address (gmail for example)? I can only receive the 2-3 first mail , the rest is bounced.
    – postmaps
    Commented Jun 1, 2013 at 20:13
  • Is it possible to redirect all mail addressed to local users (root etc.) to some external address and not redirect other mail? I think the at sign should be negated somehow
    – basin
    Commented May 15, 2015 at 14:05
  • @basin Is seems like replacing [email protected] with root@localhost would do that, no?
    – user14645
    Commented Jun 23, 2015 at 15:47
  • No, I guess this answers: serverfault.com/questions/318426/…
    – basin
    Commented Jun 23, 2015 at 21:48
  • 2
    In newer postfix versions the setting might need to be virtual_alias_maps instead of virtual_maps Commented Mar 5, 2020 at 16:09

As this took me some time:

If you want to exclude target domains from this, prefix the rule with

/[email protected]/ @exclude1.com
/[email protected]/ @exclude2.com

to preserve original recipient, i found the virtual manpage a bit confusing on how to achive this.


Is it acceptable to just have it go to a local account that then forward all mail to your external address? You could get it running like the other question you mentioned, and then use procmail to have the messages forwarded and then deleted locally. Something like this would probably do the trick by replacing the folder with /dev/null.

  • in dev enr. this is very common need to avoid sending emails to outside people.
    – mahen3d
    Commented Dec 3, 2021 at 2:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .