Author: Oliver von Bueren Date: To: exim-users Subject: Re: [exim] Message duplication if To/Cc contain alias and one of
addresses it's expanded into
Hi Konstantin >> What you have to do is find a way that your dspam-setup does not create
>> an smtp session for each recipient to feed the messages back into exim,
>> meaning session 2 and 3 should really be one with RCPT TO of
>> user1@??? and userlist@???. In that case, exim would
>> detect the condition and deliver the message once to user1 and once to
>> userlist. Or, you have to make sure that the alias expansion does not
>> take place for session 2 and 3.
>>
>
> That brings me back to the original question: is it really DSPAM at
> fault in this case? It is called through pipe transport. All DSPAM
> does is to read data from stdin and send modified output to stdout.
> Any piece of software that behaves in the asme manner will beget
> duplicates of exactly the same kind.
>
> The problem in your setup is the usage of a transport for that purpose.
A transport, like SMTP, is meant to get a message and send it OUT of
your system and that is it. It's not designed to have a transport
receiving a message for sending out which in fact gets feed right back
into exim again.
There exist content scanning facilities for this kind of things in exim,
which don't suffer the same problem because the message is never "sent
out" of exim and re-submitted to it.
As it was said before, the only way to avoid this would probably be to
have all alias processing and the like done before the messages go out
the pipe to dspam and having no processing of the destination address,
notably no alias expansion, after it is feed back to exim. This means, a
message feed back from dspam should go out through the final delivery
transport without any other processing immediately.
I guess this can be done in exim, but I didn't have the need for this up
till now, as I use content scanning for antispam implementation and I
don't use dspam at the moment.
So primarily, I don't think it's a exim fault, but rather the method in
which dspam is integrated into your system.
Perhaps others have an example on how to do it properly, I don't.