]> mj.ucw.cz Git - mailman-filter.git/commitdiff
Added an example filter
authorMartin Mares <mj@ucw.cz>
Fri, 21 Oct 2011 18:40:47 +0000 (20:40 +0200)
committerMartin Mares <mj@ucw.cz>
Fri, 21 Oct 2011 18:40:47 +0000 (20:40 +0200)
debian/changelog
debian/rules
example-filter [new file with mode: 0755]

index 5b56a6d8da752bffe0c4ccc6ee888aa5521e72d4..82778827014a0d3d0729e34a24a9d0bf7df67311 100644 (file)
@@ -1,3 +1,9 @@
+mailman-filter (0.2) unstable; urgency=low
+
+  * Added an example filter.
+
+ -- Martin Mares <mj@ucw.cz>  Fri, 21 Oct 2011 20:40:30 +0200
+
 mailman-filter (0.1) unstable; urgency=low
 
   * Initial release.
index 4f62b99880bb3550146f456eb2e6e22248f3459e..582a39e70f2d128171861a944d48ea60a810e250 100755 (executable)
@@ -29,7 +29,7 @@ binary-indep: build
        install -m 644 Filter.py debian/mailman-filter/usr/lib/mailman/Mailman/Handlers/
 
        dh_installchangelogs
-       dh_installdocs README
+       dh_installdocs README example-filter
        dh_compress
        dh_fixperms
        dh_installdeb
diff --git a/example-filter b/example-filter
new file mode 100755 (executable)
index 0000000..a3dde52
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Filter called by the Filter module on all incoming messages
+# See /usr/share/doc/mailman-filter/README
+
+t=`mktemp /tmp/mailman-filter_XXXXXXXX`
+
+judge()
+{
+       CODE=$1
+       TOMOD="$2"
+       TOSENDER="$3"
+       if [ -z "$TOSENDER" ] ; then
+               TOSENDER="$TOMOD"
+       fi
+       echo -e "$TOMOD\n=====\n$TOSENDER\n====="
+       rm -f $t
+       exit $CODE
+}
+
+if ! spamc --headers >$t ; then
+       judge 1 "Spam filter failed" "Message has been held for moderation because of spam filter failure."
+fi
+
+grep -q '^X-Spam-Level: \*\*\*\*\*\*' $t && judge 2 "Spam filter declared this message spam."
+grep -q '^X-Spam-Level: \*\*' $t && judge 1 "Spam filter declared this message possible spam."
+judge 0 ""