1 From: Marc.Haber-lists@gmx.de (Marc Haber)
2 Date: Sat, 01 Aug 1998 13:05:12 GMT
4 I am using a virus scanner program that is invoked by a pipe, scans the mail
5 and re-invokes Exim to do the delivery. The pipe is invoking a perl script that
6 tries to unpack and MIME, zip and other archives and then applies the McAfee
7 scanner on the results.
9 The Exim configuration to handle this was created by Sven Paulus
10 <sven@oops.sub.de>. The relevant bits are shown below. The virus scanner scans
11 the mail and re-delivers it with
15 to stop the mail from being scanned a second time. There was a bug in Exim
16 prior to release 2.00 that stopped this working.
19 ######################################################################
20 # TRANPORTS CONFIGURATION #
21 ######################################################################
22 # ORDER DOES NOT MATTER #
23 # Only one appropriate transport is called for each delivery. #
24 ######################################################################
31 command = "/usr/local/virscan/bin/scanmail \
32 $sender_host_address /var/log/exim_virscan 1"
33 current_directory = "/tmp"
35 freeze_exec_fail = false
38 log_defer_output = false
39 log_fail_output = false
43 return_path_add = false
50 ######################################################################
51 # DIRECTORS CONFIGURATION #
52 # Specifies how local addresses are handled #
53 ######################################################################
55 # A local address is passed to each in turn until it is accepted. #
56 ######################################################################
58 # Follows system_aliases and userforward directors, but precedes localuser.
61 condition = "${if or {{eq {$received_protocol}{no-attachment}} \
62 {eq {$received_protocol}{local-not-scanned}} \
63 {eq {$received_protocol}{scanned-ok}} \
64 {match {$sender_host_address}{^192\.168\.10\.}}} \
70 ######################################################################
71 # ROUTERS CONFIGURATION #
72 # Specifies how remote addresses are handled #
73 ######################################################################
75 # A remote address is passed to each in turn until it is accepted. #
76 ######################################################################
78 # The first router routes everything to the scanner unless the message
79 # has previously been scanned.
82 condition = "${if eq {$received_protocol}{scanned-ok} {0}{1}}"