How to redirect all outgoing email from postfix to a single address for testing
I am setting up a testing server for a web based application that sends some email notifications.
Sometimes testing is performed with real customer data, and for that reason I need to guarantee that the server is not able to send emails to our real customers while we're testing.
What I want is to configure postfix so that it takes any outgoing email and redirects it to a single email address, instead of delivering to the real destination.
I am running Ubuntu server 9.10.
Thank you in advance
Solution 1:
Set up a local user to receive all trapped mail:
adduser mailtrap
You need to add in main.cf:
transport_maps = hash:/etc/postfix/transport
luser_relay = mailtrap
Then create /etc/postfix/transport with this in there:
localhost :
your.hostname.example.com:
* local:mailtrap
Save an then run: postmap /etc/postfix/transport
finally restart postfix invoke-rc.d postfix restart
All local email will be delivered normally and external email will be delivered to the local mailtrap
account.
Solution 2:
Better is to create a virtual alias file:
In /etc/postfix/main.cf:
virtual_alias_maps = pcre:/etc/postfix/virtual
In /etc/postfix/virtual:
/.*@.*/ root
You can replace root
with whichever user you'd like to receive all the outgoing e-mail. This pattern can be tweaked if you want local mail to be delivered normally (without redirection):
/.*@(?!hostname\.localdomain$).*/ root
Original idea found here: Postfix development server - intercept all outgoing mail