[exim] Re(2): pipe message to app

Top Page
Delete this message
Reply to this message
Author: Bill Hacker
Date:  
To: Exim Users
Subject: [exim] Re(2): pipe message to app
>Hi !!
>
>> I have a hack that I'm currently trying in order to use dspam from DATA.
>>
>> As per http://www.exim.org/exim-html-4.62/doc/html/spec_html/ch40.html
>> there is a file that contains the whole message after the first call
>> to malware until the end of acl_smtp_data.
>>
>> I'll note that the biggest issue is that this only allows for a
>> 'global' dspam setup since acl_smtp_data is only run once for all
>> recipients (although 90% of our mail goes to just one user, so it
>> would be possible to pass that along).
>
>I just write a C function to be called using dlfunc that uses
>spool_mbox to get the message and executes whatever it has been
>specified as the first argument and injects the message to it's
>stdin and returns what it reads from the programs stdout. It's
>intended to be used to add dspam headers at transport (hope that
>spool_mbox will work at transport) but it could be used for any other
>application and in any other situation. I need to test it and when
>it works it could be used that way:
>
>headers_add = ${dlfunc{pipe_message.o}{pipe_message}\
>    {/usr/bin/dspam --classify --user xxxx}}

>
>tomorrow i will try to give it a test
>
>--
>Best regards ...


While testing, let me know if you have any thoughts on the (partially)
documented
feature of dlfunc to call a C wrapper that in turn calls some other
language's code.

Not that a pipe cannot also do that, but dlfunc *might* be able to call
any-posix-compliant
binary without caring if the *source* was in C or some other language.

Thanks,

Bill