Hi!
I am trying to implement some kind of automatic virus scanning of
e-mail using exim 1.92. Incoming mail is routed resp. directed to a
pipe transport that calls a perl script. The perl script then does the
scanning and calls exim again with "-oMr scanned-ok". The routers and
directors recognize that "signature" and won't scan the mail again. I
am including the relevant portions of the config file.
This works fine as long I have configured exim to deliver mail
immediately to remote SMTP servers. Since the machine is on a dial-up
line, I would like to queue remote deliveries and have queue_smtp=true
set. This seems to break my virus scan scheme.
When a mail to a remote destination is being input, exim does the
virus scanning and defers the message. On the next queue run, the mail
is passed through the virus scanner again and deferred again. In the
current configuration, my virus scanner and queue_smtp are mutually
exclusive.
It looks like the oMr option is lost while the message is being
deferred and each queue runner starts routing / directing the message
all over again.
I am surely doing something wrong here, but what?
Greetings
Marc
excerpt from /etc/exim/config
#queue_smtp = true
end
######################################################################
# TRANPORTS CONFIGURATION #
######################################################################
virscan:
driver = pipe
bsmtp = all
batch_max = 32767
bsmtp_helo = true
command = "/usr/local/virscan/bin/scanmail $sender_host_address"
current_directory = "/tmp"
from_hack = false
freeze_exec_fail = false
group = virscan
ignore_status = false
log_defer_output = false
log_fail_output = false
log_output = true
prefix =
return_output = false
return_path_add = false
timeout = 6h
umask = 022
use_shell = false
user = virscan
######################################################################
# DIRECTORS CONFIGURATION #
######################################################################
vircheck:
condition = "${if {eq {$received_protocol}{scanned-ok}} {0}{1}}"
driver = localuser
transport = virscan
######################################################################
# ROUTERS CONFIGURATION #
######################################################################
vircheck:
condition = "${if eq {$received_protocol}{scanned-ok} {0}{1}}"
driver = domainlist
route_list = "*"
transport = virscan
end
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Karlsruhe, Germany | Beginning of Wisdom " | Fon: *49 721 966 32 15
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fax: *49 721 966 31 29
--
*** Exim information can be found at
http://www.exim.org/ ***