exim: Add spamcheck ACL.
authorMatthijs Kooijman <matthijs@stdin.nl>
Sat, 25 Apr 2009 19:48:57 +0000 (21:48 +0200)
committerMatthijs Kooijman <matthijs@stdin.nl>
Sat, 25 Apr 2009 19:50:51 +0000 (21:50 +0200)
This ACL always adds spam headers to messages, and denies messages that
have a very high (>20) spamscore.

etc/exim4/conf.d/acl/40_exim4-config_check_data

index b9765c565d47ec2cdd178984c911eec97be32bb1..9933c39e05f9addb6909cee712c3c6709933312a 100644 (file)
@@ -22,6 +22,26 @@ acl_check_data:
     message = No verifiable sender address in message headers
     !verify = header_sender
 
+  # Mark messages with their spamscore and deny messages with a very high
+  # score.
+  deny
+    message = Message was classified as spam
+    # Only scan messages that are small, since spam is hardly ever big (and
+    # scanning big messages costs lots of resources
+    condition = ${if <{$message_size}{80k}}
+    # Check using spamassasin's default profile (the name "default" should just
+    # be any non-existing profile to get the default configuration). This
+    # condition will always succeed, since spam assassin is configured with a
+    # very low (even negative) threshold.
+    spam = default
+    # Add spam headers (these will be added even when the next condition fails
+    # and the message is not denied).
+    add_header = X-Spam-Score: $spam_score ($spam_bar)
+    add_header = X-Spam-Report: $spam_report
+    # Reject any messages with a spam score of more than 20. This is fairly
+    # high, but we don't like really rejecting messages.
+    condition = ${if >{$spam_score_int}{20}}
+
   # accept otherwise
   accept