Hi

I want to use spam filtering on my exim 4.69 installation.
On various sites I found configs for a transport like this:

dspam_spamcheck:
  driver = pipe
  command = "/usr/sbin/exim -oMr spam-scanned -bS"
  transport_filter = "/opt/dspam/bin/dspam --stdout
--deliver=innocent,spam --user $local_p...@$domain"
  use_bsmtp = true
  home_directory = "/tmp"
  current_directory = "/tmp"
  user = nobody
  group = mail
  log_output = true
  return_fail_output = true
  return_path_add = false
  message_prefix =
  message_suffix =


With this config a message is given to the external application and the
output is reinjected into exim with a different protocol (spam-scanned in
this case).
In the router section this can be checked with {eq
{$received_protocol}{spam-scanned}}.

This method works, but I don't like that the message is run twice through
exim. I get two complete deliveries in the logfiles and I can't match them
because they have two different message ids. And I think the performance of
two complete message runs isn't good either.

I tried using the transport_filter directly without this reinjection:
E.g.

remote_smtp:
  driver = smtp
  transport_filter = "/usr/bin/dspam --stdout --deliver=innocent,spam
--user global --debug"

Looks like this method works too. Is there a reason why this method is
inferior to the one above?
Is this the "right way" to do this or is there a better one?

It is not possible to change the message body in a router and pass the
modified body on to the next router, right? (like unseen with modifying the
body)

Thank you for your help
Dave


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

Reply via email to