On Mon, 11 Aug 2014, Ori Idan wrote:

I am trying to run a script when an email is received on my server.
I tried what described here:
http://blog.thecodingmachine.com/content/triggering-php-script-when-your-postfix-server-receives-mail

But it invoked the script for all mails not mail to a specific user
I tried the simplest thing of /etc/alias
But got error: Recipient address rejected: User unknown in virtual alias
table

/etc/aliases is used by the local delivery agent to deliver local mail. That is to say, it delivers mail to actual accounts on the same system and for addresses with domains listed in $mydestination. If the mailbox isn't for an existing user or the domain is a virtual or relay domain, you will need to use virtual_alias_maps.

The above suggests that postfix is looking in virtual_alias_maps for the address to which you are sending. Unfortunately, scripts can't be used as targets for virtual_alias_maps lookups.

You could alias a virtual address to a local address which is an alias for the desired command. This is what Mailman does. For example, if you have a mailing list called management for the domain example.com, Mailman's virtual_alias_maps table would contain an entry like this:

managem...@example.com          management

And Mailman's alias_maps file would contain:

management:             "|/var/lib/mailman/mail/mailman post management"

Note that there isn't an actual user called management on the system.

This is probably the easiest way to achieve this, there are probably other ways like setting up a transport which could be used to call the script as described in the post but might not be worth the hassle for just one user.

All this is pretty well described in the various Postfix manpages. Feel free to ask for further clarification, this stuff takes a bit to get one's head around.

HTH,
Geoff.


_______________________________________________
Linux-il mailing list
Linux-il@cs.huji.ac.il
http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il

Reply via email to