Here are some thoughts, which will require some customization to meet your exact needs. The first thing I found was that Postfix doesn't seem to like doing anything to addresses that are aliases (i.e. virtual_alias_domain
/virtual_alias_maps
). But that's fine since in reality it doesn't matter what these addresses are called as long as everything gets delivered properly in the end.
So, in Postfix's main.cf
, add the following lines:
virtual_mailbox_domains = example.org
# Feel free to give munger a better name, just update master.cf appropriately
virtual_transport = munger:
Next, you need to tell Postfix what munger
actually means. Add the following (see pipe(8) for more options). So add the following to master.cf
:
munger unix - n n - - pipe
flags= user=nobody argv=/usr/bin/redirector
According to the above, anything destined for example.org
will get sent to the /usr/bin/redirector
program (or whatever you want to call it). For most normal things, you'd need some command line arguments for sender/recipient information (again, pipe(8)
has more details) but since the sender and destination addresses are fixed, nothing else is needed on the command line.
Now you just need to write the redirector
program. This worked for me:
#!/bin/sh
/usr/sbin/sendmail -bm -f 'something@myserver' '[email protected]'
It's a regular shell script (or your language of choice) so make it as simple or complex as you like.
postsrsd
, at least on Debian, is now much simpler than in the older answers below. See for example my answer here: serverfault.com/a/1120558