On Fri, Sep 12, 2014 at 10:12:38PM -0700, Den wrote:
> I was just wondering what exactly does the line below do? Could anybody
> comment / advise, please? It does not actually check and *confirm* that the
> code, syntax, etc. of any regexp present in /filter/ (example) is 100%
> correct does it?
>
> postmap -q "/^Subject:.*\*{5}SPAM\*{5}/" regexp:/etc/postfix//filter/
It means you're too tired to think straight. :-(
* You're using a regexp pattern instead of an input string to match.
* Your regexp table is a directory, and is not what's in main.cf.
A sensible version of this is:
$ exec bash
$ /usr/sbin/postmap -q "Subject: *****SPAM*****" regexp:<(
echo '/^Subject:.*(\*{5}SPAM\*{5})/ MATCHED ${1}'
)
MATCHED *****SPAM*****
If you were to ensure that the file actually used in main.cf
$header_checks listed sensible content:
main.cf:
header_checks = regexp:${config_directory}/spamdiscard
spamdiscard:
# Flush left, with no leading whitespace on any lines:
# All subject rules go here between "if" and "endif"
if /^Subject:/
/DISCARD WITH PREJUDICE/ DISCARD
/(\*{5}SPAM\*{5})/ DISCARD ${1}
# Any additional rules below
# ...
# /pattern/ DISCARD optional text
# ...
# Finally log any subjects that don't hit any rules
/^/ WARN
# Once tests are concluded comment out WARN above, and
# short-circuit via DUNNO, since no other subjects will
# be matched by any rules below for any other headers.
/^/ DUNNO
endif
# hypothetical
if /^X-Some-Other-Header:/
# /pattern/ ACTION
# ...
/^/ DUNNO
endif
# still hypothetical
if /^X-Yet-Another-Header:/
# /pattern/ ACTION
# ...
/^/ DUNNO
endif
Then you'd be able to test, and either see discarded messages, or
see the actual subjects that did not match any rules.
--
Viktor.