Re: harmless emails trigger rule EMPTY_MESSAGE, why and how to avoid?

Gregor Zattler <[email protected]> Mon, 06 Apr 2026 14:38:11 +0200
Newsgroups gmane.mail.spam.spamassassin.general
Message-ID <[email protected]>
Hi Bill, thanks a lot, because of:
* Bill Cole <[email protected]> [2026-04-02; 19:58 -04]:
> On 2026-04-02 at 18:30:13 UTC-0400 (Fri, 03 Apr 2026 00:30:13 +0200)
> Gregor Zattler <[email protected]>

> Something is very broken in your mechanism for using SpamAssassin.

I purged and reinstalled spamassassin
and it's package dependencies.  The only
difference between the contents of
/etc/spamassassin and the version before
purging and reinstalling were my minor
customisation which I reapplied.

Sadly I did the spamassassin -t test
only after the procedure and now at
least the EMPTY_MESSAGE rule did not fire.


> It may be possible to get that to happen by adjusting rule priorities 
> and using "shortcircuit" on header rules, such that no body characters 
> are ever detected. I don't see that below...
>
> If SA scanned ANY of the body, EMPTY_MESSAGE would not hit. So it could 
> happen if your procmail rig is somehow only passing the headers to 
> spamc.

The actual call to spamc is as simple as it get's:

:0
* < 500000
* ! X-Ham-grfz-status:[ 	]+manual
{
    :0fhw
    | /usr/bin/env LANGUAGE=de spamc -t 300 -x

    :0 e
    {
        :0hf
        * ^^rom( )
        | sed '1s/^rom/From/'


        :0:
        ${MAILDIR}/procmailrcerror/  ${HOME}/.procmail/backup-prae-mailmunge/

        :0

        {
            EXITCODE=75   ## EX_TEMPFAIL EXITCODE to force re-queue
            HOST          ## unset HOST to exit procmail and re-queue
        }
    }
...

Because of your hint prrocmail might
only pass headers, I changed this to

:0fw

and since ~60 hours no emails were
tagged with EMPTY_MESSAGE.  What I do
not understand is, why not all emails
were tagged EMPTY_MESSAGE then.

Anyway thanks a lot.

>> I get email via fetchmail and
>> filter with procmail which calls spamc.
>> spamd runs with network rules.
>
> What precisely do you mean by "network
> rules?" Version? 

I mean: spamd is NOT started with --local.

> How often do you update rules and
> reload spamd?

Debians /usr/sbin/spamassassin-maint is
executed daily via
spamassassin-maintenance.timer and does
sa-update, sa-compile and a restart.
Since I had issues with dying spamd my
scripts also do a additional restart in
special cases.

I now put

score EMPTY_MESSAGE 0.1

in my user_prefs and probably will live
with that.

Thank you very much, Gregor