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

Posted on in Categories , , , , , last updated July 6, 2007

Q. How do I setup cacth-all email accounts under Postfix MTA? For example if an email send to me@domain.com, info@you.com and sales@you.com, 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:
@yourdomain.com emailusername

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

Also make sure you have following line in /etc/postfix/main.cf 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.

Share this on (or read 14 comments/add one below):

14 comment

  1. HI Vivek how can i Add multiple users for SMTP auth on postfix
    /etc/postfix/sasl_passwd
    [smtp.gmail.com]:587 example@domain.com:passswd
    [smtp.gmail.com]:587 example1@domain.com:passswd1
    but are not support gmail ….. can you help me please ….
    in the virtual concepts support these concept………..am 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:

    foo.com              you@foo.com
    bar.com              you@bar.com
    foo.in                  you@foo.in

    However, you can use something as follows in /etc/postfix/sasl_passwd:

    user1@gmail.com           username1:password1
    user2@gmail.com           username2:password2

    Next set, /etc/postfix/sender_relay:

    user1@gmail.com           [smtp.gmail.com]:587
    user2@gmail.com           [smtp.gmail.com]:587

    Setup main.cf 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 = [smtp.gmail.com]: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/master.cf, 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 ourcityname.com 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 (user1@abc.com, user2@abc.com,….)for a user(abc) but not different users and not even aliases. whenever a user sends an email to newly generated mail id(user1@abc.com) 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….
    and…
    How can I silent redirect and in the same time to send back a bounce message?

    Thank you!

    Have a question? Post it on our forum!