> From Erik Schorr on Wednesday, June 27, 2007 6:39 AM
> David S. Madole wrote:
> >> From Erik Schorr on Tuesday, June 26, 2007 10:51 PM
> >>
> >>    command = "forward_prog -f '$header_from' -r 
> >> '[EMAIL PROTECTED]' -t '${lookup mysql {SELECT alias FROM 
> >> email_virtuser WHERE user='$local_part' AND domain='$domain' AND 
> >> is_alias='Y' AND active='Y'}{$value}}'"
> > 
> > I don't really know the direct answer to your question, but 
> > what does forward_prog actually do? You might be able to do 
> > the same thing within Exim without calling an external 
> > program. Exim can add, remove, and change headers. If it's 
> > just rewriting addresses, it can do that too, very easily.
> 
> For example, for any messages coming into a user's account 
> who's forwarding the message to Yahoo, AND where the sending 
> address is a Yahoo address, we want to copy the original 
> Envelope FROM address into the new "Reply-to", "Bounces-to", 
> and From headers, and use the forwarding (local) account's 
> email address as the new Envelope FROM address, while leaving 
> the From header in the email intact.  This is just one case, 
> and something that I initially want to do in an external 
> program.  It will certainly eventually made into a router or 
> transport that includes sql lookups to accomplish the same 
> thing, but for development and testing of forwarding 
> deliverability under the different circumstances, I want to 
> do this in an external program.

Sorry I can't help with the original question, I've never had a need to use a 
pipe.

But I would still suggest that you look at doing this directly in Exim from the 
start. Rewriting rules alone can do 90% of what you are looking for, and the 
headers_rewrite transport option might be useful, as well as headers_add and 
headers_remove.

I do an extensive amount of message processing based on database content, and 
one thing that works well for me is to have a dummy router early in the chain 
that does the database lookup and populates $address_data with everything that 
will be needed later, with the individual fields accessible through ${extract 
...}. It can save a lot of ad-hoc database lookups scattered all over the 
configuration.

Mine looks like this:

lookup:

  driver = redirect
  data = ""
  address_data = ${lookup mysql { select userid, domain, mailto, .... } 
{$value} }

Then when I need the data later on in delivery, I just 
${extract{mailto}{$address_data}} for example.

David



-- 
## List details at http://www.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://www.exim.org/eximwiki/

Reply via email to