|
1 From 291afcd40d85547bb2c34219c57742fcfcc7552b Mon Sep 17 00:00:00 2001 |
|
2 From: Tomas Zeman <tzeman@volny.cz> |
|
3 Date: Sun, 16 Dec 2007 11:55:13 +0100 |
|
4 Subject: [PATCH] ospam-0.01-1-i686.fpm: |
|
5 *added missing spamclam to repo |
|
6 |
|
7 --- |
|
8 source/custom/ospam/spamclam | 97 ++++++++++++++++++++++++++++++++++++++++++ |
|
9 1 files changed, 97 insertions(+), 0 deletions(-) |
|
10 create mode 100755 source/custom/ospam/spamclam |
|
11 |
|
12 diff --git a/source/custom/ospam/spamclam b/source/custom/ospam/spamclam |
|
13 new file mode 100755 |
|
14 index 0000000..dae445b |
|
15 --- /dev/null |
|
16 +++ b/source/custom/ospam/spamclam |
|
17 @@ -0,0 +1,97 @@ |
|
18 +#!/bin/sh |
|
19 + |
|
20 +[ -f /etc/ospam/spamclam ] && . /etc/ospam/spamclam |
|
21 + |
|
22 +# CONFIG |
|
23 +SPAMC=${SPAMC:-/usr/bin/spamc} |
|
24 +CLAMDSCAN=${CLAMDSCAN:-/usr/bin/clamdscan} |
|
25 +FORWARDBIN=${FORWARDBIN:-/var/qmail/bin/forward} |
|
26 +M822FIELD=${M822FIELD:-/usr/bin/822field} |
|
27 +FILEPIPE=${FILEPIPE:-/command/seekablepipe} #/usr/bin/filepipe |
|
28 +VDELIVER=${VDELIVER:-/usr/bin/vdeliver} |
|
29 +TMP=${TMP:-.} |
|
30 + |
|
31 +[ -x $SPAMC -a -x $CLAMDSCAN -a -x $FORWARDBIN -a -x $M822FIELD ] || { |
|
32 + echo -e "$0: Required programs do not exist" |
|
33 + cat | $FILEPIPE $VDELIVER |
|
34 + exit 0 |
|
35 +} |
|
36 + |
|
37 +ADDR_QUARANTINE="$1" |
|
38 +DELIVER_VIRUS="$2" |
|
39 +ADDR_SPAM="$3" |
|
40 +DELIVER_SPAM="$4" |
|
41 +MAILUSER="$5" |
|
42 + |
|
43 +if [ -z "$ADDR_QUARANTINE" -o -z "$ADDR_SPAM" -o -z "$DELIVER_VIRUS" -o -z "$DELIVER_SPAM" ]; then |
|
44 + echo -e "Usage: $0 quarantine_address deliver_virus_to_recipient(0/1) spam_address deliver_spam_to_recipient(0/1) [mailuser address]" |
|
45 + echo -e "address may be: _ignore_ -> checking of that feature is ignored" |
|
46 + echo -e " _noaddr_ -> if infected, do not forward" |
|
47 + cat |
|
48 + exit 0 |
|
49 +fi |
|
50 + |
|
51 +MAILFILE="$TMP/mail.tmp.$$" |
|
52 + |
|
53 +cat >$MAILFILE |
|
54 + |
|
55 +VIRUS=0 |
|
56 +SPAM=0 |
|
57 +STATUS=0 |
|
58 + |
|
59 +spam_flags="" |
|
60 + |
|
61 +if [ "$ADDR_QUARANTINE" != "_ignore_" ]; then |
|
62 + virus=`$CLAMDSCAN --disable-summary --stdout $MAILFILE | grep FOUND` |
|
63 + if [ ! "$virus" = "" ]; then |
|
64 + VIRUS=1 |
|
65 + cat $MAILFILE | sed -e 's/^Subject:/Subject: [virus]/' > $MAILFILE.1 |
|
66 + fi |
|
67 +fi |
|
68 + |
|
69 +if [ $VIRUS -eq 0 -a "$ADDR_SPAM" != "_ignore_" ]; then |
|
70 + if [ ! -z $MAILUSER ]; then |
|
71 + spam_flags="-u $MAILUSER" |
|
72 + fi |
|
73 + $SPAMC $spam_flags < $MAILFILE > $MAILFILE.1 |
|
74 + isspam=`$M822FIELD X-Spam-Flag < $MAILFILE.1 | grep YES | wc -l` |
|
75 + if [ $isspam -ne 0 ]; then |
|
76 + SPAM=1 |
|
77 + fi |
|
78 +fi |
|
79 + |
|
80 + |
|
81 +if [ $VIRUS -eq 1 ]; then |
|
82 + STATUS=99 |
|
83 + if [ $DELIVER_VIRUS -eq 1 ]; then |
|
84 + cat $MAILFILE.1 | $FILEPIPE $VDELIVER |
|
85 + fi |
|
86 + if [ "$ADDR_QUARANTINE" != "_noaddr_" ]; then |
|
87 + $FORWARDBIN $ADDR_QUARANTINE < $MAILFILE.1 |
|
88 + if [ $? -ne 0 ]; then |
|
89 + STATUS=111 |
|
90 + fi |
|
91 + fi |
|
92 +else |
|
93 +if [ $SPAM -eq 1 ]; then |
|
94 + STATUS=99 |
|
95 + if [ $DELIVER_SPAM -eq 1 ]; then |
|
96 + cat $MAILFILE.1 | $FILEPIPE $VDELIVER |
|
97 + fi |
|
98 + if [ "$ADDR_SPAM" != "_noaddr_" ]; then |
|
99 + $FORWARDBIN $ADDR_SPAM < $MAILFILE.1 |
|
100 + if [ $? -ne 0 ]; then |
|
101 + STATUS=111 |
|
102 + fi |
|
103 + fi |
|
104 +fi |
|
105 +fi |
|
106 + |
|
107 +if [ $VIRUS -eq 0 -a $SPAM -eq 0 ]; then |
|
108 + cat $MAILFILE | $FILEPIPE $VDELIVER |
|
109 +fi |
|
110 + |
|
111 +rm -f $MAILFILE $MAILFILE.1 |
|
112 + |
|
113 +exit $STATUS |
|
114 + |
|
115 -- |
|
116 1.5.3.4 |
|
117 |