diff options
| author | tkikuchi | 2005-12-31 04:26:46 +0000 |
|---|---|---|
| committer | tkikuchi | 2005-12-31 04:26:46 +0000 |
| commit | 2ccf70ba769013e94824c8d5cf384fc797d79045 (patch) | |
| tree | be1db2084f6e21fd9b0a9895d82df4ab71ca8e33 | |
| parent | 735cac9bb8655ae782b78facb3d44f9e7312dbaf (diff) | |
| download | mailman-2ccf70ba769013e94824c8d5cf384fc797d79045.tar.gz mailman-2ccf70ba769013e94824c8d5cf384fc797d79045.tar.zst mailman-2ccf70ba769013e94824c8d5cf384fc797d79045.zip | |
| -rw-r--r-- | Mailman/Handlers/SpamDetect.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/Mailman/Handlers/SpamDetect.py b/Mailman/Handlers/SpamDetect.py index 79dc40dc1..3f99e4b4d 100644 --- a/Mailman/Handlers/SpamDetect.py +++ b/Mailman/Handlers/SpamDetect.py @@ -92,10 +92,7 @@ class HeaderGenerator(Generator): def process(mlist, msg, msgdata): - # Don't check for spam if the message has been approved or it is generated - # internally for administration because holding '-owner' notification may - # cause infinite loop of checking. (Actually, it is stopped elsewhere.) - if msgdata.get('approved') or msg.get('x-list-administrivia'): + if msgdata.get('approved'): return # First do site hard coded header spam checks for header, regex in mm_cfg.KNOWN_SPAMMERS: @@ -107,8 +104,11 @@ def process(mlist, msg, msgdata): raise SpamDetected # Now do header_filter_rules # TK: Collect headers in sub-parts because attachment filename - # extension may be a clue to possible virus/spam. - if msg.is_multipart(): + # extension may be a clue to possible virus/spam. + # Check also 'X-List-Administrivia' header if the message was owner + # notification. Held message may be attached and have matching header + # which may cause infinite loop of holding. + if msg.is_multipart() and not msg.get('x-list-administrivia',''): headers = '' for p in msg.walk(): g = HeaderGenerator(StringIO()) |
