48 lines
918 B
Bash
48 lines
918 B
Bash
#!/usr/bin/bash
|
|
|
|
# Useful directories.
|
|
readonly MAILDIR="${HOME}/Maildir"
|
|
readonly SPAMDIR="${MAILDIR}/Spam"
|
|
readonly HAMDIR="${MAILDIR}/Ham"
|
|
|
|
# The spam/ham found are saved for future reference.
|
|
readonly SAVE_SPAM_DIR="${HOME}/spamassassin/spam"
|
|
readonly SAVE_HAM_DIR="${HOME}/spamassassin/ham"
|
|
|
|
# The minimum age (in days) of spam to be processed.
|
|
readonly SPAM_MIN_AGE=3
|
|
|
|
# "--force" flag.
|
|
FORCE="false"
|
|
|
|
learn_spam()
|
|
{
|
|
local tmpfile=$(mktemp)
|
|
local findargs=""
|
|
|
|
if [ "${FORCE}" = "false" ]; then
|
|
findargs=" -ctime +${SPAM_MIN_AGE} "
|
|
fi
|
|
|
|
find "${SPAMDIR}/cur" "${SPAMDIR}/new" -type f "${findargs}" | while read -r msg; do
|
|
printf "%s\n" "${msg}" >> "${tmpfile}"
|
|
done
|
|
|
|
/usr/bin/sa-learn -f "${tmpfile}"
|
|
}
|
|
|
|
learn_ham()
|
|
{
|
|
}
|
|
|
|
while [ -n "${1}" ]; do
|
|
case "${1}" in
|
|
-f|--force)
|
|
FORCE="true"
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
learn_spam
|
|
learn_ham
|