HAM_REPORT="spamc --learntype=ham"
SPAM_CHECK="spamc -c"
+# needs rules directories
+NEEDS_SPAM_RULES=~/Maildir/spam/needs_rules/cur/
+NEEDS_HAM_RULES=~/Maildir/spam/needs_ham_rules/cur/
+
if [ "$(basename $0)" = "learn_from_spam" ]; then
for file in "$@"; do
if ! formail -c < "$file"|grep -q '^List-Id'; then
trap "rm -f '$TMP'/file; rmdir '$TMP'" EXIT
# this message is still not spam; may need custom rules
spamc < "$file" > "$TMP/file" 2>/dev/null;
- mv "$TMP/file" ~/Maildir/spam/needs_rules/cur/"$(basename "$file")";
+ mv "$TMP/file" "${NEEDS_SPAM_RULES}$(basename "$file")";
trap - EXIT;
rmdir "$TMP";
+ elif [ "$file" = "${NEEDS_SPAM_RULES}$(basename "$file")" ]; then
+ rm -f "$file";
fi;
done;
elif [ "$(basename $0)" = "learn_from_ham" ]; then
TMP="$(mktemp -d)"
trap "rm -f '$TMP'/file; rmdir '$TMP'" EXIT
spamc < "$file" > "$TMP/file" 2>/dev/null;
- mv "$TMP/file" ~/Maildir/spam/needs_ham_rules/cur/"$(basename "$file")";
+ mv "$TMP/file" "${NEEDS_HAM_RULES}$(basename "$file")";
trap - EXIT;
rmdir "$TMP";
+ elif [ "$file" = "${NEEDS_HAM_RULES}$(basename "$file")" ]; then
+ rm -f "$file";
fi;
done;
else