jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 65eb80e8f884f11663066963368eb131b931b609
parent 3e5d8243ddc78134ab5d8dbc18fdf8a660157130
Author: Jaromil <jaromil@dyne.org>
Date:   Fri, 26 Dec 2014 19:39:12 +0100

sieve filter creation adapted to new addressbook

Diffstat:
Msrc/zlibs/filters | 60++++++++++++++++++++++++++++--------------------------------
1 file changed, 28 insertions(+), 32 deletions(-)

diff --git a/src/zlibs/filters b/src/zlibs/filters @@ -523,22 +523,22 @@ require ["fileinto","mailbox","variables"]; EOF # blacklist - sieve_filter_array=() - newlock "$TMPDIR/blacklist.sieve.$id" - cat <<EOF | ${SQL} -batch ${addressbook} \ - >> "$TMPDIR/blacklist.sieve.$id" -SELECT email FROM blacklist; -EOF - for i in `cat "$TMPDIR/blacklist.sieve.$id"`; do - sieve_filter_array+=("$i"); done - unlink "$TMPDIR/blacklist.sieve.$id" - - { test "${#sieve_filter_array}" = "0" } || { - sieve_filter \ - 'if header :contains "From"' \ - zz.blacklist + [[ -r "$MAILDIRS"/blacklist.abook ]] && { + sieve_filter_array=() + + for i in `awk -F'=' ' +/^email/ { print $2 } +' "$MAILDIRS"/blacklist.abook`; do + sieve_filter_array+=("$i") + done + + { test "${#sieve_filter_array}" = "0" } || { + sieve_filter \ + 'if header :contains "From"' \ + zz.blacklist + } } - + # bounces cat <<EOF >> "$MAILDIRS/Filters.sieve" # bounces @@ -568,24 +568,20 @@ EOF act "compiling whitelist rules from addressbook" func "generating whitelist for sieve filters" - sieve_filter_array=() - newlock "$TMPDIR/whitelist.sieve.$id" - cat <<EOF | ${SQL} -batch ${addressbook} \ - >> "$TMPDIR/whitelist.sieve.$id" -SELECT email FROM whitelist; - -EOF - - for i in `cat "$TMPDIR/whitelist.sieve.$id"`; do - sieve_filter_array+=("$i"); done - - unlink "$TMPDIR/whitelist.sieve.$id" - - sieve_filter \ - 'if header :contains "From"' \ - INBOX + [[ -r "$MAILDIRS"/whitelist.abook ]] && { + sieve_filter_array=() + for i in `awk -F'=' ' +/^email/ { print $2 } +' "$MAILDIRS"/whitelist.abook`; do + sieve_filter_array+=("$i") + done - cat <<EOF >> "$MAILDIRS/Filters.sieve" + sieve_filter \ + 'if header :contains "From"' \ + INBOX + } + + cat <<EOF >> "$MAILDIRS/Filters.sieve" # spam if header :is "X-Spam-Flag" "YES" { fileinto :create "zz.spam"; stop;