Hi. Starting from 1.7b sentinel use
if (!strcasecmp(headerf, "Subject"))
headerv = smfMimeDecodeString(headerv,
message->buf);
which is
1) Not logical. QP and B64 can be in ANY header, not
only in the Subject, i.e. in To or From header.
2) Breaks my anti-spam setup. I use this test to defeat
spammers:
Subject: b8s1:b8s1:nobit8:/[^\x00-\x7f]/
...
nobit8:reject:Non-ASCII characters in the mail headers
(such as Subject:, From:, To:, etc) must be encoded
according to RFC 2047.
Since now sentinel decodes Subject _before_ any tests,
this rule rejects properly encoded Russian subjects
instead of rejecting spammers!
I understand why you add this code, to catch keywords.
But it is inefficient, most of spammers intentionally
damage keywords somehow.
To satisfy both needs, I suggest:
1) Apply mime-decoding not only to Subject, but to all
headers.
2) Keep non-decoded headers too.
3) Add yet one regex flag which acts on _undecoded_
header, something like this:
Subject: b8s1:b8s1:nobit8:/[^\x00-\x7f]/M
Logged In: YES
user_id=295536
Your change makes impossible this nice test too:
Subject: csub1:csub1:asian:/=\?big5\?/i
...
asian:reject:Nobody here can understand your character set
letters.