Hi !

  I have some user that would prefer to rely on their mail client for
spam filtering instead of the server-side anti-spam (spamassassin).

  I use MySQL to manage my users, so I added a "enable_antispam" in the
table which can be set to "YES" or "NO".

  Then I have defined a variable in Exim config, 'ENABLE_ANTISPAM',
which do a mysql lookup and get the 'enable_antispam' value.  So
'ENABLE_ANTISPAM' should return 'YES' or 'NO'.

  I added a condition to my ACLs that have something to do with spam,
and I'm not sure if I done it right.  I did a lot a googling and read
exim documentation, but I haven't found anything that make me confident
I am doing things right.

  Below, the parts in my 'exim.conf' that are concerned.  Does it seems
to be right ?  I added my "condition" before those that were already
there.  The idea being that if "ENABLE_ANTISPAM" return "NO", I don't
wan't to do the spam-check.

  # Add headers to all messages (:true). Before enabling this,
  # you must install SpamAssassin. You may also need to set the
spamd_address
  # option above.
  #
  warn  message         = X-Spam-Score: $spam_score\n\
                          X-Spam-Score-Int: $spam_score_int\n\
                          X-Spam-Bar: $spam_bar\n\
                          X-Spam-Report: $spam_report
        !authenticated  = *
        condition       = ${if eq {ENABLE_ANTISPAM}{'YES'}{yes}{no}}
        condition       = ${if < {$message_size}{SPAM_FILESIZE_LIMIT}}
        spam            = spamassassin:true

  # 2007-02-27 <[email protected]>
  # temp. reject messages that seem to have timeouts during spam-scan
  defer message         = Temporary error while spam-scanning. Please
try again later.
        log_message     = message temporarily rejected, because of
spam-scan error (maybe timeout)
        !authenticated  = *
        condition       = ${if eq {ENABLE_ANTISPAM}{'YES'}{yes}{no}}
        condition       = ${if < {$message_size}{SPAM_FILESIZE_LIMIT}}
        condition       = ${if !def:spam_score}

  # Reject spam messages with score over 10+2*max_score_from_db
(fallback=15 if mysql fails), using an extra condition.
  deny  message         = This message is classified as UBE (SPAM) and
therefore rejected. You scored $spam_score points. Congratulations!
        !authenticated  = *
        condition       = ${if eq {ENABLE_ANTISPAM}{'YES'}{yes}{no}}
        condition       = ${if >={$spam_score_int}{${lookup mysql{\
                                SELECT ((max(spam_threshold)*2+10)*10)
AS spam_reject_threshold \
                                FROM user \
                                WHERE SMTP_allowed='YES' \
                          }{$value}{15}}}{true}{false}}

Thanks a lot !
AlexG


-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to