about summary refs log tree commit homepage
path: root/scripts/report-spam
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/report-spam')
-rwxr-xr-xscripts/report-spam28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/report-spam b/scripts/report-spam
new file mode 100755
index 00000000..825855b5
--- /dev/null
+++ b/scripts/report-spam
@@ -0,0 +1,28 @@
+#!/bin/sh
+# Copyright (C) 2008-2013, Eric Wong <e@80x24.org>
+# License: GPLv3 or later
+# Usage: report-spam /path/to/message/in/maildir
+# my incrontab(5) looks like this:
+#  /path/to/.maildir/cur IN_MOVED_TO /path/to/report-spam $@/$#
+#  /path/to/.maildir/.INBOX.good/cur IN_MOVED_TO /path/to/report-spam $@/$#
+#  /path/to/.maildir/.INBOX.spam/cur IN_MOVED_TO /path/to/report-spam $@/$#
+
+# gigantic emails tend not to be spam (but they suck anyways...)
+bytes=$(stat -c %s $1)
+if test $bytes -gt 512000
+then
+        exit
+fi
+
+# only tested with the /usr/sbin/sendmail which ships with postfix
+case $1 in
+*[/.]spam/cur/*) # non-new messages in spam get trained
+        exec /usr/sbin/sendmail -oem -oi $USER+trainspam < $1
+        ;;
+*:2,*S*) # otherwise, seen messages only
+        case $1 in
+        *:2,*T*) exit 0 ;; # ignore trashed messages
+        esac
+        exec /usr/sbin/sendmail -oem -oi $USER+trainham < $1
+        ;;
+esac