]> git.proxmox.com Git - proxmox-spamassassin.git/blob - sa-updates/20_meta_tests.cf
update SpamAssassin signatures
[proxmox-spamassassin.git] / sa-updates / 20_meta_tests.cf
1 # SpamAssassin rules file: meta tests
2 #
3 # Please don't modify this file as your changes will be overwritten with
4 # the next update. Use /etc/mail/spamassassin/local.cf instead.
5 # See 'perldoc Mail::SpamAssassin::Conf' for details.
6 #
7 # Add meta tests which cover *both* headers and body here.
8 #
9 # Note: body tests are run with long lines, so be sure to limit the
10 # size of searches; use /.{0,30}/ instead of /.*/ to avoid huge
11 # search times.
12 #
13 # <@LICENSE>
14 # Licensed to the Apache Software Foundation (ASF) under one or more
15 # contributor license agreements. See the NOTICE file distributed with
16 # this work for additional information regarding copyright ownership.
17 # The ASF licenses this file to you under the Apache License, Version 2.0
18 # (the "License"); you may not use this file except in compliance with
19 # the License. You may obtain a copy of the License at:
20 #
21 # http://www.apache.org/licenses/LICENSE-2.0
22 #
23 # Unless required by applicable law or agreed to in writing, software
24 # distributed under the License is distributed on an "AS IS" BASIS,
25 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26 # See the License for the specific language governing permissions and
27 # limitations under the License.
28 # </@LICENSE>
29 #
30 ###########################################################################
31
32 require_version 3.004005
33
34 # some tests that will trigger FPs on ISO-2022-JP mails.
35
36 body __ISO_2022_JP_DELIM /\e\$B/
37
38 meta UPPERCASE_50_75 (!__ISO_2022_JP_DELIM && __UPPERCASE_50_75)
39 describe UPPERCASE_50_75 message body is 50-75% uppercase
40 meta UPPERCASE_75_100 (!__ISO_2022_JP_DELIM && __UPPERCASE_75_100)
41 describe UPPERCASE_75_100 message body is 75-100% uppercase
42
43 header __SANE_MSGID MESSAGEID =~ /^<[^<>\\ \t\n\r\x0b\x80-\xff]+\@[^<>\\ \t\n\r\x0b\x80-\xff]+>\s*$/m
44 header __HAS_MSGID MESSAGEID =~ /\S/
45 header __MSGID_COMMENT MESSAGEID =~ /\(.*\)/m
46 meta INVALID_MSGID __HAS_MSGID && !(__SANE_MSGID || __MSGID_COMMENT)
47 describe INVALID_MSGID Message-Id is not valid, according to RFC 2822
48
49 #See Bug 7411
50 #header __MOZILLA_MUA X-Mailer =~ /\bMozilla\b/
51 header __MOZILLA_MUA User-Agent =~ /^mozilla\b/i
52 header __MOZILLA_MSGID MESSAGEID =~ /^<(?:[a-f\d]{8}-(?:[a-f\d]{4}-){3}[a-f\d]{12}|[A-F\d]{8}\.[A-F1-9][A-F\d]{0,7})\@\S+>$/m
53 meta FORGED_MUA_MOZILLA (__MOZILLA_MUA && !__UNUSABLE_MSGID && !__MOZILLA_MSGID)
54 describe FORGED_MUA_MOZILLA Forged mail pretending to be from Mozilla
55
56 header __PC_RND_HEADER ALL =~ /%RA?ND(?:OM)?(?:_|\b|[A-Z]{3})/i
57 rawbody __PC_RND_RAWBODY /%RA?ND(?:OM)?(?:_|\b|[A-Z]{3})/i
58 meta PERCENT_RANDOM (__PC_RND_HEADER || __PC_RND_RAWBODY)
59 describe PERCENT_RANDOM Message has a random macro in it
60
61 # __MIME_ATTACHMENT defined in 20_html_tests.cf
62 body __NONEMPTY_BODY /\S/
63 meta EMPTY_MESSAGE !__MIME_ATTACHMENT && !__NONEMPTY_BODY
64 describe EMPTY_MESSAGE Message appears to have no textual parts and no Subject: text
65
66 meta NO_HEADERS_MESSAGE (MISSING_DATE && MISSING_HEADERS && NO_RECEIVED && NO_RELAYS && MISSING_MID)
67 describe NO_HEADERS_MESSAGE Message appears to be missing most RFC-822 headers
68
69 ###########################################################################
70
71 ifplugin Mail::SpamAssassin::Plugin::MIMEEval
72
73 body __UPPERCASE_25_50 eval:check_for_uppercase('25', '50')
74 body __UPPERCASE_50_75 eval:check_for_uppercase('50', '75')
75 body __UPPERCASE_75_100 eval:check_for_uppercase('75', '100')
76
77 endif