How to correctly configure Postfix to route emails to aliases?

Posted August 26, 2014 20.9k views

For the most part, I have successfully configured Postfix to send emails. Emails sent to outside domains, e.g., are delivered fine. The problem I’m having is when I send emails from my website’s contact form, via the PHP mail() function, to my domain’s own email addresses.

Here are the problems I’m experiencing:

  • Emails sent to my user name, e.g. go to /var/mail/myname but are not sent to the Google Apps account that my MX records point to. They also have the return path header overwritten to be
  • Emails sent to aliases, e.g., are sent to /var/mail/myname with a message: Action: failed, Status: 5.1.1, Diagnostic-Code: X-Postfix; unknown user: “support”. The error message shows that the return path header has been overwritten, but in this case to
  • All the emails have the return path header information overwritten. In the php mail() function, the return path is set to but is changed to in the emails that result in an error and in the emails that get successfully delivered.

Configuration Notes


  • myorigin =
  • mydestination =,, , localhost



I ran postmap on /etc/postfix/virtual and /etc/init.d/postfix reload before attempting the send the emails.

1 comment
  • It’s too late to edit my original post, but I also wanted to add that I included a wildcard in the /etc/postfix/virtual.

    Plus, I tried changing the /etc/postfix/ file:
    alias_maps = hash:/etc/aliases

    virtualaliasmaps = hash:/etc/postfix/virtual

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

You mentioned that your contact form sends emails to your local user as defined in your postfix/virtual file but you also mention that you want them forwarded to Gmail which is what your MX records are set to point to.

If you have set your MX records to Gmail I’m assuming that you want Gmail to handle your inbox so why did you define local mailboxes as well?

Outside of that though, the reason that they are being delivered to the local in-box is because if your sending through postfix it will check its internal routes before it looks up the MX records and so it will successfully deliver that email locally.