Question

How to correctly configure Postfix to route emails to aliases?

  • Posted on August 26, 2014
  • nhebbAsked by nhebb

For the most part, I have successfully configured Postfix to send emails. Emails sent to outside domains, e.g. example@gmail.com, 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. myname@mydomain.com 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 www-data@mydomain.com.
  • Emails sent to aliases, e.g. support@mydomain.com, 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 support@mydomain.com but is changed to myname@mydomain.com in the emails that result in an error and www-data@mydomain.com in the emails that get successfully delivered.

Configuration Notes

/etc/postfix/main.cf:

/etc/aliases:

/etc/postfix/virtual

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

Show comments

Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

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.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

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.