Postfix setup catch-all email accounts using /etc/postfix/virtual

last updated in Categories , , , , ,

Q. How do I setup cacth-all email accounts under Postfix MTA? For example if an email send to, and, should be sent to the same email address.


This is useful if anyone of user mistypes an email address when they send it to me, or just guesses at a valid email address, then they will likely get an error message from my server such as user / email mail box does not exist. So I wish to set up a “catch all” address

A. Mapping is done using /etc/postfix/virtual file.
# vi /etc/postfix/virtual
Append code as follows, replacing domain and emailusername with actual values: emailusername

Save and close the file. Run following command:
# postmap /etc/postfix/virtual

Also make sure you have following line in /etc/postfix/ file:
virtual_alias_maps = hash:/etc/postfix/virtual

If you just added above, line reload postfix:
# service postfix reload

Caution: if you set up a catch-all email address, you will likely receive more unsolicited (spam) email.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

14 comment

  1. HI Vivek how can i Add multiple users for SMTP auth on postfix
    but are not support gmail ….. can you help me please ….
    in the virtual concepts support these concept……… waiting for your reply…..

  2. I don’t think so it is possible to use multiple gmail account. sasl_passwd totally depends upon first part (hostname) to determine correct username:password when there are multiple entries in sasl_passwd. You need unique hostname for multiple entries:                

    However, you can use something as follows in /etc/postfix/sasl_passwd:           username1:password1           username2:password2

    Next set, /etc/postfix/sender_relay:           []:587           []:587

    Setup as follows:

    smtp_sender_dependent_authentication = yes
    sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    relayhost = []:587
  3. What about if you have multiple domains and you all emails sent to bob@* to go to the bob user name but everything else to go to the jim username. How do you do that?

  4. I want to configure postfix virtual so that all emails goes to one address.

    I can’t specify individual domain in virtual as I don’t know. Can anyone help me on this?

  5. Possible solution for those looking to catch everything (any domain):

    Edit /etc/postfix/, change the ‘smtp’ declaration to:
    smtp inet n – – – – smtpd -o content_filter=verp

    And insert:
    verp unix – n n – 10 pipe user=USER_HERE argv=PATH_HERE

    Where ‘verp’ can be whatever you like, e.g. myfilter, mybouncehandler, etc.

  6. I want to allow for email forwarding to my customers so we all have as our email addresses that forward to yahoo or gmail accounts. I can do this by hand on cpanel but I need a solution with an api to set up email forwards. Anybody know of a product?

  7. Hello,
    I want to dynamically create different mail id’s (,,….)for a user(abc) but not different users and not even aliases. whenever a user sends an email to newly generated mail id( it sholud get delivered to user(abc)’s mail box. Can anyone solve this up?

  8. Hello, How can I redirect only or non-existent mailboxes on the server? if I have other maiboxes from the same domain, I dont want the catchall to be applied….
    How can I silent redirect and in the same time to send back a bounce message?

    Thank you!

    Still, have a question? Get help on our forum!