Got all the header parsing and matching working.

Altered core logic to just be:
	- rules that run before a global filters
	- N global filter(s)
	- rules that run after filters

All steps are optional.

FossilOrigin-Name: 250b5d22e0387865e13a4adee9dadd122583311bde1d015eefb3321c525827be
This commit is contained in:
Mahlon E. Smith 2023-06-21 03:02:52 +00:00
parent 105b21d9f7
commit 2952e2cbd7
4 changed files with 168 additions and 66 deletions

View file

@ -5,14 +5,19 @@
# Default, no logging. Relative to homedir.
#logfile: sieb.log
## Filter message before rules
pre_filter:
- 'reformail -A "X-Sieb: Pre-filtered!"'
# - bogofilter
## Rules tried before global filtering
early_rules:
-
headers:
to: mahlon@(laika|ravn)
received: .*sendgrid.*
filter:
- [ reformail, -A, "X-Sieb: This matched." ]
deliver: .whatever
## Filter message after rules
#post_filter:
# - bogofilter
## Filter message before additional rules.
filter:
- [ reformail, -A, "X-Sieb: That shit totally matched" ]
## Ordered, top down, first match wins.
## Headers are lowercased. Multiple matches are AND'ed.
@ -20,12 +25,12 @@ pre_filter:
## Delivery default is ~/Maildir, any set value is an auto-created maildir under
## that path.
##
rules:
-
headers:
x-what: pcre-matcher
poonie: pcre-matcher
deliver: .whatever
# rules:
# -
# headers:
# x-what: pcre-matcher
# poonie: pcre-matcher
# deliver: .whatever
# # Magic "TO" which means To: OR Cc:
# -