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

Reply via email to