Colby Walsworth wrote:
>
>So all our emails go throug spamassasin and get tagged with a certain 
>line if they are spam. I have this filter on all our lists:
>
>header_filter_rules = [('X-NCEAS-Mercury-MailScanner-SpamCheck: spam', 
>3, 0)]
>
>This is a header line that is in an email that made it through:
>X-NCEAS-Mercury-MailScanner-SpamCheck: spam, SBL+XBL,
>    SpamAssassin (score=1.897, required 3, HTML_40_50 0.09,
>    HTML_MESSAGE 0.00, MIME_BOUND_NEXTPART 0.11, MSGID_FROM_MTA_ID 1.70)
>
>Am I doing something wrong on the filtering? Why does it seem to 
>moderate as non member before it does the header_filter_rule ?
>Any suggestions are appreciated.

It should work. I don't know why it doesn't assuming the
X-NCEAS-Mercury-MailScanner-SpamCheck: header gets added before the
message gets delivered to Mailman.

Have you made any changes to GLOBAL_PIPELINE in mm_cfg.py or added a
pipeline attribute to the lists. If not,
Mailman/Handlers/SpamDetect.py is the first thing invoked to process
the message and if there is a match on header_filter_rules with an
action of DISCARD (= 3), the message is discarded. You might try

X-NCEAS-Mercury-MailScanner-SpamCheck:[ \t]*spam

as the pattern in header_filter_rules instead of

X-NCEAS-Mercury-MailScanner-SpamCheck: spam

but that probably won't help.

You might consider adding

from Mailman.Logging.Syslog import syslog

to the beginning of SpamDetect.py and then add some logging, e.g. change


    for patterns, action, empty in mlist.header_filter_rules:
        if action == mm_cfg.DEFER:
            continue
        for pattern in patterns.splitlines():
            if pattern.startswith('#'):
                continue
            if re.search(pattern, headers, re.IGNORECASE):
                if action == mm_cfg.DISCARD:


to

    for patterns, action, empty in mlist.header_filter_rules:
        if action == mm_cfg.DEFER:
            continue
        for pattern in patterns.splitlines():
            if pattern.startswith('#'):
                continue
            syslog('debug', 'pattern->%s\nheaders->%s', pattern,
                   headers)
            if re.search(pattern, headers, re.IGNORECASE):
                if action == mm_cfg.DISCARD:

Which will write the pattern and headers to a 'debug' log file in
Mailman's log directory.

--
Mark Sapiro <[EMAIL PROTECTED]>       The highway is for gamblers,
San Francisco Bay Area, California    better use your sense - B. Dylan

------------------------------------------------------
Mailman-Users mailing list
Mailman-Users@python.org
http://mail.python.org/mailman/listinfo/mailman-users
Mailman FAQ: http://www.python.org/cgi-bin/faqw-mm.py
Searchable Archives: http://www.mail-archive.com/mailman-users%40python.org/
Unsubscribe: 
http://mail.python.org/mailman/options/mailman-users/archive%40jab.org

Security Policy: 
http://www.python.org/cgi-bin/faqw-mm.py?req=show&amp;file=faq01.027.htp

Reply via email to