I'm trying to configure spam filter on VPS Debian Squeeze, exim4-heavy + spamassassin and dovecot.

Exim version 4.72, SpamAssassin version 3.3.1, Perl version 5.10.1

And I have an irritating problem with spamassassin: messages has no X-Spam headers.

Exim4 config:

### main/02_exim4-config_options
spamd_address = 783

### acl/40_exim4-config_check_data
warn  spam = nobody:true
   add_header = X-Spam-Score: $spam_score


/etc/spamassassin/local.cf ( defaults omitted )

report_contact [email protected]

add_header spam Flag _YESNOCAPS_
add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_
add_header all Level _STARS(*)_

required_score 4.5

All messages have X-Spam-Score header added by exim, but no one has X-Spam- headers which should be added by spamd.

I have received some spam email and tried gtube.txt, but no additional headers was added

Headers of the spam ( score greater than 4.5, but no X-Spam-Flag )

X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Windows Live Mail 14.0.8117.416
X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8117.416
X-Spam-Score: 8.8

What did I miss?

1 Answer 1


the problem you are facing is, that things work a little bit differently than how you expect them to run.

this is not how it works:

  • exim receives an email
  • exim passes the email to spamd
  • spamd checks the email for spam and adds necessary headers
  • spamd passes the (modified) email back to exim
  • exim delivers the email

instead it works like this:

  • exim reveices an email
  • exim passes the email to spamd
  • spamd checks the email for spam
  • spamd reports the spam-status back to exim (not the email)
  • exim does whatever it deems appropriate to the email (add some headers, discard it, ignore the results of spamd)
  • exim delivers the email

luckily exim can add quite a few things to the email, based on what spamd reports. e.g. i use:

warn       message = X-Spam-Score: $spam_score
  spam = nobody:true
warn       message = X-Spam-Level: $spam_bar
  spam = nobody:true
warn       message = X-Spam-Tests: $spam_report
  spam = nobody:true

which will add something like the following to the email-headers:

X-Spam-Score: 8.9
X-Spam-Level: ++++++++

a little bit of information can be found here

the reason for your confusion is, that spamd could also modify the email by itself (e.g. this is used when you run spamd after exim). it's only that exim-damon-heavy handles it the way i described it.

  • Thanks, umläute. I have already understood how it works.
    – Artem O.
    Dec 13, 2013 at 11:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .