| # SpamAssassin rules file: meta tests |
| # |
| # Please don't modify this file as your changes will be overwritten with |
| # the next update. Use @@LOCAL_RULES_DIR@@/local.cf instead. |
| # See 'perldoc Mail::SpamAssassin::Conf' for details. |
| # |
| # Add meta tests which cover *both* headers and body here. |
| # |
| # Note: body tests are run with long lines, so be sure to limit the |
| # size of searches; use /.{0,30}/ instead of /.*/ to avoid huge |
| # search times. |
| # |
| # <@LICENSE> |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to you under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at: |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # </@LICENSE> |
| # |
| ########################################################################### |
| |
| require_version @@VERSION@@ |
| |
| # some tests that will trigger FPs on ISO-2022-JP mails. |
| |
| body __ISO_2022_JP_DELIM /\e\$B/ |
| |
| meta UPPERCASE_50_75 (!__ISO_2022_JP_DELIM && __UPPERCASE_50_75) |
| describe UPPERCASE_50_75 message body is 50-75% uppercase |
| meta UPPERCASE_75_100 (!__ISO_2022_JP_DELIM && __UPPERCASE_75_100) |
| describe UPPERCASE_75_100 message body is 75-100% uppercase |
| |
| header __SANE_MSGID MESSAGEID =~ /^<[^<>\\ \t\n\r\x0b\x80-\xff]+\@[^<>\\ \t\n\r\x0b\x80-\xff]+>\s*$/m |
| header __HAS_MSGID MESSAGEID =~ /\S/ |
| header __MSGID_COMMENT MESSAGEID =~ /\(.*\)/m |
| meta INVALID_MSGID __HAS_MSGID && !(__SANE_MSGID || __MSGID_COMMENT) |
| describe INVALID_MSGID Message-Id is not valid, according to RFC 2822 |
| |
| header __MOZILLA_MUA X-Mailer =~ /\bMozilla\b/ |
| header __MOZILLA_MSGID MESSAGEID =~ /^<[A-F\d]{8}\.[A-F1-9][A-F\d]{0,7}\@\S+>$/m |
| meta FORGED_MUA_MOZILLA (__MOZILLA_MUA && !__UNUSABLE_MSGID && !__MOZILLA_MSGID) |
| describe FORGED_MUA_MOZILLA Forged mail pretending to be from Mozilla |
| |
| header __PC_RND_HEADER ALL =~ /%RA?ND(?:OM)?(?:_|\b|[A-Z]{3})/i |
| rawbody __PC_RND_RAWBODY /%RA?ND(?:OM)?(?:_|\b|[A-Z]{3})/i |
| meta PERCENT_RANDOM (__PC_RND_HEADER || __PC_RND_RAWBODY) |
| describe PERCENT_RANDOM Message has a random macro in it |
| |
| # __MIME_ATTACHMENT defined in 20_html_tests.cf |
| body __NONEMPTY_BODY /\S/ |
| meta EMPTY_MESSAGE !__MIME_ATTACHMENT && !__NONEMPTY_BODY |
| describe EMPTY_MESSAGE Message appears to have no textual parts and no Subject: text |
| |
| meta NO_HEADERS_MESSAGE (MISSING_DATE && MISSING_HEADERS && NO_RECEIVED && NO_RELAYS && MISSING_MID) |
| describe NO_HEADERS_MESSAGE Message appears to be missing most RFC-822 headers |
| |
| ########################################################################### |
| |
| ifplugin Mail::SpamAssassin::Plugin::MIMEEval |
| |
| body __UPPERCASE_25_50 eval:check_for_uppercase('25', '50') |
| body __UPPERCASE_50_75 eval:check_for_uppercase('50', '75') |
| body __UPPERCASE_75_100 eval:check_for_uppercase('75', '100') |
| |
| endif |