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

Bill Cole <[email protected]> Thu, 02 Apr 2026 19:58:38 -0400
Newsgroups gmane.mail.spam.spamassassin.general
Message-ID <[email protected]>
On 2026-04-02 at 18:30:13 UTC-0400 (Fri, 03 Apr 2026 00:30:13 +0200)
Gregor Zattler <[email protected]>
is rumored to have said:

> Hello,
>
> plenty of my emails get tagged by
> spamassassin EMPTY_MESSAGE=2.32 although
> most of these in turn are very simple
> ascii emails without MIME parts or the
> like which do have a subject and a
> relevant body.

Something is very broken in your mechanism for using SpamAssassin.

> Ironically this also happened to the
> welcome email for this very mailinglist:
> https://pastebin.com/NegUzr0Y

I do not get a hit on EMPTY_MESSAGE on that, using 4.0.2 and the current 
rules.

I have *never* seen a false positive on EMPTY_MESSAGE. I don't even have 
a theory for how it might have happened with a normal mail flow and 
configuration.  The presence of a single non-whitespace character in the 
message body will prevent a match.

> Any ideas why this happens and how to
> correct it?

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.

> Further info:
>
> 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? How often do you 
update rules and reload spamd?

> This is on debian trixie and therefore
> Spamassassin/spamc/spamd version 4.0.1-5

So: 4.0.1 with whatever later updates Debian adopted. A bug (8078) 
related to MIME attachment detection and priority/shortcircuit 
interaction was fixed in 4.0.0 and did not involve EMPTY_MESSAGE.

I would examine the flow of data through the 
fetchmail-procmail-spamc-spamd pipeline.

Also: check the message with "spamassassin -t" and see what results you 
get. That uses the SA code and rules directly rather than talking to 
spamd and using whatever it loaded when launched. If that hits 
EMPTY_MESSAGE, the're's something very wrong with your rules beyond the 
minor mods below.

> My modifications to local.cf are:
>
>     allow_user_rules 1
>     skip_rbl_checks 0
>     dns_server 127.0.0.1 # unbound
>     dns_available yes
>
>
>     header RCVD_IN_ZEN      eval:check_rbl('zen', 'zen.spamhaus.org.')
>     describe RCVD_IN_ZEN    Gelistet in Spamhaus ZEN
>     tflags RCVD_IN_ZEN      net
>     score RCVD_IN_ZEN       3.5
>
>
> Ciao; Gregor
> -- 
>  -... --- .-. . -.. ..--.. ...-.-


-- 
  Bill Cole
  [email protected] or [email protected]
  (AKA @[email protected] and many *@billmail.scconsult.com 
addresses)
  Please keep discussion mailing list replies *on-list*
  Not Currently Available For Hire