]> git.proxmox.com Git - proxmox-spamassassin.git/commitdiff
update SpamAssassin signatures
authorStoiko Ivanov <s.ivanov@proxmox.com>
Wed, 24 Mar 2021 16:52:33 +0000 (17:52 +0100)
committerStoiko Ivanov <s.ivanov@proxmox.com>
Wed, 24 Mar 2021 17:26:23 +0000 (18:26 +0100)
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
61 files changed:
sa-updates.tgz [deleted file]
sa-updates/10_default_prefs.cf [new file with mode: 0644]
sa-updates/10_hasbase.cf [new file with mode: 0644]
sa-updates/20_advance_fee.cf [new file with mode: 0644]
sa-updates/20_aux_tlds.cf [new file with mode: 0644]
sa-updates/20_body_tests.cf [new file with mode: 0644]
sa-updates/20_compensate.cf [new file with mode: 0644]
sa-updates/20_dnsbl_tests.cf [new file with mode: 0644]
sa-updates/20_drugs.cf [new file with mode: 0644]
sa-updates/20_dynrdns.cf [new file with mode: 0644]
sa-updates/20_fake_helo_tests.cf [new file with mode: 0644]
sa-updates/20_freemail.cf [new file with mode: 0644]
sa-updates/20_freemail_domains.cf [new file with mode: 0644]
sa-updates/20_freemail_mailcom_domains.cf [new file with mode: 0644]
sa-updates/20_head_tests.cf [new file with mode: 0644]
sa-updates/20_html_tests.cf [new file with mode: 0644]
sa-updates/20_imageinfo.cf [new file with mode: 0644]
sa-updates/20_mailspike.cf [new file with mode: 0644]
sa-updates/20_meta_tests.cf [new file with mode: 0644]
sa-updates/20_net_tests.cf [new file with mode: 0644]
sa-updates/20_pdfinfo.cf [new file with mode: 0644]
sa-updates/20_phrases.cf [new file with mode: 0644]
sa-updates/20_porn.cf [new file with mode: 0644]
sa-updates/20_ratware.cf [new file with mode: 0644]
sa-updates/20_uri_tests.cf [new file with mode: 0644]
sa-updates/20_vbounce.cf [new file with mode: 0644]
sa-updates/23_bayes.cf [new file with mode: 0644]
sa-updates/25_accessdb.cf [new file with mode: 0644]
sa-updates/25_antivirus.cf [new file with mode: 0644]
sa-updates/25_asn.cf [new file with mode: 0644]
sa-updates/25_dcc.cf [new file with mode: 0644]
sa-updates/25_dkim.cf [new file with mode: 0644]
sa-updates/25_dnswl.cf [new file with mode: 0644]
sa-updates/25_pyzor.cf [new file with mode: 0644]
sa-updates/25_razor2.cf [new file with mode: 0644]
sa-updates/25_replace.cf [new file with mode: 0644]
sa-updates/25_spf.cf [new file with mode: 0644]
sa-updates/25_textcat.cf [new file with mode: 0644]
sa-updates/25_uribl.cf [new file with mode: 0644]
sa-updates/30_text_de.cf [new file with mode: 0644]
sa-updates/30_text_fr.cf [new file with mode: 0644]
sa-updates/30_text_it.cf [new file with mode: 0644]
sa-updates/30_text_nl.cf [new file with mode: 0644]
sa-updates/30_text_pl.cf [new file with mode: 0644]
sa-updates/30_text_pt_br.cf [new file with mode: 0644]
sa-updates/50_scores.cf [new file with mode: 0644]
sa-updates/60_adsp_override_dkim.cf [new file with mode: 0644]
sa-updates/60_awl.cf [new file with mode: 0644]
sa-updates/60_bayes_stopwords.cf [new file with mode: 0644]
sa-updates/60_shortcircuit.cf [new file with mode: 0644]
sa-updates/60_txrep.cf [new file with mode: 0644]
sa-updates/60_whitelist.cf [new file with mode: 0644]
sa-updates/60_whitelist_auth.cf [new file with mode: 0644]
sa-updates/60_whitelist_dkim.cf [new file with mode: 0644]
sa-updates/60_whitelist_spf.cf [new file with mode: 0644]
sa-updates/60_whitelist_subject.cf [new file with mode: 0644]
sa-updates/72_active.cf [new file with mode: 0644]
sa-updates/72_scores.cf [new file with mode: 0644]
sa-updates/73_sandbox_manual_scores.cf [new file with mode: 0644]
sa-updates/languages [new file with mode: 0644]
sa-updates/user_prefs.template [new file with mode: 0644]

diff --git a/sa-updates.tgz b/sa-updates.tgz
deleted file mode 100644 (file)
index 9c56fb9..0000000
Binary files a/sa-updates.tgz and /dev/null differ
diff --git a/sa-updates/10_default_prefs.cf b/sa-updates/10_default_prefs.cf
new file mode 100644 (file)
index 0000000..bef874e
--- /dev/null
@@ -0,0 +1,184 @@
+# SpamAssassin basic config file
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Default template. Try to keep it under 78 columns (inside the the dots below).
+#      ........................................................................
+clear_report_template
+if can(Mail::SpamAssassin::Conf::feature_yesno_takes_args)
+report Spam detection software, running on the system "_HOSTNAME_",
+report has_YESNO(, NOT)_ identified this incoming email as_YESNO( possible,)_ spam.  The original
+report message has been attached to this so you can view it or label
+else
+report Spam detection software, running on the system "_HOSTNAME_", has
+report identified this incoming email as possible spam.  The original message
+report has been attached to this so you can view it (if it isn't spam) or label
+endif
+report similar future email.  If you have any questions, see
+report _CONTACTADDRESS_ for details.
+report
+report Content preview:  _PREVIEW_
+report
+report Content analysis details:   (_SCORE_ points, _REQD_ required)
+report
+report " pts rule name              description"
+report  ---- ---------------------- --------------------------------------------------
+report _SUMMARY_
+
+#      ........................................................................
+
+# A 'contact address' users should contact for more info. (replaces
+# _CONTACTADDRESS_ above if present)
+report_contact  the administrator of that system
+
+###########################################################################
+
+# Unsafe-for-viewing message report template.
+#
+#             ......................................................................
+clear_unsafe_report_template
+unsafe_report The original message was not completely plain text, and may be unsafe to
+unsafe_report open with some email clients; in particular, it may contain a virus,
+unsafe_report or confirm that your address can receive spam.  If you wish to view
+unsafe_report it, it may be safer to save it to a file and open it with an editor.
+#             ......................................................................
+
+###########################################################################
+# Database configuration options.
+#
+# user_scores_dsn MUST be in the form:
+# DBI:databasetype:databasename:hostname:port
+# ex. DBI:mysql:spamassassin:localhost
+#
+# user_scores_sql_username is the authorized username to connect to DSN
+# user_scores_sql_password is the password for the database username
+
+#user_scores_dsn                DBI:mysql:spamassassin:localhost
+#user_scores_sql_username       spam
+#user_scores_sql_password       spamfilter
+
+##########################################################################
+# Headers to be added to mail (can be overriden by users in
+# ~/.spamassassin/user_prefs)
+# Make sure the header stays entirely on one line here
+
+clear_headers
+
+#X-Spam-Checker-Version: SpamAssassin 2.60-cvs (1.188-2003-05-24-exp)
+add_header all Checker-Version SpamAssassin _VERSION_ (_SUBVERSION_) on _HOSTNAME_
+
+#X-Spam-Flag: YES
+add_header spam Flag _YESNOCAPS_
+
+#X-Spam-Level: *************
+add_header all Level _STARS(*)_
+
+#X-Spam-Status: Yes, score=14.0 required=5.0 tests=BAYES_99,CALL_FREE
+#        DATE_IN_PAST_12_24,DCC_CHECK,DRASTIC_REDUCED,FROM_HAS_MIXED_NUMS
+#        FROM_HAS_MIXED_NUMS3,HOME_EMPLOYMENT,INVALID_DATE,INVALID_MSGID
+#        LINES_OF_YELLING,MSGID_HAS_NO_AT,NO_REAL_NAME,ONCE_IN_LIFETIME
+#        UNDISC_RECIPS autolearn=spam version=2.60-cvs
+add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_"
+
+###########################################################################
+# Default prefs values: users can override these in their
+# ~/.spamassassin/user_prefs files.
+
+# How many points before a mail is considered spam.
+required_score           5
+
+# Mail using locales used in these country codes will not be marked
+# as being possibly spam in a foreign language.
+ok_locales              all
+
+# Mail using languages used in these country codes will not be marked
+# as being possibly spam in a foreign language.  This is an expensive
+# classification, so it is is disabled in init.pre by default.
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+ok_languages            all
+endif # Mail::SpamAssassin::Plugin::TextCat
+
+# Mail which scores outside this range will be fed back into SpamAssassin's
+# learning system automatically, to train the Bayesian scanner.
+ifplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
+bayes_auto_learn_threshold_nonspam      0.1
+bayes_auto_learn_threshold_spam         12.0
+endif # Mail::SpamAssassin::Plugin::AutoLearnThreshold
+
+# Set this to 0 to turn off auto-learning.
+bayes_auto_learn                        1
+
+# report_safe controls the markup of spam. If you set it to 0, the message
+# body of spam messages will not be modified
+report_safe           1
+
+# Headers to parse for originating IP address
+if can(Mail::SpamAssassin::Conf::feature_originating_ip_headers)
+clear_originating_ip_headers
+originating_ip_headers X-Yahoo-Post-IP X-Originating-IP X-Apparently-From
+originating_ip_headers X-SenderIP X-AOL-IP
+originating_ip_headers X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_dns_local_ports_permit_avoid)
+# leave out the more densely populated port number ranges
+dns_local_ports_avoid 0-11000
+# leave out some ephemeral ports, making them available to other programs
+dns_local_ports_avoid 49152-49408
+# avoid IANA assigned high port numbers
+dns_local_ports_avoid 11000-11001 11106 11111-11112 11161-11165 11201 11208
+dns_local_ports_avoid 11211 11319-11321 11367 11371 11600 11720 11751 11967
+dns_local_ports_avoid 12000-12008 12012-12013 12109 12121 12168 12172 12300
+dns_local_ports_avoid 12321-12322 12345 12753 13160 13216-13218 13223-13224
+dns_local_ports_avoid 13720-13722 13724 13782-13783 13785-13786 13818-13822
+dns_local_ports_avoid 13929 14000-14001 14033-14034 14141-14142 14145 14149
+dns_local_ports_avoid 14154 14250 14414 14936-14937 15000 15345 15363 15555
+dns_local_ports_avoid 15660 15740 16161 16309-16311 16360-16361 16367-16368
+dns_local_ports_avoid 16384 16900 16950 16991-16995 17007 17185 17219 17235
+dns_local_ports_avoid 17500 17729 17754-17756 18000 18181-18187 18241 18262
+dns_local_ports_avoid 18463 18634-18635 18769 18881 18888 19000 19191 19194
+dns_local_ports_avoid 19283 19315 19398 19410-19412 19539-19541 19999-20003
+dns_local_ports_avoid 20005 20014 20034 20046 20049 20167 20202 20222 20480
+dns_local_ports_avoid 20670 20999-21000 21554 21590 21800 21845-21849
+dns_local_ports_avoid 22000-22005 22273 22305 22343 22347 22350 22555 22763
+dns_local_ports_avoid 22800 22951 23000-23005 23272 23333 23400-23402
+dns_local_ports_avoid 24000-24006 24242 24249 24321 24386 24465 24554
+dns_local_ports_avoid 24676-24678 24680 24922 25000-25009 25793 25900-25903
+dns_local_ports_avoid 26000 26133 26208 26260-26263 26486-26487 26489 27345
+dns_local_ports_avoid 27442 27504 27782 27999-28000 28240 29167 30001-30002
+dns_local_ports_avoid 30260 30999 31416 31457 31620 31765 31948-31949 32034
+dns_local_ports_avoid 32249 32483 32635-32636 32767-32777 32801 32896 33123
+dns_local_ports_avoid 33331 33434 33656 34249 34378-34379 34962-34964 34980
+dns_local_ports_avoid 36001 36865 37475 37654 38201-38203 39681 40000
+dns_local_ports_avoid 40841-40843 41111 41794-41795 42508-42510 43188-43190
+dns_local_ports_avoid 43440-43441 44321-44322 44553 44818 45054 45678 45825
+dns_local_ports_avoid 45966 46999-47000 47557 47624 47806 47808 48000-48003
+dns_local_ports_avoid 48128-48129 48556 48619
+endif
+
+# Some common prefs settings can be set here, to take effect site-wide
+# unless the user override them. See the user_prefs.template file for
+# explanations.
+
+
diff --git a/sa-updates/10_hasbase.cf b/sa-updates/10_hasbase.cf
new file mode 100644 (file)
index 0000000..39ce6f7
--- /dev/null
@@ -0,0 +1,89 @@
+# SpamAssassin rules file: Base __HAS_* rules for meta rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# PLEASE KEEP THIS TIDY
+
+# According to Bug 6781
+
+# Header rules
+
+
+header   __HAS_SENDER          exists:Sender
+
+header         __HAS_FROM              exists:From
+
+header         __HAS_TO                exists:To
+
+header __HAS_CC                exists:CC
+
+header  __HAS_REPLY_TO          exists:Reply-To
+
+header __HAS_ORGANIZATION      exists:Organization
+
+# Webmail
+
+# MUA & User Agents
+header  __HAS_UA                exists:User-Agent
+header  __HAS_XMAIL             exists:X-Mailer
+
+
+# Other
+header  __HAS_DKIM_SIGHD       exists:DKIM-Signature
+
+header  __HAS_TNEF             exists:X-MS-TNEF-Correlator
+
+header  __HAS_ERRORS_TO         exists:Errors-To
+header  __HAS_ORIGINALLY        exists:X-Originally-To
+header  __HAS_LIST_ID           exists:List-Id
+header  __HAS_X_BEEN_THERE      exists:X-BeenThere
+header  __HAS_X_REF             exists:References
+header  __HAS_IN_REPLY_TO       exists:In-Reply-To
+header  __XPRIO                 exists:X-Priority
+header  __DISPONOT              exists:Disposition-Notification-To
+header  __RRCPTO                exists:Return-Receipt-To
+header  __OLDPEG                exists:X-Confirm-Reading-To
+header  __AOL_IP                exists:X-AOL-IP
+
+
+# Rawbody rules
+
+
+
+# Mimeheader rules
+# should be encapsulated in if ... endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+# Put rules below
+
+
+#
+endif
+
+
+
+
+# URI rules
+
+uri    __HAS_URI /./
diff --git a/sa-updates/20_advance_fee.cf b/sa-updates/20_advance_fee.cf
new file mode 100644 (file)
index 0000000..76ed417
--- /dev/null
@@ -0,0 +1,96 @@
+# SpamAssassin rules file: advance fee fraud rules (Nigerian 419 scams)
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+# predicate naming used to avoid renumbering
+# 1. assign new rules a random unique three letter sequence
+# 2. sort on rule definition, not rule name
+
+header __FRAUD_VQE     Subject =~ /^(?:Re:|\[.{1,10}\])?\s*(?:very )?urgent\s+(?:(?:and|&)\s+)?(?:confidential|assistance|business|attention|reply|response|help)\b/i
+
+body __FRAUD_DBI       /(?:\bdollars?\b|\busd(?:ollars)?(?:[0-9]|\b)|\bus\$|\$[0-9,.]{6,}|\$[0-9].{0,8}[mb]illion|\$[0-9.,]{2,10} ?m|\beuros?\b|u[.]?s[.]? [0-9.]+ m)/i
+body __FRAUD_KJV       /(?:claim|concerning) (?:the|this) money/i
+body __FRAUD_IRJ       /(?:finance|holding|securit(?:ies|y)) (?:company|firm|storage house)/i
+body __FRAUD_NEB       /(?:government|bank) of nigeria/i
+body __FRAUD_XJR       /(?:who was a|as a|an? honest|you being a|to any) foreigner/i
+body __FRAUD_DPR       /\b(?:(?:respond|reply) (?:urgently|immediately)|(?:urgent|immediate|earliest) (?:reply|response))\b/i
+body __FRAUD_PTS       /\b(?:ass?ass?inat(?:ed|ion)|murder(?:e?d)?|kill(?:ed|ing)\b[^.]{0,99}\b(?:war veterans|rebels?))\b/i
+body __FRAUD_BEP       /\b(?:bank of nigeria|central bank of|trust bank|apex bank|amalgamated bank)\b/i
+body __FRAUD_TDP       /\b(?:business partner(?:s|ship)?|silent partner(?:s|ship)?)\b/i
+body __FRAUD_GAN       /\b(?:charles taylor|serena|abacha|gu[eéè]i|sese[- ]?seko|kabila)\b/i
+body __FRAUD_IRT       /\b(?:compliments? of the|dear friend|dear sir|yours faithfully|season'?s greetings)\b/i
+body __FRAUD_AON       /\b(?:confidential|private|alternate|alternative) (?:(?:e-? *)?mail)\b/i
+body __FRAUD_WNY       /\b(?:disburse?(?:ment)?|incurr?(?:ed)?|remunerr?at(?:ed?|ion)|remm?itt?(?:ed|ance|ing)?)\b/i
+body __FRAUD_IPK       /\b(?:in|to|visit) your country\b/i
+body __FRAUD_QXX       /\b(?:my name is|i am) (?:mrs?|engr|barrister|dr|prince(?:ss)?)[. ]/i
+body __FRAUD_IOU       /\b(?:no risks?|risk-? *free|free of risks?|100% safe)\b/i
+body __FRAUD_EZY       /\b(?:of|the) late president\b/i
+body __FRAUD_MLY       /\b(?:reply|respond)\b[^.]{0,50}\b(?:to|through)\b[^.]{0,50}\@\b/i
+body __FRAUD_ZFJ       /\b(?:wife|son|brother|daughter) of the late\b/i
+body __FRAUD_KDT       /\bU\.?S\.?(?:D\.?)?\s*(?:\$\s*)?(?:\d+,\d+,\d+|\d+\.\d+\.\d+|\d+(?:\.\d+)?\s*milli?on)/i
+body __FRAUD_ULK       /\baffidavits?\b/i
+body __FRAUD_BGP       /\battached to ticket number\b/i
+body __FRAUD_FBI       /\bdisburs/i
+body __FRAUD_JBU       /\bforeign account\b/i
+body __FRAUD_YWW       /\bfurnish you with\b/i
+body __FRAUD_JYG       /\bgive\s+you .{0,15}(?:fund|money|total|sum|contact|percent)\b/i
+body __FRAUD_XVW       /\bhonest cooperation\b/i
+body __FRAUD_UUY       /\blegitimate business(?:es)?\b/i
+body __FRAUD_SNT       /\blocate(?: .{1,20})? extended relative/i
+body __FRAUD_LTX       /\bmilli?on (?:.{1,25} thousand\s*)?(?:(?:united states|u\.?s\.?) dollars|(?i:U\.?S\.?D?))\b/i
+body __FRAUD_JNB       /\boperat(?:e|ing)\b[^.]{0,99}\b(?:for(?:ei|ie)gn|off-? ?shore|over-? ?seas?) (?:bank )?accounts?\b/i
+body __FRAUD_QFY       /\bover-? *(?:invoiced?|cost(?:s|ing)?)\b/i
+body __FRAUD_WDR       /\bprivate lawyer\b/i
+body __FRAUD_WFC       /\bsecur(?:e|ing) (?:the )?(?:funds?|monies)\b/i
+body __FRAUD_AUM       /\bthe desk of\b/i
+body __FRAUD_MCQ       /\btransaction\b.{1,30}\b(?:magnitude|diplomatic|strict|absolute|secret|confiden(?:tial|ce)|guarantee)/i
+body __FRAUD_ETX       /\byour\b[^.]{0,99}\b(?:contact (?:details|information)|private (?:e?[- ]?mail|telephone|tel|phone|fax))\b/i
+body __FRAUD_PVN       /as the beneficiary/i
+body __FRAUD_FVU       /award notification/i
+body __FRAUD_CKF       /computer ballot system/i
+body __FRAUD_FCW       /fiduciary agent/i
+body __FRAUD_MQO       /foreign (?:business partner|customer)/i
+body __FRAUD_TCC       /foreign (?:offshore )?(?:bank|account)/i
+body __FRAUD_GBW       /god gives .{1,10}second chance/i
+body __FRAUD_NRG       /i am contacting you/i
+body __FRAUD_RLX       /lott(?:o|ery) (?:co,?ordinator|international)/i
+body __FRAUD_AXF       /magnanimity/i
+body __FRAUD_THJ       /modalit(?:y|ies)/i
+body __FRAUD_YQV       /nigerian? (?:national|government)/i
+body __FRAUD_YJA       /over-invoice/i
+body __FRAUD_YPO       /the total sum/i
+body __FRAUD_UOQ       /vital documents/i
+
+#
+# jhardin: temporarily disable to gauge and score ADVANCE_FEE_NEW rules in isolation
+#
+# meta ADVANCE_FEE_2 (__FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_EZY + __FRAUD_ZFJ + __FRAUD_KDT + __FRAUD_BGP + __FRAUD_FBI + __FRAUD_JBU + __FRAUD_JYG + __FRAUD_XVW + __FRAUD_SNT + __FRAUD_LTX + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_FCW + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_NRG + __FRAUD_RLX + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __FRAUD_DBI + __FRAUD_BEP + __FRAUD_DPR + __FRAUD_QXX + __FRAUD_QFY + __FRAUD_PTS + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IPK + __FRAUD_AON + __FRAUD_WNY + __FRAUD_AUM + __FRAUD_WFC + __FRAUD_YWW + __FRAUD_ULK + __FRAUD_IOU + __FRAUD_JNB + __FRAUD_IRT + __FRAUD_ETX + __FRAUD_WDR + __FRAUD_UUY + __FRAUD_MLY > 2)
+# meta ADVANCE_FEE_3 (__FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_EZY + __FRAUD_ZFJ + __FRAUD_KDT + __FRAUD_BGP + __FRAUD_FBI + __FRAUD_JBU + __FRAUD_JYG + __FRAUD_XVW + __FRAUD_SNT + __FRAUD_LTX + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_FCW + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_NRG + __FRAUD_RLX + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __FRAUD_DBI + __FRAUD_BEP + __FRAUD_DPR + __FRAUD_QXX + __FRAUD_QFY + __FRAUD_PTS + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IPK + __FRAUD_AON + __FRAUD_WNY + __FRAUD_AUM + __FRAUD_WFC + __FRAUD_YWW + __FRAUD_ULK + __FRAUD_IOU + __FRAUD_JNB + __FRAUD_IRT + __FRAUD_ETX + __FRAUD_WDR + __FRAUD_UUY + __FRAUD_MLY > 3)
+# meta ADVANCE_FEE_4 (__FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_EZY + __FRAUD_ZFJ + __FRAUD_KDT + __FRAUD_BGP + __FRAUD_FBI + __FRAUD_JBU + __FRAUD_JYG + __FRAUD_XVW + __FRAUD_SNT + __FRAUD_LTX + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_FCW + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_NRG + __FRAUD_RLX + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __FRAUD_DBI + __FRAUD_BEP + __FRAUD_DPR + __FRAUD_QXX + __FRAUD_QFY + __FRAUD_PTS + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IPK + __FRAUD_AON + __FRAUD_WNY + __FRAUD_AUM + __FRAUD_WFC + __FRAUD_YWW + __FRAUD_ULK + __FRAUD_IOU + __FRAUD_JNB + __FRAUD_IRT + __FRAUD_ETX + __FRAUD_WDR + __FRAUD_UUY + __FRAUD_MLY > 4)
+# 
+# describe ADVANCE_FEE_2       Appears to be advance fee fraud (Nigerian 419)
+# describe ADVANCE_FEE_3       Appears to be advance fee fraud (Nigerian 419)
+# describe ADVANCE_FEE_4       Appears to be advance fee fraud (Nigerian 419)
diff --git a/sa-updates/20_aux_tlds.cf b/sa-updates/20_aux_tlds.cf
new file mode 100644 (file)
index 0000000..1ab7557
--- /dev/null
@@ -0,0 +1,746 @@
+# SpamAssassin - Auxiliary TLD Definitions
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# This file replaces the SARE http://www.rulesemporium.com/rules/90_2tld.cf
+# which will be deprecated as from 2010-05-01
+
+# File updated 2014-09-17 to contain complete TLD lists, they are no longer
+# hardcoded into SA codebase and Util/RegistrarBoundaries.pm is deprecated
+# in favor of Mail::SpamAssassin::RegistryBoundaries.
+
+
+# Let's clear the internal TLD list, we only want to read from this config
+# file and ignore possible old hardcoded lists.
+if can(Mail::SpamAssassin::Conf::feature_registryboundaries)
+clear_util_rb
+endif
+
+
+#
+# 1st level TLD list
+#
+
+# Basic list can be obtained with the following command:
+#  wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -q -O - | tail -n+2 | perl -ne 'print lc'
+# Current list may include more or less.. TODO easier maintenance?
+
+# util_rb_tld only accepts alpha (a-z) input before RegistryBoundaries was
+# implemented in 3.4.1(?), put IDN TLDs with numeric, hyphen (0-9-) etc in
+# this block
+#
+# For an up to date list of IDN TLDs that can be pasted into this block, run this command:
+#  wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -q -O - | grep -i '^xn--' | tr '\n' ' ' | fold -w 80 -s | perl -pe 'chomp; s/.*/util_rb_tld \L$_\n/'
+# Since version 4.0 the util_rb_tld also accepts Unicode IDN labels (encoded as UTF-8), e.g.:
+#  wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -q -O - | grep -i '^xn--' | idn -u | tr '\n' ' ' | fold -w 80 -s | perl -pe 'chomp; s/.*/util_rb_tld \L$_\n/'
+
+if can(Mail::SpamAssassin::Conf::feature_registryboundaries)
+util_rb_tld xn--11b4c3d xn--1ck2e1b xn--1qqw23a xn--2scrj9c xn--30rr7y xn--3bst00m 
+util_rb_tld xn--3ds443g xn--3e0b707e xn--3hcrj9c xn--3oq18vl8pn36a xn--3pxu8k xn--42c2d9a 
+util_rb_tld xn--45br5cyl xn--45brj9c xn--45q11c xn--4gbrim xn--54b7fta0cc xn--55qw42g 
+util_rb_tld xn--55qx5d xn--5su34j936bgsg xn--5tzm5g xn--6frz82g xn--6qq986b3xl xn--80adxhks 
+util_rb_tld xn--80ao21a xn--80aqecdr1a xn--80asehdb xn--80aswg xn--8y0a063a xn--90a3ac 
+util_rb_tld xn--90ae xn--90ais xn--9dbq2a xn--9et52u xn--9krt00a xn--b4w605ferd 
+util_rb_tld xn--bck1b9a5dre4c xn--c1avg xn--c2br7g xn--cck2b3b xn--cg4bki 
+util_rb_tld xn--clchc0ea0b2g2a9gcd xn--czr694b xn--czrs0t xn--czru2d xn--d1acj3b xn--d1alf 
+util_rb_tld xn--e1a4c xn--eckvdtc9d xn--efvy88h xn--estv75g xn--fct429k xn--fhbei 
+util_rb_tld xn--fiq228c5hs xn--fiq64b xn--fiqs8s xn--fiqz9s xn--fjq720a xn--flw351e 
+util_rb_tld xn--fpcrj9c3d xn--fzc2c9e2c xn--fzys8d69uvgm xn--g2xx48c xn--gckr3f0f 
+util_rb_tld xn--gecrj9c xn--gk3at1e xn--h2breg3eve xn--h2brj9c xn--h2brj9c8c xn--hxt814e 
+util_rb_tld xn--i1b6b1a6a2e xn--imr513n xn--io0a7i xn--j1aef xn--j1amh xn--j6w193g 
+util_rb_tld xn--jlq61u9w7b xn--jvr189m xn--kcrx77d1x4a xn--kprw13d xn--kpry57d xn--kpu716f 
+util_rb_tld xn--kput3i xn--l1acc xn--lgbbat1ad8j xn--mgb9awbf xn--mgba3a3ejt 
+util_rb_tld xn--mgba3a4f16a xn--mgba7c0bbn0a xn--mgbaakc7dvf xn--mgbaam7a8h xn--mgbab2bd 
+util_rb_tld xn--mgbai9azgqp6j xn--mgbayh7gpa xn--mgbb9fbpob xn--mgbbh1a xn--mgbbh1a71e 
+util_rb_tld xn--mgbc0a9azcg xn--mgbca7dzdo xn--mgberp4a5d4ar xn--mgbgu82a xn--mgbi4ecexp 
+util_rb_tld xn--mgbpl2fh xn--mgbt3dhd xn--mgbtx2b xn--mgbx4cd0ab xn--mix891f xn--mk1bu44c 
+util_rb_tld xn--mxtq1m xn--ngbc5azd xn--ngbe9e0a xn--ngbrx xn--node xn--nqv7f 
+util_rb_tld xn--nqv7fs00ema xn--nyqy26a xn--o3cw4h xn--ogbpf8fl xn--otu796d xn--p1acf 
+util_rb_tld xn--p1ai xn--pbt977c xn--pgbs0dh xn--pssy2u xn--q9jyb4c xn--qcka1pmc xn--qxam 
+util_rb_tld xn--rhqv96g xn--rovu88b xn--rvc1e0am3e xn--s9brj9c xn--ses554g xn--t60b56a 
+util_rb_tld xn--tckwe xn--tiq49xqyj xn--unup4y xn--vermgensberater-ctb 
+util_rb_tld xn--vermgensberatung-pwb xn--vhquv xn--vuq861b xn--w4r85el8fhu5dnra xn--w4rs40l 
+util_rb_tld xn--wgbh1c xn--wgbl6a xn--xhq521b xn--xkc2al3hye2a xn--xkc2dl3a5ee0h xn--y9a3aq 
+util_rb_tld xn--yfro4i67o xn--ygbi2ammx xn--zfr164b
+endif
+
+# Standard List
+# For an up to date list of TLDs that can be pasted into this block, run this command:
+#  wget https://data.iana.org/TLD/tlds-alpha-by-domain.txt -q -O - | tail -n+2 | grep -vi '^xn--' | tr '\n' ' ' | fold -w 80 -s | perl -pe 'chomp; s/.*/util_rb_tld \L$_\n/'
+
+util_rb_tld aaa aarp abarth abb abbott abbvie abc able abogado abudhabi ac academy 
+util_rb_tld accenture accountant accountants aco actor ad adac ads adult ae aeg aero aetna 
+util_rb_tld af afamilycompany afl africa ag agakhan agency ai aig airbus airforce airtel 
+util_rb_tld akdn al alfaromeo alibaba alipay allfinanz allstate ally alsace alstom am 
+util_rb_tld amazon americanexpress americanfamily amex amfam amica amsterdam analytics 
+util_rb_tld android anquan anz ao aol apartments app apple aq aquarelle ar arab aramco 
+util_rb_tld archi army arpa art arte as asda asia associates at athleta attorney au auction 
+util_rb_tld audi audible audio auspost author auto autos avianca aw aws ax axa az azure ba 
+util_rb_tld baby baidu banamex bananarepublic band bank bar barcelona barclaycard barclays 
+util_rb_tld barefoot bargains baseball basketball bauhaus bayern bb bbc bbt bbva bcg bcn bd 
+util_rb_tld be beats beauty beer bentley berlin best bestbuy bet bf bg bh bharti bi bible 
+util_rb_tld bid bike bing bingo bio biz bj black blackfriday blockbuster blog bloomberg 
+util_rb_tld blue bm bms bmw bn bnpparibas bo boats boehringer bofa bom bond boo book 
+util_rb_tld booking bosch bostik boston bot boutique box br bradesco bridgestone broadway 
+util_rb_tld broker brother brussels bs bt budapest bugatti build builders business buy buzz 
+util_rb_tld bv bw by bz bzh ca cab cafe cal call calvinklein cam camera camp cancerresearch 
+util_rb_tld canon capetown capital capitalone car caravan cards care career careers cars 
+util_rb_tld casa case caseih cash casino cat catering catholic cba cbn cbre cbs cc cd ceb 
+util_rb_tld center ceo cern cf cfa cfd cg ch chanel channel charity chase chat cheap 
+util_rb_tld chintai christmas chrome church ci cipriani circle cisco citadel citi citic 
+util_rb_tld city cityeats ck cl claims cleaning click clinic clinique clothing cloud club 
+util_rb_tld clubmed cm cn co coach codes coffee college cologne com comcast commbank 
+util_rb_tld community company compare computer comsec condos construction consulting 
+util_rb_tld contact contractors cooking cookingchannel cool coop corsica country coupon 
+util_rb_tld coupons courses cpa cr credit creditcard creditunion cricket crown crs cruise 
+util_rb_tld cruises csc cu cuisinella cv cw cx cy cymru cyou cz dabur dad dance data date 
+util_rb_tld dating datsun day dclk dds de deal dealer deals degree delivery dell deloitte 
+util_rb_tld delta democrat dental dentist desi design dev dhl diamonds diet digital direct 
+util_rb_tld directory discount discover dish diy dj dk dm dnp do docs doctor dog domains 
+util_rb_tld dot download drive dtv dubai duck dunlop dupont durban dvag dvr dz earth eat ec 
+util_rb_tld eco edeka edu education ee eg email emerck energy engineer engineering 
+util_rb_tld enterprises epson equipment er ericsson erni es esq estate et etisalat eu 
+util_rb_tld eurovision eus events exchange expert exposed express extraspace fage fail 
+util_rb_tld fairwinds faith family fan fans farm farmers fashion fast fedex feedback 
+util_rb_tld ferrari ferrero fi fiat fidelity fido film final finance financial fire 
+util_rb_tld firestone firmdale fish fishing fit fitness fj fk flickr flights flir florist 
+util_rb_tld flowers fly fm fo foo food foodnetwork football ford forex forsale forum 
+util_rb_tld foundation fox fr free fresenius frl frogans frontdoor frontier ftr fujitsu 
+util_rb_tld fujixerox fun fund furniture futbol fyi ga gal gallery gallo gallup game games 
+util_rb_tld gap garden gay gb gbiz gd gdn ge gea gent genting george gf gg ggee gh gi gift 
+util_rb_tld gifts gives giving gl glade glass gle global globo gm gmail gmbh gmo gmx gn 
+util_rb_tld godaddy gold goldpoint golf goo goodyear goog google gop got gov gp gq gr 
+util_rb_tld grainger graphics gratis green gripe grocery group gs gt gu guardian gucci guge 
+util_rb_tld guide guitars guru gw gy hair hamburg hangout haus hbo hdfc hdfcbank health 
+util_rb_tld healthcare help helsinki here hermes hgtv hiphop hisamitsu hitachi hiv hk hkt 
+util_rb_tld hm hn hockey holdings holiday homedepot homegoods homes homesense honda horse 
+util_rb_tld hospital host hosting hot hoteles hotels hotmail house how hr hsbc ht hu hughes 
+util_rb_tld hyatt hyundai ibm icbc ice icu id ie ieee ifm ikano il im imamat imdb immo 
+util_rb_tld immobilien in inc industries infiniti info ing ink institute insurance insure 
+util_rb_tld int intel international intuit investments io ipiranga iq ir irish is ismaili 
+util_rb_tld ist istanbul it itau itv iveco jaguar java jcb jcp je jeep jetzt jewelry jio 
+util_rb_tld jll jm jmp jnj jo jobs joburg jot joy jp jpmorgan jprs juegos juniper kaufen 
+util_rb_tld kddi ke kerryhotels kerrylogistics kerryproperties kfh kg kh ki kia kim kinder 
+util_rb_tld kindle kitchen kiwi km kn koeln komatsu kosher kp kpmg kpn kr krd kred 
+util_rb_tld kuokgroup kw ky kyoto kz la lacaixa lamborghini lamer lancaster lancia land 
+util_rb_tld landrover lanxess lasalle lat latino latrobe law lawyer lb lc lds lease leclerc 
+util_rb_tld lefrak legal lego lexus lgbt li lidl life lifeinsurance lifestyle lighting like 
+util_rb_tld lilly limited limo lincoln linde link lipsy live living lixil lk llc llp loan 
+util_rb_tld loans locker locus loft lol london lotte lotto love lpl lplfinancial lr ls lt 
+util_rb_tld ltd ltda lu lundbeck lupin luxe luxury lv ly ma macys madrid maif maison makeup 
+util_rb_tld man management mango map market marketing markets marriott marshalls maserati 
+util_rb_tld mattel mba mc mckinsey md me med media meet melbourne meme memorial men menu 
+util_rb_tld merckmsd metlife mg mh miami microsoft mil mini mint mit mitsubishi mk ml mlb 
+util_rb_tld mls mm mma mn mo mobi mobile moda moe moi mom monash money monster mormon 
+util_rb_tld mortgage moscow moto motorcycles mov movie mp mq mr ms msd mt mtn mtr mu museum 
+util_rb_tld mutual mv mw mx my mz na nab nagoya name nationwide natura navy nba nc ne nec 
+util_rb_tld net netbank netflix network neustar new newholland news next nextdirect nexus 
+util_rb_tld nf nfl ng ngo nhk ni nico nike nikon ninja nissan nissay nl no nokia 
+util_rb_tld northwesternmutual norton now nowruz nowtv np nr nra nrw ntt nu nyc nz obi 
+util_rb_tld observer off office okinawa olayan olayangroup oldnavy ollo om omega one ong 
+util_rb_tld onl online onyourside ooo open oracle orange org organic origins osaka otsuka 
+util_rb_tld ott ovh pa page panasonic paris pars partners parts party passagens pay pccw pe 
+util_rb_tld pet pf pfizer pg ph pharmacy phd philips phone photo photography photos physio 
+util_rb_tld pics pictet pictures pid pin ping pink pioneer pizza pk pl place play 
+util_rb_tld playstation plumbing plus pm pn pnc pohl poker politie porn post pr pramerica 
+util_rb_tld praxi press prime pro prod productions prof progressive promo properties 
+util_rb_tld property protection pru prudential ps pt pub pw pwc py qa qpon quebec quest qvc 
+util_rb_tld racing radio raid re read realestate realtor realty recipes red redstone 
+util_rb_tld redumbrella rehab reise reisen reit reliance ren rent rentals repair report 
+util_rb_tld republican rest restaurant review reviews rexroth rich richardli ricoh 
+util_rb_tld rightathome ril rio rip rmit ro rocher rocks rodeo rogers room rs rsvp ru rugby 
+util_rb_tld ruhr run rw rwe ryukyu sa saarland safe safety sakura sale salon samsclub 
+util_rb_tld samsung sandvik sandvikcoromant sanofi sap sarl sas save saxo sb sbi sbs sc sca 
+util_rb_tld scb schaeffler schmidt scholarships school schule schwarz science scjohnson 
+util_rb_tld scot sd se search seat secure security seek select sener services ses seven sew 
+util_rb_tld sex sexy sfr sg sh shangrila sharp shaw shell shia shiksha shoes shop shopping 
+util_rb_tld shouji show showtime shriram si silk sina singles site sj sk ski skin sky skype 
+util_rb_tld sl sling sm smart smile sn sncf so soccer social softbank software sohu solar 
+util_rb_tld solutions song sony soy space sport spot spreadbetting sr srl ss st stada 
+util_rb_tld staples star statebank statefarm stc stcgroup stockholm storage store stream 
+util_rb_tld studio study style su sucks supplies supply support surf surgery suzuki sv 
+util_rb_tld swatch swiftcover swiss sx sy sydney symantec systems sz tab taipei talk taobao 
+util_rb_tld target tatamotors tatar tattoo tax taxi tc tci td tdk team tech technology tel 
+util_rb_tld temasek tennis teva tf tg th thd theater theatre tiaa tickets tienda tiffany 
+util_rb_tld tips tires tirol tj tjmaxx tjx tk tkmaxx tl tm tmall tn to today tokyo tools 
+util_rb_tld top toray toshiba total tours town toyota toys tr trade trading training travel 
+util_rb_tld travelchannel travelers travelersinsurance trust trv tt tube tui tunes tushu tv 
+util_rb_tld tvs tw tz ua ubank ubs ug uk unicom university uno uol ups us uy uz va 
+util_rb_tld vacations vana vanguard vc ve vegas ventures verisign versicherung vet vg vi 
+util_rb_tld viajes video vig viking villas vin vip virgin visa vision viva vivo vlaanderen 
+util_rb_tld vn vodka volkswagen volvo vote voting voto voyage vu vuelos wales walmart 
+util_rb_tld walter wang wanggou watch watches weather weatherchannel webcam weber website 
+util_rb_tld wed wedding weibo weir wf whoswho wien wiki williamhill win windows wine 
+util_rb_tld winners wme wolterskluwer woodside work works world wow ws wtc wtf xbox xerox 
+util_rb_tld xfinity xihuan xin xxx xyz yachts yahoo yamaxun yandex ye yodobashi yoga 
+util_rb_tld yokohama you youtube yt yun za zappos zara zero zip zm zone zuerich zw
+
+#
+# 2nd level TLD list
+#
+
+# http://www.neustar.us/policies/docs/rfc_1480.txt
+# data originally from http://spamcheck.freeapp.net/two-level-tlds
+# The freeapp.net site now says that information on the site is obsolete
+# See discussion and sources in comments of bug 5677
+# updated as per bug 5815
+# cleanup in progress per bug 6795 (axb)
+# Unsorted sources:
+# .ua : https://hostmaster.ua
+# .hu : http://www.domain.hu/domain/English/szabalyzat/sld.html
+
+util_rb_2tld com.ac edu.ac gov.ac mil.ac net.ac org.ac
+util_rb_2tld nom.ad
+util_rb_2tld ac.ae co.ae com.ae gov.ae mil.ae name.ae net.ae org.ae pro.ae sch.ae
+util_rb_2tld com.af edu.af gov.af net.af
+util_rb_2tld co.ag com.ag net.ag nom.ag org.ag
+util_rb_2tld com.ai edu.ai gov.ai net.ai off.ai org.ai
+util_rb_2tld com.al edu.al gov.al net.al org.al
+util_rb_2tld com.an edu.an net.an org.an
+util_rb_2tld co.ao ed.ao gv.ao it.ao og.ao pb.ao
+util_rb_2tld com.ar edu.ar gov.ar int.ar mil.ar net.ar org.ar
+util_rb_2tld e164.arpa in-addr.arpa ip6.arpa iris.arpa uri.arpa urn.arpa
+util_rb_2tld ac.at co.at gv.at or.at priv.at
+util_rb_2tld act.au asn.au com.au conf.au csiro.au edu.au gov.au id.au info.au net.au nsw.au nt.au org.au otc.au oz.au qld.au sa.au tas.au telememo.au vic.au wa.au
+util_rb_2tld com.aw
+util_rb_2tld biz.az com.az edu.az gov.az info.az int.az mil.az name.az net.az org.az pp.az
+util_rb_2tld co.ba com.ba edu.ba gov.ba mil.ba net.ba org.ba rs.ba unbi.ba unsa.ba
+util_rb_2tld com.bb edu.bb gov.bb net.bb org.bb
+util_rb_2tld ac.bd com.bd edu.bd gov.bd mil.bd net.bd org.bd
+util_rb_2tld ac.be belgie.be dns.be fgov.be
+util_rb_2tld gov.bf
+util_rb_2tld biz.bh cc.bh com.bh edu.bh gov.bh info.bh net.bh org.bh
+util_rb_2tld com.bm edu.bm gov.bm net.bm org.bm
+util_rb_2tld com.bn edu.bn net.bn org.bn
+util_rb_2tld com.bo edu.bo gob.bo gov.bo int.bo mil.bo net.bo org.bo tv.bo
+util_rb_2tld adm.br adv.br agr.br am.br arq.br art.br ato.br bio.br bmd.br cim.br cng.br cnt.br com.br coop.br dpn.br eco.br ecn.br edu.br eng.br esp.br etc.br eti.br far.br fm.br fnd.br fot.br fst.br g12.br ggf.br gov.br imb.br ind.br inf.br jor.br lel.br mat.br med.br mil.br mus.br net.br nom.br not.br ntr.br odo.br org.br ppg.br pro.br psc.br psi.br qsl.br rec.br slg.br srv.br tmp.br trd.br tur.br tv.br vet.br zlg.br
+util_rb_2tld com.bs net.bs org.bs
+util_rb_2tld com.bt edu.bt gov.bt net.bt org.bt
+util_rb_2tld co.bw org.bw
+util_rb_2tld gov.by mil.by
+util_rb_2tld com.bz net.bz org.bz
+util_rb_2tld ab.ca bc.ca gc.ca mb.ca nb.ca nf.ca nl.ca ns.ca nt.ca nu.ca on.ca pe.ca qc.ca sk.ca yk.ca
+util_rb_2tld co.ck edu.ck gov.ck net.ck org.ck
+util_rb_2tld ac.cn ah.cn bj.cn com.cn cq.cn edu.cn fj.cn gd.cn gov.cn gs.cn gx.cn gz.cn ha.cn hb.cn he.cn hi.cn hk.cn hl.cn hn.cn jl.cn js.cn jx.cn ln.cn mo.cn net.cn nm.cn nx.cn org.cn qh.cn sc.cn sd.cn sh.cn sn.cn sx.cn tj.cn tw.cn xj.cn xz.cn yn.cn zj.cn
+util_rb_2tld arts.co com.co edu.co firm.co gov.co info.co int.co mil.co net.co nom.co org.co rec.co web.co
+util_rb_2tld co.cm com.cm net.cm
+util_rb_2tld au.com br.com cn.com de.com eu.com gb.com hu.com no.com qc.com ru.com sa.com se.com uk.com us.com uy.com za.com
+util_rb_2tld ac.cr co.cr ed.cr fi.cr go.cr or.cr sa.cr
+util_rb_2tld com.cu edu.cu gov.cu inf.cu net.cu org.cu
+util_rb_2tld gov.cx
+util_rb_2tld ac.cy biz.cy com.cy ekloges.cy gov.cy ltd.cy name.cy net.cy org.cy parliament.cy press.cy pro.cy tm.cy
+util_rb_2tld co.dk
+util_rb_2tld com.dm edu.dm gov.dm net.dm org.dm
+util_rb_2tld art.do com.do edu.do gob.do gov.do mil.do net.do org.do sld.do web.do
+util_rb_2tld art.dz asso.dz com.dz edu.dz gov.dz net.dz org.dz pol.dz
+util_rb_2tld com.ec edu.ec fin.ec gov.ec info.ec k12.ec med.ec mil.ec net.ec org.ec pro.ec gob.ec
+util_rb_2tld co.ee com.ee edu.ee fie.ee med.ee org.ee pri.ee
+util_rb_2tld com.eg edu.eg eun.eg gov.eg mil.eg net.eg org.eg sci.eg
+util_rb_2tld com.er edu.er gov.er ind.er mil.er net.er org.er
+util_rb_2tld com.es edu.es gob.es nom.es org.es
+util_rb_2tld biz.et com.et edu.et gov.et info.et name.et net.et org.et
+util_rb_2tld aland.fi
+util_rb_2tld ac.fj biz.fj com.fj gov.fj id.fj info.fj mil.fj name.fj net.fj org.fj pro.fj school.fj
+util_rb_2tld ac.fk co.fk com.fk gov.fk net.fk nom.fk org.fk
+util_rb_2tld tm.fr asso.fr nom.fr prd.fr presse.fr com.fr gouv.fr
+util_rb_2tld com.ge edu.ge gov.ge mil.ge net.ge org.ge pvt.ge
+util_rb_2tld ac.gg alderney.gg co.gg gov.gg guernsey.gg ind.gg ltd.gg net.gg org.gg sark.gg sch.gg
+util_rb_2tld com.gh edu.gh gov.gh mil.gh org.gh
+util_rb_2tld com.gi edu.gi gov.gi ltd.gi mod.gi org.gi
+util_rb_2tld ac.gn com.gn gov.gn net.gn org.gn
+util_rb_2tld asso.gp com.gp edu.gp net.gp org.gp
+util_rb_2tld com.gr edu.gr gov.gr net.gr org.gr
+util_rb_2tld com.gt edu.gt gob.gt ind.gt mil.gt net.gt org.gt
+util_rb_2tld com.gu edu.gu gov.gu mil.gu net.gu org.gu
+util_rb_2tld com.hk edu.hk gov.hk idv.hk net.hk org.hk
+util_rb_2tld com.hn edu.hn gob.hn mil.hn net.hn org.hn
+util_rb_2tld com.hr from.hr iz.hr name.hr
+util_rb_2tld adult.ht art.ht asso.ht com.ht coop.ht edu.ht firm.ht gouv.ht info.ht med.ht net.ht org.ht perso.ht pol.ht pro.ht rel.ht shop.ht
+util_rb_2tld 2000.hu agrar.hu bolt.hu casino.hu city.hu co.hu erotica.hu erotika.hu film.hu forum.hu games.hu hotel.hu info.hu ingatlan.hu jogasz.hu konyvelo.hu lakas.hu media.hu news.hu org.hu priv.hu reklam.hu sex.hu shop.hu sport.hu suli.hu szex.hu tm.hu tozsde.hu utazas.hu video.hu
+util_rb_2tld ac.id co.id go.id mil.id net.id or.id sch.id web.id
+util_rb_2tld gov.ie
+util_rb_2tld ac.il co.il gov.il idf.il k12.il muni.il net.il org.il
+util_rb_2tld ac.im co.im com.im gov.im net.im nic.im org.im
+util_rb_2tld ac.in co.in edu.in ernet.in firm.in gen.in gov.in ind.in mil.in net.in nic.in org.in res.in
+util_rb_2tld com.io gov.io mil.io net.io org.io
+util_rb_2tld gov.iq
+util_rb_2tld ac.ir co.ir gov.ir id.ir net.ir org.ir sch.ir
+util_rb_2tld edu.it gov.it
+util_rb_2tld ac.je co.je gov.je ind.je jersey.je ltd.je net.je org.je sch.je
+util_rb_2tld com.jm edu.jm gov.jm net.jm org.jm
+util_rb_2tld com.jo edu.jo gov.jo mil.jo net.jo org.jo
+util_rb_2tld ac.jp ad.jp aichi.jp akita.jp aomori.jp chiba.jp co.jp ed.jp ehime.jp fukui.jp fukuoka.jp fukushima.jp gifu.jp go.jp gov.jp gr.jp gunma.jp hiroshima.jp hokkaido.jp hyogo.jp ibaraki.jp ishikawa.jp iwate.jp kagawa.jp kagoshima.jp kanagawa.jp kanazawa.jp kawasaki.jp kitakyushu.jp kobe.jp kochi.jp kumamoto.jp kyoto.jp lg.jp matsuyama.jp mie.jp miyagi.jp miyazaki.jp nagano.jp nagasaki.jp nagoya.jp nara.jp ne.jp net.jp niigata.jp oita.jp okayama.jp okinawa.jp or.jp org.jp osaka.jp saga.jp saitama.jp sapporo.jp sendai.jp shiga.jp shimane.jp shizuoka.jp takamatsu.jp tochigi.jp tokushima.jp tokyo.jp tottori.jp toyama.jp utsunomiya.jp wakayama.jp yamagata.jp yamaguchi.jp yamanashi.jp yokohama.jp
+util_rb_2tld ac.ke co.ke go.ke ne.ke new.ke or.ke sc.ke
+util_rb_2tld com.kg edu.kg gov.kg mil.kg net.kg org.kg
+util_rb_2tld com.kh edu.kh gov.kh mil.kh net.kh org.kh per.kh
+util_rb_2tld ac.kr busan.kr chungbuk.kr chungnam.kr co.kr daegu.kr daejeon.kr es.kr gangwon.kr go.kr gwangju.kr gyeongbuk.kr gyeonggi.kr gyeongnam.kr hs.kr incheon.kr jeju.kr jeonbuk.kr jeonnam.kr kg.kr kyonggi.kr mil.kr ms.kr ne.kr or.kr pe.kr re.kr sc.kr seoul.kr ulsan.kr
+util_rb_2tld com.kw edu.kw gov.kw mil.kw net.kw org.kw
+util_rb_2tld com.ky edu.ky gov.ky net.ky org.ky
+util_rb_2tld com.kz edu.kz gov.kz mil.kz net.kz org.kz
+util_rb_2tld com.la net.la org.la
+util_rb_2tld com.lb edu.lb gov.lb mil.lb net.lb org.lb
+util_rb_2tld com.lc edu.lc gov.lc net.lc org.lc
+util_rb_2tld assn.lk com.lk edu.lk gov.lk grp.lk hotel.lk int.lk ltd.lk net.lk ngo.lk org.lk sch.lk soc.lk web.lk
+util_rb_2tld com.lr edu.lr gov.lr net.lr org.lr
+util_rb_2tld co.ls org.ls
+util_rb_2tld gov.lt mil.lt
+util_rb_2tld asn.lv com.lv conf.lv edu.lv gov.lv id.lv mil.lv net.lv org.lv
+util_rb_2tld biz.ly com.ly edu.ly gov.ly id.ly med.ly net.ly org.ly plc.ly sch.ly
+util_rb_2tld ac.ma co.ma gov.ma net.ma org.ma press.ma
+util_rb_2tld asso.mc tm.mc
+util_rb_2tld ac.me co.me edu.me gov.me its.me net.me org.me priv.me
+util_rb_2tld com.mg edu.mg gov.mg mil.mg nom.mg org.mg prd.mg tm.mg
+util_rb_2tld army.mil navy.mil
+util_rb_2tld com.mk org.mk
+util_rb_2tld com.mm edu.mm gov.mm net.mm org.mm
+util_rb_2tld edu.mn gov.mn org.mn
+util_rb_2tld com.mo edu.mo gov.mo net.mo org.mo
+util_rb_2tld music.mobi weather.mobi
+util_rb_2tld co.mp edu.mp gov.mp net.mp org.mp
+util_rb_2tld com.mt edu.mt gov.mt net.mt org.mt tm.mt uu.mt
+util_rb_2tld co.mu com.mu
+util_rb_2tld aero.mv biz.mv com.mv coop.mv edu.mv gov.mv info.mv int.mv mil.mv museum.mv name.mv net.mv org.mv pro.mv
+util_rb_2tld ac.mw co.mw com.mw coop.mw edu.mw gov.mw int.mw museum.mw net.mw org.mw
+util_rb_2tld com.mx edu.mx gob.mx net.mx org.mx
+util_rb_2tld com.my edu.my gov.my mil.my name.my net.my org.my
+util_rb_2tld co.mz net.mz org.mz ac.mz gov.mz edu.mz
+util_rb_2tld alt.na com.na cul.na edu.na net.na org.na telecom.na unam.na
+util_rb_2tld com.nc net.nc org.nc
+util_rb_2tld de.net gb.net uk.net
+util_rb_2tld ac.ng com.ng edu.ng gov.ng net.ng org.ng sch.ng
+util_rb_2tld ac.ni biz.ni com.ni edu.ni gob.ni in.ni info.ni int.ni mil.ni net.ni nom.ni org.ni web.ni
+util_rb_2tld fhs.no folkebibl.no fylkesbibl.no herad.no idrett.no kommune.no mil.no museum.no priv.no stat.no tel.no vgs.no
+util_rb_2tld com.np edu.np gov.np mil.np net.np org.np
+util_rb_2tld biz.nr co.nr com.nr edu.nr fax.nr gov.nr info.nr mob.nr mobil.nr mobile.nr net.nr org.nr tel.nr tlf.nr
+util_rb_2tld ac.nz co.nz cri.nz geek.nz gen.nz govt.nz iwi.nz kiwi.nz maori.nz mil.nz net.nz org.nz parliament.nz school.nz
+util_rb_2tld ac.om biz.om co.om com.om edu.om gov.om med.om mil.om mod.om museum.om net.om org.om pro.om sch.om
+util_rb_2tld dk.org eu.org
+util_rb_2tld abo.pa ac.pa com.pa edu.pa gob.pa ing.pa med.pa net.pa nom.pa org.pa sld.pa
+util_rb_2tld com.pe edu.pe gob.pe mil.pe net.pe nom.pe org.pe
+util_rb_2tld com.pf edu.pf org.pf
+util_rb_2tld ac.pg com.pg net.pg
+util_rb_2tld com.ph edu.ph gov.ph mil.ph net.ph ngo.ph org.ph
+util_rb_2tld biz.pk com.pk edu.pk fam.pk gob.pk gok.pk gon.pk gop.pk gos.pk gov.pk net.pk org.pk web.pk
+util_rb_2tld art.pl biz.pl com.pl edu.pl gov.pl info.pl mil.pl net.pl ngo.pl org.pl
+util_rb_2tld biz.pr com.pr edu.pr gov.pr info.pr isla.pr name.pr net.pr org.pr pro.pr
+util_rb_2tld cpa.pro law.pro med.pro
+util_rb_2tld com.ps edu.ps gov.ps net.ps org.ps plo.ps sec.ps
+util_rb_2tld com.pt edu.pt gov.pt int.pt net.pt nome.pt org.pt publ.pt
+util_rb_2tld com.py edu.py gov.py net.py org.py
+util_rb_2tld com.qa edu.qa gov.qa net.qa org.qa
+util_rb_2tld asso.re com.re nom.re
+util_rb_2tld arts.ro com.ro firm.ro info.ro nom.ro nt.ro org.ro rec.ro store.ro tm.ro www.ro
+util_rb_2tld ac.rs co.rs edu.rs gov.rs in.rs org.rs
+util_rb_2tld ac.ru com.ru edu.ru gov.ru int.ru mil.ru net.ru org.ru pp.ru
+util_rb_2tld ac.rw co.rw com.rw edu.rw gouv.rw gov.rw int.rw mil.rw net.rw
+util_rb_2tld com.sa edu.sa gov.sa med.sa net.sa org.sa pub.sa sch.sa
+util_rb_2tld com.sb edu.sb gov.sb net.sb org.sb
+util_rb_2tld com.sc edu.sc gov.sc net.sc org.sc
+util_rb_2tld com.sd edu.sd gov.sd info.sd med.sd net.sd org.sd sch.sd tv.sd
+util_rb_2tld ab.se ac.se bd.se brand.se c.se d.se e.se f.se fh.se fhsk.se fhv.se g.se h.se i.se k.se komforb.se kommunalforbund.se komvux.se lanarb.se lanbib.se m.se mil.se n.se naturbruksgymn.se o.se org.se parti.se pp.se press.se s.se sshn.se t.se tm.se u.se w.se x.se y.se z.se
+util_rb_2tld com.sg edu.sg gov.sg idn.sg net.sg org.sg per.sg
+util_rb_2tld com.sh edu.sh gov.sh mil.sh net.sh org.sh
+util_rb_2tld edu.sk gov.sk mil.sk
+util_rb_2tld co.st com.st consulado.st edu.st embaixada.st gov.st mil.st net.st org.st principe.st saotome.st store.st
+util_rb_2tld com.sv edu.sv gob.sv org.sv red.sv
+util_rb_2tld com.sy gov.sy net.sy org.sy
+util_rb_2tld at.tf bg.tf ca.tf ch.tf cz.tf de.tf edu.tf eu.tf int.tf net.tf pl.tf ru.tf sg.tf us.tf
+util_rb_2tld ac.th co.th go.th in.th mi.th net.th or.th
+util_rb_2tld ac.tj biz.tj co.tj com.tj edu.tj go.tj gov.tj int.tj mil.tj name.tj net.tj org.tj web.tj
+util_rb_2tld com.tn edunet.tn ens.tn fin.tn gov.tn ind.tn info.tn intl.tn nat.tn net.tn org.tn rnrt.tn rns.tn rnu.tn tourism.tn
+util_rb_2tld gov.to
+util_rb_2tld gov.tp
+util_rb_2tld av.tr bbs.tr bel.tr biz.tr com.tr dr.tr edu.tr gen.tr gov.tr info.tr k12.tr mil.tr name.tr net.tr org.tr pol.tr tel.tr web.tr
+util_rb_2tld aero.tt at.tt au.tt be.tt biz.tt ca.tt co.tt com.tt coop.tt de.tt dk.tt edu.tt es.tt eu.tt fr.tt gov.tt info.tt int.tt it.tt jobs.tt mobi.tt museum.tt name.tt net.tt nic.tt org.tt pro.tt se.tt travel.tt uk.tt us.tt
+util_rb_2tld co.tv gov.tv
+util_rb_2tld club.tw com.tw ebiz.tw edu.tw game.tw gov.tw idv.tw mil.tw net.tw org.tw
+util_rb_2tld ac.tz co.tz go.tz ne.tz or.tz
+util_rb_2tld cherkassy.ua chernigov.ua chernovtsy.ua ck.ua cn.ua co.ua com.ua crimea.ua cv.ua dn.ua dnepropetrovsk.ua donetsk.ua dp.ua edu.ua gov.ua if.ua in.ua ivano-frankivsk.ua kh.ua kharkov.ua kherson.ua khmelnitskiy.ua kiev.ua kirovograd.ua km.ua kr.ua ks.ua kv.ua lg.ua lugansk.ua lutsk.ua lviv.ua mk.ua net.ua nikolaev.ua od.ua odessa.ua org.ua pl.ua poltava.ua rovno.ua rv.ua sebastopol.ua sumy.ua te.ua ternopil.ua uzhgorod.ua vinnica.ua vn.ua zaporizhzhe.ua zhitomir.ua zp.ua zt.ua
+util_rb_2tld ac.ug co.ug go.ug ne.ug or.ug sc.ug
+util_rb_2tld ac.uk bl.uk british-library.uk co.uk edu.uk gov.uk icnet.uk jet.uk ltd.uk me.uk mod.uk national-library-scotland.uk net.uk nhs.uk nic.uk nls.uk org.uk parliament.uk plc.uk police.uk sch.uk
+util_rb_2tld ak.us al.us ar.us az.us ca.us co.us ct.us dc.us de.us dni.us fed.us fl.us ga.us hi.us ia.us id.us il.us in.us isa.us kids.us ks.us ky.us la.us ma.us md.us me.us mi.us mn.us mo.us ms.us mt.us nc.us nd.us ne.us nh.us nj.us nm.us nsn.us nv.us ny.us oh.us ok.us or.us pa.us ri.us sc.us sd.us tn.us tx.us ut.us va.us vt.us wa.us wi.us wv.us wy.us
+util_rb_2tld com.uy edu.uy gub.uy mil.uy net.uy org.uy
+util_rb_2tld vatican.va
+util_rb_2tld arts.ve bib.ve co.ve com.ve edu.ve firm.ve gov.ve info.ve int.ve mil.ve net.ve nom.ve org.ve rec.ve store.ve tec.ve web.ve
+util_rb_2tld co.vi com.vi edu.vi gov.vi net.vi org.vi
+util_rb_2tld ac.vn biz.vn com.vn edu.vn gov.vn health.vn info.vn int.vn name.vn net.vn org.vn pro.vn
+util_rb_2tld ch.vu com.vu de.vu edu.vu fr.vu net.vu org.vu
+util_rb_2tld com.ws edu.ws gov.ws net.ws org.ws
+util_rb_2tld com.ye edu.ye gov.ye mil.ye net.ye org.ye
+util_rb_2tld ac.za alt.za bourse.za city.za co.za edu.za gov.za law.za mil.za net.za ngo.za nom.za org.za school.za tm.za web.za
+util_rb_2tld ac.zm co.zm  com.zm edu.zm gov.zm org.zm sch.zm
+util_rb_2tld ac.zw co.zw gov.zw org.zw
+#
+util_rb_2tld 110mb.com
+util_rb_2tld 9k.com
+util_rb_2tld addr.com
+util_rb_2tld altervista.org
+util_rb_2tld biz.tm
+util_rb_2tld blogger.ca
+util_rb_2tld blogger.cf
+util_rb_2tld blogger.ch
+util_rb_2tld blogspot.com
+util_rb_2tld blogger.cv
+util_rb_2tld blogger.jp
+util_rb_2tld blogger.pl
+util_rb_2tld blogger.re
+util_rb_2tld blogger.se
+util_rb_2tld blogspot.ca
+util_rb_2tld blogspot.cv
+util_rb_2tld blogspot.de
+util_rb_2tld blogspot.fr
+util_rb_2tld blogspot.in
+util_rb_2tld blogspot.it
+util_rb_2tld blogspot.jp
+util_rb_2tld blogspot.mx
+util_rb_2tld blogspot.pt
+util_rb_2tld blogspot.re
+util_rb_2tld blogspot.se
+util_rb_2tld bravehost.com
+util_rb_2tld bravejournal.com
+util_rb_2tld by.ru
+util_rb_2tld chat.ru
+util_rb_2tld cjb.net
+util_rb_2tld es.tl
+util_rb_2tld extra.hu
+util_rb_2tld freehostia.com
+util_rb_2tld front.ru
+util_rb_2tld geocities.com
+util_rb_2tld getmyip.com
+util_rb_2tld googlepages.com
+util_rb_2tld helloweb.eu
+util_rb_2tld host.sk
+util_rb_2tld hotbox.ru
+util_rb_2tld hotmail.ru
+util_rb_2tld hu2.ru
+util_rb_2tld hut2.ru
+util_rb_2tld iblogger.org
+util_rb_2tld ic.cz
+util_rb_2tld id.ru
+util_rb_2tld kwik.to
+util_rb_2tld land.ru
+util_rb_2tld mine.nu
+util_rb_2tld mooo.com
+util_rb_2tld narod.ru
+util_rb_2tld netsolhost.com
+util_rb_2tld na.by
+util_rb_2tld newmail.ru
+util_rb_2tld nextmail.ru
+util_rb_2tld nightmail.ru
+util_rb_2tld nm.ru
+util_rb_2tld notlong.com
+util_rb_2tld page.tl
+util_rb_2tld pochta.ru
+util_rb_2tld pochtamt.ru
+util_rb_2tld pop3.ru
+util_rb_2tld proboards.com
+util_rb_2tld rbcmail.ru
+util_rb_2tld rm.ru
+util_rb_2tld smtp.ru
+util_rb_2tld sol.ru
+util_rb_2tld t35.com
+util_rb_2tld tripod.com
+util_rb_2tld uk.to
+util_rb_2tld unblog.fr
+util_rb_2tld us.to
+util_rb_2tld web-soft.ru
+util_rb_2tld wz.cz
+util_rb_2tld zmail.ru
+util_rb_2tld t35.net
+util_rb_2tld t35.com
+util_rb_2tld wordpress.com
+util_rb_2tld jino-net.ru
+util_rb_2tld 6a.org
+util_rb_2tld xf.cz
+util_rb_2tld fr.tc
+util_rb_2tld googlegroups.com
+util_rb_2tld 150m.com
+util_rb_2tld bravepages.com
+util_rb_2tld ucoz.ru
+util_rb_2tld ucoz.com
+util_rb_2tld ucoz.net
+util_rb_2tld szm.com
+util_rb_2tld geocities.jp
+util_rb_2tld gmxhome.de
+util_rb_2tld freeservercity.com
+util_rb_2tld iquebec.com
+util_rb_2tld mail2k.ru
+util_rb_2tld mail.ru
+util_rb_2tld ath.cx
+util_rb_2tld go.ro
+util_rb_2tld z8.ru
+util_rb_2tld appspot.com
+util_rb_2tld gigazu.net
+util_rb_2tld weebly.com
+util_rb_2tld ifrance.com
+util_rb_2tld jimdo.com
+util_rb_2tld kimsufi.com
+util_rb_2tld mail333.su
+util_rb_2tld pisem.su
+util_rb_2tld mail15.su
+util_rb_2tld prserv.net
+util_rb_2tld angelfire.com
+util_rb_2tld 163.to
+util_rb_2tld home.pl
+util_rb_2tld redirectme.net
+util_rb_2tld interia.pl
+util_rb_2tld co.kg
+util_rb_2tld ning.com
+util_rb_2tld xorg.pl
+util_rb_2tld free.fr
+util_rb_2tld we.bs
+util_rb_2tld net.tc
+util_rb_2tld isuisse.com
+util_rb_2tld de.ki
+util_rb_2tld funpic.de
+util_rb_2tld interii.pl
+util_rb_2tld selfip.com
+#util_rb_2tld livejournal.com - Removed per bug 6662 4/7/15 - KAM
+util_rb_2tld t3.to
+util_rb_2tld fx.to
+util_rb_2tld iespana.es
+util_rb_2tld go.com
+util_rb_2tld hostevo.com
+util_rb_2tld iwebsource.com
+util_rb_2tld one.pl
+util_rb_2tld gratishost.com
+util_rb_2tld netfirms.com
+util_rb_2tld ibelgique.com
+util_rb_2tld to.it
+util_rb_2tld whsites.net
+util_rb_2tld home.ro
+util_rb_2tld 1blu.de
+util_rb_2tld co.cc
+util_rb_2tld cc.cc
+util_rb_2tld webs.com
+util_rb_2tld webcindario.com
+util_rb_2tld idoo.com
+util_rb_2tld selfip.net
+util_rb_2tld ovh.net
+util_rb_2tld sapo.pt
+util_rb_2tld homeip.net
+util_rb_2tld unlugar.com
+util_rb_2tld nov.ru
+util_rb_2tld republika.pl
+util_rb_2tld blog.com
+util_rb_2tld sosblog.com
+util_rb_2tld servebbs.com
+util_rb_2tld serveftp.com
+util_rb_2tld gob.ve
+util_rb_2tld xanga.com
+util_rb_2tld com.vc
+util_rb_2tld net.vc
+util_rb_2tld org.vc
+util_rb_2tld kickme.to
+util_rb_2tld asso.ws
+util_rb_2tld url.st
+util_rb_2tld at.pn
+util_rb_2tld au.pn
+util_rb_2tld ca.pn
+util_rb_2tld ch.pn
+util_rb_2tld cn.pn
+util_rb_2tld co.pn
+util_rb_2tld corp.st
+util_rb_2tld societe.st
+util_rb_2tld de.pn
+util_rb_2tld es.pn
+util_rb_2tld eu.pn
+util_rb_2tld euro.tm
+util_rb_2tld fr.pn
+util_rb_2tld gov.pn
+util_rb_2tld government.pn
+util_rb_2tld it.pn
+util_rb_2tld jp.pn
+util_rb_2tld perso.tc
+util_rb_2tld site.tc
+util_rb_2tld societe.st
+util_rb_2tld url.st
+util_rb_2tld blog.ru
+util_rb_2tld eu.tc
+util_rb_2tld us.tc
+util_rb_2tld pro.tc
+util_rb_2tld de.tc
+util_rb_2tld at.tc
+util_rb_2tld it.tc
+util_rb_2tld es.tc
+util_rb_2tld ru.tc
+util_rb_2tld se.tc
+util_rb_2tld dk.tc
+util_rb_2tld be.tc
+util_rb_2tld no.tc
+util_rb_2tld int.tc
+util_rb_2tld pl.tc
+util_rb_2tld bg.tc
+util_rb_2tld cz.tc
+util_rb_2tld mx.tc
+util_rb_2tld br.tc
+util_rb_2tld hk.tc
+util_rb_2tld kr.tc
+util_rb_2tld th.tc
+util_rb_2tld ph.tc
+util_rb_2tld at.lv
+util_rb_2tld de.lv
+util_rb_2tld ch.lv
+util_rb_2tld org.rw
+util_rb_2tld myvnc.com
+util_rb_2tld blog4ever.com
+util_rb_2tld sytes.net
+util_rb_2tld multiply.com
+util_rb_2tld 80.hk
+util_rb_2tld shutterfly.com
+util_rb_2tld chez.com
+util_rb_2tld ce.ms
+util_rb_2tld zapto.org
+util_rb_2tld cz.cc
+util_rb_2tld fromru.su
+util_rb_2tld krovatka.su
+util_rb_2tld pochta.com
+util_rb_2tld 5ballov.ru
+util_rb_2tld usa.cc
+util_rb_2tld jpn.com
+util_rb_2tld yolasite.com
+util_rb_2tld in.net
+util_rb_2tld com.de
+util_rb_2tld biz.ua
+util_rb_2tld azurewebsites.net
+util_rb_2tld azureedge.net
+util_rb_2tld zohosites.com
+util_rb_2tld wixsite.com
+util_rb_2tld firebaseapp.com
+util_rb_2tld web.app
+#
+util_rb_2tld neostrada.pl
+util_rb_2tld vv.cc
+util_rb_2tld co.be
+util_rb_2tld uni.cc
+util_rb_2tld shop.co
+util_rb_2tld tumblr.com
+util_rb_2tld fileave.com
+util_rb_2tld de.tl
+util_rb_2tld co.com
+# Dyndns.com
+util_rb_2tld dyndns-at-home.com
+util_rb_2tld dyndns-at-work.com
+util_rb_2tld dyndns-blog.com
+util_rb_2tld dyndns-free.com
+util_rb_2tld dyndns-home.com
+util_rb_2tld dyndns-ip.com
+util_rb_2tld dyndns-mail.com
+util_rb_2tld dyndns-office.com
+util_rb_2tld dyndns-pics.com
+util_rb_2tld dyndns-remote.com
+util_rb_2tld dyndns-server.com
+util_rb_2tld dyndns-web.com
+util_rb_2tld dyndns-wiki.com
+util_rb_2tld dyndns-work.com
+util_rb_2tld dyndns.biz
+util_rb_2tld dyndns.info
+util_rb_2tld dyndns.org
+util_rb_2tld dyndns.tv
+util_rb_2tld dyndns.dk
+util_rb_2tld dyndns.ws
+util_rb_2tld mydyndns.org
+util_rb_2tld qip.ru
+#
+util_rb_2tld no-ip.biz
+util_rb_2tld no-ip.ca
+util_rb_2tld no-ip.com
+util_rb_2tld no-ip.info
+util_rb_2tld no-ip.net
+util_rb_2tld no-ip.org
+#
+util_rb_2tld gotdns.ch
+util_rb_2tld ddnsking.com
+util_rb_2tld ddns.net
+util_rb_2tld bounceme.net
+util_rb_2tld hopto.org
+util_rb_2tld serveblog.net
+util_rb_2tld myftp.org
+util_rb_2tld myftp.biz
+
+
+#
+# 3rd level TLD list (SA 3.3+)
+#
+# There was a bug before 3.4.1(?), only one 3TLD per line works!
+#
+
+if (version >= 3.003000)
+
+util_rb_3tld demon.co.uk
+util_rb_3tld esc.edu.ar
+util_rb_3tld lkd.co.im
+util_rb_3tld plc.co.im
+util_rb_3tld ltd.co.im
+#
+util_rb_3tld bay.livefilestore.com
+util_rb_3tld blu.livefilestore.com
+util_rb_3tld groups.live.com
+util_rb_3tld spaces.live.com
+util_rb_3tld profile.live.com
+util_rb_3tld web.aplus.net
+util_rb_3tld cloud.prohosting.com
+util_rb_3tld skydrive.live.com
+util_rb_3tld docs.google.com
+util_rb_3tld spaces.msn.com
+util_rb_3tld blog.friendster.com
+util_rb_3tld plc.co.im
+util_rb_3tld ltd.co.im
+util_rb_3tld sakura.ne.jp
+util_rb_3tld web.officelive.com
+util_rb_3tld com.sapo.pt
+util_rb_3tld paginas.sapo.pt
+util_rb_3tld no.sapo.pt
+util_rb_3tld home.sapo.pt
+util_rb_3tld do.sapo.pt
+util_rb_3tld homepage.t-online.de
+util_rb_3tld privat.t-online.de
+util_rb_3tld web.fc2.com
+util_rb_3tld co.uk.pn
+util_rb_3tld com.au.pn
+util_rb_3tld co.at.pn
+util_rb_3tld co.at.lv
+util_rb_3tld or.at.lv
+util_rb_3tld co.at.tc
+util_rb_3tld qld.edu.au
+util_rb_3tld perso.neuf.fr
+util_rb_3tld perso.sfr.fr
+util_rb_3tld hop.clickbank.net
+util_rb_3tld user.icpnet.pl
+util_rb_3tld en.alibaba.com
+#
+util_rb_3tld blogspot.co.nz
+util_rb_3tld blogspot.co.uk
+util_rb_3tld blogspot.com.ar
+util_rb_3tld blogspot.com.au
+util_rb_3tld blogspot.com.br
+util_rb_3tld blogspot.com.es
+#
+util_rb_3tld no-ip.co.uk
+#
+util_rb_3tld mobile.web.tr
+
+endif
+
+
diff --git a/sa-updates/20_body_tests.cf b/sa-updates/20_body_tests.cf
new file mode 100644 (file)
index 0000000..463a0c8
--- /dev/null
@@ -0,0 +1,169 @@
+# SpamAssassin rules file: body tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# 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.
+#
+# Note: If you are adding a rule which looks for a phrase in the body
+# (as most of them do), please add it to rules/20_phrases.cf instead.
+#
+# <@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 3.004005
+
+###########################################################################
+# GTUBE test - the generic test for UBE.
+body GTUBE             /XJS\*C4JDBQADN1\.NSBN3\*2IDNEN\*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL\*C\.34X/
+describe GTUBE         Generic Test for Unsolicited Bulk Email
+tflags GTUBE           userconf noautolearn
+
+###########################################################################
+
+# this seems to be the new fashion (as of Jul 5 2002).  base64-encoded
+# parts need to be stripped before this match
+body TRACKER_ID                /^[a-z0-9]{6,24}[-_a-z0-9]{12,36}[a-z0-9]{6,24}\s*\z/is
+describe TRACKER_ID    Incorporates a tracking ID number
+
+body WEIRD_QUOTING     /[\042\223\224\262\263\271]{2}\S{0,16}[\042\223\224\262\263\271]{2}/
+describe WEIRD_QUOTING Weird repeated double-quotation marks
+
+###########################################################################
+# multipart/alternative has very good accuracy, other multipart types are
+# similar to MIME_HTML_ONLY so they don't need a separate rule
+header __CTYPE_MULTIPART_ALT   Content-Type =~ /multipart\/alternative/i
+meta MIME_HTML_ONLY_MULTI      (__CTYPE_MULTIPART_ALT && MIME_HTML_ONLY)
+describe MIME_HTML_ONLY_MULTI  Multipart message only has text/html MIME parts
+
+# note: __HIGHBITS is used in rules/20_html_tests.cf, HTML_CHARSET_FARAWAY
+meta MIME_CHARSET_FARAWAY      (__MIME_CHARSET_FARAWAY && __HIGHBITS)
+describe MIME_CHARSET_FARAWAY  MIME character set indicates foreign language
+tflags MIME_CHARSET_FARAWAY    userconf
+
+###########################################################################
+
+# duncf
+body EMAIL_ROT13     /\b[a-z(\]-]+\^[a-z-]+\([a-z]{2,3}\b/
+describe EMAIL_ROT13 Body contains a ROT13-encoded email address
+test EMAIL_ROT13 ok  qhabs^ebtref(pbz
+test EMAIL_ROT13 ok  zxrggyre^riv-vap(pbz
+test EMAIL_ROT13 fail  duncf-nospam@rogers.com
+
+# this could use more work
+body __LONGWORDS_A     /\b(?:[a-z]{8,}[\s\.]+){6}/
+body __LONGWORDS_B     /\b(?:[a-z]{6,}[\s\.]+){9}/
+body __LONGWORDS_C     /\b(?:[a-z]{5,}[\s\.]+){10}/
+meta LONGWORDS         (__LONGWORDS_A + __LONGWORDS_B + __LONGWORDS_C > 1)
+describe LONGWORDS     Long string of long words
+
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+
+
+# This rule uses a simple algorithm to determine if the text and html
+# parts of an multipart/alternative message are different.
+body MPART_ALT_DIFF    eval:multipart_alternative_difference('99', '100')
+describe MPART_ALT_DIFF        HTML and text parts are different
+
+body MPART_ALT_DIFF_COUNT      eval:multipart_alternative_difference_count('3', '1')
+describe MPART_ALT_DIFF_COUNT  HTML and text parts are different
+
+body BLANK_LINES_80_90 eval:check_blank_line_ratio('80','90','4')
+describe BLANK_LINES_80_90  Message body has 80-90% blank lines
+
+# it's the ratio of spaces to non-spaces in each paragraph.  apparently
+# messages where generally there are lots of spaces mean the message is spam.
+# 8.532  10.6051   0.1897    0.982   0.75    0.01  T_VERTICAL_WORDS_TVD_1
+# bug 6149: avoid common .jp false positives
+header __SUBJECT_UTF8_B_ENCODED     Subject:raw =~ /=\?UTF-?8\?B\?/i
+body __TVD_SPACE_RATIO eval:tvd_vertical_words('0','10')
+meta TVD_SPACE_RATIO    (__TVD_SPACE_RATIO && !__ISO_2022_JP_DELIM && !__SUBJECT_UTF8_B_ENCODED && !__HIGHBITS)
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+# 0.767   0.9097   0.0000    1.000   0.84    1.00  MULTIPART_ALT_NON_TEXT
+body MULTIPART_ALT_NON_TEXT    eval:check_ma_non_text()
+
+body CHARSET_FARAWAY           eval:check_for_faraway_charset()
+describe CHARSET_FARAWAY       Character set indicates a foreign language
+tflags CHARSET_FARAWAY         userconf
+
+# these tests doesn't actually use rawbody since rawbody isn't raw enough;
+# they must be written very carefully to avoid modifying the original content
+
+# MIME Content-Transfer-Encoding control rules
+rawbody __MIME_BASE64          eval:check_for_mime('mime_base64_count')
+describe __MIME_BASE64         Includes a base64 attachment
+
+rawbody __MIME_QP              eval:check_for_mime('mime_qp_count')
+describe __MIME_QP             Includes a quoted-printable attachment
+
+# No longer used in MIMEEval
+#rawbody MIME_BASE64_BLANKS    eval:check_for_mime('mime_base64_blanks')
+#describe MIME_BASE64_BLANKS   Extra blank lines in base64 encoding
+
+
+rawbody MIME_BASE64_TEXT       eval:check_for_mime('mime_base64_encoded_text')
+describe MIME_BASE64_TEXT      Message text disguised using base64 encoding
+
+
+body MISSING_MIME_HB_SEP       eval:check_msg_parse_flags('missing_mime_head_body_separator')
+describe MISSING_MIME_HB_SEP   Missing blank line between MIME header and body
+
+body MIME_HTML_MOSTLY          eval:check_mime_multipart_ratio('0.00','0.01')
+describe MIME_HTML_MOSTLY      Multipart message mostly text/html MIME
+
+# Steve Linford via Charlie Watts: good test!
+body MIME_HTML_ONLY            eval:check_for_mime_html_only()
+describe MIME_HTML_ONLY                Message only has text/html MIME parts
+
+rawbody  MIME_QP_LONG_LINE     eval:check_for_mime('mime_qp_long_line')
+describe MIME_QP_LONG_LINE     Quoted-printable line longer than 76 chars
+
+rawbody __MIME_CHARSET_FARAWAY eval:check_for_mime('mime_faraway_charset')
+
+body MIME_BAD_ISO_CHARSET      eval:check_for_mime('mime_bad_iso_charset')
+describe MIME_BAD_ISO_CHARSET  MIME character set is an unknown ISO charset
+
+body MIMEPART_LIMIT_EXCEEDED   eval:check_for_mime('mimepart_limit_exceeded')
+describe MIMEPART_LIMIT_EXCEEDED Message has too many MIME parts
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::URIEval
+
+body HTTPS_IP_MISMATCH eval:check_https_ip_mismatch()
+describe HTTPS_IP_MISMATCH     IP to HTTPS link found in HTML
+
+body URI_TRUNCATED     eval:check_uri_truncated()
+describe URI_TRUNCATED Message contained a URI which was truncated
+
+endif
diff --git a/sa-updates/20_compensate.cf b/sa-updates/20_compensate.cf
new file mode 100644 (file)
index 0000000..8bf44ab
--- /dev/null
@@ -0,0 +1,47 @@
+# SpamAssassin rules file: compensation for common false positives
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+# Header compensation tests
+
+require_version 3.004005
+
+header __HAS_RCVD       exists:Received
+meta NO_RECEIVED        (!__HAS_RCVD)
+tflags NO_RECEIVED      nice userconf
+describe NO_RECEIVED    Informational: message has no Received headers
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::RelayEval
+
+# The message was never sent via an untrustworthy host.
+header ALL_TRUSTED      eval:check_all_trusted()
+describe ALL_TRUSTED    Passed through trusted hosts only via SMTP
+tflags ALL_TRUSTED      nice userconf
+
+header NO_RELAYS        eval:check_no_relays()
+tflags NO_RELAYS        nice userconf
+describe NO_RELAYS      Informational: message was not relayed via SMTP
+
+endif
diff --git a/sa-updates/20_dnsbl_tests.cf b/sa-updates/20_dnsbl_tests.cf
new file mode 100644 (file)
index 0000000..3a57581
--- /dev/null
@@ -0,0 +1,248 @@
+# SpamAssassin rules file: DNS blacklist and whitelist tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+# See the Mail::SpamAssassin::Conf manual page for details of how to use
+# check_rbl().
+
+# ---------------------------------------------------------------------------
+# Multizone / Multi meaning BLs first.
+#
+# Note that currently TXT queries cannot be used for these, since the
+# DNSBLs do not return the A type (127.0.0.x) as part of the TXT reply.
+
+
+# ---------------------------------------------------------------------------
+# SORBS
+# transfers: both axfr and ixfr available
+# URL: http://www.dnsbl.sorbs.net/
+# pay-to-use: no
+# delist: $50 fee for RCVD_IN_SORBS_SPAM, others have free retest on request
+
+header __RCVD_IN_SORBS          eval:check_rbl('sorbs', 'dnsbl.sorbs.net.')
+describe __RCVD_IN_SORBS        SORBS: sender is listed in SORBS
+tflags __RCVD_IN_SORBS          net
+reuse  __RCVD_IN_SORBS
+
+header RCVD_IN_SORBS_HTTP       eval:check_rbl_sub('sorbs', '127.0.0.2')
+describe RCVD_IN_SORBS_HTTP     SORBS: sender is open HTTP proxy server
+tflags RCVD_IN_SORBS_HTTP       net
+reuse  RCVD_IN_SORBS_HTTP
+
+header RCVD_IN_SORBS_SOCKS      eval:check_rbl_sub('sorbs', '127.0.0.3')
+describe RCVD_IN_SORBS_SOCKS    SORBS: sender is open SOCKS proxy server
+tflags RCVD_IN_SORBS_SOCKS      net
+reuse  RCVD_IN_SORBS_SOCKS
+
+header RCVD_IN_SORBS_MISC       eval:check_rbl_sub('sorbs', '127.0.0.4')
+describe RCVD_IN_SORBS_MISC     SORBS: sender is open proxy server
+tflags RCVD_IN_SORBS_MISC       net
+reuse  RCVD_IN_SORBS_MISC
+
+header RCVD_IN_SORBS_SMTP       eval:check_rbl_sub('sorbs', '127.0.0.5')
+describe RCVD_IN_SORBS_SMTP     SORBS: sender is open SMTP relay
+tflags RCVD_IN_SORBS_SMTP       net
+reuse  RCVD_IN_SORBS_SMTP
+
+# delist: $50 fee
+#header RCVD_IN_SORBS_SPAM      eval:check_rbl_sub('sorbs', '127.0.0.6')
+#describe RCVD_IN_SORBS_SPAM    SORBS: sender is a spam source
+#tflags RCVD_IN_SORBS_SPAM      net
+#reuse  RCVD_IN_SORBS_SPAM      RCVD_IN_SORBS_SPAM
+
+header RCVD_IN_SORBS_WEB        eval:check_rbl_sub('sorbs', '127.0.0.7')
+describe RCVD_IN_SORBS_WEB      SORBS: sender is an abusable web server
+tflags RCVD_IN_SORBS_WEB        net
+reuse  RCVD_IN_SORBS_WEB
+
+header RCVD_IN_SORBS_BLOCK      eval:check_rbl_sub('sorbs', '127.0.0.8')
+describe RCVD_IN_SORBS_BLOCK    SORBS: sender demands to never be tested
+tflags RCVD_IN_SORBS_BLOCK      net
+reuse  RCVD_IN_SORBS_BLOCK
+
+header RCVD_IN_SORBS_ZOMBIE     eval:check_rbl_sub('sorbs', '127.0.0.9')
+describe RCVD_IN_SORBS_ZOMBIE   SORBS: sender is on a hijacked network
+tflags RCVD_IN_SORBS_ZOMBIE     net
+reuse  RCVD_IN_SORBS_ZOMBIE
+
+header RCVD_IN_SORBS_DUL        eval:check_rbl('sorbs-lastexternal', 'dnsbl.sorbs.net.', '127.0.0.10')
+describe RCVD_IN_SORBS_DUL      SORBS: sent directly from dynamic IP address
+tflags RCVD_IN_SORBS_DUL        net
+reuse  RCVD_IN_SORBS_DUL
+
+# ---------------------------------------------------------------------------
+# Spamhaus ZEN includes SBL+CSS+XBL+PBL
+# https://www.spamhaus.org/faq/section/DNSBL%20Usage#200
+#
+# Spamhaus XBL contains the Abuseat CBL data (cbl.abuseat.org)
+
+header __RCVD_IN_ZEN            eval:check_rbl('zen', 'zen.spamhaus.org.')
+describe __RCVD_IN_ZEN          Received via a relay in Spamhaus Zen
+tflags __RCVD_IN_ZEN            net
+reuse  __RCVD_IN_ZEN
+
+# SBL is the Spamhaus Block List: https://www.spamhaus.org/sbl/
+header RCVD_IN_SBL              eval:check_rbl_sub('zen', '127.0.0.2')
+describe RCVD_IN_SBL            Received via a relay in Spamhaus SBL
+tflags RCVD_IN_SBL              net
+reuse  RCVD_IN_SBL
+
+# XBL is the Exploits Block List: https://www.spamhaus.org/xbl/
+header RCVD_IN_XBL              eval:check_rbl('zen-lastexternal', 'zen.spamhaus.org.', '^127\.0\.0\.[4567]$')
+describe RCVD_IN_XBL            Received via a relay in Spamhaus XBL
+tflags RCVD_IN_XBL              net
+reuse  RCVD_IN_XBL
+
+# PBL is the Policy Block List: https://www.spamhaus.org/pbl/
+header RCVD_IN_PBL              eval:check_rbl('zen-lastexternal', 'zen.spamhaus.org.', '^127\.0\.0\.1[01]$')
+describe RCVD_IN_PBL            Received via a relay in Spamhaus PBL
+tflags RCVD_IN_PBL              net
+reuse  RCVD_IN_PBL
+
+# CSS is the Spamhaus CSS Component of the SBL List: https://www.spamhaus.org/css/
+header RCVD_IN_SBL_CSS         eval:check_rbl_sub('zen', '127.0.0.3')
+describe RCVD_IN_SBL_CSS       Received via a relay in Spamhaus SBL-CSS
+tflags RCVD_IN_SBL_CSS         net
+reuse  RCVD_IN_SBL_CSS
+
+# New blocked checks 10/2019
+header RCVD_IN_ZEN_BLOCKED_OPENDNS     eval:check_rbl('zen-lastexternal', 'zen.spamhaus.org.', '^127\.255\.255\.254$')
+describe RCVD_IN_ZEN_BLOCKED_OPENDNS   ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/
+tflags RCVD_IN_ZEN_BLOCKED_OPENDNS     net
+reuse RCVD_IN_ZEN_BLOCKED_OPENDNS
+
+# New blocked checks 10/2019
+header RCVD_IN_ZEN_BLOCKED     eval:check_rbl('zen-lastexternal', 'zen.spamhaus.org.', '^127\.255\.255\.255$')
+describe RCVD_IN_ZEN_BLOCKED   ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked. See https://www.spamhaus.org/returnc/vol/
+tflags RCVD_IN_ZEN_BLOCKED     net
+reuse RCVD_IN_ZEN_BLOCKED
+
+if can(Mail::SpamAssassin::Conf::feature_dns_block_rule)
+dns_block_rule RCVD_IN_ZEN_BLOCKED_OPENDNS zen.spamhaus.org
+dns_block_rule RCVD_IN_ZEN_BLOCKED zen.spamhaus.org
+endif
+
+
+# Now, single zone BLs follow:
+
+# ---------------------------------------------------------------------------
+# NOTE: donation tests, see README file for details
+
+header RCVD_IN_BL_SPAMCOP_NET   eval:check_rbl_txt('spamcop', 'bl.spamcop.net.', '(?i:spamcop)')
+describe RCVD_IN_BL_SPAMCOP_NET Received via a relay in bl.spamcop.net
+tflags RCVD_IN_BL_SPAMCOP_NET   net
+reuse  RCVD_IN_BL_SPAMCOP_NET
+
+# ---------------------------------------------------------------------------
+# NOTE: commercial tests, see README file for details
+
+header RCVD_IN_MAPS_RBL         eval:check_rbl('rblplus', 'activationcode.r.mail-abuse.com.', '1')
+describe RCVD_IN_MAPS_RBL       Relay in RBL, http://www.mail-abuse.com/enduserinfo_rbl.html
+tflags RCVD_IN_MAPS_RBL         net
+reuse RCVD_IN_MAPS_RBL
+
+header RCVD_IN_MAPS_DUL         eval:check_rbl('rblplus-lastexternal', 'activationcode.r.mail-abuse.com.', '2')
+describe RCVD_IN_MAPS_DUL       Relay in DUL, http://www.mail-abuse.com/enduserinfo_dul.html
+tflags RCVD_IN_MAPS_DUL         net
+reuse RCVD_IN_MAPS_DUL
+
+header RCVD_IN_MAPS_RSS         eval:check_rbl_sub('rblplus', '4')
+describe RCVD_IN_MAPS_RSS       Relay in RSS, http://www.mail-abuse.com/enduserinfo_rss.html
+tflags RCVD_IN_MAPS_RSS         net
+reuse RCVD_IN_MAPS_RSS
+
+header RCVD_IN_MAPS_OPS         eval:check_rbl_sub('rblplus', '8')
+describe RCVD_IN_MAPS_OPS       Relay in OPS, http://www.mail-abuse.com/enduserinfo_ops.html
+tflags RCVD_IN_MAPS_OPS         net
+reuse RCVD_IN_MAPS_OPS
+
+# The NML isn't part of the RBL+ and I find any documentation for it - is it dead?
+header RCVD_IN_MAPS_NML         eval:check_rbl('nml', 'nonconfirm.mail-abuse.com.')
+describe RCVD_IN_MAPS_NML       Relay in NML, http://www.mail-abuse.com/enduserinfo_nml.html
+tflags RCVD_IN_MAPS_NML         net
+reuse RCVD_IN_MAPS_NML
+
+# ---------------------------------------------------------------------------
+# Section for DNS WL related lookups below.
+
+# IADB support ...
+header __RCVD_IN_IADB           eval:check_rbl('iadb-firsttrusted', 'iadb.isipp.com.')
+tflags __RCVD_IN_IADB           net nice
+reuse __RCVD_IN_IADB
+
+header RCVD_IN_IADB_VOUCHED     eval:check_rbl_sub('iadb-firsttrusted', '127.0.1.255')
+describe RCVD_IN_IADB_VOUCHED   ISIPP IADB lists as vouched-for sender
+tflags RCVD_IN_IADB_VOUCHED     net nice
+reuse RCVD_IN_IADB_VOUCHED
+
+# ---------------------------------------------------------------------------
+# Return Path Certified:
+# https://www.returnpath.net/internetserviceprovider/certification/
+# (replaces RCVD_IN_BSP_TRUSTED, RCVD_IN_BSP_OTHER, RCVD_IN_SSC_TRUSTED_COI)
+header RCVD_IN_RP_CERTIFIED     eval:check_rbl_txt('ssc-firsttrusted', 'sa-trusted.bondedsender.org.')
+describe RCVD_IN_RP_CERTIFIED   Sender in ReturnPath Certified - Contact cert-sa@returnpath.net
+tflags RCVD_IN_RP_CERTIFIED     net nice
+reuse RCVD_IN_RP_CERTIFIED
+
+# Return Path Safe:
+# https://www.returnpath.net/internetserviceprovider/certification/
+# (replaces HABEAS_ACCREDITED_COI, HABEAS_ACCREDITED_SOI, HABEAS_CHECKED)
+header RCVD_IN_RP_SAFE     eval:check_rbl_txt('ssc-firsttrusted','sa-accredit.habeas.com.')
+describe RCVD_IN_RP_SAFE   Sender in ReturnPath Safe - Contact safe-sa@returnpath.net
+tflags RCVD_IN_RP_SAFE     net nice
+reuse RCVD_IN_RP_SAFE
+
+# Return Path Reputation Network Blacklist (RNBL):
+# https://senderscore.org/blacklistlookup/
+header RCVD_IN_RP_RNBL         eval:check_rbl('rnbl-lastexternal','bl.score.senderscore.com.')
+describe RCVD_IN_RP_RNBL       Relay in RNBL, https://senderscore.org/blacklistlookup/
+tflags RCVD_IN_RP_RNBL         net
+reuse RCVD_IN_RP_RNBL
+
+endif
+
+#These are old and useless - The zones are no longer supported by SpamHaus 2018-12-12
+#ifplugin Mail::SpamAssassin::Plugin::AskDNS
+#
+#askdns   DKIMDOMAIN_IN_DWL  _DKIMDOMAIN_._vouch.dwl.spamhaus.org TXT /^([a-z]+ )*(transaction|list|all)( [a-z]+)*$/
+#tflags   DKIMDOMAIN_IN_DWL  net nice
+#describe DKIMDOMAIN_IN_DWL  Signing domain listed in Spamhaus DWL
+#reuse    DKIMDOMAIN_IN_DWL
+#
+#askdns   __DKIMDOMAIN_IN_DWL_ANY  _DKIMDOMAIN_._vouch.dwl.spamhaus.org TXT
+#tflags   __DKIMDOMAIN_IN_DWL_ANY  net nice
+#describe __DKIMDOMAIN_IN_DWL_ANY  Any TXT response received from a Spamhaus DWL
+#reuse    __DKIMDOMAIN_IN_DWL_ANY
+#
+#meta     DKIMDOMAIN_IN_DWL_UNKNOWN  __DKIMDOMAIN_IN_DWL_ANY && !DKIMDOMAIN_IN_DWL
+#tflags   DKIMDOMAIN_IN_DWL_UNKNOWN  net nice
+#describe DKIMDOMAIN_IN_DWL_UNKNOWN  Unrecognized response from Spamhaus DWL
+#
+#endif
diff --git a/sa-updates/20_drugs.cf b/sa-updates/20_drugs.cf
new file mode 100644 (file)
index 0000000..5b8dd60
--- /dev/null
@@ -0,0 +1,277 @@
+# SpamAssassin rules file: drug tests
+#
+# This ruleset is intended to detect common "pill spam" however, it is not
+# appropriate for all environments. It may not be appropriate for a medical or
+# pharmaceutical environment. If in doubt, adjust the scores of all the rules
+# to 0.01 and see if they fire off on your daily nonspam.
+#
+# Please don't modify this file as your changes will be overwritten with the
+# next update. Use /etc/mail/spamassassin/local.cf instead. See 'perldoc
+# Mail::SpamAssassin::Conf' for details.
+#
+# 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 3.004005
+
+###########################################################################
+# header rules
+# (only use sufficiently long drug name to make name unique)
+
+header SUBJECT_DRUG_GAP_C      Subject =~ /\bc(?!ialis(?:t|\xc3\xa9|\xe9))[\sc]{0,2}i[\si]{0,2}a[\sa]{0,2}l[\sl]{0,2}i[\si]{0,2}s{1,3}\b/i
+describe SUBJECT_DRUG_GAP_C    Subject contains a gappy version of 'cialis'
+
+header SUBJECT_DRUG_GAP_L      Subject =~ /l.{0,2}e.{0,2}v.{0,2}i.{0,2}t.{0,2}r.{0,2}a/i
+describe SUBJECT_DRUG_GAP_L    Subject contains a gappy version of 'levitra'
+
+
+header SUBJECT_DRUG_GAP_S      Subject =~ /\bs.{0,1}o.{0,1}m.{0,1}a\b/i
+describe SUBJECT_DRUG_GAP_S    Subject contains a gappy version of 'soma'
+
+# Bug 5396 - Hits visa and random finnish words
+#header SUBJECT_DRUG_GAP_VA    Subject =~ /v.{0,2}a.{0,2}l.{0,2}i.{0,2}u.{0,2}m/i
+#describe SUBJECT_DRUG_GAP_VA  Subject contains a gappy version of 'valium'
+
+
+header SUBJECT_DRUG_GAP_X      Subject =~ /x.{0,2}a.{0,2}n.{0,2}a.{0,2}x/i
+describe SUBJECT_DRUG_GAP_X    Subject contains a gappy version of 'xanax'
+
+###########################################################################
+# body rules
+
+body DRUG_DOSAGE               m{[\d\.]+ *\$? *(?:[\\/]|per) *d.?o.?s.?e}i
+describe DRUG_DOSAGE           Talks about price per dose
+
+# jm: keep this case-sensitive, otherwise it FP's
+body DRUG_ED_CAPS              /\b(?:CIALIS|LEVITRA|VIAGRA)/
+describe DRUG_ED_CAPS          Mentions an E.D. drug
+
+
+body DRUG_ED_SILD              /\bsildenafil\b/i
+describe DRUG_ED_SILD          Talks about an E.D. drug using its chemical name
+
+body DRUG_ED_GENERIC           /\bGeneric Viagra\b/
+describe DRUG_ED_GENERIC       Mentions Generic Viagra
+
+body DRUG_ED_ONLINE            /\bviagra .{0,25}(?:express|online|overnight)/i
+describe DRUG_ED_ONLINE                Fast Viagra Delivery 
+
+body ONLINE_PHARMACY           /\bonline pharmacy|\b(?:drugs|medications) online/i
+describe ONLINE_PHARMACY       Online Pharmacy
+
+# Updated bug 6448
+body NO_PRESCRIPTION           /N[o0].{1,10}P(?:er|re)scr[i1]pt[i1][o0]n.{1,10}(?:n[e3][e3]d[e3]d|requ[1i]re|n[e3]c[e3]ssary)/i
+describe NO_PRESCRIPTION       No prescription needed
+
+# too easy
+body VIA_GAP_GRA                /\bvia.gra\b/i
+describe VIA_GAP_GRA            Attempts to disguise the word 'viagra'
+
+########################################################################
+# male sexual dysfunction drugs
+#
+# This section is undergoing improvements and I'm trying to track down a 
+# FP case that seems to mostly affect technical emails.
+# However, all of the test cases so far fail to match when retested.
+# note: The regex /v.i.a.g.r.a/ was intentionally not used
+# due to potential false positive cases with PGP signatures
+# and other base-64ish stuff.
+# instead other patterns are used catch non alphanumeric gapping patterns
+# note: \W = "non word character"
+
+# Note: many of the drugs named in here are brand-names and are trademarked.
+# All trademarks are property of the respective owners.
+#current best char substitutions
+# i - [i1!|l\xEC-\xEF]
+# a - [a4\xE0-\xE6@]  
+# e - [e3\xE8-\xEB]
+# o - [o0\xF2-\xF6]
+# u - [u\xB5\xF9-\xFC] 
+
+# v - (?:\\\/|V)
+# l - [l!|1]
+#
+# Also see 25_replace.cf
+#
+# If you're adding accented-character exclusions, include the HTML entity tags
+# as well to cover the case where they appear in plain-text body parts.
+#
+#plain Viagra and Cialis (used in obfu detection)
+body __DRUGS_ERECTILE_V        /\bViagra\b/i
+body __DRUGS_ERECTILE_C        /\bCialis(?!\xc3\xa9|\xe9)\b/i
+body __DRUGS_ERECTILE_L        /\bLevitra\b/i
+#  obfu/plain and mis-spelled Viagra variants
+body __DRUGS_ERECTILE1 /(?:\b|\s)[_\W]{0,3}(?:\\\/|V)[_\W]{0,3}[ij1!|l\xEC\xED\xEE\xEF][_\W]{0,3}[a40\xE0-\xE6@][_\W]{0,3}[xyz]?[gj][_\W]{0,3}r[_\W]{0,3}[a40\xE0-\xE6@][_\W]{0,3}x?[_\W]{0,3}(?:\b|\s)/i
+body __DRUGS_ERECTILE2 /\bV(?:agira|igara|iaggra|iaegra)\b/i
+#  cialis variants (spelling correct now)
+# note: the rather strange pre-amble is to avoid FPs on french words containing high-ascii chars surrounding
+# "cialis".
+# try to avoid FPs on "specialist" and FR "spécialisé"
+body __DRUGS_ERECTILE3 /(?:\A|[\s\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f])[_\W]{0,3}(?!cialis(?:t|\xc3\xa9|\xe9|\&\#xe9\;|\&eacute\;)|c i a l i s (?:t|\xc3\xa9|\xe9|\&\#xe9\;|\&eacute\;))C[_\W]{0,3}[ij1!|l\xEC\xED\xEE\xEF][_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}l?[l!|1][_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}s[_\W]{0,3}(?:\b|\s)/i
+body __DRUGS_ERECTILE4 /\bC(?:alis|ilias|ilais)\b/i
+# generic names
+#sildenafil citrate
+body __DRUGS_ERECTILE5 /\b_{0,3}s[_\W]?[i1!|l\xEC-\xEF][_\W]?l[_\W]?d[_\W]?[e3\xE8-\xEB][_\W]?n[_\W]?[a4\xE0-\xE6@][_\W]?f[_\W]?[i1!|l\xEC-\xEF][_\W]?l c[_\W]?[i1!|l\xEC-\xEF][_\W]?t[_\W]?r[_\W]?[a4\xE0-\xE6@][_\W]?t[_\W]?[e3\xE8-\xEB]_{0,3}(?:\b|\s)/i
+#Levitra
+body __DRUGS_ERECTILE6 /\b_{0,3}L[_\W]?[e3\xE8-\xEB][_\W]?(?:\\\/|V)[_\W]?[i1!|l\xEC-\xEF][_\W]?t[_\W]?r[_\W]?[a4\xE0-\xE6@][_\W]?(?:\b|\s)/i
+#tadalafil
+body __DRUGS_ERECTILE8 /\b_{0,3}T[_\W]?[a4\xE0-\xE6@][_\W]?d[_\W]?[a4\xE0-\xE6@][_\W]?l[_\W]?[a4\xE0-\xE6@][_\W]?f[_\W]?[i1!|l\xEC-\xEF][_\W]?l_{0,3}\b/i
+# gapped/obfu viagra variants using funky html-style character codes
+rawbody __DRUGS_ERECTILE10   /\b_{0,3}V[_\W]?(?:i|\&iuml\;)[_\W]?(?:a|\&agrave|\&aring)\;?[_\W]?g[_\W]?r[_\W]?(?:a|\&agrave|\&aring)\b/i
+#apcalis - a generic of cialis
+body __DRUGS_ERECTILE11                /(?:\b|\s)_{0,3}[a4\xE0-\xE6@][_\W]{0,3}p[_\W]{0,3}c[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}[l!|1][_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}s_{0,3}\b/i
+meta DRUGS_ERECTILE (__DRUGS_ERECTILE1 || __DRUGS_ERECTILE2 || __DRUGS_ERECTILE3 || __DRUGS_ERECTILE4 || __DRUGS_ERECTILE5 || __DRUGS_ERECTILE6 || __DRUGS_ERECTILE8 || __DRUGS_ERECTILE10 || __DRUGS_ERECTILE11 )
+describe DRUGS_ERECTILE        Refers to an erectile drug
+meta DRUGS_ERECTILE_OBFU ( (__DRUGS_ERECTILE1 &&!__DRUGS_ERECTILE_V) || (__DRUGS_ERECTILE3 && !__DRUGS_ERECTILE_C) ||__DRUGS_ERECTILE2 || (__DRUGS_ERECTILE10 &&!__DRUGS_ERECTILE_V) || (__DRUGS_ERECTILE6 &&!__DRUGS_ERECTILE_L))
+describe DRUGS_ERECTILE_OBFU   Obfuscated reference to an erectile drug
+
+
+#diet
+body __DRUGS_DIET_PHEN /\bphentermine\b/i
+#phentermine
+body __DRUGS_DIET1     /(?:\b|\s)[_\W]{0,3}p[_\W]{0,3}h[_\W]{0,3}[e3\xE8-\xEB][_\W]{0,3}n[_\W]{0,3}t[_\W]{0,3}[e3\xE8-\xEB][_\W]{0,3}r[_\W]{0,3}m[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}n[_\W]{0,3}[e3\xE8-\xEB][_\W]{0,3}(?:\b|\s)/i
+#ionamin
+body __DRUGS_DIET2     /(?:\b|\s)_{0,3}[i1!|l\xEC-\xEF][_\W]?o[_\W]?n[_\W]?[a4\xE0-\xE6@][_\W]?m[_\W]?[i1!|l\xEC-\xEF][_\W]?n_{0,3}\b/i
+#bontril
+body __DRUGS_DIET3     /\bbontril\b/i
+#phendimetrazine
+body __DRUGS_DIET4     /\bphendimetrazine\b/i
+#diethylpropion, generic of Tenuate, uncommon in spam
+body __DRUGS_DIET5     /\bdiethylpropion\b/i
+#Meridia
+body __DRUGS_DIET6     /(?:\b|\s)[_\W]{0,3}M[_\W]{0,3}[e3\xE8-\xEB][_\W]{0,3}r[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}d[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}(?:\b|\s)/i
+#tenuate
+body __DRUGS_DIET7     /\b_{0,3}t[_\W]?[e3\xE8-\xEB][_\W]?n[_\W]?u[_\W]?a[_\W]?t[_\W]?[e3\xE8-\xEB]_{0,3}(?:\b|\s)/i
+#didrex
+body __DRUGS_DIET8     /\b_{0,3}d[_\W]?[i1!|l\xEC-\xEF][_\W]?d[_\W]?r[_\W][e3\xE8-\xEB[_\W]?xx?_{0,3}\b/i
+#adipex
+body __DRUGS_DIET9     /\b_{0,3}a[_\W]?d[_\W]?[i1!|l\xEC-\xEF][_\W]?p[_\W]?[e3\xE8-\xEB][_\W]?x_{0,3}\b/i
+#xenical
+body __DRUGS_DIET10    /\b_{0,3}x?x[_\W]?[e3\xE8-\xEB][_\W]?n[_\W]?[i1!|l\xEC-\xEF][_\W]?c[_\W]?[a4\xE0-\xE6@][_\W]?l_{0,3}\b/i
+meta DRUGS_DIET (__DRUGS_DIET1 || __DRUGS_DIET2 || __DRUGS_DIET3 || __DRUGS_DIET4 ||__DRUGS_DIET5 ||__DRUGS_DIET6 ||__DRUGS_DIET7 ||__DRUGS_DIET8 || __DRUGS_DIET9 || __DRUGS_DIET10 )
+describe DRUGS_DIET    Refers to a diet drug
+meta DRUGS_DIET_OBFU (__DRUGS_DIET1 && !__DRUGS_DIET_PHEN)
+describe DRUGS_DIET_OBFU       Obfuscated reference to a diet drug     
+
+# pain relief drugs
+body __DRUGS_PAIN_VICO /vicodin/i
+body __DRUGS_PAIN_VIOXX        /vioxx/i
+body __DRUGS_PAIN_FIO  /fioricet/i
+body __DRUGS_PAIN1     /\b_{0,3}h[_\W]?y[_\W]?d[_\W]?r[_\W]?[o0\xF2-\xF6][_\W]?c[_\W]?[o0\xF2-\xF6][_\W]?d[_\W]?[o0\xF2-\xF6][_\W]?n[_\W]?e_{0,3}\b/i
+body __DRUGS_PAIN2     /\b_{0,3}c[o0\xF2-\xF6]deine_{0,3}\b/i
+#ultram
+body __DRUGS_PAIN3     /(?:\b|\s)[_\W]{0,3}[u\xB5\xF9-\xFC][_\W]{0,3}l[_\W]{0,3}t[_\W]{0,3}r[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}m_{0,3}\b/i
+#vicodin
+body __DRUGS_PAIN4     /(?:\b|\s)[_\W]{0,3}(?:\\\/|V)[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}c[_\W]{0,3}[o0\xF2-\xF6][_\W]{0,3}d[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}ns?[_\W]{0,3}(?:\b|\s)/i
+#tramadol
+body __DRUGS_PAIN5     /\b_{0,3}t[_\W]?r[_\W]?[a4\xE0-\xE6@][_\W]?m[_\W]?[a4\xE0-\xE6@][_\W]?d[_\W]?[o0\xF2-\xF6][_\W]?[l!|1]_{0,3}\b/i
+# ultracet, uncommon in spam.
+body __DRUGS_PAIN6     /\b_{0,3}u[_\W]?l[_\W]?t[_\W]?r[_\W]?a[_\W]?c[_\W]?e[_\W]?t_{0,3}\b/i
+#fioricet 
+body __DRUGS_PAIN7     /\b_{0,3}f[_\W]?[i1!|l\xEC-\xEF][_\W]?[o0\xF2-\xF6][_\W]?r[_\W]?[i1!|l\xEC-\xEF][_\W]?c[_\W]?[e3\xE8-\xEB][_\W]?[t7]_{0,3}\b/i
+#celebrex
+body __DRUGS_PAIN8     /\b_{0,3}c[_\W]?[e3\xE8-\xEB][_\W]?l[_\W]?[e3\xE8-\xEB][_\W]?b[_\W]?r[_\W]?[e3\xE8-\xEB][_\W]?x_{0,3}\b/i
+#imitrex
+body __DRUGS_PAIN9     /(?:\b|\s)_{0,3}[i1!|l\xEC-\xEF]m[i1!|l\xEC-\xEF]tr[e3\xE8-\xEB]x_{0,3}\b/i
+#vioxx 
+body __DRUGS_PAIN10    /(?:\b|\s)[_\W]{0,3}(?:\\\/|V)[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}[o0\xF2-\xF6][_\W]{0,3}x[_\W]{0,3}xx?_{0,3}\b/i
+#zebutal, uncommon in spam.
+body __DRUGS_PAIN11    /\bzebutal\b/i
+#esgic plus, uncommon in spam.
+body __DRUGS_PAIN12    /\besgic plus\b/i
+#Darvon - a prescription narcotic
+body __DRUGS_PAIN13    /\bD[_\W]?[a4\xE0-\xE6@][_\W]?r[_\W]?v[_\W]?[o0\xF2-\xF6][_\W]?n\b/i
+body __DRUGS_PAIN14  /N[o0\xF2-\xF6]rc[o0\xF2-\xF6]/i
+meta __DRUGS_PAIN (__DRUGS_PAIN1 || __DRUGS_PAIN2 || __DRUGS_PAIN3 || __DRUGS_PAIN4 ||__DRUGS_PAIN5 ||__DRUGS_PAIN6 ||__DRUGS_PAIN7 ||__DRUGS_PAIN8 || __DRUGS_PAIN9 || __DRUGS_PAIN10|| __DRUGS_PAIN11 || __DRUGS_PAIN12 || __DRUGS_PAIN13 ||__DRUGS_PAIN14)
+#sleep aids
+#ativan and lorazepam already under anxiety
+#Ambien, brand of zolpidem tartrate
+body __DRUGS_SLEEP1    /(?:\b|\s)[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}m[_\W]{0,3}b[_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}[e3\xE8-\xEB][_\W]{0,3}n[_\W]{0,3}(?:\b|\s)/i
+#sonata, brand of zaleplon
+body __DRUGS_SLEEP2    /(?:\b|\s)[_\W]{0,3}S[_\W]{0,3}[o0\xF2-\xF6][_\W]{0,3}n[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}t[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}(?:\b|\s)/i
+#Restoril, brand of temazepam, uncommon in spam
+body __DRUGS_SLEEP3    /\b_{0,3}R[_\W]?[e3\xE8-\xEB][_\W]?s[_\W]?t[_\W]?[o0\xF2-\xF6][_\W]?r[_\W]?i[_\W]?l_{0,3}\b/i
+#Halcion, brand of triazolam
+body __DRUGS_SLEEP4    /\b_{0,3}H[_\W]?[a4\xE0-\xE6@][_\W]?l[_\W]?c[_\W]?i[_\W]?[o0\xF2-\xF6][_\W]?n_{0,3}\b/i
+
+meta __DRUGS_SLEEP (__DRUGS_SLEEP1 || __DRUGS_SLEEP2 || __DRUGS_SLEEP3 ||__DRUGS_SLEEP4)
+
+#muscle relaxants
+#soma - removed due to Bug 7612
+#body __DRUGS_MUSCLE1  /(?:\b|\s)[_\W]{0,3}s[_\W]{0,3}[o0\xF2-\xF6][_\W]{0,3}m[_\W]{0,3}[a4\xE0-\xE3\xE5\xE6@][_\W]{0,3}(?:\b|\s)/i
+#cyclobenzaprine
+body __DRUGS_MUSCLE2   /\b_{0,3}cycl[o0\xF2-\xF6]b[e3\xE8-\xEB]nz[a4\xE0-\xE6@]pr[i1!|l\xEC-\xEF]n[e3\xE8-\xEB]_{0,3}(?:\b|\s)/i
+#flexeril
+body __DRUGS_MUSCLE3   /\b_{0,3}f[_\W]?l[_\W]?[e3\xE8-\xEB][_\W]?x[_\W]?[e3\xE8-\xEB][_\W]?r[_\W]?[i1!|l\xEC-\xEF]_{0,3}[_\W]?l_{0,3}\b/i
+#zanaflex
+body __DRUGS_MUSCLE4   /\b_{0,3}z[_\W]?a[_\W]?n[_\W]?a[_\W]?f[_\W]?l[_\W]?e[_\W]?x_{0,3}\b/i
+#skelaxin
+body __DRUGS_MUSCLE5   /\bskelaxin\b/i
+meta DRUGS_MUSCLE (__DRUGS_MUSCLE2 || __DRUGS_MUSCLE3 || __DRUGS_MUSCLE4 ||__DRUGS_MUSCLE5 )
+describe DRUGS_MUSCLE  Refers to a muscle relaxant
+#anti-anxiety
+#these two rules are used to differentiate between obfu and non-obfu spellings
+body __DRUGS_ANXIETY_XAN       /xan[ae]x/i
+body __DRUGS_ANXIETY_VAL       /valium/i
+#xanax - note: second a sometimes done as e.
+body __DRUGS_ANXIETY1  /(?:\b|\s)[_\W]{0,3}x?x[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}n[_\W]{0,3}[ea4\xE1\xE2\xE3@][_\W]{0,3}xx?_{0,3}\b/i
+#alprazolam
+body __DRUGS_ANXIETY2  /\bAlprazolam\b/i
+#valium
+body __DRUGS_ANXIETY3  /(?:\b|\s)[_\W]{0,3}(?:\\\/|V)[_\W]{0,3}[a4\xE0-\xE6@][_\W]{0,3}[l|][_\W]{0,3}[i1!|l\xEC-\xEF][_\W]{0,3}[u\xB5\xF9-\xFC][_\W]{0,3}m\b/i
+#diazepam, generic of valium
+body __DRUGS_ANXIETY4  /\b_{0,3}D[_\W]?[i1!|l\xEC-\xEF][_\W]?[a4\xE0-\xE6@][_\W]?z[_\W]?[ea3\xE9\xEA\xEB][_\W]?p[_\W]?[a4\xE0-\xE6@][_\W]?m_{0,3}\b/i
+#ativan
+body __DRUGS_ANXIETY5  /(?:\b|\s)[a4\xE0-\xE6@][_\W]?t[_\W]?[i1!|l\xEC-\xEF][_\W]?v[_\W]?[a4\xE0-\xE6@][_\W]?n_{0,3}\b/i
+#lorazepam - generic of ativan, uncommon in spam
+body __DRUGS_ANXIETY6  /\b_{0,3}l[_\W]?[o0\xF2-\xF6][_\W]?r[_\W]?[a4\xE0-\xE6@][_\W]?z[_\W]?[e3\xE8-\xEB][_\W]?p[_\W]?[a4\xE0-\xE6@][_\W]?m_{0,3}\b/i
+#clonazepam, generic.
+body __DRUGS_ANXIETY7  /\b_{0,3}c[_\W]?l[_\W]?[o0\xF2-\xF6][_\W]?n[_\W]?[a4\xE0-\xE6@][_\W]?z[_\W]?e[_\W]?p[_\W]?[a4\xE0-\xE6@][_\W]?m\b/i
+#klonopin, brand of clonazepam, uncommon in spam
+body __DRUGS_ANXIETY8  /\bklonopin\b/i
+#rivotril, brand of clonazepam, uncommon in spam
+body __DRUGS_ANXIETY9  /\brivotril\b/i
+meta DRUGS_ANXIETY (__DRUGS_ANXIETY1 || __DRUGS_ANXIETY2 || __DRUGS_ANXIETY3 || __DRUGS_ANXIETY4 ||__DRUGS_ANXIETY5 ||__DRUGS_ANXIETY6 ||__DRUGS_ANXIETY7 ||__DRUGS_ANXIETY8 || __DRUGS_ANXIETY9 )
+describe DRUGS_ANXIETY         Refers to an anxiety control drug
+meta DRUGS_ANXIETY_OBFU ( (__DRUGS_ANXIETY1 &&! __DRUGS_ANXIETY_XAN) || (__DRUGS_ANXIETY3 && !__DRUGS_ANXIETY_VAL))
+describe DRUGS_ANXIETY_OBFU    Obfuscated reference to an anxiety control drug
+
+body DRUGS_SMEAR1              /(?:Viagra|Valium|Xanax|Soma|Cialis){2}/i
+describe DRUGS_SMEAR1  Two or more drugs crammed together into one word
+
+#search for "weird" combinations that are unlikely to 
+#be prescribed together for a single event, thus unlikely to be
+#mentioned in the same email, except an online pharmacy ad.
+meta DRUGS_ANXIETY_EREC (DRUGS_ERECTILE && DRUGS_ANXIETY)
+describe DRUGS_ANXIETY_EREC    Refers to both an erectile and an anxiety drug
+meta DRUGS_SLEEP_EREC  (DRUGS_ERECTILE && __DRUGS_SLEEP)
+describe DRUGS_SLEEP_EREC      Refers to both an erectile and a sleep aid drug
+
+# note: some 3 item combos are "normal" ie: a patient might legitimately
+# be prescribed depression, anxiety and sleep aid drugs all at once.
+# however, I know of no "normal" 4-item combinations.
+meta DRUGS_MANYKINDS   (DRUGS_ERECTILE + DRUGS_DIET + __DRUGS_PAIN + __DRUGS_SLEEP + DRUGS_MUSCLE + DRUGS_ANXIETY > 3)
+describe DRUGS_MANYKINDS       Refers to at least four kinds of drugs
+
+########################################################################
+
diff --git a/sa-updates/20_dynrdns.cf b/sa-updates/20_dynrdns.cf
new file mode 100644 (file)
index 0000000..9cb60f9
--- /dev/null
@@ -0,0 +1,213 @@
+# SpamAssassin rules file: dynamic-ish rDNS tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# We should write a new ruletype for these, to save typing.
+#
+# <@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 3.004005
+
+# ---------------------------------------------------------------------------
+
+# Note the '^[^\]]+ ' stanza: this ensures that we only match spamware
+# connecting to a internal relay; if a mail came from a dynamic addr but
+# was relayed through their smarthost, that's fine.
+
+# See bug #5856, all references of "trusted" were changed to "external"
+
+# All of the RDNS_DYNAMIC rules require that the last external relay
+# did not use SMTP authentication.  These rules should not be firing on
+# friendlies!
+header __LAST_UNTRUSTED_RELAY_NO_AUTH X-Spam-Relays-Untrusted =~ /^[^\]]+ auth= /
+header __LAST_EXTERNAL_RELAY_NO_AUTH X-Spam-Relays-External =~ /^[^\]]+ auth= /
+
+# dhcp024-210-034-053.columbus.rr.com [24.210.34.53]
+# c-66-176-16-108.se.client2.attbi.com [66.176.16.108]
+# c-67-168-174-61.client.comcast.net [67.168.174.61]
+# NNN-NNN-NNN-NNN.fibertel.com.ar
+# NN.NN.NNN.NNN.ap.yournet.ne.jp
+# NN.NNN.NN-NN.rev.gaoland.net
+# vaise-1-82-67-44-166.fbx.proxad.net [82.67.44.166]
+# lns-vlq-11-62-147-186-141.adsl.proxad.net [62.147.186.141]
+# dsl-200-95-109-107.prod-infinitum.com.mx [200.95.109.107]
+# port-212-202-77-203.reverse.qsc.de [212.202.77.203]
+# pool-151-203-32-68.bos.east.verizon.net [151.203.32.68]
+# c-67-164-133-216.client.comcast.net [67.164.133.216]
+# 200-171-228-6.customer.telesp.net.br [200.171.228.6]
+# modemcable090.28-201-24.mc.videotron.ca [24.201.28.90]
+# 80-218-47-160.dclient.hispeed.ch [80.218.47.160]
+# cdm-68-226-239-16.laft.cox-internet.com [68.226.239.16]
+# d53-64-35-171.nap.wideopenwest.com [64.53.171.35]
+# 74.67-201-80.adsl.skynet.be [80.201.67.74]
+# 12-218-225-223.client.mchsi.com [12.218.225.223]
+# pptp-81-30-186-139.ufanet.ru [81.30.186.139]
+# (require an alpha first, as legit HELO'ing-as-IP-address is hit otherwise)
+header __RDNS_DYNAMIC_IPADDR X-Spam-Relays-External =~ /^[^\]]+ rdns=(?![^\s\]]+[-.]static[-.])\S*\d+[^\d\s]\d+[^\d\s]\d+[^\d\s]\d+\S*\.\S+\.\S/i
+describe __RDNS_DYNAMIC_IPADDR Relay HELO'd using suspicious hostname (IP addr 1)
+
+# dhcp024-210-034-053.columbus.rr.com [24.210.34.53]
+# catv-506237d8.miskcatv.broadband.hu [80.98.55.216]
+# node-c-8b22.a2000.nl
+# cm89.omega139.maxonline.com.sg
+# cm114.gamma208.maxonline.com.sg
+header __RDNS_DYNAMIC_DHCP X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*(?:cm|catv|docsis|cable|dsl|dhcp|cpe|node)\S*\d+[^\d\s]+\d/i
+describe __RDNS_DYNAMIC_DHCP Relay HELO'd using suspicious hostname (DHCP)
+
+# fia83-8.dsl.hccnet.nl [62.251.8.83]
+# fia160-115-100.dsl.hccnet.nl [80.100.115.160]
+header __RDNS_DYNAMIC_HCC   X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*\d+[^\d\s]+\d+\S*\.(?:docsis|cable|dsl|adsl|dhcp|cpe)\./i
+describe __RDNS_DYNAMIC_HCC Relay HELO'd using suspicious hostname (HCC)
+
+# h0002a5d76857.ne.client2.attbi.com [65.96.12.59]
+header __RDNS_DYNAMIC_ATTBI  X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+\d+\S+\.client2\.attbi\.com/i
+describe __RDNS_DYNAMIC_ATTBI Relay HELO'd using suspicious hostname (ATTBI.com)
+
+# CPE0004e2372711-CM000a73666706.cpe.net.cable.rogers.com
+# CPE00e0184f0eba-CM014490118324.cpe.net.cable.rogers.com [24.43.109.140]
+header __RDNS_DYNAMIC_ROGERS X-Spam-Relays-External =~ /^[^\]]+ rdns=CPE\d+\S+\.rogers\.com/i
+describe __RDNS_DYNAMIC_ROGERS Relay HELO'd using suspicious hostname (Rogers)
+
+# ca-morpark-cuda1-zone7-b-159.vnnyca.adelphia.net[67.23.129.159]
+# tn-greenvillecuda1cable7a-36.atlaga.adelphia.net [68.171.113.36]
+# ky-richmond2a-123.rhmdky.adelphia.net [68.71.36.123]
+# ny-lackawannacadent4-chtwga3a-b-117.buf.adelphia.net [68.71.205.117]
+# fl-edel-u2-c3c-233.pbc.adelphia.net [68.64.89.233]
+header __RDNS_DYNAMIC_ADELPHIA X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z]{2}-\S+-\d{1,3}\.[a-z]{3,8}\.adelphia\.net/i
+describe __RDNS_DYNAMIC_ADELPHIA Relay HELO'd using suspicious hostname (Adelphia)
+
+# pD9E4F89F.dip.t-dialin.net [217.228.248.159]
+header __RDNS_DYNAMIC_DIALIN X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z][A-F0-9]+\.dip\./
+describe __RDNS_DYNAMIC_DIALIN Relay HELO'd using suspicious hostname (T-Dialin)
+
+# 0xd5aaf40b.dhcp.kabelnettet.dk
+# 0x50a46949.virnxx11.adsl-dhcp.tele.dk
+header __RDNS_DYNAMIC_HEXIP X-Spam-Relays-External =~ /^[^\]]+ rdns=0x[a-f0-9]{8}\./
+describe __RDNS_DYNAMIC_HEXIP Relay HELO'd using suspicious hostname (Hex IP)
+
+# 118.Red-80-35-201.pooles.rima-tde.net
+header __RDNS_DYNAMIC_SPLIT_IP X-Spam-Relays-External =~ /^[^\]]+ rdns=\d+\.\S+\d+[^\d\s]\d+[^\d\s]\d+[^\d\s]/
+describe __RDNS_DYNAMIC_SPLIT_IP Relay HELO'd using suspicious hostname (Split IP)
+
+# YahooBB219173000034.bbtec.net [219.173.0.34]
+header __RDNS_DYNAMIC_YAHOOBB X-Spam-Relays-External =~ /^[^\]]+ rdns=YahooBB/i
+describe __RDNS_DYNAMIC_YAHOOBB Relay HELO'd using suspicious hostname (YahooBB)
+
+# ool-18be1aaf.dyn.optonline.net [24.190.26.175]
+header __RDNS_DYNAMIC_OOL X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+\.dyn\.optonline\.net/
+describe __RDNS_DYNAMIC_OOL Relay HELO'd using suspicious hostname (OptOnline)
+
+# wiley-170-10231.roadrunner.nf.net [205.251.210.249]
+header __RDNS_DYNAMIC_RR2   X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z]+-\d{1,3}-\d{1,5}\.roadrunner/i
+describe __RDNS_DYNAMIC_RR2 Relay HELO'd using suspicious hostname (RR 2)
+
+# pcp04024417pcs.toresd01.pa.comcast.net [68.86.206.126]
+# bgp542174bgs.ewndsr01.nj.comcast.net[68.38.144.91]
+# Computer-udp135632uds.union01.nj.comcast.net [68.39.99.32]
+header __RDNS_DYNAMIC_COMCAST X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z-]+\d+[a-z]{3}\.[a-z0-9]+\...\.comcast/i
+describe __RDNS_DYNAMIC_COMCAST Relay HELO'd using suspicious hostname (Comcast)
+
+# h234n2fls32o895.telia.com [217.208.73.234]
+# h53n2fls32o828.telia.com
+# h116n2fls32o1111.telia.com
+# h29n1fls306o1003.telia.com
+header __RDNS_DYNAMIC_TELIA X-Spam-Relays-External =~ /^[^\]]+ rdns=h\d+n\d+fls\S+\.telia\.com/i
+describe __RDNS_DYNAMIC_TELIA Relay HELO'd using suspicious hostname (Telia)
+
+# CM-vina5-168-207.cm.vtr.net [200.104.168.207]
+# CM-anto1-98-153.cm.vtr.net [200.104.98.153]
+header __RDNS_DYNAMIC_VTR X-Spam-Relays-External =~ /^[^\]]+ rdns=cm-[a-z]+\d+-\d+-\d+\.cm\.vtr/i
+describe __RDNS_DYNAMIC_VTR Relay HELO'd using suspicious hostname (VTR)
+
+# ec9z5l.cm.chello.no
+header __RDNS_DYNAMIC_CHELLO_NO  X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+\.cm\.chello\.no/i
+describe __RDNS_DYNAMIC_CHELLO_NO Relay HELO'd using suspicious hostname (Chello.no)
+
+# g225174.upc-g.chello.nl
+# a151145.upc-a.chello.nl
+# a96134.upc-a.chello.nl
+header __RDNS_DYNAMIC_CHELLO_NL  X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z]\d+\.upc-[a-z]\.chello\.nl/i
+describe __RDNS_DYNAMIC_CHELLO_NL Relay HELO'd using suspicious hostname (Chello.nl)
+
+# MG001182.user.veloxzone.com.br
+# ba199058073.user.veloxzone.com.br
+header __RDNS_DYNAMIC_VELOX  X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z]{2}\d+\.user\.veloxzone\./i
+describe __RDNS_DYNAMIC_VELOX Relay HELO'd using suspicious hostname (Veloxzone)
+
+# public4-seve6-5-cust173.lond.broadband.ntl.com
+# spr1-bolt5-5-0-cust9.manc.broadband.ntl.com
+# spc1-lewi4-6-0-cust190.lond.broadband.ntl.com
+header __RDNS_DYNAMIC_NTL  X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+\d+-\d+-cust\d+\.[a-z]{4,6}\.broadband\.ntl\.com/i
+describe __RDNS_DYNAMIC_NTL Relay HELO'd using suspicious hostname (NTL)
+
+# (I'm quite sure these may be a good spamsign in future)
+# nwblwi-nrp3-l10-a671.nwblwi.tds.net
+header __RDNS_DYNAMIC_TDS X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+-[a-z]\d+\.[a-z]{6}\.tds\.net/i
+header __RDNS_DYNAMIC_VIRTUA  X-Spam-Relays-External =~ /^[^\]]+ rdns=\d+\.cps\./i
+
+# sp1-c700-131.spacelan.ne.jp
+header __RDNS_DYNAMIC_SPACELAN X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+-[a-z]\d+-\d+\./i
+
+# rDNS host-type indicators, as per
+# https://tools.ietf.org/id/draft-msullivan-dnsop-generic-naming-schemes-00.txt
+header __RDNS_INDICATOR_DYN   X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+[\-\.]dyn(?:amic)?[\-\.]/i
+
+# surprisingly large ham hitrate
+header __RDNS_INDICATOR_TYPE  X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+[\-\.](?:dial|modem|isdn|dov|\S?dsl|cable|wireless)[\-\.]/i
+
+# this hits a little ham, not too much though
+header __RDNS_INDICATOR_RES   X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+[\-\.](?:res|resnet|client)[\-\.]/i
+
+# these are non-standard, but common in the field; 100% spam correlation!
+# (I think that's a fluke)
+header __RDNS_INDICATOR_TYPE2 X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+[\-\.](?:docsis|dhcp|cpe|catv)[\-\.]/i
+
+# dsl.dynamic8510023760.ttnet.net.tr
+header __RDNS_DYNAMIC_TTNET   X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+[\-\.]dyn(?:amic)?\d/i
+
+# c221106.ppp.asahi-net.or.jp
+# i253064.ppp.asahi-net.or.jp
+# u035201.ppp.asahi-net.or.jp
+# w158034.ppp.asahi-net.or.jp
+header __RDNS_DYNAMIC_ASAHI   X-Spam-Relays-External =~ /^[^\]]+ rdns=[a-z][0-9]+\.ppp\.asahi-net\.or\.jp/i
+
+# exceptions (bug 5397):
+# exceptions: 66-220-155-151.mail-mail.facebook.com
+# exceptions: o167-89-97-77.outbound-mail.sendgrid.net (bug 7592)
+header  __RDNS_STATIC         X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*(?:fix|static|fixip|dedicated|mail\-mail|outbound-mail)/i
+
+# bug 5586:
+header __CGATE_RCVD       Received =~ /by \S+ \(CommuniGate Pro/
+# bug 5926:
+header __DOMINO_RCVD      Received =~ /by \S+ \(Lotus Domino /
+
+header __RDNS_NONE  X-Spam-Relays-External =~ /^[^\]]+ rdns= /
+
+###########################################################################
+
+meta RDNS_DYNAMIC   (__LAST_EXTERNAL_RELAY_NO_AUTH && !__RDNS_STATIC && (__RDNS_DYNAMIC_IPADDR || __RDNS_DYNAMIC_DHCP || __RDNS_DYNAMIC_HCC || __RDNS_DYNAMIC_ATTBI || __RDNS_DYNAMIC_ROGERS || __RDNS_DYNAMIC_ADELPHIA || __RDNS_DYNAMIC_DIALIN || __RDNS_DYNAMIC_HEXIP || __RDNS_DYNAMIC_SPLIT_IP || __RDNS_DYNAMIC_YAHOOBB || __RDNS_DYNAMIC_OOL || __RDNS_DYNAMIC_RR2   || __RDNS_DYNAMIC_COMCAST || __RDNS_DYNAMIC_TELIA || __RDNS_DYNAMIC_VTR || __RDNS_DYNAMIC_CHELLO_NO  || __RDNS_DYNAMIC_CHELLO_NL  || __RDNS_DYNAMIC_VELOX  || __RDNS_DYNAMIC_NTL  || __RDNS_DYNAMIC_TDS || __RDNS_DYNAMIC_VIRTUA || __RDNS_DYNAMIC_SPACELAN || __RDNS_INDICATOR_DYN || __RDNS_INDICATOR_RES || __RDNS_INDICATOR_TYPE2 || __RDNS_DYNAMIC_TTNET || __RDNS_DYNAMIC_ASAHI))
+describe RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS
+
+meta RDNS_NONE      (__RDNS_NONE && !__CGATE_RCVD && !__DOMINO_RCVD)
+describe RDNS_NONE  Delivered to internal network by a host with no rDNS
+
+
diff --git a/sa-updates/20_fake_helo_tests.cf b/sa-updates/20_fake_helo_tests.cf
new file mode 100644 (file)
index 0000000..00bcda2
--- /dev/null
@@ -0,0 +1,160 @@
+# SpamAssassin rules file: fake-HELO tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# We should write a new ruletype for these, to save typing.
+#
+# <@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 3.004005
+
+#---------------------------------------------------------------------------
+# Handle hosts that look like HELO_DYNAMIC hosts
+
+# cmr-208-124-139-194.cr.net.cable.rogers.com) [208.124.139.194]
+# cmr-208-97-119-114.cr.net.cable.rogers.com) [208.97.119.114]
+header __HELO_STATIC_ROGERS X-Spam-Relays-External =~ /^[^\]]+ helo=cmr-\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}\S+\.rogers\.com[^\]]+ auth= /i
+
+# o167-89-97-77.outbound-mail.sendgrid.net (bug 7592)
+header __HELO_STATIC_SENDGRID X-Spam-Relays-External =~ /^[^\]]+ helo=o\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}\.outbound-mail\.sendgrid\.net\s[^\]]+ auth= /i
+
+# 50-203-126-142-static.hfc.comcastbusiness.net
+header __HELO_STATIC_COMCAST X-Spam-Relays-External =~ /^[^\]]+ helo=\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}-static\.hfc\.comcastbusiness\.net\s[^\]]+ auth= /i
+
+describe HELO_STATIC_HOST Relay HELO'd using static hostname
+meta HELO_STATIC_HOST (__HELO_STATIC_ROGERS || __HELO_STATIC_SENDGRID || __HELO_STATIC_COMCAST)
+
+# ---------------------------------------------------------------------------
+
+# Suresh says: these will never be used as HELOs from real mail.com relays.
+# Just check the most recent handover; the connection to a internal host.
+# This way a legit sender can send to their MSA using that HELO (quite a few
+# MUAs will do that), but a spammer gets caught.  (List of domains comes from
+# the drop-down list on the Mail.com signup page.)
+#header FAKE_HELO_MAIL_COM_DOM  X-Spam-Relays-External =~ /^[^\]]+ helo=(?:\S+\.|)(?:(?:mail|email|iname|cheerful|consultant|europe|mindless|myself|post|techie|usa|writeme|2die4|artlover|bikerider|catlover|cliffhanger|cutey|doglover|gardener|hot-shot|inorbit|loveable|mad\.scientist|playful|poetic|popstar|saintly|seductive|soon|whoever|winning|witty|yours|africamail|arcticmail|asia|australiamail|europe|japan|samerica|usa|berlin|dublin|london|madrid|moscowmail|munich|nycmail|paris|rome|sanfranmail|singapore|tokyo|accountant|adexec|allergist|alumnidirector|archaeologist|chemist|clerk|columnist|comic|consultant|counsellor|deliveryman|diplomats|doctor|dr|engineer|execs|financier|geologist|graphic-designer|insurer|journalist|lawyer|legislator|lobbyist|minister|optician|pediatrician|presidency|priest|publicist|realtyagent|registerednurses|repairman|representative|rescueteam|scientist|sociologist|teacher|techietechnologist|umpire)\.com|(?:programmer|earthling|hairdresser)\.net|musician\.org) /i
+#describe FAKE_HELO_MAIL_COM_DOM Relay HELO'd with suspicious hostname (mail.com)
+
+
+# ---------------------------------------------------------------------------
+# Interesting new feature; spamware HELO'ing, from a dialup IP addr,
+# using that IP's rDNS entry.  We can catch this easily.  There aren't
+# many legit mailservers calling themselves
+# 'dhcp024-210-034-053.columbus.rr.com'. ;)
+#
+# Note the '^[^\]]+ ' stanza: this ensures that we only match spamware
+# connecting to a internal relay; if a mail came from a dynamic addr but
+# was relayed through their smarthost, that's fine.
+
+# See bug #5856, all references of trusted were changed to internal
+
+# dhcp024-210-034-053.columbus.rr.com [24.210.34.53]
+# c-66-176-16-108.se.client2.attbi.com [66.176.16.108]
+# c-67-168-174-61.client.comcast.net [67.168.174.61]
+# NNN-NNN-NNN-NNN.fibertel.com.ar
+# NN.NN.NNN.NNN.ap.yournet.ne.jp
+# NN.NNN.NN-NN.rev.gaoland.net
+# vaise-1-82-67-44-166.fbx.proxad.net [82.67.44.166]
+# lns-vlq-11-62-147-186-141.adsl.proxad.net [62.147.186.141]
+# dsl-200-95-109-107.prod-infinitum.com.mx [200.95.109.107]
+# port-212-202-77-203.reverse.qsc.de [212.202.77.203]
+# pool-151-203-32-68.bos.east.verizon.net [151.203.32.68]
+# c-67-164-133-216.client.comcast.net [67.164.133.216]
+# 200-171-228-6.customer.telesp.net.br [200.171.228.6]
+# modemcable090.28-201-24.mc.videotron.ca [24.201.28.90]
+# 80-218-47-160.dclient.hispeed.ch [80.218.47.160]
+# cdm-68-226-239-16.laft.cox-internet.com [68.226.239.16]
+# d53-64-35-171.nap.wideopenwest.com [64.53.171.35]
+# 74.67-201-80.adsl.skynet.be [80.201.67.74]
+# 12-218-225-223.client.mchsi.com [12.218.225.223]
+# (require an alpha first, as legit HELO'ing-as-IP-address is hit otherwise)
+header __HELO_DYNAMIC_IPADDR X-Spam-Relays-External =~ /^[^\]]+ helo=(?![^\s\]]+[-.]static[-.])[a-z]\S*\d+[^\d\s]\d+[^\d\s]\d+[^\d\s]\d+[^\d\s][^\.]*\.\S+\.\S+[^\]]+ auth= /i
+meta HELO_DYNAMIC_IPADDR (__HELO_DYNAMIC_IPADDR && !HELO_STATIC_HOST)
+describe HELO_DYNAMIC_IPADDR Relay HELO'd using suspicious hostname (IP addr 1)
+
+# dhcp024-210-034-053.columbus.rr.com [24.210.34.53]
+# catv-506237d8.miskcatv.broadband.hu [80.98.55.216]
+# node-c-8b22.a2000.nl
+# cm89.omega139.maxonline.com.sg
+# cm114.gamma208.maxonline.com.sg
+header __HELO_DYNAMIC_DHCP X-Spam-Relays-External =~ /^[^\]]+ helo=\S*(?:(?<!a)cm|catv|docsis|cable|dsl|dhcp|cpe|node)\S*\d+[^\d\s]+\d+[^\]]+ auth= /i
+meta HELO_DYNAMIC_DHCP (__HELO_DYNAMIC_DHCP && !HELO_STATIC_HOST)
+describe HELO_DYNAMIC_DHCP Relay HELO'd using suspicious hostname (DHCP)
+
+# fia83-8.dsl.hccnet.nl [62.251.8.83]
+# fia160-115-100.dsl.hccnet.nl [80.100.115.160]
+header __HELO_DYNAMIC_HCC   X-Spam-Relays-External =~ /^[^\]]+ helo=\S*\d+[^\d\s]+\d+\S*\.(?:docsis|cable|dsl|adsl|dhcp|cpe)\.[^\]]+ auth= /i
+meta HELO_DYNAMIC_HCC (__HELO_DYNAMIC_HCC && !HELO_STATIC_HOST)
+describe HELO_DYNAMIC_HCC Relay HELO'd using suspicious hostname (HCC)
+
+# h0002a5d76857.ne.client2.attbi.com [65.96.12.59]
+
+# CPE0004e2372711-CM000a73666706.cpe.net.cable.rogers.com
+# CPE00e0184f0eba-CM014490118324.cpe.net.cable.rogers.com [24.43.109.140]
+header HELO_DYNAMIC_ROGERS X-Spam-Relays-External =~ /^[^\]]+ helo=CPE\d+\S+\.rogers\.com[^\]]+ auth= /i
+describe HELO_DYNAMIC_ROGERS Relay HELO'd using suspicious hostname (Rogers)
+
+# pD9E4F89F.dip.t-dialin.net [217.228.248.159]
+header HELO_DYNAMIC_DIALIN X-Spam-Relays-External =~ /^[^\]]+ helo=[a-z][A-F0-9]+\.dip\./
+describe HELO_DYNAMIC_DIALIN Relay HELO'd using suspicious hostname (T-Dialin)
+
+# 0xd5aaf40b.dhcp.kabelnettet.dk
+# 0x50a46949.virnxx11.adsl-dhcp.tele.dk
+header HELO_DYNAMIC_HEXIP X-Spam-Relays-External =~ /^[^\]]+ helo=0x[a-f0-9]{8}\./
+describe HELO_DYNAMIC_HEXIP Relay HELO'd using suspicious hostname (Hex IP)
+
+# 118.Red-80-35-201.pooles.rima-tde.net
+header HELO_DYNAMIC_SPLIT_IP X-Spam-Relays-External =~ /^[^\]]+ helo=\d+\.\S+\d+[^\d\s]\d+[^\d\s]\d+[^\d\s]/
+describe HELO_DYNAMIC_SPLIT_IP Relay HELO'd using suspicious hostname (Split IP)
+
+# YahooBB219173000034.bbtec.net [219.173.0.34]
+
+# 10-35-124-91.pool.ukrtel.net [91.124.35.10]
+# 89-215-186-91.2073241113.ddns-lan.rakovski.ekk.bg [217.18.240.147]
+# 200.109.193-29.dyn.dsl.cantv.net [200.109.193.29]
+# 113x35x70x11.ap113.ftth.ucom.ne.jp [113.35.70.11]
+# 98x9x3p5siouq.kvknv3sv1quk.3ejp4xzv.com [213.250.20.156]
+# 1.0/24.137.95.202.in-addr.arpa [202.95.137.1]
+header __HELO_DYNAMIC_IPADDR2 X-Spam-Relays-External =~ /^[^\]]+ helo=(?![^\s\]]+[-.](?:static|mail|smtp|mx)\d*[-.])\d{1,3}(?:[\Wx_]\d{1,3}){3}[^\d\s][^\s.]*\.\S+\.\S+[^\]]+ auth= /i
+meta HELO_DYNAMIC_IPADDR2  (__HELO_DYNAMIC_IPADDR2 && !HELO_DYNAMIC_SPLIT_IP)
+describe HELO_DYNAMIC_IPADDR2 Relay HELO'd using suspicious hostname (IP addr 2)
+
+# h234n2fls32o895.telia.com [217.208.73.234]
+# h53n2fls32o828.telia.com
+# h116n2fls32o1111.telia.com
+# h29n1fls306o1003.telia.com
+
+# CM-vina5-168-207.cm.vtr.net [200.104.168.207]
+# CM-anto1-98-153.cm.vtr.net [200.104.98.153]
+
+# ec9z5l.cm.chello.no
+
+# g225174.upc-g.chello.nl
+# a151145.upc-a.chello.nl
+# a96134.upc-a.chello.nl
+header HELO_DYNAMIC_CHELLO_NL  X-Spam-Relays-External =~ /^[^\]]+ helo=[a-z]\d+\.upc-[a-z]\.chello\.nl[^\]]+ auth= /i
+describe HELO_DYNAMIC_CHELLO_NL Relay HELO'd using suspicious hostname (Chello.nl)
+
+# cp160000-a.mill1.nb.home.nl
+# cp341468-b.venra1.lb.home.nl
+header HELO_DYNAMIC_HOME_NL  X-Spam-Relays-External =~ /^[^\]]+ helo=[a-z]{2}\d+-\S\.\S+\d\.[a-z]{2}\.home\.nl[^]]+ auth= /i
+describe HELO_DYNAMIC_HOME_NL Relay HELO'd using suspicious hostname (Home.nl)
+
diff --git a/sa-updates/20_freemail.cf b/sa-updates/20_freemail.cf
new file mode 100644 (file)
index 0000000..373ae15
--- /dev/null
@@ -0,0 +1,65 @@
+# SpamAssassin - FreeMail rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+body     __freemail_safe_fwd  /---\s?(?:(?:Forwarded|Original) message|Alkuper(?:\xe4|\xc3\xa4)inen viesti)/i
+header   __freemail_safe_rls  X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+\.(?:tfbnw\.net|ebay\.com|tieto\.com) /
+meta     __freemail_safe      __freemail_safe_fwd || __ML2 || __ML4 || __HAS_X_MAILING_LIST || __HAS_X_MAILMAN_VERSION || __freemail_safe_rls
+
+header   __freemail_replyto  eval:check_freemail_replyto('replyto')
+meta     FREEMAIL_REPLYTO  __freemail_replyto && !__freemail_safe
+describe FREEMAIL_REPLYTO  Reply-To/From or Reply-To/body contain different freemails
+score    FREEMAIL_REPLYTO  2
+
+header   __freemail_reply  eval:check_freemail_replyto('reply')
+meta     FREEMAIL_REPLY  __freemail_reply && !__freemail_replyto && !__freemail_safe
+describe FREEMAIL_REPLY  From and body contain different freemails
+score    FREEMAIL_REPLY  0.5
+
+header   FREEMAIL_FROM  eval:check_freemail_from()
+describe FREEMAIL_FROM  Sender email is commonly abused enduser mail provider
+score    FREEMAIL_FROM  0.001
+
+header   FREEMAIL_ENVFROM_END_DIGIT  eval:check_freemail_header('EnvelopeFrom', '\d@')
+describe FREEMAIL_ENVFROM_END_DIGIT  Envelope-from freemail username ends in digit
+score    FREEMAIL_ENVFROM_END_DIGIT  0.1
+
+header   FREEMAIL_REPLYTO_END_DIGIT  eval:check_freemail_header('Reply-To', '\d@')
+describe FREEMAIL_REPLYTO_END_DIGIT  Reply-To freemail username ends in digit
+score    FREEMAIL_REPLYTO_END_DIGIT  0.1
+
+#header   FREEMAIL_SUBJECT  eval:check_freemail_header('Subject')
+#describe FREEMAIL_SUBJECT  Subject contains freemail
+#score    FREEMAIL_SUBJECT  0.001
+
+# Idea from John Hardin
+header   __freemail_hdr_replyto  eval:check_freemail_header('Reply-To')
+meta     FREEMAIL_FORGED_REPLYTO  __freemail_hdr_replyto && !FREEMAIL_FROM && !__freemail_safe
+describe FREEMAIL_FORGED_REPLYTO  Freemail in Reply-To, but not From
+score    FREEMAIL_FORGED_REPLYTO  0.1
+
+endif
+
diff --git a/sa-updates/20_freemail_domains.cf b/sa-updates/20_freemail_domains.cf
new file mode 100644 (file)
index 0000000..d4b4087
--- /dev/null
@@ -0,0 +1,545 @@
+# SpamAssassin - FreeMail domains file
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# List contains commonly abused end user mail providers
+# "freemail" is solely used for label purposes.
+
+# weed out domains that already exist given a FILE of one domain per line:
+#   perl -lane 'if (@F and shift(@F) eq "freemail_domains") {
+#                 for (@F) { s/\./\\./g; s/\?/./g; s/\*/[^.]*/g; print }
+#               }' rules/*.cf |grep -wvf- FILE
+
+# Updated 2016-08-18-axb
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+# Initial import from old FreeMail.pm / 090428
+freemail_domains 020.co.uk 123.com 123box.net 123india.com 123mail.cl
+freemail_domains 123mail.org 123qwe.co.uk 138mail.com 141.ro 150mail.com 150ml.com 16mail.com
+freemail_domains 1963chevrolet.com 1963pontiac.com 1netdrive.com 1st-website.com 1stpd.net
+freemail_domains 2-mail.com 20after4.com 21cn.com 24h.co.jp 24horas.com 271soundview.com
+freemail_domains 2die4.com 2mydns.com 2net.us 3000.it 3ammagazine.com 3email.com 3xl.net
+freemail_domains 444.net 4email.com 4email.net 4newyork.com 50mail.com 55mail.cc 5fm.za.com
+freemail_domains 6210.hu 6sens.com 702mail.co.za 7110.hu 8848.net 8m.com 8m.net 8x.com.br 8u8.com 8u8.hk 8u8.tw
+freemail_domains a-topmail.at about.com abv.bg acceso.or.cr access4less.net accessgcc.com
+freemail_domains acmemail.net adiga.com adinet.com.uy
+freemail_domains adres.nl advalvas.be aeiou.pt aeneasmail.com afrik.com
+freemail_domains afropoets.com aggies.com ahaa.dk aichi.com aim.com airpost.net aiutamici.com
+freemail_domains aklan.com aknet.kg alabama.usa.com alaska.usa.com alavatotal.com
+freemail_domains albafind.com albawaba.com alburaq.net aldeax.com aldeax.com.ar alex4all.com  aliyun.com
+freemail_domains alexandria.cc algeria.com alice.it alinto.com allmail.net
+freemail_domains alskens.dk altavista.se altbox.org alternativagratis.com alum.com
+freemail_domains alunos.unipar.br alvilag.hu amenworld.com america.hm
+freemail_domains americamail.com amnetsal.com amorous.com ananzi.co.za anet.ne.jp anfmail.com
+freemail_domains angelfire.com animail.net aniverse.com anjungcafe.com
+freemail_domains another.com antedoonsub.com antwerpen.com anunciador.net anytimenow.com
+freemail_domains aol.* aol.co*.* aon.at apexmail.com apollo.lv approvers.net aprava.com
+freemail_domains apropo.ro arcor.de argentina.com
+freemail_domains arizona.usa.com arkansas.usa.com armmail.com army.com arnet.com.ar aroma.com
+freemail_domains arrl.net aruba.it asheville.com asia-links.com
+freemail_domains asiamail.com assala.com assamesemail.com asurfer.com
+freemail_domains atl.lv atlas.cz atlas.sk atozasia.com atreillou.com att.net *.att.ne.jp au.ru aubenin.com
+freemail_domains aus-city.com aussiemail.com.au avasmail.com.mv axarnet.com
+freemail_domains ayna.com azet.sk babbalu.com badgers.com bakpaka.com bakpaka.net
+freemail_domains balochistan.org baluch.com bama-fan.com bancora.net bankersmail.com
+freemail_domains barlick.net beeebank.com beehive.org
+freemail_domains been-there.com beirut.com belizehome.com belizemail.net
+freemail_domains belizeweb.com bellsouth.net berlin.de bestmail.us bflomail.com
+freemail_domains bgnmail.com bharatmail.com big-orange.com bigboss.cz bigfoot.com bigger.com
+freemail_domains bigmailbox.com bigmir.net bigstring.com bip.net bigpond.com
+freemail_domains bitwiser.com biz.by bizhosting.com black-sea.ro blackburnmail.com
+freemail_domains blackglobalnetwork.net blink182.net blue.devils.com bluebottle.com
+freemail_domains bluemail.ch blumail.org blvds.com bol.com.br bolando.com
+freemail_domains bollywood2000.com bollywoodz.com bombka.dyn.pl bonbon.net boom.com
+freemail_domains bootmail.com bostonoffice.com box.az boxbg.com boxemail.com brain.com.pk
+freemail_domains brasilia.net bravanese.com brazilmail.com.br breathe.com
+freemail_domains brestonline.com brfree.com.br brujula.net btcc.org
+freemail_domains buffaloes.com bulgaria.com bulldogs.com bumerang.ro burntmail.com
+freemail_domains butch-femme.net buzy.com buzzjakkerz.com c-box.cz c3.hu c4.com cadinfo.net
+freemail_domains calcfacil.com.br calcware.org california.usa.com
+freemail_domains callnetuk.com camaroclubsweden.com canada-11.com canada.com canal21.com
+freemail_domains canoemail.com caramail.com cardblvd.com care-mail.com care2.com caress.com
+freemail_domains carioca.net cashette.com casino.com casinomail.com cataloniamail.com
+freemail_domains catalunyamail.com cataz.com catcha.com catholic.org caths.co.uk
+freemail_domains caxess.net cbrmail.com cc.lv cemelli.com centoper.it centralpets.com
+freemail_domains centrum.cz centrum.sk centurylink.net cercaziende.it cgac.es chaiyo.com chaiyomail.com
+freemail_domains chance2mail.com channelonetv.com charter.net chattown.com checkitmail.at
+freemail_domains chelny.com cheshiremail.com chil-e.com chillimail.com
+freemail_domains china.com christianmail.org ciaoweb.it cine.com ciphercom.net
+freemail_domains circlemail.com cititrustbank1.cjb.net citromail.hu citynetusa.com ciudad.com.ar
+freemail_domains claramail.com classicmail.co.za cliffhanger.com clix.pt
+freemail_domains close2you.net cluemail.com clujnapoca.ro collegeclub.com
+freemail_domains colombia.com colorado.usa.com comcast.net comfortable.com
+freemail_domains compaqnet.fr compuserve.com computer.net computermail.net
+freemail_domains computhouse.com conevyt.org.mx connect4free.net connecticut.usa.com
+freemail_domains coolgoose.com coolkiwi.com coollist.com coxinet.net
+freemail_domains coolmail.com coolmail.net coolsend.com cooltoad.com cooperation.net
+freemail_domains copacabana.com copticmail.com corporateattorneys.com corporation.net
+freemail_domains correios.net.br correomagico.com cosmo.com cosmosurf.net cougars.com
+freemail_domains count.com countrybass.com couple.com criticalpath.net
+freemail_domains critterpost.com crosspaths.net crosswinds.net cryingmail.com cs.com
+freemail_domains csucsposta.hu cumbriamail.com curio-city.com custmail.com
+freemail_domains cwazy.co.uk cwazy.net cww.de cyberaccess.com.pk
+freemail_domains cybergirls.dk cyberguys.dk cybernet.it cymail.net
+freemail_domains dabsol.net dada.net dadanet.it dailypioneer.com damuc.org.br
+freemail_domains dansegulvet.com darkhorsefan.net data54.com davegracey.com dayzers.com
+freemail_domains daum.net dbmail.com dcemail.com dcsi.net deacons.com deadlymob.org deal-maker.com
+freemail_domains dearriba.com degoo.com delajaonline.org delaware.usa.com delfi.lv
+freemail_domains delhimail.com demon.deacons.com desertonline.com
+freemail_domains desidrivers.com deskpilot.com despammed.com detik.com devils.com dexara.net
+freemail_domains dhmail.net di-ve.com didamail.com digitaltrue.com
+freemail_domains direccion.com director-general.com diri.com discardmail.com
+freemail_domains discoverymail.net disinfo.net djmillenium.com dmailman.com
+freemail_domains dnsmadeeasy.com do.net.ar dodgeit.com dogmail.co.uk
+freemail_domains doityourself.com domaindiscover.com domainmanager.com doneasy.com
+freemail_domains dontexist.org dores.com dostmail.com dot5hosting.com dotcom.fr
+freemail_domains dotnow.com dott.it doubt.com dplanet.ch dragoncon.net dragonfans.com
+freemail_domains dropzone.com dserver.org dubaiwebcity.com dublin.ie dustdevil.com
+freemail_domains dynamitemail.com dyndns.org e-apollo.lv e-hkma.com
+freemail_domains e-mail.cz e-mail.ph e-mailanywhere.com e-milio.com e-tapaal.com e-webtec.com earthalliance.com
+freemail_domains earthling.net eastmail.com eastrolog.com easy-pages.com easy.com
+freemail_domains easyinfomail.co.za easypeasy.com echina.com ecn.org ecplaza.net eircom.net
+freemail_domains edsamail.com.ph educacao.te.pt edumail.co.za eeism.com ego.co.th ekolay.net
+freemail_domains elforotv.com.ar elitemail.org elsitio.com eltimon.com elvis.com
+freemail_domains email.com.br email.cz email.bg email.it email.lu email.lviv.ua email.nu
+freemail_domains email.ro email.si email2me.com emailacc.com emailaccount.com
+freemail_domains emailaddresses.com emailchoice.com emailcorner.net emailn.de emailengine.net
+freemail_domains emailengine.org emailgaul.com emailgroups.net emailhut.net emailpinoy.com
+freemail_domains emailplanet.com emailplus.org emailuser.net ematic.com embarqmail.com
+freemail_domains embroideryforums.com eml.cc emoka.ro emptymail.com enel.net enelpunto.net
+freemail_domains england.com enterate.com.ar entryweb.it entusiastisk.com
+freemail_domains enusmail.com epatra.com epix.net epomail.com epost.de eprompter.com eqqu.com
+freemail_domains eramail.co.za eresmas.com eriga.lv ertelecom.ru esde-s.org esfera.cl estadao.com.br
+freemail_domains etllao.com euromail.net euroseek.com
+freemail_domains euskalmail.com evafan.com everyday.com.kh everymail.net everyone.net
+freemail_domains excite.* excite.co*.* execs2k.com executivemail.co.za
+freemail_domains expn.com ezilon.com ezrs.com f-m.fm facilmail.com fadrasha.net fadrasha.org
+freemail_domains faithhighway.com faithmail.com familymailbox.com familyroll.com
+freemail_domains familysafeweb.net fan.com fan.net faroweb.com fast-email.com fast-mail.org
+freemail_domains fastem.com fastemail.us fastemailer.com fastermail.com fastest.cc
+freemail_domains fastimap.com fastmail.* fastmail.co*.* fastmailbox.net
+freemail_domains fastmessaging.com fastwebmail.it fawz.net fea.st federalcontractors.com
+freemail_domains fedxmail.com feelings.com female.ru fepg.net ffanet.com fiberia.com
+freemail_domains filipinolinks.com financesource.com findmail.com
+freemail_domains fiscal.net flashmail.com flipcode.com florida.usa.com floridagators.com
+freemail_domains fmail.co.uk fmailbox.com fmgirl.com fmguy.com fnmail.com footballer.com foxmail.com
+freemail_domains forfree.at forsythmissouri.org fortuncity.com forum.dk free.com.pe free.fr
+freemail_domains free.net.nz freeaccess.nl freegates.be freeghana.com freehosting.nl
+freemail_domains freei.co.th freeler.nl freemail.* freemail.*.* freemail.globalsite.com.br
+freemail_domains freemuslim.net freenet.de freenet.kg freeola.net freepgs.com freesbee.fr
+freemail_domains freeservers.com freestart.hu freesurf.ch freesurf.fr
+freemail_domains freesurf.nl freeuk.com freeuk.net freeweb.it freewebemail.com freeyellow.com
+freemail_domains frisurf.no frontiernet.net fsmail.net fsnet.co.uk ftml.net fuelie.org
+freemail_domains fun-greetings-jokes.com fun.21cn.com fusemail.com fut.es gala.net
+freemail_domains galmail.co.za gamebox.net gamecocks.com gawab.com gay.com
+freemail_domains gaymailbox.com gaza.net gazeta.pl gci.net gdi.net geeklife.com gemari.or.id
+freemail_domains genxemail.com geopia.com georgia.usa.com getmail.no
+freemail_domains ggaweb.ch giga4u.de gjk.dk glay.org glendale.net globalfree.it globomail.com
+freemail_domains globalpinoy.com globalsite.com.br globalum.com globetrotter.net gmail.com
+freemail_domains gmx.* go-bama.com go-cavs.com go-chargers.com go-dawgs.com go-gators.com
+freemail_domains go-hogs.com go-irish.com go-spartans.com go-tigers.com go.aggies.com
+freemail_domains go.air-force.com go.badgers.com go.big-orange.com go.blue.devils.com
+freemail_domains go.buffaloes.com go.bulldogs.com go.com go.cougars.com go.dores.com
+freemail_domains go.gamecocks.com go.huskies.com go.longhorns.com go.mustangs.com
+freemail_domains go.rebels.com go.ro go.ru go.terrapins.com go.wildcats.com go.wolverines.com
+freemail_domains go.yellow-jackets.com go2net.com go4.it gofree.co.uk golfemail.com
+freemail_domains goliadtexas.com gomail.com.ua gonowmail.com gonuts4free.com googlemail.com
+freemail_domains goplay.com gorontalo.net gotmail.com gotomy.com govzone.com grad.com
+freemail_domains graffiti.net gratisweb.com gtechnics.com
+freemail_domains guate.net guessmail.com gwalla.com h-mail.us haberx.com hailmail.net
+freemail_domains halejob.com hamptonroads.com handbag.com hanmail.net happemail.com
+freemail_domains happycounsel.com hawaii.com hawaii.usa.com hayahaya.tg hedgeai.com
+freemail_domains heesun.net heremail.com hetnet.nl highveldmail.co.za hildebrands.de
+freemail_domains hingis.org hispavista.com hitmanrecords.com hockeyghiaccio.com
+freemail_domains hockeymail.com holapuravida.com home.no.net home.ro home.se homelocator.com
+freemail_domains homemail.co.za homenetmail.com homestead.com homosexual.net hongkong.com hong-kong-1.com
+freemail_domains hopthu.com hosanna.net hot.ee hotbot.com hotbox.ru hotcoolmail.com hotdak.com
+freemail_domains hotfire.net hotinbox.com hotmail.* hotmail.co*.*
+freemail_domains hotpop.com hotvoice.com hour.com howling.com huhmail.com
+freemail_domains humour.com hurra.de hush.ai hush.com hushmail.com huskies.com
+freemail_domains hutchcity.com i-france.com i-p.com i12.com i2828.com ibatam.com ibest.com.br
+freemail_domains ibizdns.com icafe.com ice.is icestorm.com icloud.com icq.com icqmail.com icrazy.com
+freemail_domains id.ru idaho.usa.com idirect.com idncafe.com ieg.com.br iespalomeras.net
+freemail_domains iespana.es ifrance.com ig.com.br ignazio.it illinois.usa.com ilse.net
+freemail_domains ilse.nl imail.ru imailbox.com imap-mail.com imap.cc imapmail.org imel.org
+freemail_domains in-box.net inbox.com inbox.ge inbox.lv inbox.net inbox.ru in.com
+freemail_domains incamail.com indexa.fr india.com indiamail.com indiana.usa.com
+freemail_domains indiatimes.com induquimica.org inet.com.ua infinito.it infoapex.com
+freemail_domains infohq.com infomail.es infomart.or.jp infosat.net infovia.com.ar inicia.es
+freemail_domains inmail.sk inmail24.com inoutbox.com
+freemail_domains intelnet.net.gt intelnett.com interblod.com
+freemail_domains interfree.it interia.pl interlap.com.ar intermail.hu internet-e-mail.com
+freemail_domains internet-mail.org internet.lu internetegypt.com internetemails.net
+freemail_domains internetmailing.net inwind.it iobox.com iobox.fi iol.it iol.pt iowa.usa.com
+freemail_domains ip3.com ipermitmail.com iqemail.com iquebec.com iran.com irangate.net
+freemail_domains iscool.net islandmama.com ismart.net isonews2.com isonfire.com isp9.net
+freemail_domains ispey.com itelgua.com itloox.com itmom.com
+freemail_domains ivenus.com iwan-fals.com iwon.com ixp.net japan.com jaydemail.com
+freemail_domains jedrzejow.pl jetemail.net jingjo.net jippii.fi jmail.co.za jojomail.com
+freemail_domains jovem.te.pt joymail.com jubii.dk jubiipost.dk jumpy.it
+freemail_domains juno.com justemail.net justmailz.com k.ro kaazoo.com kabissa.org kaixo.com
+freemail_domains kalluritimes.com kalpoint.com kansas.usa.com katamail.com kataweb.it
+freemail_domains kayafmmail.co.za keko.com.ar kentucky.usa.com keptprivate.com
+freemail_domains kimo.com kiwitown.com klik.it klikni.cz kmtn.ru koko.com kolozsvar.ro kombud.com
+freemail_domains koreanmail.com kotaksuratku.info krunis.com kukamail.com
+freemail_domains kuronowish.com kyokodate.com kyokofukada.net ladymail.cz lagoon.nc
+freemail_domains lahaonline.com lamalla.net lancsmail.com land.ru laposte.net latinmail.com
+freemail_domains lawyer.com lawyersmail.com lawyerzone.com lebanonatlas.com leehom.net
+freemail_domains leonardo.it leonlai.net letsjam.com letterbox.org
+freemail_domains letterboxes.org levele.com lexpress.net libero.it liberomail.com
+freemail_domains libertysurf.net libre.net lightwines.org linkmaster.com linuxfreemail.com
+freemail_domains lionsfan.com.au live.* livedoor.com llandudno.com
+freemail_domains llangollen.com lmxmail.sk loggain.net loggain.nu lolnetwork.net
+freemail_domains london.com longhorns.com look.com looksmart.co.uk looksmart.com
+freemail_domains looksmart.com.au loteria.net lotonazo.com louisiana.usa.com louiskoo.com
+freemail_domains loveable.com lovemail.com lovingjesus.com lpemail.com luckymail.com luso.pt
+freemail_domains lusoweb.pt luukku.com lycos.* lycos.co*.* lycosmail.com mac.com
+freemail_domains machinecandy.com macmail.com mad.scientist.com madcrazy.com
+freemail_domains madonno.com madrid.com mag2.com magicmail.co.za magik-net.com mail-atlas.net
+freemail_domains mail-awu.de mail-box.cz mail.by mail-center.com mail-central.com mail-jp.org
+freemail_domains mail-online.dk mail-page.com mail-x-change.com mail.austria.com mail.az
+freemail_domains mail.de mail.be mail.bg mail.bulgaria.com mail.co.za mail.dk mail.ee
+freemail_domains mail.goo.ne.jp mail.gr mail.lawguru.com mail.md mail.mn mail.org mail.pf
+freemail_domains mail.pt mail.ru mail.yahoo.co.jp mail15.com mail2*.com mail3000.com mail333.com
+freemail_domains mail8.com mailandftp.com mailandnews.com mailas.com mailasia.com mailbg.com
+freemail_domains mailblocks.com mailbolt.com mailbox.as mailbox.co.za mailbox.gr mailbox.hu
+freemail_domains mailbox.sk mailc.net mailcan.com mailcircuit.com mailclub.fr mailclub.net
+freemail_domains maildozy.com mailfly.com mailforce.net mailftp.com mailglobal.net
+freemail_domains mailhaven.com mailinator.com mailingaddress.org mailingweb.com mailisent.com
+freemail_domains mailite.com mailme.dk mailmight.com mailmij.nl mailnew.com mailops.com
+freemail_domains mailpanda.com mailpersonal.com mailroom.com mailru.com mails.de mailsent.net
+freemail_domains mailserver.dk mailservice.ms mailsnare.net mailsurf.com mailup.net
+freemail_domains mailvault.com mailworks.org maine.usa.com majorana.martina-franca.ta.it
+freemail_domains maktoob.com malayalamtelevision.net malayalapathram.com male.ru manager.de
+freemail_domains manlymail.net mantrafreenet.com mantramail.com mantraonline.com
+freemail_domains marihuana.ro marijuana.nl marketweighton.com maryland.usa.com
+freemail_domains masrawy.com massachusetts.usa.com mauimail.com mbox.com.au mcrmail.com me.by me.com
+freemail_domains medicinatv.com meetingmall.com megamail.pt menara.ma merseymail.com mesra.net
+freemail_domains messagez.com metacrawler.com mexico.com miaoweb.net
+freemail_domains michigan.usa.com micro2media.com miesto.sk mighty.co.za milacamn.net
+freemail_domains milmail.com mindless.com mindviz.com minnesota.usa.com
+freemail_domains mississippi.usa.com missouri.usa.com mixmail.com ml1.net ml2clan.com
+freemail_domains mlanime.com mm.st mmail.com mobimail.mn mobsters.com mobstop.com
+freemail_domains modemnet.net modomail.com moldova.com moldovacc.com monarchy.com
+freemail_domains montana.usa.com montevideo.com.uy moomia.com moose-mail.com mosaicfx.com
+freemail_domains motormania.com movemail.com mr.outblaze.com mrspender.com
+freemail_domains ms*.hinet.net mscold.com msn.com msn.co.uk msnzone.cn mundo-r.com
+freemail_domains muslimsonline.com mustangs.com mxs.de myblue.cc mycabin.com mycity.com mycommail.com
+freemail_domains mycool.com mydomain.com myeweb.com myfastmail.com myfunnymail.com mygrande.net mykolab.com
+freemail_domains mygamingconsoles.com myiris.com myjazzmail.com mymacmail.com mymail.dk
+freemail_domains mymail.ph.inter.net mymail.ro mynet.com mynet.com.tr myotw.net myopera.com
+freemail_domains myownemail.com mypersonalemail.com myplace.com myrealbox.com
+freemail_domains myspace.com myt.mu myway.com mzgchaos.de n2.com n2business.com n2mail.com
+freemail_domains n2software.com nabble.com name.com nameplanet.com nanamail.co.il
+freemail_domains nanaseaikawa.com nandomail.com naseej.com nastything.com national-champs.com
+freemail_domains nativeweb.net narod.ru nate.com naveganas.com naver.com nebraska.usa.com nemra1.com nenter.com
+freemail_domains nerdshack.com nervhq.org net.hr net4b.pt net4jesus.com net4you.at
+freemail_domains netbounce.com netcabo.pt netcape.net netcourrier.com netexecutive.com
+freemail_domains netfirms.com netkushi.com netmongol.com netpiper.com netposta.net
+freemail_domains netscape.com netscape.net netscapeonline.co.uk netsquare.com nettaxi.com
+freemail_domains netti.fi networld.com netzero.com netzero.net neustreet.com nevada.usa.com
+freemail_domains newhampshire.usa.com newjersey.usa.com newmail.com newmail.net
+freemail_domains newmail.ok.com newmail.ru newmexico.usa.com newspaperemail.com newyork.com
+freemail_domains newyork.usa.com newyorkcity.com nfmail.com nicegal.com nightimeuk.com
+freemail_domains nightly.com nightmail.com nightmail.ru noavar.com noemail.com nonomail.com nokiamail.com
+freemail_domains noolhar.com northcarolina.usa.com northdakota.usa.com
+freemail_domains nospammail.net nowzer.com ny.com nyc.com nz11.com
+freemail_domains nzoomail.com o2.pl oceanfree.net ocsnet.net oddpost.com odeon.pl
+freemail_domains odmail.com offshorewebmail.com ofir.dk ohio.usa.com oicexchange.com ok.ru
+freemail_domains oklahoma.usa.com ole.com oleco.net olympist.net omaninfo.com onatoo.com
+freemail_domains ondikoi.com onebox.com onenet.com.ar onet.pl ongc.net oninet.pt online.ie
+freemail_domains online.ru onlinewiz.com onobox.com open.by openbg.com openforyou.com
+freemail_domains opentransfer.com operamail.com oplusnet.com orange.fr orangehome.co.uk orange.es orange.jo orange.pl
+freemail_domains orbitel.bg orcon.net.nz oregon.usa.com oreka.com organizer.net orgio.net
+freemail_domains orthodox.com osite.com.br oso.com ourbrisbane.com ournet.md
+freemail_domains ourprofile.net ourwest.com outgun.com outlook.* ownmail.net oxfoot.com ozu.es
+freemail_domains pacer.com paginasamarillas.com
+freemail_domains pakistanmail.com pandawa.com pando.com pandora.be paris.com parsimail.com
+freemail_domains parspage.com patmail.com pattayacitythailand.com pc4me.us pcpostal.com
+freemail_domains penguinmaster.com pennsylvania.usa.com peoplepc.com peopleweb.com
+freemail_domains personal.ro personales.com peru.com petml.com
+freemail_domains phreaker.net pigeonportal.com pilu.com pimagop.com
+freemail_domains pinoymail.com pipni.cz pisem.net planet-school.de planetaccess.com
+freemail_domains planetout.com plasa.com playersodds.com playful.com pluno.com
+freemail_domains plusmail.com.br pmail.net pnetmail.co.za pobox.ru pobox.sk pochtamt.ru pochta.ru
+freemail_domains poczta.fm poetic.com pogowave.com polbox.com
+freemail_domains pop3.ru pop.co.th popmail.com poppymail.com popsmail.com popstar.com portafree.com
+freemail_domains portaldosalunos.com portugalmail.com portugalmail.pt post.cz
+freemail_domains post.expart.ne.jp post.pl post.sk posta.ge postaccesslite.com postiloota.net
+freemail_domains postinbox.com postino.ch postino.it postmaster.co.uk postpro.net praize.com
+freemail_domains press.co.jp primposta.com printesamargareta.ro
+freemail_domains private.21cn.com probemail.com profesional.com profession.freemail.com.br
+freemail_domains proinbox.com promessage.com prontomail.com protonmail.com protonmail.ch
+freemail_domains provincial.net publicaccounting.com punkass.com puppy.com.my
+freemail_domains q.com qatar.io qlmail.com qq.com qrio.com qsl.net qudsmail.com queerplaces.com quepasa.com
+freemail_domains quick.cz quickwebmail.com r-o-o-t.com r320.hu raakim.com rbcmail.ru racingseat.com
+freemail_domains radicalz.com radiojobbank.com ragingbull.com
+freemail_domains raisingadaughter.com rallye-webmail.com rambler.ru ranmamail.com ravearena.com
+freemail_domains ravemail.co.za razormail.com real.ro realemail.net reallyfast.biz
+freemail_domains reallyfast.info rebels.com recife.net recme.net
+freemail_domains rediffmail.com rediffmailpro.com redseven.de redwhitearmy.com
+freemail_domains relia.com
+freemail_domains revenue.com rexian.com rhodeisland.usa.com
+freemail_domains ritmes.net rn.com roanokemail.com rochester-mail.com rock.com rocketmail.com
+freemail_domains rockfan.com rockinghamgateway.com rojname.com rol.ro
+freemail_domains rollin.com rome.com romymichele.com royal.net rpharmacist.com rt.nl ru.ru
+freemail_domains rushpost.com russiamail.com rxpost.net s-mail.com saabnet.com
+freemail_domains sacbeemail.com sacmail.com safe-mail.net safe-mailbox.com
+freemail_domains saigonnet.vn saint-mike.org
+freemail_domains samilan.net sandiego.com sanook.com sanriotown.com
+freemail_domains sapibon.com sapo.pt saturnfans.com sayhi.net sbcglobal.com scfn.net
+freemail_domains schweiz.org sci.fi sciaga.pl
+freemail_domains scrapbookscrapbook.com seapole.com search417.com seark.com sebil.com
+freemail_domains secretservices.net secure-jlnet.com seductive.com sendmail.ru
+freemail_domains sendme.cz sent.as sent.at sent.com serga.com.ar sermix.com server4free.de
+freemail_domains serverwench.com sesmail.com sexmagnet.com seznam.cz shadango.com she.com
+freemail_domains shuf.com siamlocalhost.com siamnow.net sify.com sinamail.com singapore.com
+freemail_domains singmail.com singnet.com.sg siraj.org sirindia.com sirunet.com sister.com sina.com sina.cn sinanail.com
+freemail_domains sistersbrothers.com sizzling.com slamdunkfan.com slickriffs.co.uk
+freemail_domains slingshot.com slo.net slomusic.net smartemail.co.uk smtp.ru snail-mail.net
+freemail_domains sndt.net sneakemail.com snoopymail.com snowboarding.com
+freemail_domains so-simple.org socamail.com softhome.net sohu.com
+freemail_domains sol.dk solidmail.com soon.com sos.lv soundvillage.org
+freemail_domains southcarolina.usa.com southdakota.usa.com space.com spacetowns.com
+freemail_domains spamex.com spartapiet.com speed-racer.com speedpost.net
+freemail_domains speedymail.org spils.com spinfinder.com sportemail.com spray.net spray.no
+freemail_domains spray.se spymac.com srbbs.com srilankan.net ssan.com ssl-mail.com stade.fr
+freemail_domains stalag13.com stampmail.com starbuzz.com starline.ee starmail.com
+freemail_domains starmail.org starmedia.com starspath.com start.com.au start.no stribmail.com
+freemail_domains strompost.* student.com student.ednet.ns.ca studmail.com sudanmail.net
+freemail_domains suisse.org sunbella.net sunmail1.com sunpoint.net sunrise.ch
+freemail_domains sunumail.sn sunuweb.net suomi24.fi superdada.it supereva.com supereva.it
+freemail_domains supermailbox.com superposta.com surf3.net surfassistant.com surfsupnet.net
+freemail_domains surfy.net surimail.com surnet.cl sverige.nu svizzera.org
+freemail_domains sweb.cz swift-mail.com swissinfo.org
+freemail_domains swissmail.net switzerland.org syom.com syriamail.com t-mail.com t-net.net.ve
+freemail_domains t2mail.com tabasheer.com talk21.com talkcity.com tangmonkey.com tatanova.com
+freemail_domains taxcutadvice.com techemail.com technisamail.co.za
+freemail_domains teenmail.co.uk teenmail.co.za tejary.com telebot.com telefonica.net
+freemail_domains telegraf.by teleline.es telinco.net telkom.net telpage.net telstra.com telenet.be
+freemail_domains telusplanet.net tempting.com tenchiclub.com tennessee.usa.com
+freemail_domains terrapins.com texas.usa.com texascrossroads.com tfz.net thai.com
+freemail_domains thaimail.com thaimail.net the-fastest.net the-quickest.com thegame.com
+freemail_domains theinternetemail.com theoffice.net thepostmaster.net
+freemail_domains theracetrack.com theserverbiz.com thewatercooler.com
+freemail_domains thewebpros.co.uk thinkpost.net thirdage.com thundermail.com tim.it
+freemail_domains timemail.com tin.it tinati.net tiscali.* tiscali.co*.* tiscalinet.it
+freemail_domains tjohoo.se tkcity.com tlcfan.com tlen.pl tmicha.net todito.com todoperros.com
+freemail_domains tokyo.com topchat.com topmail.com.ar topmail.dk topmail.co.ie topmail.co.in topmail.co.nz topmail.co.uk topmail.co.za
+freemail_domains topsurf.com toquedequeda.com torba.com torchmail.com
+freemail_domains totalmail.com totalsurf.com totonline.net tough.com toughguy.net trav.se
+freemail_domains trevas.net tripod-mail.com triton.net trmailbox.com tsamail.co.za
+freemail_domains turbonett.com turkey.com tvnet.lv twc.com typemail.com u2club.com uae.ac
+freemail_domains ubbi.com ubbi.com.br uboot.com ugeek.com uk2.net uk2net.com ukr.net
+freemail_domains ukrpost.net ukrpost.ua uku.co.uk ulimit.com ummah.org unbounded.com
+freemail_domains unican.es unicum.de unimail.mn unitedemailsystems.com universal.pt
+freemail_domains universia.cl universia.edu.ve universia.es universia.net.co universia.net.mx
+freemail_domains universia.pr universia.pt universiabrasil.net unofree.it uol.com.ar
+freemail_domains uol.com.br uole.com uolmail.com uomail.com uraniomail.com urbi.com.br
+freemail_domains ureach.com usanetmail.com userbeam.com utah.usa.com
+freemail_domains uyuyuy.com v-sexi.com v3mail.com vegetarisme.be velnet.com velocall.com
+freemail_domains vercorreo.com verizonmail.com vermont.usa.com verticalheaven.com
+freemail_domains veryfast.biz veryspeedy.net vfemail.net vietmedia.com vip.gr virgilio.it
+freemail_domains virgin.net virginia.usa.com virtual-mail.com visitmail.com visto.com
+freemail_domains vivelared.com vjtimail.com vnn.vn vsnl.com vsnl.net vodamail.co.za voila.fr volkermord.com vosforums.com vodafone.*
+freemail_domains w.cn walla.com walla.co.il wallet.com wam.co.za wanex.ge wap.hu
+freemail_domains wapda.com wapicode.com wappi.com warpmail.net washington.usa.com wassup.com
+freemail_domains waterloo.com waumail.com wazmail.com wearab.net web-mail.com.ar web.de
+freemail_domains web.nl web2mail.com webaddressbook.com webbworks.com webcity.ca webdream.com
+freemail_domains webemaillist.com webindia123.com webinfo.fi webjump.com webl-3.br.inter.net
+freemail_domains webmail.co.yu webmail.co.za webmails.com webmailv.com webpim.cc
+freemail_domains webspawner.com webstation.com websurfer.co.za webtopmail.com webtribe.net
+freemail_domains webtv.net weedmail.com weekonline.com weirdness.com westvirginia.usa.com
+freemail_domains whale-mail.com whipmail.com who.net whoever.com wildcats.com wildmail.com
+freemail_domains williams.net.ar winning.com winningteam.com winwinhosting.com
+freemail_domains wisconsin.usa.com witelcom.com witty.com wolverines.com wooow.it
+freemail_domains workmail.co.za worldcrossing.com worldemail.com worldmedic.com
+freemail_domains worldonline.de wowmail.com wp.pl wprost.pl wrongmail.com
+freemail_domains wtonetwork.com wurtele.net www.com www.consulcredit.it wyoming.usa.com
+freemail_domains x-mail.net xasa.com xemail.* xfreehosting.com xmail.net xmsg.com xnmsn.cn xoom.com xtra.co.nz xuite.net
+freemail_domains xpectmore.com xrea.com xsmail.com xzapmail.com y7mail.com yahala.co.il
+freemail_domains yaho.com yahoo.* yahoo.co*.* yalla.com.lb
+freemail_domains ya.com yeah.net ya.ru yahoomail.com
+freemail_domains yam.com yamal.info yandex.* yapost.com yawmail.com yebox.com yehey.com
+freemail_domains yellow-jackets.com yellowstone.net yenimail.com yepmail.net yifan.net
+freemail_domains ymail.com yopmail.com your-mail.com yours.com yourwap.com yyhmail.com z11.com z6.com
+freemail_domains zednet.co.uk zeeman.nl ziplip.com zipmail.com.br zipmax.com
+freemail_domains zmail.pt zmail.ru zona-andina.net zonai.com zoneview.net zonnet.nl
+freemail_domains zoho.com zoomshare.com zoznam.sk zubee.com zuvio.com zwallet.com zworg.com
+freemail_domains zybermail.com zzn.com
+
+# chinese numbers
+freemail_domains 126.com 139.com 163.com 188.com 189.cn 263.net 9.cn
+
+# Vips
+freemail_domains vip.126.com vip.163.com vip.188.com
+freemail_domains vip.sina.com vip.sohu.com vip.sohu.net vip.tom.com vip.qq.com vipsohu.net
+
+# Bug 6903 -  powered by VFEmail - 2013-02-19-AXB
+freemail_domains clovermail.net mail-on.us chewiemail.com offcolormail.com powdermail.com tightmail.com toothandmail.com tushmail.com
+freemail_domains openmail.cc expressmail.dk
+
+# Bug 6903 - powered by 5x2 Online 2013-02-19-AXB
+freemail_domains 4xn.de 5x2.de 5x2.me aufdrogen.de auf-steroide.de
+freemail_domains besser-als-du.de brainsurfer.de chillaxer.de cyberkriminell.de
+freemail_domains danneben.so freemailen.de freemailn.de ist-der-mann.de
+freemail_domains ist-der-wahnsinn.de ist-echt.so istecht.so ist-genialer.de
+freemail_domains ist-schlauer.de ist-supersexy.de kann.so mag-spam.net
+freemail_domains mega-schlau.de muss.so nerd4life.de ohne-drogen-gehts.net
+freemail_domains on-steroids.de scheint.so staatsterrorist.de super-gerissen.de
+freemail_domains unendlich-schlau.de vip-client.de will-keinen-spam.de
+freemail_domains zu-geil.de
+
+# Bug 6903 - powered by Runbox - paid service, but offers 30 day free trial - 2013-02-19-AXB
+freemail_domains runbox.*
+freemail_domains rbox.me rbox.co
+
+freemail_domains tunome.com
+
+freemail_domains acatperson.com adogperson.com all4theskins.com
+freemail_domains allsportsrock.com alwaysgrilling.com alwaysinthekitchen.com
+freemail_domains alwayswatchingmovies.com alwayswatchingtv.com asylum.com
+freemail_domains basketball-email.com beabookworm.com beagolfer.com beahealthnut.com
+freemail_domains believeinliberty.com bestcoolcars.com bestjobcandidate.com besure2vote.com
+freemail_domains bigtimecatperson.com bigtimedogperson.com bigtimereader.com
+freemail_domains bigtimesportsfan.com blackvoices.com capsfanatic.com capshockeyfan.com
+freemail_domains capsred.com car-nut.net cat-person.com catpeoplerule.com chat-with-me.com
+freemail_domains cheatasrule.com crazy4baseball.com crazy4homeimprovement.com crazy4mail.com
+freemail_domains crazyaboutfilms.net crazycarfan.com crazyforemail.com crazymoviefan.com
+freemail_domains descriptivemail.com differentmail.com dog-person.com dogpeoplerule.com
+freemail_domains easydoesit.com expertrenovator.com expressivemail.com fanaticos.com
+freemail_domains fanofbooks.com fanofcomputers.com fanofcooking.com fanoftheweb.com
+freemail_domains fieldmail.com fleetmail.com focusedonprofits.com focusedonreturns.com
+freemail_domains futboladdict.com games.com getintobooks.com hail2theskins.com hitthepuck.com
+freemail_domains i-dig-movies.com i-love-restaurants.com idigcomputers.com
+freemail_domains idigelectronics.com idigvideos.com ilike2helpothers.com ilike2invest.com
+freemail_domains ilike2workout.com ilikeelectronics.com ilikeworkingout.com
+freemail_domains ilovehomeprojects.com iloveourteam.com iloveworkingout.com in2autos.net
+freemail_domains interestedinthejob.com intomotors.com iwatchrealitytv.com lemondrop.com
+freemail_domains love2exercise.com love2workout.com lovefantasysports.com lovetoexercise.com
+freemail_domains luvfishing.com luvgolfing.com luvsoccer.com
+freemail_domains mail4me.com majorgolfer.com majorshopaholic.com majortechie.com mcom.com
+freemail_domains motor-nut.com moviefan.com mycapitalsmail.com mycatiscool.com
+freemail_domains myfantasyteamrules.com myteamisbest.com netbusiness.com news-fanatic.com
+freemail_domains newspaperfan.com onlinevideosrock.com realbookfan.com realhealthnut.com
+freemail_domains realitytvaddict.net realitytvnut.com reallyintomusic.com realtravelfan.com
+freemail_domains redskinscheer.com redskinsfamily.com redskinsfancentral.com redskinshog.com
+freemail_domains redskinsrule.com redskinsspecialteams.com redskinsultimatefan.com
+freemail_domains scoutmail.com skins4life.com stargate2.com stargateatlantis.com
+freemail_domains stargatefanclub.com stargatesg1.com stargateu.com switched.com
+freemail_domains t-online.de thegamefanatic.com total-techie.com totalfoodnut.com
+freemail_domains totally-into-cooking.com totallyintobaseball.com totallyintobasketball.com
+freemail_domains totallyintocooking.com totallyintofootball.com totallyintogolf.com
+freemail_domains totallyintohockey.com totallyintomusic.com totallyintoreading.com
+freemail_domains totallyintosports.com totallyintotravel.com totalmoviefan.com
+freemail_domains travel2newplaces.com tvchannelsurfer.com ultimateredskinsfan.com
+freemail_domains videogamesrock.com volunteeringisawesome.com wayintocomputers.com
+freemail_domains whatmail.com when.com wild4music.com wildaboutelectronics.com
+freemail_domains workingaroundthehouse.com workingonthehouse.com writesoon.com xmasmail.com
+
+# irq.ir / 091030
+
+freemail_domains arab.ir denmark.ir egypt.ir icq.ir ir.ae iraq.ir ire.ir ireland.ir irr.ir
+freemail_domains jpg.ir ksa.ir kuwait.ir london.ir paltalk.ir spain.ir sweden.ir tokyo.ir
+
+
+# scraped http://www.zemskov.net/free-email-domains.html 2013-10-18-khopesh
+
+# bigmailbox.com
+freemail_domains 111mail.com 123iran.com 37.com 420email.com 4degreez.com
+freemail_domains 4-music-today.com actingbiz.com allhiphop.com anatomicrock.com
+freemail_domains animeone.com asiancutes.com a-teens.net ausi.com autoindia.com
+freemail_domains autopm.com barriolife.com b-boy.com beautifulboy.com bgay.com
+freemail_domains bicycledata.com bicycling.com bigheavyworld.com bigmailbox.net
+freemail_domains bikerheaven.net bikermail.com billssite.com
+freemail_domains blackandchristian.com blackcity.net blackvault.com bmxtrix.com
+freemail_domains boarderzone.com boatnerd.com bolbox.com bongmail.com bowl.com
+freemail_domains butch-femme.org byke.com calle22.com cannabismail.com
+freemail_domains catlovers.com certifiedbitches.com championboxing.com
+freemail_domains chatway.com chillymail.com classprod.com classycouples.com
+freemail_domains congiu.net coolshit.com corpusmail.com cyberunlimited.org
+freemail_domains cycledata.com darkfear.com darkforces.com dirtythird.com
+freemail_domains dopefiends.com draac.com drakmail.net dr-dre.com dreamstop.com
+freemail_domains egypt.net emailfast.com envirocitizen.com escapeartist.com
+freemail_domains ezsweeps.com famous.as farts.com feelingnaughty.com
+freemail_domains firemyst.com freeonline.com fudge.com funkytimes.com
+freemail_domains gamerssolution.com gazabo.net glittergrrrls.com goatrance.com
+freemail_domains goddess.com gohip.com gospelcity.com gothicgirl.com
+freemail_domains grapemail.net greatautos.org guy.com haitisurf.com
+freemail_domains happyhippo.com hateinthebox.com houseofhorrors.com hugkiss.com
+freemail_domains hullnumber.com idunno4recipes.com ihatenetscape.com
+freemail_domains intimatefire.com irow.com jazzemail.com juanitabynum.com
+freemail_domains kanoodle.com kickboxing.com kidrock.com kinkyemail.com
+freemail_domains kool-things.com latinabarbie.com latinogreeks.com leesville.com
+freemail_domains loveemail.com lowrider.com lucky7lotto.net madeniggaz.net
+freemail_domains mailbomb.com marillion.net megarave.com mofa.com motley.com
+freemail_domains music.com musician.net musicsites.com netbroadcaster.com
+freemail_domains netfingers.com net-surf.com nocharge.com operationivy.com
+freemail_domains paidoffers.net pcbee.com persian.com petrofind.com
+freemail_domains phunkybitches.com pikaguam.com pinkcity.net pitbullmail.com
+freemail_domains planetsmeg.com poop.com poormail.com potsmokersnet.com
+freemail_domains primetap.com project420.com prolife.net puertoricowow.com
+freemail_domains puppetweb.com rapstar.com rapworld.com rastamall.com ratedx.net
+freemail_domains ravermail.com relapsecult.com remixer.com rockeros.com
+freemail_domains romance106fm.com singalongcenter.com sketchyfriends.com
+freemail_domains slayerized.com smartstocks.com soulja-beatz.org
+freemail_domains specialoperations.com speedymail.net spells.com
+freemail_domains streetracing.com subspacemail.com sugarray.com
+freemail_domains superbikeclub.com superintendents.net surfguiden.com
+freemail_domains sweetwishes.com tattoodesign.com teamster.net teenchatnow.com
+freemail_domains the5thquarter.com theblackmarket.com tombstone.ws troamail.org
+freemail_domains u2tours.com vitalogy.org whatisthis.com wrestlezone.com
+# gawab.com
+freemail_domains abha.cc agadir.cc ahsa.ws ajman.cc ajman.us ajman.ws albaha.cc
+freemail_domains algerie.cc alriyadh.cc amman.cc aqaba.cc arar.ws aswan.cc
+freemail_domains baalbeck.cc bahraini.cc banha.cc bizerte.cc blida.info
+freemail_domains buraydah.cc cameroon.cc dhahran.cc dhofar.cc djibouti.cc
+freemail_domains dominican.cc eritrea.cc falasteen.cc fujairah.cc fujairah.us
+freemail_domains fujairah.ws gabes.cc gafsa.cc giza.cc guinea.cc hamra.cc
+freemail_domains hasakah.com hebron.tv homs.cc ibra.cc irbid.ws ismailia.cc
+freemail_domains jadida.cc jadida.org jerash.cc jizan.cc jouf.cc kairouan.cc
+freemail_domains karak.cc khaimah.cc khartoum.cc khobar.cc kuwaiti.tv
+freemail_domains kyrgyzstan.cc latakia.cc lebanese.cc lubnan.cc lubnan.ws
+freemail_domains madinah.cc maghreb.cc manama.cc mansoura.tv marrakesh.cc
+freemail_domains mascara.ws meknes.cc muscat.tv muscat.ws nabeul.cc nabeul.info
+freemail_domains nablus.cc nador.cc najaf.cc omani.ws omdurman.cc oran.cc
+freemail_domains oued.info oued.org oujda.biz oujda.cc pakistani.ws palmyra.cc
+freemail_domains palmyra.ws portsaid.cc qassem.cc quds.cc rabat.cc rafah.cc
+freemail_domains ramallah.cc safat.biz safat.info safat.us safat.ws salalah.cc
+freemail_domains salmiya.biz sanaa.cc seeb.cc sfax.ws sharm.cc sinai.cc siria.cc
+freemail_domains sousse.cc sudanese.cc suez.cc tabouk.cc tajikistan.cc
+freemail_domains tangiers.cc tanta.cc tayef.cc tetouan.cc timor.cc tunisian.cc
+freemail_domains urdun.cc yanbo.cc yemeni.cc yunus.cc zagazig.cc zambia.cc
+# other
+freemail_domains 5005.lv a.org.ua bmx.lv company.org.ua coolmail.ru dino.lv
+freemail_domains eclub.lv e-mail.am fit.lv hacker.am human.lv iphon.biz
+freemail_domains latchess.com loveis.lv lv-inter.net pookmail.com sexriga.lv
+
+# Microsoft's new service 2013-10-18-khopesh
+freemail_domains *.onmicrosoft.com
+
+
+endif
+
diff --git a/sa-updates/20_freemail_mailcom_domains.cf b/sa-updates/20_freemail_mailcom_domains.cf
new file mode 100644 (file)
index 0000000..79d4ce5
--- /dev/null
@@ -0,0 +1,60 @@
+# SpamAssassin - Mail.com Freemail domains file
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# List contains commonly abused end user mail providers
+# "freemail" is solely used for label purposes.
+
+# This dedicated list contains domains provided by mail.com
+
+# Updated 2014-09-17-axb
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+freemail_domains accountant.com acdcfan.com activist.com adexec.com africamail.com aircraftmail.com allergist.com alumni.com alumnidirector.com angelic.com appraiser.net archaeologist.com arcticmail.com artlover.com asia-mail.com asia.com atheist.com auctioneer.net australiamail.com
+freemail_domains bartender.net bellair.net berlin.com bikerider.com birdlover.com blader.com boardermail.com brazilmail.com brew-master.com brew-meister.com bsdmail.com
+freemail_domains californiamail.com cash4u.com catlover.com cheerful.com chef.net chemist.com chinamail.com clerk.com clubmember.org collector.org columnist.com comic.com computer4u.com consultant.com contractor.net coolsite.net counsellor.com cutey.com cyber-wizard.com cyberdude.com cybergal.com cyberservices.com
+freemail_domains dallasmail.com dbzmail.com deliveryman.com diplomats.com disciples.com discofan.com disposable.com doctor.com doglover.com doramail.com dr.com dublin.com dutchmail.com
+freemail_domains elvisfan.com email.com engineer.com englandmail.com europe.com europemail.com execs.com
+freemail_domains fastservice.com financier.com fireman.net
+freemail_domains galaxyhit.com gardener.com geologist.com germanymail.com graduate.org graphic-designer.com greenmail.net groupmail.com
+freemail_domains hackermail.com hairdresser.net hilarious.com hiphopfan.com homemail.com hot-shot.com housemail.com humanoid.net
+freemail_domains iname.acom iname.com innocent.com inorbit.com instruction.com instructor.net insurer.com irelandmail.com israelmail.com italymail.com
+freemail_domains job4u.com journalist.com
+freemail_domains keromail.com kissfans.com kittymail.com koreamail.com
+freemail_domains legislator.com linuxmail.org lobbyist.com lovecat.com
+freemail_domains madonnafan.com mail-me.com mail.com marchmail.com metalfan.com mexicomail.com minister.com moscowmail.com munich.com musician.org muslim.com myself.com
+freemail_domains net-shopping.com ninfan.com nonpartisan.com null.net nycmail.com
+freemail_domains oath.com optician.com orthodontist.net
+freemail_domains pacific-ocean.com pacificwest.com pediatrician.com petlover.com photographer.net physicist.net planetmail.com planetmail.net polandmail.com politician.com post.com presidency.com priest.com programmer.net protestant.com publicist.com
+freemail_domains qualityservice.com
+freemail_domains radiologist.net ravemail.com realtyagent.com reborn.com reggaefan.com registerednurses.com reincarnate.com religious.com repairman.com representative.com rescueteam.com rocketship.com
+freemail_domains safrica.com saintly.com salesperson.net samerica.com sanfranmail.com scientist.com scotlandmail.com secretary.net snakebite.com socialworker.net sociologist.com solution4u.com songwriter.net spainmail.com surgical.net swedenmail.com swissmail.com
+freemail_domains teachers.org tech-center.com techie.com technologist.com theplate.com therapist.net toke.com toothfairy.com torontomail.com tvstar.com
+freemail_domains umpire.com usa.com uymail.com
+freemail_domains webname.com worker.com workmail.com writeme.com
+
+endif
+
+
diff --git a/sa-updates/20_head_tests.cf b/sa-updates/20_head_tests.cf
new file mode 100644 (file)
index 0000000..969ce09
--- /dev/null
@@ -0,0 +1,601 @@
+# SpamAssassin rules file: header tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+###########################################################################
+
+# partial messages; currently-theoretical attack
+# unsurprisingly this hits 0/0 right now.
+header FRAGMENTED_MESSAGE      Content-Type =~ /\bmessage\/partial/i
+describe FRAGMENTED_MESSAGE    Partial message
+tflags FRAGMENTED_MESSAGE       userconf
+
+###########################################################################
+
+header FROM_BLANK_NAME         From =~ /(?:\s|^)"" <\S+>/i
+describe FROM_BLANK_NAME       From: contains empty name
+
+###########################################################################
+# numeric address rules, these are written to avoid overlap with each other
+
+header __FROM_ENDS_IN_NUMS     From:addr =~ /\D\d{8,}\@/i
+
+header FROM_STARTS_WITH_NUMS   From:addr =~ /^\d{3,50}[^0-9\@]/
+describe FROM_STARTS_WITH_NUMS From: starts with several numbers
+
+# don't match US/Canada phone numbers: 10 digits optionally preceded by a "1"
+header __FROM_ALL_NUMS         From:addr =~ /^(?:\d{1,9}|[02-9]\d{10}|\d{12,})@/
+
+###########################################################################
+
+header FROM_OFFERS             From:addr =~ /\@\S*offers(?![eo]n\b)/i
+describe FROM_OFFERS           From address is "at something-offers"
+
+header FROM_NO_USER            From =~ /(?:^\@|<\@| \@[^\)<]*$|<>)/ [if-unset: unset@unset.unset]
+describe FROM_NO_USER          From: has no local-part before @ sign
+
+# also 100% valid
+# bug 6149: avoid common .jp false positives
+header __PLING_QUERY           Subject =~ /\?.*!|!.*\?/
+meta PLING_QUERY                (__PLING_QUERY && !__ISO_2022_JP_DELIM)
+describe PLING_QUERY           Subject has exclamation mark and question mark
+
+
+
+
+header MSGID_SPAM_CAPS         Message-ID =~ /^\s*<?[A-Z]+\@(?!(?:mailcity|whowhere)\.com)/
+describe MSGID_SPAM_CAPS       Spam tool Message-Id: (caps variant)
+
+header MSGID_SPAM_LETTERS      Message-Id =~ /<[a-z]{5,}\@(\S+\.)+\S+>/
+describe MSGID_SPAM_LETTERS    Spam tool Message-Id: (letters variant)
+
+
+
+# negative lookahead exempts this MUA from circa 1997-2000
+# X-Mailer: Microsoft Outlook Express 4.71.1712.3
+# Message-ID: <01bd45da$2649cdc0$LocalHost@andrew>
+header __MSGID_DOLLARS_OK      MESSAGEID =~ /<[0-9a-f]{4,}\$[0-9a-f]{4,}\$[0-9a-f]{4,}\@\S+>/
+header __MSGID_DOLLARS_MAYBE   MESSAGEID =~ /<\w{4,}\$\w{4,}\$(?!localhost)\w{4,}\@\S+>/i
+meta MSGID_DOLLARS_RANDOM      __MSGID_DOLLARS_MAYBE && !__MSGID_DOLLARS_OK
+
+# bit of a ratware rule, but catches a bit more than just the one ratware
+header __MSGID_RANDY           Message-ID =~ /<[a-z\d][a-z\d\$-]{10,29}[a-z\d]\@[a-z\d][a-z\d.]{3,12}[a-z\d]>/
+# heuristic to eliminate most good Message-ID formats
+header __MSGID_OK_HEX          Message-ID =~ /\b[a-f\d]{8}\b/
+header __MSGID_OK_DIGITS       Message-ID =~ /\d{10}/
+header __MSGID_OK_HOST         Message-ID =~ /\@(?:\D{2,}|(?:\d{1,3}\.){3}\d{1,3})>/
+meta MSGID_RANDY       (__MSGID_RANDY && !(__MSGID_OK_HEX || __MSGID_OK_DIGITS || __MSGID_OK_HOST))
+describe MSGID_RANDY           Message-Id has pattern used in spam
+
+# bug 3395
+header MSGID_YAHOO_CAPS                Message-ID =~ /<[A-Z]+\@yahoo.com>/
+describe MSGID_YAHOO_CAPS      Message-ID has ALLCAPS@yahoo.com
+
+###########################################################################
+
+header   __AT_AOL_MSGID                MESSAGEID =~ /\@aol\.com\b/i
+header   __FROM_AOL_COM                From =~ /\@aol\.com\b/i
+meta     FORGED_MSGID_AOL      (__AT_AOL_MSGID && !__FROM_AOL_COM)
+describe FORGED_MSGID_AOL      Message-ID is forged, (aol.com)
+
+header   __AT_EXCITE_MSGID     MESSAGEID =~ /\@excite\.com\b/i
+header   __MY_RCVD_EXCITE      Received =~ /\.excite\.com\b/i
+meta     FORGED_MSGID_EXCITE   (__AT_EXCITE_MSGID && !__MY_RCVD_EXCITE)
+describe FORGED_MSGID_EXCITE   Message-ID is forged, (excite.com)
+
+header   __AT_HOTMAIL_MSGID    MESSAGEID =~ /\@hotmail\.com\b/i
+header   __FROM_HOTMAIL_COM    From =~ /\@hotmail\.com\b/i
+meta     FORGED_MSGID_HOTMAIL  (__AT_HOTMAIL_MSGID && (!__FROM_HOTMAIL_COM && !__FROM_MSN_COM && !__FROM_YAHOO_COM))
+describe FORGED_MSGID_HOTMAIL  Message-ID is forged, (hotmail.com)
+
+header   __AT_MSN_MSGID                MESSAGEID =~ /\@msn\.com\b/i
+header   __FROM_MSN_COM                From =~ /\@msn\.com\b/i
+meta     FORGED_MSGID_MSN      (__AT_MSN_MSGID && (!__FROM_MSN_COM && !__FROM_HOTMAIL_COM && !__FROM_YAHOO_COM))
+describe FORGED_MSGID_MSN      Message-ID is forged, (msn.com)
+
+header   __AT_YAHOO_MSGID      MESSAGEID =~ /\@yahoo\.com\b/i
+header   __FROM_YAHOO_COM      From =~ /\@yahoo\.com\b/i
+meta     FORGED_MSGID_YAHOO    (__AT_YAHOO_MSGID && !__FROM_YAHOO_COM)
+describe FORGED_MSGID_YAHOO    Message-ID is forged, (yahoo.com)
+
+###########################################################################
+
+header __MSGID_BEFORE_RECEIVED ALL =~ /^Message-Id:.*?^Received:/msi
+header __MSGID_BEFORE_OKAY     Message-Id =~ /\@[a-z0-9.-]+\.(?:yahoo|wanadoo)(?:\.[a-z]{2,3}){1,2}>/
+
+meta MSGID_FROM_MTA_HEADER     (__MSGID_BEFORE_RECEIVED && !__MSGID_BEFORE_OKAY && !__FROM_HOTMAIL_COM)
+describe MSGID_FROM_MTA_HEADER Message-Id was added by a relay
+
+
+
+header MSGID_SHORT             MESSAGEID =~ /^.{1,15}$|<.{0,4}\@/
+describe MSGID_SHORT           Message-ID is unusually short
+
+#DEMOTED TO SANDBOX - 2012-03-21
+#header MSGID_MULTIPLE_AT      MESSAGEID =~ /<[^>]*\@[^>]*\@/
+#describe MSGID_MULTIPLE_AT    Message-ID contains multiple '@' characters
+
+###########################################################################
+
+header DATE_SPAMWARE_Y2K       Date =~ /^[A-Z][a-z]{2}, \d\d [A-Z][a-z]{2} [0-6]\d \d\d:\d\d:\d\d [A-Z]{3}$/
+describe DATE_SPAMWARE_Y2K     Date header uses unusual Y2K formatting
+
+# as noted on the dev@ list, ":60" is valid for seconds when there's a leap
+# second (12/31/2005 for instance), so let's accept that as valid.  ISO 8601
+# apparently allows for it.
+# there were a few whitespace issues in the original RE, and I wanted to avoid my
+# two common, but yes invalid, date headers.  specifically / \(GMT\)$/ and
+# / 0000 GMT$/.  dos has / "GMT"$/ - tvd
+# 2.229   2.7267   0.0517    0.981   0.86    0.00  INVALID_DATE
+# 2.263   2.7486   0.1368    0.953   0.78    0.00  INVALID_DATE_OLD
+#
+# WRT the tests, remember that ok and fail are reversed -- so valid dates
+# should be "fail" and invalid dates should be "ok".
+header INVALID_DATE            Date !~ /^\s*(?:(?i:Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?\s*(?:[12]\d|3[01]|0?[1-9])\s+(?i:Jan|Feb|Ma[ry]|Apr|Ju[nl]|Aug|Sep|Oct|Nov|Dec)\s+(?:19[7-9]\d|2\d{3})\s+(?:[01]?\d|2[0-3])\:[0-5]\d(?::(?:[0-5]\d|60))?(?:\s+[AP]M)?(?:\s+(?:[+-][0-9]{4}|UT|[A-Z]{2,3}T|0000 GMT|"GMT"))?(?:\s*\(.*\))?\s*$/ [if-unset: Wed, 31 Jul 2002 16:41:57 +0200]
+describe INVALID_DATE          Invalid Date: header (not RFC 2822)
+test INVALID_DATE fail    Sat, 31 Dec 2005 23:59:60 -0500
+test INVALID_DATE fail    Wed, 31 Jul 2002 16:41:57 +0200
+test INVALID_DATE fail    Sat, 31 Dec 2005 23:00:00 
+test INVALID_DATE ok      Sat, 31 Dec 2005 24:00:00 -0500
+test INVALID_DATE ok      Thurs, 31 Jul 2002 16:41:57 +0200
+
+# allow +1300, NZ timezone
+header INVALID_DATE_TZ_ABSURD  Date =~ /[-+](?!(?:0\d|1[0-4])(?:[03]0|[14]5))\d{4}$/
+describe INVALID_DATE_TZ_ABSURD        Invalid Date: header (timezone does not exist)
+
+header INVALID_TZ_CST          ALL =~ /[+-]\d\d[30]0(?<!-0600|-0500|\+0800|\+0930|\+1030)\s+(?:\bCST\b|\(CST\))/
+describe INVALID_TZ_CST                Invalid date in header (wrong CST timezone)
+
+header INVALID_TZ_EST          ALL =~ /[+-]\d\d[30]0(?<!-0500|-0300|\+1000|\+1100)\s+(?:\bEST\b|\(EST\))/
+describe INVALID_TZ_EST                Invalid date in header (wrong EST timezone)
+
+
+###########################################################################
+# MIME encoding with spam characteristics
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+meta __SUBJECT_NEEDS_MIME      __SUBJ_ILLEGAL_CHARS
+endif
+
+header __SUBJECT_ENCODED_QP    Subject:raw =~ /=\?\S+\?Q\?/i
+header __SUBJECT_ENCODED_B64   Subject:raw =~ /=\?\S+\?B\?/i
+
+
+
+header __FROM_NEEDS_MIME       From:name:raw =~ /[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]/
+header __FROM_NEEDS_MIME2      From:name =~ /[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\xff]/
+header __FROM_ENCODED_QP       From:raw =~ /=\?\S+\?Q\?/i
+header __FROM_ENCODED_B64      From:raw =~ /=\?\S+\?B\?/i
+
+
+meta FROM_EXCESS_BASE64                __FROM_ENCODED_B64 && !__FROM_NEEDS_MIME2
+describe FROM_EXCESS_BASE64    From: base64 encoded unnecessarily
+
+
+###########################################################################
+# ADV tags in various languages
+
+header ENGLISH_UCE_SUBJECT     Subject =~ /^[^0-9a-z]*adv(?:ert)?\b/i
+describe ENGLISH_UCE_SUBJECT   Subject contains an English UCE tag
+
+# alan premselaar <alien@12inch.com>, see SpamAssassin-talk list 2003-03
+# quinlan: 2003-03-23 here are more generic Japanese iso-2022-jp codes
+# ("not yet acceptance" or "email") + "announcement"
+# FWIW, according to Peter Evans, this should be sufficient to catch the
+# UCE tag and a common attempt at evasion (using the "sue" instead of
+# "mi" Chinese character).  2006-10-12: updated by bug 4021.
+header JAPANESE_UCE_SUBJECT     Subject =~ /\e\$B.*(?:L\$>5Bz|EE;R%a!<%k)(?:8x|9-)9p/
+describe JAPANESE_UCE_SUBJECT  Subject contains a Japanese UCE tag
+
+# check body for "shou nin daku kou koku" UCE tag (bug 4021)
+body __JAPANESE_UCE_BODY        /(?:L\$>5Bz|EE;R%a!<%k)(?:8x|9-)9p/
+
+meta JAPANESE_UCE_BODY (__ISO_2022_JP_DELIM && __JAPANESE_UCE_BODY)
+describe JAPANESE_UCE_BODY      Body contains Japanese UCE tag
+
+# quinlan: "advertisement" in Russian KOI8-R
+# (no longer common, but worth noting in future)
+#header RUSSIAN_UCE_SUBJECT    Subject =~ /\xf0\xe5\xea\xeb\xe0\xec\xf3/
+#describe RUSSIAN_UCE_SUBJECT  Subject contains a Russian UCE tag
+
+# Korean UCE Subject: lines are usually 8-bit, but are occasionally encoded
+# with quoted-printable or base64.
+#
+# \xbc\xba\xc0\xce means "adult"
+# \xb1\xa4\xb0\xed means "advertisement"
+# \xc1\xa4\xba\xb8 means "information"
+# \xc8\xab\xba\xb8 means "publicity"
+#
+# Each two byte sequence is one Korean letter; the spaces and periods are
+# sometimes used to obscure the words.  \xb1\xa4\xb0\xed is the most common
+# tag and is sometimes very obscured so we look harder.
+#
+header KOREAN_UCE_SUBJECT      Subject =~ /[({[<][. ]*(?-i:\xbc\xba[. ]*\xc0\xce[. ]*)?(?-i:\xb1\xa4(?:[. ]*|[\x00-\x7f]{0,3})\xb0\xed|\xc1\xa4[. ]*\xba\xb8|\xc8\xab[. ]*\xba\xb8)[. ]*[)}\]>]/
+describe KOREAN_UCE_SUBJECT    Subject: contains Korean unsolicited email tag
+
+###########################################################################
+
+# two reliable signatures
+header __DOUBLE_IP_SPAM_1      Received =~ /from \[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\] by \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} with/
+header __DOUBLE_IP_SPAM_2      Received =~ /from\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s+by\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3};/
+# loose match
+header __DOUBLE_IP_LOOSE       Received =~ /(?:\b(?:from|by)\b.{1,4}\b\d{1,3}[._-]\d{1,3}[._-]\d{1,3}[._-]\d{1,3}(?<!127\.0\.0\.1)\b.{0,4}){2}/i
+# spam signature
+meta RCVD_DOUBLE_IP_SPAM       (__DOUBLE_IP_SPAM_1 || __DOUBLE_IP_SPAM_2)
+describe RCVD_DOUBLE_IP_SPAM   Bulk email fingerprint (double IP) found
+# other matches
+meta RCVD_DOUBLE_IP_LOOSE      (__DOUBLE_IP_LOOSE && !RCVD_DOUBLE_IP_SPAM)
+describe RCVD_DOUBLE_IP_LOOSE   Received: by and from look like IP addresses
+
+header FORGED_TELESP_RCVD      Received =~ /\.(?!br).. \(\d+-\d+-\d+-\d+\.dsl\.telesp\.net\.br /
+describe FORGED_TELESP_RCVD    Contains forged hostname for a DSL IP in Brazil
+
+# forgery meta-rules: more reliable than their inputs
+meta CONFIRMED_FORGED          (__FORGED_RCVD_TRAIL && (__FORGED_AOL_RCVD || __FORGED_HOTMAIL_RCVD || __FORGED_EUDORAMAIL_RCVD || FORGED_YAHOO_RCVD || __FORGED_JUNO_RCVD || FORGED_GMAIL_RCVD))
+describe CONFIRMED_FORGED      Received headers are forged
+
+meta MULTI_FORGED              ((__FORGED_AOL_RCVD + __FORGED_HOTMAIL_RCVD + __FORGED_EUDORAMAIL_RCVD + FORGED_YAHOO_RCVD + __FORGED_JUNO_RCVD + FORGED_GMAIL_RCVD) > 1)
+describe MULTI_FORGED          Received headers indicate multiple forgeries
+
+header NONEXISTENT_CHARSET     Content-Type =~ /charset=.?DEFAULT/
+describe NONEXISTENT_CHARSET   Character set doesn't exist
+
+header __HAS_MESSAGE_ID                exists:Message-Id
+meta MISSING_MID               !__HAS_MESSAGE_ID
+describe MISSING_MID            Missing Message-Id: header
+
+header __HAS_DATE              exists:Date
+meta MISSING_DATE              !__HAS_DATE
+describe MISSING_DATE           Missing Date: header
+
+header __HAS_SUBJECT           exists:Subject
+meta MISSING_SUBJECT           !__HAS_SUBJECT
+describe MISSING_SUBJECT       Missing Subject: header
+
+# bug 6353
+header __HAS_FROM              exists:From
+meta MISSING_FROM              !__HAS_FROM
+describe MISSING_FROM          Missing From: header
+
+# bug 6149: avoid common .jp false positives
+header __GAPPY_SUBJECT         Subject =~ /\b(?:[a-z]([-_. =~\/:,*!\@\#\$\%\^&+;\"\'<>\\])\1{0,2}){4}/i
+meta GAPPY_SUBJECT              (__GAPPY_SUBJECT && !__ISO_2022_JP_DELIM)
+describe GAPPY_SUBJECT         Subject: contains G.a.p.p.y-T.e.x.t
+
+### header existence tests (description is added automatically)
+
+# X-Fix example: NTMail fixed non RFC822 compliant EMail message
+#
+# X-PMFLAGS is all caps
+#
+# Headers that seem to only be used by a single spamming software and
+# are found together in the same message:
+# 1. X-MailingID and X-ServerHost
+# 2. X-Stormpost-To and X-List-Unsubscribe
+#
+# not spammish: X-EM-Registration, X-EM-Version, X-Antiabuse, X-List-Host,
+# X-Message-Id
+# bad FP rate: Comment, Date-warning
+
+header PREVENT_NONDELIVERY     exists:Prevent-NonDelivery-Report
+describe PREVENT_NONDELIVERY   Message has Prevent-NonDelivery-Report header
+
+header X_IP                    exists:X-IP
+describe X_IP                  Message has X-IP header
+
+header   __HAS_MIMEOLE          exists:X-MimeOLE
+header   __HAS_MSMAIL_PRI       exists:X-MSMail-Priority
+header   __HAS_SQUIRRELMAIL_IN_MAILER  X-Mailer =~ /SquirrelMail\b/
+# Ever growing Office version list without X-MimeOLE, bug 6346, 7122, 7463.
+header   __HAS_OFFICE1214_IN_MAILER    X-Mailer =~ /^Microsoft (?:Office )?Outlook 1[2456]\.0/
+# CGP MAPI module fingerprint, to protect from MISSING_MIMEOLE
+header   __HAS_CGP_MAPI_IN_MAILER X-Mailer =~ /CommuniGate Pro MAPI/
+meta     MISSING_MIMEOLE       (__HAS_MSMAIL_PRI && !__HAS_MIMEOLE && !__HAS_SQUIRRELMAIL_IN_MAILER && !__HAS_OFFICE1214_IN_MAILER && !__HAS_CGP_MAPI_IN_MAILER && !__HDR_RCVD_TONLINEDE && !__MIME_BASE64 && !__DKIM_EXISTS) 
+describe MISSING_MIMEOLE       Message has X-MSMail-Priority, but no X-MimeOLE
+
+header __HAS_X_MAILER          exists:X-Mailer
+
+header __IS_EXCH               X-MimeOLE =~ /Produced By Microsoft Exchange V/
+
+header SUBJ_AS_SEEN            Subject =~ /\bAs Seen/i
+describe SUBJ_AS_SEEN          Subject contains "As Seen"
+
+header SUBJ_DOLLARS             Subject =~ /^\$[0-9.,]+\b/
+describe SUBJ_DOLLARS           Subject starts with dollar amount
+
+
+
+
+
+
+#DISABLING DUE TO POOR S/O 2012-09-27
+#header SUBJ_YOUR_DEBT         Subject =~ /Your (?:Bills|Debt|Credit)/i
+#describe SUBJ_YOUR_DEBT               Subject contains "Your Bills" or similar
+
+header SUBJ_YOUR_FAMILY                Subject =~ /Your Family/i
+describe SUBJ_YOUR_FAMILY      Subject contains "Your Family"
+
+
+# the real services never HELO as 'foo.com', instead 'mail.foo.com' or
+# something like that.  Note: be careful when expanding this... legit dotcom
+# HELOers include: hotmail.com, drizzle.com, lockergnome.com.
+header RCVD_FAKE_HELO_DOTCOM    Received =~ /^from (?:msn|yahoo|yourwebsite|lycos|excite|cs|aol|localhost|koreanmail|allexecs|mydomain|juno|eudoramail|compuserve|desertmail|excite|caramail)\.com \(/m
+describe RCVD_FAKE_HELO_DOTCOM  Received contains a faked HELO hostname
+
+header SUBJECT_DIET            Subject =~ /\bLose .*(?:pounds|lbs|weight)/i
+describe SUBJECT_DIET          Subject talks about losing pounds
+
+
+# MIME boundary tests; spam tools use distinctive patterns.
+header MIME_BOUND_DD_DIGITS    Content-Type =~ /boundary=\"--\d+\"/
+describe MIME_BOUND_DD_DIGITS  Spam tool pattern in MIME boundary
+header MIME_BOUND_DIGITS_15    Content-Type =~ /boundary=\"\d{15,}\"/
+describe MIME_BOUND_DIGITS_15  Spam tool pattern in MIME boundary
+header MIME_BOUND_MANY_HEX     Content-Type =~ /boundary="[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}"/
+describe MIME_BOUND_MANY_HEX   Spam tool pattern in MIME boundary
+
+# note: the first alternation is anchored for speed
+header TO_MALFORMED             To !~ /(?:^|[^\S"])(?:(?:\"[^\"]+\"|\S+)\@\S+\.\S+|^\s*.+:\s*;|^\s*\"[^\"]+\":\s*;|^\s*\([^\)]*\)\s*$|<\S+(?:\!\S+){1,}>|^\s*$)/ [if-unset: unset@unset.unset]
+describe TO_MALFORMED           To: has a malformed address
+
+header __CD                     exists:Content-Disposition
+header __CT                     exists:Content-Type
+header __CTE                    exists:Content-Transfer-Encoding
+header __MIME_VERSION           exists:MIME-Version
+header __CT_TEXT_PLAIN          Content-Type =~ /^text\/plain\b/i
+meta MIME_HEADER_CTYPE_ONLY     (!__CD && !__CTE && __CT && !__MIME_VERSION && !__CT_TEXT_PLAIN)
+describe MIME_HEADER_CTYPE_ONLY 'Content-Type' found without required MIME headers
+
+header WITH_LC_SMTP            Received =~ /\swith\ssmtp;\s/
+describe WITH_LC_SMTP          Received line contains spam-sign (lowercase smtp)
+
+
+header SUBJ_BUY                 Subject =~ /^buy/i
+describe SUBJ_BUY               Subject line starts with Buy or Buying
+
+# seems to be ratware
+header RCVD_AM_PM              Received =~ /; [A-Z][a-z][a-z], \d{1,2} \d{4} \d{1,2}:\d\d:\d\d [AP]M [+-]\d{4}/
+describe RCVD_AM_PM            Received headers forged (AM/PM)
+
+header __USER_AGENT_MSN                X-Mailer =~ /^MSN Explorer /
+
+# host no longer exists according to administrator
+header FAKE_OUTBLAZE_RCVD      Received =~ /\.mr\.outblaze\.com/
+describe FAKE_OUTBLAZE_RCVD    Received header contains faked 'mr.outblaze.com'
+
+
+# thanks to David Ritz for passing this on
+header UNCLOSED_BRACKET                ALL =~ /\[\d+\r?\n/s
+describe UNCLOSED_BRACKET      Headers contain an unclosed bracket
+
+header FROM_DOMAIN_NOVOWEL     From =~ /\@\S*[bcdfgjklmnpqrstvwxz]{7}/i
+describe FROM_DOMAIN_NOVOWEL   From: domain has series of non-vowel letters
+tflags FROM_DOMAIN_NOVOWEL userconf     # lock scores low
+
+header FROM_LOCAL_NOVOWEL      From =~ /[bcdfgjklmnpqrstvwxz]{7}\S*\@/i
+describe FROM_LOCAL_NOVOWEL    From: localpart has series of non-vowel letters
+tflags FROM_LOCAL_NOVOWEL userconf     # lock scores low
+
+header FROM_LOCAL_HEX          From =~ /[0-9a-f]{11}\S*\@/i
+describe FROM_LOCAL_HEX                From: localpart has long hexadecimal sequence
+
+header FROM_LOCAL_DIGITS       From =~ /\d{11}\S*\@/i
+describe FROM_LOCAL_DIGITS     From: localpart has long digit sequence
+
+header __TOCC_EXISTS           exists:ToCc
+
+header X_PRIORITY_CC           ALL =~ /^X-Priority:[^\n]{0,80}^Cc:/msi
+describe X_PRIORITY_CC         Cc: after X-Priority: (bulk email fingerprint)
+
+# catch non-RFC2047 compliant messages
+# Apple Mail has a bug where headers will have whitespace around the encoded
+# text, so try to ignore that
+header BAD_ENC_HEADER          ALL:raw =~ /=\?[^?\s]+\?[^?\s]\?\s*[^?]+\s(?!\?=)/
+describe BAD_ENC_HEADER                Message has bad MIME encoding in the header
+
+
+header __ML1  Precedence =~ m{\b(list|bulk)\b}i
+header __ML2  exists:List-Id
+header __ML3  exists:List-Post
+header __ML4  exists:Mailing-List
+header __ML5  Return-Path:addr =~ m{^([^\@]+-(request|bounces|admin|owner)|owner-[^\@]+)(\@|\z)}i
+meta     __VIA_ML  __ML1 || __ML2 || __ML3 || __ML4 || __ML5
+describe __VIA_ML  Mail from a mailing list
+
+
+# some clueless mailing lists (like zmailer with an RFC822TABS option on)
+# are replacing a leading space by a TAB in header fields From, To,
+# Cc, Date (Bug 6429)
+header   __ML_TURNS_SP_TO_TAB  Received =~ /\(ORCPT <rfc822;/
+describe __ML_TURNS_SP_TO_TAB  A mailing list changing a space to a TAB
+
+
+# must keep it in sync with https://www.iana.org/assignments/ipv4-address-space/
+header RCVD_ILLEGAL_IP         X-Spam-Relays-Untrusted =~ / (?:by|ip)=(?=\d+\.\d+\.\d+\.\d+ )(?:(?:0|2(?:2[4-9]|[3-5]\d)|192\.0\.2|198\.51\.100|203\.0\.113)\.|(?:\d+\.){0,3}(?!(?:2(?:[0-4]\d|5[0-5])|[01]?\d\d?)\b))/
+describe RCVD_ILLEGAL_IP       Received: contains illegal IP address
+
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+header __FORGED_AOL_RCVD               eval:check_for_fake_aol_relay_in_rcvd()
+
+header CHARSET_FARAWAY_HEADER  eval:check_for_faraway_charset_in_headers()
+describe CHARSET_FARAWAY_HEADER        A foreign language charset used in headers
+tflags CHARSET_FARAWAY_HEADER  userconf
+
+    ###################################################################
+
+# illegal characters that should be MIME encoded
+# might want to exempt users using languages that don't use Latin
+# alphabets, but do it in the eval
+
+header __SUBJ_ILLEGAL_CHARS    eval:check_illegal_chars('Subject','0.00','2')
+meta SUBJ_ILLEGAL_CHARS         (__SUBJ_ILLEGAL_CHARS && !__FROM_YAHOO_COM)
+describe SUBJ_ILLEGAL_CHARS    Subject: has too many raw illegal characters
+
+header FROM_ILLEGAL_CHARS      eval:check_illegal_chars('From','0.20','2')
+describe FROM_ILLEGAL_CHARS    From: has too many raw illegal characters
+
+header __HEAD_ILLEGAL_CHARS    eval:check_illegal_chars('ALL','0.010','2')
+meta HEAD_ILLEGAL_CHARS                __HEAD_ILLEGAL_CHARS && !__SUBJ_ILLEGAL_CHARS && !FROM_ILLEGAL_CHARS
+describe HEAD_ILLEGAL_CHARS    Headers have too many raw illegal characters
+
+    ###################################################################
+
+# a forged Hotmail message; host HELO'd as hotmail.com, but it wasn't
+header __FORGED_HOTMAIL_RCVD   eval:check_for_forged_hotmail_received_headers()
+
+# this, by comparison is more common: from was @hotmail.com, but it wasn't
+header FORGED_HOTMAIL_RCVD2    eval:check_for_no_hotmail_received_headers()
+describe FORGED_HOTMAIL_RCVD2 hotmail.com 'From' address, but no 'Received:'
+
+header __FORGED_EUDORAMAIL_RCVD        eval:check_for_forged_eudoramail_received_headers()
+
+header FORGED_YAHOO_RCVD       eval:check_for_forged_yahoo_received_headers()
+describe FORGED_YAHOO_RCVD     'From' yahoo.com does not match 'Received' headers
+
+if (version >= 3.004002)
+header FORGED_GMAIL_RCVD       eval:check_for_forged_gmail_received_headers()
+describe FORGED_GMAIL_RCVD     'From' gmail.com does not match 'Received' headers
+endif
+
+header __FORGED_JUNO_RCVD      eval:check_for_forged_juno_received_headers()
+
+
+
+header SORTED_RECIPS           eval:sorted_recipients()
+describe SORTED_RECIPS         Recipient list is sorted by address
+
+header SUSPICIOUS_RECIPS       eval:similar_recipients('0.65','undef')
+describe SUSPICIOUS_RECIPS     Similar addresses in recipient list
+
+# this is a quite common false positive, as it's legal to remove a To but leave
+# a CC. so don't score it high.
+header MISSING_HEADERS         eval:check_for_missing_to_header()
+describe MISSING_HEADERS       Missing To: header
+
+header DATE_IN_PAST_03_06      eval:check_for_shifted_date('-6', '-3')
+describe DATE_IN_PAST_03_06    Date: is 3 to 6 hours before Received: date
+
+header DATE_IN_PAST_06_12      eval:check_for_shifted_date('-12', '-6')
+describe DATE_IN_PAST_06_12    Date: is 6 to 12 hours before Received: date
+
+header DATE_IN_PAST_12_24      eval:check_for_shifted_date('-24', '-12')
+describe DATE_IN_PAST_12_24    Date: is 12 to 24 hours before Received: date
+
+header DATE_IN_PAST_24_48      eval:check_for_shifted_date('-48', '-24')
+describe DATE_IN_PAST_24_48    Date: is 24 to 48 hours before Received: date
+
+
+header DATE_IN_PAST_96_XX      eval:check_for_shifted_date('undef', '-96')
+describe DATE_IN_PAST_96_XX    Date: is 96 hours or more before Received: date
+
+header DATE_IN_FUTURE_03_06    eval:check_for_shifted_date('3', '6')
+describe DATE_IN_FUTURE_03_06  Date: is 3 to 6 hours after Received: date
+
+header DATE_IN_FUTURE_06_12    eval:check_for_shifted_date('6', '12')
+describe DATE_IN_FUTURE_06_12  Date: is 6 to 12 hours after Received: date
+
+header DATE_IN_FUTURE_12_24    eval:check_for_shifted_date('12', '24')
+describe DATE_IN_FUTURE_12_24  Date: is 12 to 24 hours after Received: date
+
+header DATE_IN_FUTURE_24_48    eval:check_for_shifted_date('24', '48')
+describe DATE_IN_FUTURE_24_48  Date: is 24 to 48 hours after Received: date
+
+header DATE_IN_FUTURE_48_96    eval:check_for_shifted_date('48', '96')
+describe DATE_IN_FUTURE_48_96  Date: is 48 to 96 hours after Received: date
+
+#header DATE_IN_FUTURE_96_XX   eval:check_for_shifted_date('96', 'undef')
+meta DATE_IN_FUTURE_96_XX      (0)
+describe DATE_IN_FUTURE_96_XX  Date: is 96 hours or more after Received: date
+
+header UNRESOLVED_TEMPLATE     eval:check_unresolved_template()
+describe UNRESOLVED_TEMPLATE   Headers contain an unresolved template
+
+header SUBJ_ALL_CAPS           eval:subject_is_all_caps()
+describe SUBJ_ALL_CAPS         Subject is all capitals
+
+
+header LOCALPART_IN_SUBJECT    eval:check_for_to_in_subject('user')
+describe LOCALPART_IN_SUBJECT  Local part of To: address appears in Subject
+
+header MSGID_OUTLOOK_INVALID   eval:check_outlook_message_id()
+describe MSGID_OUTLOOK_INVALID Message-Id is fake (in Outlook Express format)
+
+header HEADER_COUNT_CTYPE      eval:check_header_count_range('Content-Type','2','999')
+describe HEADER_COUNT_CTYPE    Multiple Content-Type headers found
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+# this is also mostly-theoretical, so allow 0 hits
+header HEAD_LONG                eval:check_msg_parse_flags('truncated_header')
+describe HEAD_LONG              Message headers are very long
+tflags HEAD_LONG                userconf
+
+header MISSING_HB_SEP          eval:check_msg_parse_flags('missing_head_body_separator')
+describe MISSING_HB_SEP                Missing blank line between message header and body
+tflags MISSING_HB_SEP          userconf
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::RelayEval
+
+header __UNPARSEABLE_RELAY_COUNT        eval:check_relays_unparseable()
+tflags __UNPARSEABLE_RELAY_COUNT        userconf
+
+meta    UNPARSEABLE_RELAY      (__UNPARSEABLE_RELAY_COUNT >= 1)
+tflags  UNPARSEABLE_RELAY      userconf
+describe UNPARSEABLE_RELAY      Informational: message has unparseable relay lines
+
+
+header RCVD_HELO_IP_MISMATCH   eval:helo_ip_mismatch()
+describe RCVD_HELO_IP_MISMATCH Received: HELO and IP do not match, but should
+
+# not used directly right now due to FPs; but CONFIRMED_FORGED turns it
+# into a 1.0 S/O rule anyway, so that's not a problem ;)
+# 2.626   3.6340   1.5251    0.704   0.34    1.44  FORGED_RCVD_TRAIL
+# 0.956   3.3890   0.0000    1.000   0.98    4.30  CONFIRMED_FORGED
+header __FORGED_RCVD_TRAIL     eval:check_for_forged_received_trail()
+
+header NO_RDNS_DOTCOM_HELO     eval:check_for_no_rdns_dotcom_helo()
+describe NO_RDNS_DOTCOM_HELO   Host HELO'd as a big ISP, but had no rDNS
+
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+header __ENV_AND_HDR_FROM_MATCH        eval:check_for_matching_env_and_hdr_from()
+
+endif
+
diff --git a/sa-updates/20_html_tests.cf b/sa-updates/20_html_tests.cf
new file mode 100644 (file)
index 0000000..a346ee4
--- /dev/null
@@ -0,0 +1,238 @@
+# SpamAssassin rules file: HTML tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+# HTML parser tests
+#
+# please sort these by eval type then name
+
+meta HTML_SHORT_LINK_IMG_1     __HTML_LENGTH_0000_1024 && __HTML_LINK_IMAGE
+meta HTML_SHORT_LINK_IMG_2     __HTML_LENGTH_1024_1536 && __HTML_LINK_IMAGE
+meta HTML_SHORT_LINK_IMG_3     __HTML_LENGTH_1536_2048 && __HTML_LINK_IMAGE
+describe HTML_SHORT_LINK_IMG_1 HTML is very short with a linked image
+describe HTML_SHORT_LINK_IMG_2 HTML is very short with a linked image
+describe HTML_SHORT_LINK_IMG_3 HTML is very short with a linked image
+
+
+meta HTML_SHORT_CENTER         (__HTML_LENGTH_384 && __TAG_EXISTS_CENTER)
+describe HTML_SHORT_CENTER     HTML is very short with CENTER tag
+
+
+meta HTML_TITLE_SUBJ_DIFF      __HTML_TITLE_SUBJ_DIFF && !__MIME_ATTACHMENT
+
+meta HTML_CHARSET_FARAWAY      (__HTML_CHARSET_FARAWAY && __HIGHBITS)
+describe HTML_CHARSET_FARAWAY  A foreign language charset used in HTML markup
+tflags HTML_CHARSET_FARAWAY    userconf
+
+meta HTML_MIME_NO_HTML_TAG     MIME_HTML_ONLY && !__TAG_EXISTS_HTML
+describe HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag
+
+meta HTML_MISSING_CTYPE                (!__MIME_HTML && HTML_MESSAGE)
+describe HTML_MISSING_CTYPE    Message is HTML without HTML Content-Type
+
+###########################################################################
+# rawbody HTML tests
+
+rawbody HIDE_WIN_STATUS                /<[^>]{1,1000}onMouseOver=[^>]{1,1000}window\.status=/i
+describe HIDE_WIN_STATUS       Javascript to hide URLs in browser
+
+rawbody __OBFUSCATING_COMMENT_A        /\w(?:<![^>]*>)+\w/
+rawbody __OBFUSCATING_COMMENT_B        /[^\s>](?:<![^>]*>)+[^\s<]/
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+meta OBFUSCATING_COMMENT       ((__OBFUSCATING_COMMENT_A && HTML_MESSAGE) || (__OBFUSCATING_COMMENT_B && MIME_HTML_ONLY)) && !__ISO_2022_JP_DELIM
+describe OBFUSCATING_COMMENT   HTML comments which obfuscate text
+endif
+endif
+
+# spams that are assembled from a Javascript array
+# look for the XOR op
+rawbody __JS_FROMCHARCODE       /String\.fromCharCode\s*\(\s*\S+\s*\[\s*\S+\s*\]\s*\^/
+rawbody __JS_DOCWRITE           /document\.write/
+meta JS_FROMCHARCODE            (__JS_FROMCHARCODE && __JS_DOCWRITE)
+describe JS_FROMCHARCODE        Document is built from a Javascript charcode array
+
+# a good possible rule that may resurface
+# ! $ % ' ( ) , - . / : ; = ? @ _
+#rawbody ENTITY_DEC_OTHER      /\&\#0*(?:3[3679]|4[014567]|5[89]|6[134]|95)\;/
+#describe ENTITY_DEC_OTHER     HTML contains needlessly encoded punctuation
+
+body __HIGHBITS                     /(?:[\x80-\xff].?){4}/
+# note: __HIGHBITS is used by HTML_CHARSET_FARAWAY
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+
+# HTML control test, HTML spam rules should all have better S/O than this
+body HTML_MESSAGE              eval:html_test('html')
+describe HTML_MESSAGE          HTML included in message
+
+# HTML comment tests
+body HTML_COMMENT_SHORT                eval:html_text_match('comment', '<!(?!-).{0,6}>')
+describe HTML_COMMENT_SHORT    HTML comment is very short
+
+body HTML_COMMENT_SAVED_URL    eval:html_text_match('comment', '<!-- saved from url=\(\d{4}\)')
+describe HTML_COMMENT_SAVED_URL        HTML message is a saved web page
+
+body HTML_EMBEDS               eval:html_test('embeds')
+describe HTML_EMBEDS           HTML with embedded plugin object
+
+
+body HTML_EXTRA_CLOSE          eval:html_range('closed_extra_ratio', '0.09', 'inf')
+describe HTML_EXTRA_CLOSE      HTML contains far too many close tags
+
+
+
+body HTML_FONT_SIZE_LARGE      eval:html_range('max_size', '5', '6')
+describe HTML_FONT_SIZE_LARGE  HTML font size is large
+
+body HTML_FONT_SIZE_HUGE       eval:html_range('max_size', '6', 'inf')
+describe HTML_FONT_SIZE_HUGE   HTML font size is huge
+
+
+
+
+body HTML_FONT_LOW_CONTRAST    eval:html_test('font_low_contrast')
+describe HTML_FONT_LOW_CONTRAST        HTML font color similar or identical to background
+
+body HTML_FONT_FACE_BAD                eval:html_test('font_face_bad')
+describe HTML_FONT_FACE_BAD    HTML font face is not a word
+
+
+body HTML_FORMACTION_MAILTO    eval:html_test('form_action_mailto')
+describe HTML_FORMACTION_MAILTO        HTML includes a form which sends mail
+
+# HTML_IMAGE_ONLY - not much raw HTML with images (absolute)
+body HTML_IMAGE_ONLY_04                eval:html_image_only('0000','0400')
+body HTML_IMAGE_ONLY_08                eval:html_image_only('0400','0800')
+body HTML_IMAGE_ONLY_12                eval:html_image_only('0800','1200')
+body HTML_IMAGE_ONLY_16                eval:html_image_only('1200','1600')
+body HTML_IMAGE_ONLY_20                eval:html_image_only('1600','2000')
+body HTML_IMAGE_ONLY_24                eval:html_image_only('2000','2400')
+body HTML_IMAGE_ONLY_28                eval:html_image_only('2400','2800')
+body HTML_IMAGE_ONLY_32                eval:html_image_only('2800','3200')
+describe HTML_IMAGE_ONLY_04    HTML: images with 0-400 bytes of words
+describe HTML_IMAGE_ONLY_08    HTML: images with 400-800 bytes of words
+describe HTML_IMAGE_ONLY_12    HTML: images with 800-1200 bytes of words
+describe HTML_IMAGE_ONLY_16    HTML: images with 1200-1600 bytes of words
+describe HTML_IMAGE_ONLY_20    HTML: images with 1600-2000 bytes of words
+describe HTML_IMAGE_ONLY_24    HTML: images with 2000-2400 bytes of words
+describe HTML_IMAGE_ONLY_28    HTML: images with 2400-2800 bytes of words
+describe HTML_IMAGE_ONLY_32    HTML: images with 2800-3200 bytes of words
+
+# HTML_IMAGE_RATIO - more image area than text (ratio)
+body HTML_IMAGE_RATIO_02       eval:html_image_ratio('0.000','0.002')
+body HTML_IMAGE_RATIO_04        eval:html_image_ratio('0.002','0.004')
+body HTML_IMAGE_RATIO_06        eval:html_image_ratio('0.004','0.006')
+body HTML_IMAGE_RATIO_08        eval:html_image_ratio('0.006','0.008')
+describe HTML_IMAGE_RATIO_02    HTML has a low ratio of text to image area
+describe HTML_IMAGE_RATIO_04    HTML has a low ratio of text to image area
+describe HTML_IMAGE_RATIO_06    HTML has a low ratio of text to image area
+describe HTML_IMAGE_RATIO_08    HTML has a low ratio of text to image area
+
+# HTML obfuscation
+body HTML_OBFUSCATE_05_10      eval:html_range('obfuscation_ratio','.05','.1')
+body HTML_OBFUSCATE_10_20      eval:html_range('obfuscation_ratio','.1','.2')
+body HTML_OBFUSCATE_20_30      eval:html_range('obfuscation_ratio','.2','.3')
+body HTML_OBFUSCATE_30_40      eval:html_range('obfuscation_ratio','.3','.4')
+body HTML_OBFUSCATE_50_60      eval:html_range('obfuscation_ratio','.5','.6')
+body HTML_OBFUSCATE_70_80      eval:html_range('obfuscation_ratio','.7','.8')
+body HTML_OBFUSCATE_90_100     eval:html_range('obfuscation_ratio','.9','1.0')
+describe HTML_OBFUSCATE_05_10  Message is 5% to 10% HTML obfuscation
+describe HTML_OBFUSCATE_10_20  Message is 10% to 20% HTML obfuscation
+describe HTML_OBFUSCATE_20_30  Message is 20% to 30% HTML obfuscation
+describe HTML_OBFUSCATE_30_40  Message is 30% to 40% HTML obfuscation
+describe HTML_OBFUSCATE_50_60  Message is 50% to 60% HTML obfuscation
+describe HTML_OBFUSCATE_70_80  Message is 70% to 80% HTML obfuscation
+describe HTML_OBFUSCATE_90_100 Message is 90% to 100% HTML obfuscation
+
+body HTML_TAG_BALANCE_BODY     eval:html_tag_balance('body', '!= 0')
+describe HTML_TAG_BALANCE_BODY HTML has unbalanced "body" tags
+
+body HTML_TAG_BALANCE_HEAD     eval:html_tag_balance('head', '!= 0')
+describe HTML_TAG_BALANCE_HEAD HTML has unbalanced "head" tags
+
+body HTML_TAG_EXIST_BGSOUND    eval:html_tag_exists('bgsound')
+describe HTML_TAG_EXIST_BGSOUND        HTML has "bgsound" tag
+
+# percentage of tags that are not legal elements in HTML
+body HTML_BADTAG_40_50 eval:html_range('bad_tag_ratio','0.40','0.50')
+body HTML_BADTAG_50_60 eval:html_range('bad_tag_ratio','0.50','0.60')
+body HTML_BADTAG_60_70 eval:html_range('bad_tag_ratio','0.60','0.70')
+body HTML_BADTAG_90_100        eval:html_range('bad_tag_ratio','0.90','1.00')
+describe HTML_BADTAG_40_50     HTML message is 40% to 50% bad tags
+describe HTML_BADTAG_50_60     HTML message is 50% to 60% bad tags
+describe HTML_BADTAG_60_70     HTML message is 60% to 70% bad tags
+describe HTML_BADTAG_90_100    HTML message is 90% to 100% bad tags
+
+# percentage of unique non-elements in HTML
+body HTML_NONELEMENT_30_40     eval:html_range('non_element_ratio','0.30','0.40')
+body HTML_NONELEMENT_40_50     eval:html_range('non_element_ratio','0.40','0.50')
+body HTML_NONELEMENT_60_70     eval:html_range('non_element_ratio','0.60','0.70')
+body HTML_NONELEMENT_80_90     eval:html_range('non_element_ratio','0.80','0.90')
+describe HTML_NONELEMENT_30_40 30% to 40% of HTML elements are non-standard
+describe HTML_NONELEMENT_40_50 40% to 50% of HTML elements are non-standard
+describe HTML_NONELEMENT_60_70 60% to 70% of HTML elements are non-standard
+describe HTML_NONELEMENT_80_90 80% to 90% of HTML elements are non-standard
+
+# short HTML messages with certain attributes
+body __HTML_LINK_IMAGE         eval:html_text_match('anchor', '<img>')
+body __HTML_LENGTH_0000_1024   eval:html_range('length', '0', '1024')
+body __HTML_LENGTH_1024_1536   eval:html_range('length', '1024', '1536')
+body __HTML_LENGTH_1536_2048   eval:html_range('length', '1536', '2048')
+
+body __HTML_LENGTH_512         eval:html_eval('length', '< 512')
+body __COMMENT_EXISTS          eval:html_text_match('comment', '<!.*?>')
+
+body __HTML_LENGTH_384         eval:html_eval('length', '< 384')
+body __TAG_EXISTS_CENTER       eval:html_tag_exists('center')
+
+body __HTML_TITLE_120          eval:html_text_match('title', '.{120}')
+
+body __HTML_TITLE_SUBJ_DIFF    eval:html_title_subject_ratio('3.5')
+
+
+body __HTML_CHARSET_FARAWAY    eval:html_charset_faraway()
+
+body HTML_IFRAME_SRC   eval:check_iframe_src()
+describe HTML_IFRAME_SRC       Message has HTML IFRAME tag with SRC URI
+
+else
+
+meta __COMMENT_EXISTS          0
+meta __TAG_EXISTS_CENTER       0
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+# __MIME_ATTACHMENT also used in 20_meta_tests.cf
+body __MIME_ATTACHMENT         eval:check_for_mime('mime_attachment')
+
+endif
diff --git a/sa-updates/20_imageinfo.cf b/sa-updates/20_imageinfo.cf
new file mode 100644 (file)
index 0000000..5592f81
--- /dev/null
@@ -0,0 +1,111 @@
+# SpamAssassin rules file: Image information tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+
+## # you can match by image name
+## body                DC_IMAGE001_GIF         eval:image_named('image001.gif')
+## describe    DC_IMAGE001_GIF         Contains image named image001.gif
+
+## # you can do exact image size matches
+## body                DC_GIF_264_127          eval:image_size_exact('gif','264','127')
+## describe    DC_GIF_264_127          Found 264x127 pixel gif, possible pillz
+
+# you can do image to text, or image to html ratios
+rawbody                __DC_IMG_HTML_RATIO     eval:image_to_text_ratio('all', '0.000', '0.015')
+describe       __DC_IMG_HTML_RATIO     Low rawbody to pixel area ratio
+
+body           __DC_IMG_TEXT_RATIO     eval:image_to_text_ratio('all', '0.000', '0.008')
+describe       __DC_IMG_TEXT_RATIO     Low body to pixel area ratio
+
+# body         DC_GIF_TEXT_RATIO       eval:image_to_text_ratio('gif',0.000, 0.008)
+# describe     DC_GIF_TEXT_RATIO       Low body to GIF pixel area ratio
+
+# rawbody      DC_GIF_HTML_RATIO       eval:image_to_text_ratio('gif',0.000, 0.008)
+# describe     DC_GIF_HTML_RATIO       Low rawbody to GIF pixel area ratio
+
+# using exact size match to identify things like screenshots
+# body         __SCREEN_640x480        eval:image_size_exact('all',800,600)
+# body         __SCREEN_800x600        eval:image_size_exact('all',800,600)
+# body         __SCREEN_1024x768       eval:image_size_exact('all',1024,768)
+# body         __SCREEN_1280x1024      eval:image_size_exact('all',1280,1024)
+# meta         DC_SCREENSHOT_JPG       ( __SCREEN_640x480 || __SCREEN_800x600 || __SCREEN_1024x768 || __SCREEN_1280x1024 )
+# describe     DC_SCREENSHOT_JPG       Contains image matching common screen resolution
+# score                DC_SCREENSHOT_JPG       -0.01
+
+# you can do minimum demension matches
+# body         DC_GIF_300              eval:image_size_range('gif',300,300)
+# describe     DC_GIF_300              Contains a 300x300 pixels gif or larger
+# score                DC_GIF_300              0.01
+
+# you can do ranged demension matches
+# body         DC_JPEG_200_300         eval:image_size_range('gif', 200, 300, 250, 350)
+# describe     DC_JPEG_200_300         Contains jpeg 200-250 (high) x 300-350 (wide)
+# score                DC_JPEG_200_300         0.01
+
+# you can count the number of images (all or by image type)
+body           __GIF_ATTACH_1          eval:image_count('gif','1','1')
+body           __GIF_ATTACH_2P         eval:image_count('gif','2')
+
+body           __PNG_ATTACH_1          eval:image_count('png','1','1')
+body           __PNG_ATTACH_2P         eval:image_count('png','2')
+
+body           __JPEG_ATTACH_1         eval:image_count('jpeg',1,1)
+body           __JPEG_ATTACH_2P        eval:image_count('jpeg',2)
+
+# you can determine pixel coverage (all or by image type)
+body           __GIF_AREA_180K         eval:pixel_coverage('gif','180000','475000')
+body           __PNG_AREA_180K         eval:pixel_coverage('png','180000','475000')
+# body         __JPEG_AREA_180K        eval:pixel_coverage('jpeg',180000,475000)
+
+# meta together something useful
+meta           DC_GIF_UNO_LARGO        ( __GIF_ATTACH_1 && __GIF_AREA_180K )
+describe       DC_GIF_UNO_LARGO        Message contains a single large gif image
+
+meta           __DC_GIF_MULTI_LARGO    ( __GIF_ATTACH_2P && __GIF_AREA_180K )
+describe       __DC_GIF_MULTI_LARGO    Message has 2+ inline gif covering lots of area
+
+meta           DC_PNG_UNO_LARGO        ( __PNG_ATTACH_1 && __PNG_AREA_180K )
+describe       DC_PNG_UNO_LARGO        Message contains a single large png image
+
+meta           __DC_PNG_MULTI_LARGO    ( __PNG_ATTACH_2P && __PNG_AREA_180K )
+describe       __DC_PNG_MULTI_LARGO    Message has 2+ png images covering lots of area
+
+# meta         DC_JPEG_UNO_LARGO       ( __JPEG_ATTACH_1 && __JPEG_AREA_180K )
+# describe     DC_JPEG_UNO_LARGO       Message hash single large jpeg image
+
+# meta         DC_JPEG_MULTI_LARGO     ( __JPEG_ATTACH_2P && __JPEG_AREA_180K )
+# describe     DC_JPEG_MULTI_LARGO     Message has 2+ jpeg images covering lots of area
+
+meta           DC_IMAGE_SPAM_TEXT              ( !__HAS_URI && __DC_IMG_TEXT_RATIO && ( DC_GIF_UNO_LARGO || DC_PNG_UNO_LARGO || __DC_GIF_MULTI_LARGO || __DC_PNG_MULTI_LARGO ))
+describe       DC_IMAGE_SPAM_TEXT              Possible Image-only spam with little text
+
+# meta the stock rules together for HTML_IMAGE_ONLY_*
+meta           __HTML_IMG_ONLY                 ( HTML_IMAGE_ONLY_04 || HTML_IMAGE_ONLY_08 || HTML_IMAGE_ONLY_12 || HTML_IMAGE_ONLY_16 || HTML_IMAGE_ONLY_20 || HTML_IMAGE_ONLY_24 || HTML_IMAGE_ONLY_28 )
+
+meta           DC_IMAGE_SPAM_HTML              (!__HAS_URI && ( __HTML_IMG_ONLY  || __DC_IMG_HTML_RATIO ) && ( DC_GIF_UNO_LARGO || DC_PNG_UNO_LARGO || __DC_GIF_MULTI_LARGO || __DC_PNG_MULTI_LARGO ))
+describe       DC_IMAGE_SPAM_HTML              Possible Image-only spam
+
+endif
diff --git a/sa-updates/20_mailspike.cf b/sa-updates/20_mailspike.cf
new file mode 100644 (file)
index 0000000..3af7ff5
--- /dev/null
@@ -0,0 +1,82 @@
+
+# MailSpike is included in SpamAssassin 3.4+
+if (version >= 3.004000)
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+## Spam sources
+header __RCVD_IN_MSPIKE_B      eval:check_rbl('mspikeb-lastexternal', 'bl.mailspike.net.')
+tflags __RCVD_IN_MSPIKE_B      net
+reuse  __RCVD_IN_MSPIKE_B
+
+## Ham sources
+header __RCVD_IN_MSPIKE_L      eval:check_rbl('mspikeg-firsttrusted', 'wl.mailspike.net.')
+tflags __RCVD_IN_MSPIKE_L      net
+reuse  __RCVD_IN_MSPIKE_L
+
+##### Reputation compensations
+# Definitions - Bad senders
+header __RCVD_IN_MSPIKE_Z      eval:check_rbl_sub('mspikeb-lastexternal', '127.0.0.2')
+describe __RCVD_IN_MSPIKE_Z    Spam wave participant
+tflags __RCVD_IN_MSPIKE_Z      net
+reuse __RCVD_IN_MSPIKE_Z
+
+header RCVD_IN_MSPIKE_L5       eval:check_rbl_sub('mspikeb-lastexternal', '127.0.0.10')
+describe RCVD_IN_MSPIKE_L5     Very bad reputation (-5)
+tflags RCVD_IN_MSPIKE_L5       net
+reuse RCVD_IN_MSPIKE_L5
+
+header RCVD_IN_MSPIKE_L4       eval:check_rbl_sub('mspikeb-lastexternal', '127.0.0.11')
+describe RCVD_IN_MSPIKE_L4     Bad reputation (-4)
+tflags RCVD_IN_MSPIKE_L4       net
+reuse RCVD_IN_MSPIKE_L4
+
+header RCVD_IN_MSPIKE_L3       eval:check_rbl_sub('mspikeb-lastexternal', '127.0.0.12')
+describe RCVD_IN_MSPIKE_L3     Low reputation (-3)
+tflags RCVD_IN_MSPIKE_L3       net
+reuse RCVD_IN_MSPIKE_L3
+
+header RCVD_IN_MSPIKE_L2       eval:check_rbl_sub('mspikeb-lastexternal', '127.0.0.13')
+describe RCVD_IN_MSPIKE_L2     Suspicious reputation (-2)
+tflags RCVD_IN_MSPIKE_L2       net
+reuse RCVD_IN_MSPIKE_L2
+
+# Definitions - Good senders
+header RCVD_IN_MSPIKE_H5       eval:check_rbl_sub('mspikeg-firsttrusted', '127.0.0.20')
+describe RCVD_IN_MSPIKE_H5     Excellent reputation (+5)
+tflags RCVD_IN_MSPIKE_H5       nice net
+reuse RCVD_IN_MSPIKE_H5
+
+header RCVD_IN_MSPIKE_H4       eval:check_rbl_sub('mspikeg-firsttrusted', '127.0.0.19')
+describe RCVD_IN_MSPIKE_H4     Very Good reputation (+4)
+tflags RCVD_IN_MSPIKE_H4       nice net
+reuse RCVD_IN_MSPIKE_H4
+
+header RCVD_IN_MSPIKE_H3       eval:check_rbl_sub('mspikeg-firsttrusted', '127.0.0.18')
+describe RCVD_IN_MSPIKE_H3     Good reputation (+3)
+tflags RCVD_IN_MSPIKE_H3       nice net
+reuse RCVD_IN_MSPIKE_H3
+
+header RCVD_IN_MSPIKE_H2       eval:check_rbl_sub('mspikeg-firsttrusted', '127.0.0.17')
+describe RCVD_IN_MSPIKE_H2     Average reputation (+2)
+tflags RCVD_IN_MSPIKE_H2       nice net
+reuse RCVD_IN_MSPIKE_H2
+
+# *_L and *_Z may overlap each other, so account for that
+meta __RCVD_IN_MSPIKE_LOW      RCVD_IN_MSPIKE_L5 || RCVD_IN_MSPIKE_L4 || RCVD_IN_MSPIKE_L3
+tflags __RCVD_IN_MSPIKE_LOW    net
+
+meta RCVD_IN_MSPIKE_ZBI                __RCVD_IN_MSPIKE_Z && !__RCVD_IN_MSPIKE_LOW
+tflags RCVD_IN_MSPIKE_ZBI      net
+
+## Meta rules for aggregating good and bad senders
+# Bad
+meta RCVD_IN_MSPIKE_BL         RCVD_IN_MSPIKE_L5 || RCVD_IN_MSPIKE_L4 || RCVD_IN_MSPIKE_L3 || __RCVD_IN_MSPIKE_Z
+describe RCVD_IN_MSPIKE_BL     Mailspike blacklisted
+tflags RCVD_IN_MSPIKE_BL       net
+
+# Good
+meta RCVD_IN_MSPIKE_WL         RCVD_IN_MSPIKE_H5 || RCVD_IN_MSPIKE_H4 || RCVD_IN_MSPIKE_H3
+describe RCVD_IN_MSPIKE_WL     Mailspike good senders
+tflags RCVD_IN_MSPIKE_WL       nice net
+
+  endif
+endif
diff --git a/sa-updates/20_meta_tests.cf b/sa-updates/20_meta_tests.cf
new file mode 100644 (file)
index 0000000..ac94737
--- /dev/null
@@ -0,0 +1,77 @@
+# SpamAssassin rules file: meta tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/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 3.004005
+
+# 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
+
+#See Bug 7411
+#header __MOZILLA_MUA          X-Mailer =~ /\bMozilla\b/
+header __MOZILLA_MUA            User-Agent =~ /^mozilla\b/i
+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
+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
diff --git a/sa-updates/20_net_tests.cf b/sa-updates/20_net_tests.cf
new file mode 100644 (file)
index 0000000..be751a9
--- /dev/null
@@ -0,0 +1,49 @@
+# SpamAssassin rules file: network tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# 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.
+#
+# Note: If you are adding a rule which looks for a phrase in the body
+# (as most of them do), please add it to rules/20_phrases.cf instead.
+#
+# <@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 3.004005
+
+# bug 2220. nice results
+meta DIGEST_MULTIPLE           RAZOR2_CHECK + DCC_CHECK + PYZOR_CHECK > 1
+describe DIGEST_MULTIPLE       Message hits more than one network digest check
+tflags DIGEST_MULTIPLE         net
+reuse  DIGEST_MULTIPLE
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+header NO_DNS_FOR_FROM         eval:check_dns_sender()
+describe NO_DNS_FOR_FROM       Envelope sender has no MX or A DNS records
+tflags NO_DNS_FOR_FROM         net
+reuse  NO_DNS_FOR_FROM
+
+endif
+
diff --git a/sa-updates/20_pdfinfo.cf b/sa-updates/20_pdfinfo.cf
new file mode 100644 (file)
index 0000000..d6963a2
--- /dev/null
@@ -0,0 +1,314 @@
+# SpamAssassin rules file: Pdfinfo rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# 2014-12-02 - axb
+# Info and disabled rules kept for historical & documentation reasons
+# Updated rules may be added
+#
+# Original File: pdfinfo.cf
+# Original Version: 0.6
+# Info: $Id: pdfinfo.cf 895 2007-07-27 10:31:08Z alexb $
+# Created: 2007-06-25
+# Modified: 2007-07-19
+# Original / Defunct Site URL: http://www.rulesemporium.com/plugins.htm#PDFinfo
+# Author: Dallas Engelken (aka GMD :-)
+# Rules contributed by Alex Broens
+# Requires: PDFInfo.pm plugin
+# Description: This plugin/ruleset combination will help you alleviate the new
+#              PDF based stock spam which began to appear mid-June, 2007.
+#
+#
+# Changes:
+#
+#   0.6 - added easypdf producer rule and more no body text metas
+#       - tags support added, see USING TAGS below.
+#   0.5 - added fuzzy test 7
+#   0.4 - added new fuzzy for encyprted pdf image spams.
+#       - added rule to check for encryption
+#   0.3 - added rules based on the new pdf_match_details() function
+#       - added additional fuzzy md5 rules
+#       - disabled static md5 rules as they are no longer hitting.
+#   0.2 - added static md5 to hit full page stock spam.
+#   0.1 - initial ruleset.
+#
+
+############################################
+# USING TAGS
+############################################
+
+# The follow tags can be defined in an add_header line
+#
+# _PDFCOUNT_    - total number of pdf mime parts in the email
+# _PDFIMGCOUNT_ - total number of images found inside pdf mime parts
+# _PDFVERSION_  - PDF Version, space seperated if there are > 1 pdf attachments
+# _PDFNAME_     - Filenames as found in the mime headers of PDF parts
+# _PDFPRODUCER_ - Producer/Application that created the PDF(s)
+# _PDFAUTHOR_   - Author of the PDF
+# _PDFCREATOR_  - Creator/Program that created the PDF(s)
+# _PDFTITLE_    - Title of the PDF File, if available
+# _PDFIMGDIM_   - If PDF Contains images, the dimensions of them will be put here
+# _PDFIMGAREA_  - The total area of all combined images inside the PDF(s)
+# _PDFMD5_      - MD5 checksum of PDF(s) - space seperated
+# _PDFMD5FUZZY1_- Fuzzy1 MD5 checksum of PDF(s) - space seperated
+# _PDFMD5FUZZY2_- Fuzzy2 MD5 checksum of PDF(s) - space seperated
+#
+# Example add_header lines
+#
+# add_header all PDF-Info pdf=_PDFCOUNT_, pdfimg=_PDFIMGCOUNT_, ver=_PDFVERSION_, name=_PDFNAME_
+# add_header all PDF-Details producer=_PDFPRODUCER_, author=_PDFAUTHOR_, creator=_PDFCREATOR_, title=_PDFTITLE_
+# add_header all PDF-ImageInfo dim=_PDFIMGDIM_, area=_PDFIMGAREA_
+# add_header all PDF-Md5 md5=_PDFMD5_, fuzzy1=_PDFMD5FUZZY1_, fuzzy2=_PDFMD5FUZZY2_
+#
+
+############################################
+# GENERIC RULE EXAMPLES SHOWING EVAL USAGE
+############################################
+
+# you can match by name
+# body          MY_TEST_PDF             eval:pdf_named('mytest.pdf')
+
+# or you can write a regex to match dynamic file names.
+# body          MY_TEST_PDF             eval:pdf_name_regex('/^(?:my|your)test\.pdf$/')
+
+# you can make it case insensitive by using modifiers
+# body          PDF_IMGXXXXX            eval:pdf_name_regex('/^IMG\D+\.\.PDF$/i')
+
+# you can do exact image size matches
+# body          PDF_DEMS_150_400        eval:pdf_image_size_exact(150,400)
+
+# you can do image to text, or image to html ratios
+# rawbody       PDF_TO_HTML_RATIO       eval:pdf_image_to_text_ratio(0.000, 0.015)
+# body          PDF_TO_TEXT_RATIO       eval:pdf_image_to_text_ratio(0.000, 0.008)
+
+# you can do minimum demension matches
+# body          PDF_SIZE_RANGE_1        eval:pdf_image_size_range(300,300)
+
+# you can do ranged demension matches
+# body          PDF_SIZE_RANGE_2        eval:pdf_image_size_range(200, 300, 250, 350)
+
+# you can count the number of pdf mime partts
+# body          PDF_MIME_COUNT_1        eval:pdf_count(1,1)
+# body          PDF_MIME_COUNT_2_PLUS   eval:pdf_count(2)
+
+# you can count the number of images inside the pdfs
+# body          PDF_IMG_COUNT_1         eval:pdf_image_count(1,1)
+# body          PDF_IMG_COUNT_2_PLUS    eval:pdf_image_count(2)
+
+# you can determine pixel coverage
+# body          PDF_AREA_SMALL          eval:pdf_pixel_coverage(1,100000)
+
+
+# match a md5 or fuzzy md5 signature of the pdf
+
+# body          PDF_BAD_MD5             eval:pdf_match_md5('C359F8F89B290DA99DC997ED50117CDF')
+# body          PDF_BAD_FUZZY           eval:pdf_match_fuzzy_md5('7340821445D975EEF6F5BDE2EC257900')
+
+# Now you can match against certain details if they are found in the PDF.
+# A regex match is used on the value specified, so if you want to do an
+# exact match, use anchors  ^value$
+#
+# body          GMD_AUTHOR_MOBILE       eval:pdf_match_details('author','/^mobile$/')
+# body          GMD_PRODUCER_GPL        eval:pdf_match_details('producer','/(?i)^gpl ghostscript/')
+# body          GMD_CREATOR_PSCRIPT5    eval:pdf_match_details('creator','/^PScript5/')
+# body          GMD_TITLE_WORD_DOC1     eval:pdf_match_details('title','/^Microsoft Word \- Document1$/)
+# body          GMD_CREATED_JULY07      eval:pdf_match_details('created','/^200707/')
+# body          GMD_MODIFIED_JULY07     eval:pdf_match_details('modified','/^200707/')
+
+ifplugin Mail::SpamAssassin::Plugin::PDFInfo
+
+#######################################
+# DISABLED RULES, ENABLE IF YOU WANT
+#######################################
+
+# Small area
+# Disabled - Hits Ham
+# body          GMD_PDF_SMALL_AREA      eval:pdf_pixel_coverage(1,100000)
+# describe      GMD_PDF_SMALL_AREA      PDF Area covers 150k pixels or less
+# score         GMD_PDF_SMALL_AREA      0.75
+# counts        GMD_PDF_SMALL_AREA      51s/15h of 10615 corpus (5652s/4963h AxB) 06/25/07
+
+# NOTE - people do send pdf's without message bodies!
+# Disabled - Hits Ham
+# body          GMD_PDF_NO_TXT          eval:pdf_image_to_text_ratio(0.000, 0.005)
+# describe      GMD_PDF_NO_TXT          Low rawbody to pixel area ratio
+# score         GMD_PDF_NO_TXT          0.01
+# counts        GMD_PDF_NO_TXT          64s/3h of 10615 corpus (5652s/4963h AxB) 06/25/07
+
+####################################
+# HERE ARE THE LIVE RULES
+####################################
+
+
+
+######################################################################################################
+# pdf image dimensions
+
+# thin horizontal, common stox.
+body            GMD_PDF_HORIZ           eval:pdf_image_size_range(100, 450, 240, 800)
+describe        GMD_PDF_HORIZ           Contains pdf 100-240 (high) x 450-800 (wide)
+score           GMD_PDF_HORIZ           0.25
+# counts        GMD_PDF_HORIZ           135s/0h of 6132 corpus (4555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_PDF_HORIZ           278s/0h of 34051 corpus (33259s/792h AxB2-TRAPS) 07/13/07
+
+# near square, and small.  common stox.
+body            GMD_PDF_SQUARE          eval:pdf_image_size_range(180, 180, 360, 360)
+describe        GMD_PDF_SQUARE          Contains pdf 180-360 (high) x 180-360 (wide)
+score           GMD_PDF_SQUARE          0.50
+# counts        GMD_PDF_SQUARE          36s/0h of 6132 corpus (4555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_PDF_SQUARE          46s/0h of 34051 corpus (33259s/792h AxB2-TRAPS) 07/13/07
+
+# thin vertical, very tall.  common stox.
+body            GMD_PDF_VERT            eval:pdf_image_size_range(450, 100, 800, 240)
+describe        GMD_PDF_VERT            Contains pdf 450-800 (high) x 100-240 (wide)
+score           GMD_PDF_VERT            0.90
+# counts        GMD_PDF_VERT            24s/0h of 6132 corpus (4555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_PDF_VERT            10s/0h of 11773 corpus (10988s/785h AxB2-TRAPS) 07/11/07
+
+######################################################################################################
+# static checksums
+
+# all static md5 spam runs are complete as of 7/11
+# if there are more, we'll add new rules.
+
+# removed fuzzy rules dated 2007
+# Get fuzzy info:
+# cat msg.eml | spamassassin --debug pdfinfo  2>&1 | grep fuzzy 2>&1
+
+# sample rules ONLY
+# fuzzy checksum for bad stox
+#body            GMD_PDF_FUZZY1_T1       eval:pdf_match_fuzzy_md5('57EBC1FFB1A24CC14AE23E1E227C3484')
+#describe        GMD_PDF_FUZZY1_T1       Fuzzy MD5 Match 57EBC1FFB1A24CC14AE23E1E227C3484
+#score           GMD_PDF_FUZZY1_T1       0.001
+
+# same as rule above using fuzzy md5 of pdf structure
+#body            GMD_PDF_FUZZY2_T1       eval:pdf_match_fuzzy_md5('653C8AA9FDFD03D382523488058360A2')
+#describe        GMD_PDF_FUZZY2_T1       Fuzzy MD5 Match 653C8AA9FDFD03D382523488058360A2
+#score           GMD_PDF_FUZZY2_T1       0.001
+
+
+######################################################################################################
+# pdf_match_details()
+
+# from embedded link spam
+#body            GMD_AUTHOR_COLET        eval:pdf_match_details('author','/^colet$/')
+#describe        GMD_AUTHOR_COLET        PDF author was 'colet'
+#score           GMD_AUTHOR_COLET        4.50
+# counts        GMD_AUTHOR_COLET        1s/0h of 10767 corpus (9986s/781h AxB2-TRAPS) 07/11/07
+# counts        GMD_AUTHOR_COLET        2s/0h of 6132 corpus (555s/1577h AxB-MANUAL) 07/11/07
+
+# from full page pdf stock spammer.
+#body            GMD_AUTHOR_MOBILE       eval:pdf_match_details('author','/^mobile$/')
+#describe        GMD_AUTHOR_MOBILE       PDF author was 'mobile'
+#score           GMD_AUTHOR_MOBILE       2.75
+# counts        GMD_AUTHOR_MOBILE       2s/0h of 6132 corpus (555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_AUTHOR_MOBILE       55s/0h of 10767 corpus (9986s/781h AxB2-TRAPS) 07/11/07
+
+# txt only stock spam
+#body            GMD_AUTHOR_OOO          eval:pdf_match_details('author','/^openofficeuser$/')
+#describe        GMD_AUTHOR_OOO          PDF author was 'openofficeuser'
+#score           GMD_AUTHOR_OOO          1.75
+# counts        GMD_AUTHOR_OOO          1s/0h of 10767 corpus (9986s/781h AxB2-TRAPS) 07/11/07
+# counts        GMD_AUTHOR_OOO          118s/0h of 6132 corpus (555s/1577h AxB-MANUAL) 07/11/07
+
+# txt only stock spam
+#body            GMD_AUTHOR_HPADMIN      eval:pdf_match_details('author','/^HP_Administrator/')
+#describe        GMD_AUTHOR_HPADMIN      PDF author was 'HP_Administrator'
+#score           GMD_AUTHOR_HPADMIN      0.25
+# counts        GMD_AUTHOR_HPADMIN      105s/0h of 6132 corpus (4555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_AUTHOR_HPADMIN      27s/0h of 11773 corpus (10988s/785h AxB2-TRAPS) 07/11/07
+
+# generic rule for software used to produce the pdf.
+body            GMD_PRODUCER_GPL        eval:pdf_match_details('producer','/^(?:gnu|gpl) ghostscript/i')
+describe        GMD_PRODUCER_GPL        PDF producer was GPL Ghostscript
+score           GMD_PRODUCER_GPL        0.25
+# counts        GMD_PRODUCER_GPL        227s/0h of 6132 corpus (555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_PRODUCER_GPL        85s/0h of 10767 corpus (9986s/781h AxB2-TRAPS) 07/11/07
+
+# generic rule for software used to produce the pdf.
+body            GMD_PRODUCER_POWERPDF   eval:pdf_match_details('producer','/^PowerPdf 0\./')
+describe        GMD_PRODUCER_POWERPDF   PDF producer was PowerPDF
+score           GMD_PRODUCER_POWERPDF   0.25
+# counts        GMD_PRODUCER_POWERPDF   0s/0h of 10767 corpus (9986s/781h AxB2-TRAPS) 07/11/07
+# counts        GMD_PRODUCER_POWERPDF   0s/0h of 5641 corpus (4064s/1577h AxB-MANUAL) 07/11/07
+
+# producer is bcl
+body            GMD_PRODUCER_EASYPDF    eval:pdf_match_details('producer','/^BCL easyPDF/')
+describe        GMD_PRODUCER_EASYPDF    PDF producer was BCL easyPDF
+score           GMD_PRODUCER_EASYPDF    0.25
+
+# simple check for encryption used inside pdf.
+# recommend meta with something else...
+body            GMD_PDF_ENCRYPTED       eval:pdf_is_encrypted()
+describe        GMD_PDF_ENCRYPTED       Attached PDF is encrypted
+score           GMD_PDF_ENCRYPTED       0.60
+# counts        GMD_PDF_ENCRYPTED       13s/0h of 34051 corpus (33259s/792h AxB2-TRAPS) 07/13/07
+
+# simple check for empty msg body when there is one or more pdf attachments present.
+body            GMD_PDF_EMPTY_BODY      eval:pdf_is_empty_body()
+describe        GMD_PDF_EMPTY_BODY      Attached PDF with empty message body
+score           GMD_PDF_EMPTY_BODY      0.25
+# counts        GMD_PDF_EMPTY_BODY      1638s/20h of 27034 corpus (24636s/2398h AxB-MANUAL) 07/19/07
+
+######################################################################################################
+# metas
+#meta            __GMD_PDF_CHECKSUM      ( GMD_PDF_FUZZY1_T1 || GMD_PDF_FUZZY2_T1 || GMD_PDF_FUZZY2_T2 || GMD_PDF_FUZZY2_T3 || GMD_PDF_FUZZY2_T4 || GMD_PDF_FUZZY2_T5 || GMD_PDF_FUZZY2_T6 || GMD_PDF_FUZZY2_T7 ||GMD_PDF_FUZZY2_T9 || GMD_PDF_FUZZY2_T10 || GMD_PDF_FUZZY2_T11 || GMD_PDF_FUZZY2_T12 )
+#meta            __GMD_PDF_DETAIL        ( GMD_AUTHOR_COLET || GMD_AUTHOR_MOBILE || GMD_AUTHOR_OOO || GMD_AUTHOR_HPADMIN || GMD_PRODUCER_GPL || GMD_PRODUCER_POWERPDF || GMD_PRODUCER_EASYPDF )
+meta            __GMD_PDF_DIMS          ( GMD_PDF_VERT || GMD_PDF_HORIZ || GMD_PDF_SQUARE )
+meta            __GMD_PDF_PRODUCERS     ( GMD_PRODUCER_GPL || GMD_PRODUCER_POWERPDF || GMD_PRODUCER_EASYPDF )
+
+# rule hits ham by itself, so use just to meta.
+body            __GMD_PDF_NO_TXT        eval:pdf_image_to_text_ratio(0.000, 0.005)
+
+# meta checksum hit with image dimensions
+#meta            GMD_PDF_STOX_M1         ( __GMD_PDF_CHECKSUM && __GMD_PDF_DIMS)
+#describe        GMD_PDF_STOX_M1         PDF Stox spam
+#score           GMD_PDF_STOX_M1         3.25
+# counts        GMD_PDF_STOX_M1         159s/0h of 6132 corpus (555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_PDF_STOX_M1         40s/0h of 11773 corpus (10988s/785h AxB2-TRAPS) 07/11/07
+
+# meta checksum hit to pdf details
+#meta            GMD_PDF_STOX_M2         ( __GMD_PDF_CHECKSUM && __GMD_PDF_DETAIL )
+#describe        GMD_PDF_STOX_M2         PDF Stox spam
+#score           GMD_PDF_STOX_M2         2.95
+# counts        GMD_PDF_STOX_M2         223s/0h of 6132 corpus (555s/1577h AxB-MANUAL) 07/11/07
+# counts        GMD_PDF_STOX_M2         29s/0h of 10767 corpus (9986s/781h AxB2-TRAPS) 07/11/07
+
+# meta dimensions and encryption
+#meta            GMD_PDF_STOX_M3         ( __GMD_PDF_DIMS && GMD_PDF_ENCRYPTED )
+#describe        GMD_PDF_STOX_M3         PDF Stox spam
+#score           GMD_PDF_STOX_M3         2.25
+# counts        GMD_PDF_STOX_M3         12s/0h of 34051 corpus (33259s/792h AxB2-TRAPS) 07/13/07
+
+# meta checksum with no text
+#meta            GMD_PDF_STOX_M4         ( __GMD_PDF_CHECKSUM && (__GMD_PDF_NO_TXT || GMD_PDF_EMPTY_BODY))
+#describe        GMD_PDF_STOX_M4         PDF Stox spam
+#score           GMD_PDF_STOX_M4         2.95
+
+# meta no body text along with automated pdf production.
+#meta            GMD_PDF_STOX_M5         ( __GMD_PDF_PRODUCERS &&  (__GMD_PDF_NO_TXT || GMD_PDF_EMPTY_BODY))
+#describe        GMD_PDF_STOX_M5         PDF Stox Spam
+#score           GMD_PDF_STOX_M5         1.00
+
+endif
diff --git a/sa-updates/20_phrases.cf b/sa-updates/20_phrases.cf
new file mode 100644 (file)
index 0000000..cd1f4ee
--- /dev/null
@@ -0,0 +1,192 @@
+# SpamAssassin rules file: phrase tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# 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 3.004005
+
+###########################################################################
+
+# new way to phrase unsubscribe link
+body REMOVE_BEFORE_LINK                m{(?:no thanks|not interested|unsubscribe here).{0,5}http://}i
+describe REMOVE_BEFORE_LINK    Removal phrase right before a link
+
+###########################################################################
+# CLICK rules
+# note HTML_LINK_CLICK* rules in HTML parser section
+
+
+body GUARANTEED_100_PERCENT    /100% GUARANTEED/i
+describe GUARANTEED_100_PERCENT        One hundred percent guaranteed
+body DEAR_FRIEND               /^\s*Dear Friend\b/i
+describe DEAR_FRIEND           Dear Friend? That's not very dear!
+body DEAR_SOMETHING            /\bDear (?:IT\W|Internet|candidate|sirs?|madam|investor|travell?er|car shopper|web)\b/i
+describe DEAR_SOMETHING                Contains 'Dear (something)'
+body BILLION_DOLLARS           /[BM]ILLION DOLLAR/
+describe BILLION_DOLLARS       Talks about lots of money
+
+body EXCUSE_4                  /To Be Removed,? Please/i
+describe EXCUSE_4              Claims you can be removed from the list
+
+# strange pattern because otherwise it matches the std. majordomo line
+# pls note the comment above. DO NOT just put "to" in the first group!
+
+body EXCUSE_REMOVE             /to be removed from.{0,20}(?:mailings|offers)/i
+describe EXCUSE_REMOVE         Talks about how to be removed from mailings
+
+body STRONG_BUY                        /strong buy/i
+describe STRONG_BUY            Tells you about a strong buy
+
+
+body STOCK_ALERT               /\bstock alert/i
+describe STOCK_ALERT           Offers a alert about a stock
+body NOT_ADVISOR               /not a registered investment advisor/i
+describe NOT_ADVISOR           Not registered investment advisor
+
+
+body PREST_NON_ACCREDITED      /prestigi?ous\b.{0,20}\bnon-accredited\b.{0,20}\buniversities/i
+describe PREST_NON_ACCREDITED  'Prestigious Non-Accredited Universities'
+
+body BODY_ENHANCEMENT          /\b(?:enlarge|increase|grow|lengthen|larger\b|bigger\b|longer\b|thicker\b|\binches\b).{0,50}\b(?:penis|male organ|pee[ -]?pee|dick|sc?hlong|wh?anger|breast(?!\s+cancer))/i
+describe BODY_ENHANCEMENT      Information on growing body parts
+
+body BODY_ENHANCEMENT2         /\b(?:penis|male organ|pee[ -]?pee|dick|sc?hlong|wh?anger|breast(?!\s+cancer)).{0,50}\b(?:enlarge|increase|grow|lengthen|larger\b|bigger\b|longer\b|thicker\b|\binches\b|size)/i
+describe BODY_ENHANCEMENT2     Information on getting larger body parts
+
+body     IMPOTENCE              /\b(?:impotence (?:problem|cure|solution)|Premature Ejaculation|erectile dysfunction)/i
+describe IMPOTENCE              Impotence cure
+
+
+
+#MOVED TO 20_rules_to_sandbox.cf - kmcgrail 2015-05-14
+#body NA_DOLLARS                       /\b(?:\d{1,3})?Million\b.{0,40}\b(?:Canadian Dollar?s?|US\$|U\.? ?S\.? Dollar)/i
+#describe NA_DOLLARS           Talks about a million North American dollars
+#
+#body US_DOLLARS_3               /(?:\$|usd).?\d{1,3}[,.]\d{3}[,.]\d{3}(?:[,.]\d\d)?/i
+#describe US_DOLLARS_3           Mentions millions of $ ($NN,NNN,NNN.NN)
+#
+#body MILLION_USD                      /Million\b.{0,40}\b(?:United States? Dollars?|USD)/i
+#describe MILLION_USD          Talks about millions of dollars
+
+
+
+body     __URG_BIZ             /urgent.{0,16}(?:assistance|business|buy|confidential|notice|proposal|reply|request|response)/i
+meta     URG_BIZ               __URG_BIZ
+describe URG_BIZ               Contains urgent matter
+
+
+
+body     MONEY_BACK             /money back guarantee/i
+describe MONEY_BACK             Money back guarantee
+
+
+
+body FREE_QUOTE_INSTANT                /free.{0,12}(?:(?:instant|express|online|no.?obligation).{0,4})+.{0,32}\bquote/i
+describe FREE_QUOTE_INSTANT    Free express or no-obligation quote
+
+body BAD_CREDIT                        /\b((?:bad|poor|eliminate|repair|(?:re)?establish|damag).{0,10} (?:credit|debt)|no credit (?:check|histor|need))/i
+describe BAD_CREDIT            Eliminate Bad Credit
+
+
+body REFINANCE_YOUR_HOME       /\brefinance your(?: current)? (?:home|house)\b/i
+describe REFINANCE_YOUR_HOME   Home refinancing
+
+body REFINANCE_NOW              /time to refinance|refinanc\w{1,3}\b.{0,16}\bnow\b/i
+describe REFINANCE_NOW          Home refinancing
+
+body NO_MEDICAL                        /\bno medical exam/i
+describe NO_MEDICAL            No Medical Exams
+
+
+# seems like we vastly reduce FPs on this one with a small change or two
+body DIET_1             /\b(?:(?:without|no) (?:exercis(?:e(?! price)|ing)|dieting)|weight.?loss|(?:extra|lose|lost|losing).{0,10}(?:pounds|weight|inches|lbs)|burn.{1,10}fat)\b/i
+describe DIET_1                Lose Weight Spam
+
+
+body FIN_FREE                  /\bfinancial(?:ly)? (?:free|independen)/i
+describe FIN_FREE              Freedom of a financial nature
+
+body FORWARD_LOOKING           /\bcontains forward-looking statements\b/i
+describe FORWARD_LOOKING       Stock Disclaimer Statement
+
+body ONE_TIME                  /\bone\W+time (?:charge|investment|offer|promotion)/i
+describe ONE_TIME              One Time Rip Off
+
+body JOIN_MILLIONS             /\bjoin (?:millions|thousands)\b/i
+describe JOIN_MILLIONS         Join Millions of Americans
+
+body MARKETING_PARTNERS                /\b(?:marketing|network) partner|\bpartner (?:web)?site/i
+describe MARKETING_PARTNERS    Claims you registered with a partner
+
+body LOW_PRICE                  /\blow.{0,4} (?-i:P)rice/i
+describe LOW_PRICE              Lowest Price
+
+body UNCLAIMED_MONEY            /\bunclaimed\s(?:assets?|accounts?|mon(?:ey|ies)|balance|funds?|prizes?|rewards?|payments?|deposits?)\b/i
+describe UNCLAIMED_MONEY        People just leave money laying around
+
+body OBSCURED_EMAIL            /\w+\^\S+\(\w{2,4}\b/
+describe OBSCURED_EMAIL                Message seems to contain rot13ed address
+
+body BANG_OPRAH                /\boprah!/i
+describe BANG_OPRAH            Talks about Oprah with an exclamation!
+
+#adding boundary checks: https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6870
+body ACT_NOW_CAPS               /\bA(?i:ct) N(?i:ow)\b/
+describe ACT_NOW_CAPS          Talks about 'acting now' with capitals
+
+body MORE_SEX               /increased?.{0,9}(?:sex|stamina)/i
+describe MORE_SEX              Talks about a bigger drive for sex
+
+# explicitly capped at 1.0 score because of FP potential
+body BANG_GUAR                 /\bguaranteed?\!/i
+describe BANG_GUAR             Something is emphatically guaranteed
+
+
+
+body __RUDE_HTML_1     /Get a capable html e-mailer/i
+body __RUDE_HTML_2     /not support the display of HTML. Please view this message in a different/i
+body __RUDE_HTML_3     /This message contains an HTML formatted message but your email client does/i
+body __RUDE_HTML_4     /Your mailer do not support HTML messages. Switch to a better mailer/i
+meta RUDE_HTML         __RUDE_HTML_1 || __RUDE_HTML_2 || __RUDE_HTML_3 || __RUDE_HTML_4
+describe RUDE_HTML     Spammer message says you need an HTML mailer
+
+body INVESTMENT_ADVICE         /\binvestment advice/i
+describe INVESTMENT_ADVICE     Message mentions investment advice
+
+
+body MALE_ENHANCE      /male enhancement/i
+describe MALE_ENHANCE  Message talks about enhancing men
+
+body PRICES_ARE_AFFORDABLE     /\baffordable .{0,10}prices\b/i
+describe PRICES_ARE_AFFORDABLE Message says that prices aren't too expensive
+
+body REPLICA_WATCH /\breplica.{1,20}rolex/i
+describe REPLICA_WATCH Message talks about a replica watch
+
+body EM_ROLEX /[^\s\w.]rolex/i
+describe EM_ROLEX      Message puts emphasis on the watch manufacturer
+
diff --git a/sa-updates/20_porn.cf b/sa-updates/20_porn.cf
new file mode 100644 (file)
index 0000000..ef18ea1
--- /dev/null
@@ -0,0 +1,45 @@
+# SpamAssassin rules file: porn tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# 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 3.004005
+
+###########################################################################
+
+body FREE_PORN                  /\bfree (?:porn|xxx|adult)/i
+describe FREE_PORN              Possible porn - Free Porn
+
+body CUM_SHOT                   /\bcum[ -]?shots?\b/i
+describe CUM_SHOT               Possible porn - Cum Shot
+
+# "live cam" is a very common nonspam phrase, removed
+body LIVE_PORN                  /\blive .{0,9}(?:fuck(?:ing)?|sex|naked|girls?|virgins?|teens?|porno?)\b/i
+describe LIVE_PORN              Possible porn - Live Porn
+
+header SUBJECT_SEXUAL          Subject =~ /[s5][e3\xE8-\xEB]x[u\xB5\xF9-\xFC][a4\xE0-\xE6@][l!|1](?:[l!|1]y)?.{0,3}[e3\xE8-\xEB]xp[l!|1][i1!|l\xEC-\xEF]c[i1!|l\xEC-\xEF]t/i
+describe SUBJECT_SEXUAL                Subject indicates sexually-explicit content
diff --git a/sa-updates/20_ratware.cf b/sa-updates/20_ratware.cf
new file mode 100644 (file)
index 0000000..009bd50
--- /dev/null
@@ -0,0 +1,328 @@
+# SpamAssassin rules file: known spam mailers
+#
+# Sometimes these leave 'sent by mailername' fingerprints in the
+# headers, which provide a nice way for us to catch them.
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+header RATWARE_EGROUPS         X-Mailer =~ /eGroups Message Poster/
+describe RATWARE_EGROUPS       Bulk email fingerprint (eGroups) found
+
+# Note that the tests which look at the "ALL" pseudoheader are slower than
+# the specific header.
+# 100% overlap with X-Stormpost-To: header, but seems wise to leave it in
+header RATWARE_OE_MALFORMED    X-Mailer =~ /^Microsoft Outlook Express \d(?:\.\d+){3} \w+$/
+describe RATWARE_OE_MALFORMED  X-Mailer has malformed Outlook Express version
+header RATWARE_MOZ_MALFORMED   User-Agent =~ /Mozilla\/5\.0\d\d/
+describe RATWARE_MOZ_MALFORMED Bulk email fingerprint (Mozilla malformed) found
+
+header RATWARE_MPOP_WEBMAIL    X-Mailer =~ /mPOP Web-Mail/i
+describe RATWARE_MPOP_WEBMAIL  Bulk email fingerprint (mPOP Web-Mail)
+
+###########################################################################
+# Now, detect forgeries of real MUAs
+#
+# NOTE: these rules should specify version numbers!
+
+# first define situations where servers rewrite message id so we can't use message id to detect forgeries
+
+header __HOTMAIL_BAYDAV_MSGID          MESSAGEID =~ /^<[A-Z]{3}\d+-(?:DAV|SMTP)\d+[A-Z0-9]{25}\@phx\.gbl>$/m
+
+header __IPLANET_MESSAGING_SERVER Received =~ /iPlanet Messaging Server/
+
+header __LYRIS_EZLM_REMAILER  List-Unsubscribe =~ /<mailto:(?:leave-\S+|\S+-unsubscribe)\@\S+>$/
+
+header __SYMPATICO_MSGID               MESSAGEID =~ /^<BAYC\d+-PASMTP\d+[A-Z0-9]{25}\@CEZ\.ICE>$/m
+
+header __WACKY_SENDMAIL_VERSION Received =~ /\/CWT\/DCE\)/
+
+header __GROUPSIO_MSGID                MESSAGEID =~ /^<[[:xdigit:]]+\.[[:xdigit:]]+\@groups.io>$/m
+
+header __HAS_XORIGMSGID                X-Orig-Message-Id =~ /^<.+\@.+>$/m
+
+meta   __GROUPSIO_GATED                __GROUPSIO_MSGID && __HAS_XORIGMSGID
+
+meta __UNUSABLE_MSGID (__LYRIS_EZLM_REMAILER || __GATED_THROUGH_RCVD_REMOVER || __WACKY_SENDMAIL_VERSION || __IPLANET_MESSAGING_SERVER || __HOTMAIL_BAYDAV_MSGID || __SYMPATICO_MSGID && __GROUPSIO_GATED)
+
+## now on to the forgery rules
+
+# AOL
+header __AOL_MUA               X-Mailer =~ /\bAOL\b/
+
+# Internet Mail Service
+header __IMS_MUA               X-Mailer =~ /Internet Mail Service/
+header __IMS_MSGID             MESSAGEID =~ /^<[A-F\d]{36,40}\@\S+>$/m
+meta FORGED_MUA_IMS            (__IMS_MUA && !__IMS_MSGID && !__UNUSABLE_MSGID)
+describe FORGED_MUA_IMS                Forged mail pretending to be from IMS
+
+# Message ID format introduced by Vista MAPI, maybe also Windows 2003 Server SP2
+header __VISTA_MSGID           MESSAGEID =~ /^<[A-F\d]{32}\@\S+>$/m
+
+# Outlook Express 4, 5, and 6
+header __OE_MUA                        X-Mailer =~ /\bOutlook Express [456]\./
+header __OE_MSGID_1            MESSAGEID =~ /^<[A-Za-z0-9-]{7}[A-Za-z0-9]{20}\@hotmail\.com>$/m
+header __OE_MSGID_2            MESSAGEID =~ /^<(?:[0-9a-f]{8}|[0-9a-f]{12})\$[0-9a-f]{8}\$[0-9a-f]{8}\@\S+>$/m
+meta __FORGED_OE               (__OE_MUA && !__OE_MSGID_1 && !__OE_MSGID_2 && !__UNUSABLE_MSGID)
+
+# Outlook versions that usually use "dollar signs"
+header __OUTLOOK_DOLLARS_MUA   X-Mailer =~ /^Microsoft Outlook(?: 8| CWS, Build 9|, Build 10)\./
+header __OUTLOOK_DOLLARS_OTHER MESSAGEID =~ /^<\!\~\!/m
+meta __FORGED_OUTLOOK_DOLLARS  (__OUTLOOK_DOLLARS_MUA && !__OE_MSGID_2 && !__OUTLOOK_DOLLARS_OTHER && !__VISTA_MSGID && !__IMS_MSGID && !__UNUSABLE_MSGID)
+# use new meta rules to implement FORGED_MUA_OUTLOOK rule from 2.60
+
+# bug 7567: obviously fake Outlook X-Mailer
+header __OUTLOOK_FAKE_MUA       X-Mailer =~ /^Outlook$/
+
+# bug 5496: avoid some FPs
+header __FMO_EXCL_O3416   X-Mailer =~ /^Microsoft Outlook, Build 10.0.3416$/
+header __FMO_EXCL_OE3790  X-Mailer =~ /^Microsoft Outlook Express 6.00.3790.3959$/
+# bug 5910: __VISTA_MSGID also now used by Outlook Express from XP SP3
+#
+meta FORGED_MUA_OUTLOOK         ((__FORGED_OE || __FORGED_OUTLOOK_DOLLARS || __OUTLOOK_FAKE_MUA) && !__FMO_EXCL_O3416 && !__FMO_EXCL_OE3790 && !__VISTA_MSGID)
+describe FORGED_MUA_OUTLOOK    Forged mail pretending to be from MS Outlook
+
+# Outlook IMO (Internet Mail Only)
+header __OIMO_MUA              X-Mailer =~ /Outlook IMO/
+header __OIMO_MSGID            MESSAGEID =~ /^<[A-P]{28}\.[-\w.]+\@\S+>$/m
+meta FORGED_MUA_OIMO           (__OIMO_MUA && !__OIMO_MSGID && !__OE_MSGID_2 && !__UNUSABLE_MSGID)
+describe FORGED_MUA_OIMO       Forged mail pretending to be from MS Outlook IMO
+
+# Not Ratware...
+
+header __HAS_X_LOOP            exists:X-Loop
+header __HAS_X_MAILING_LIST    exists:X-Mailing-List
+header __HAS_X_MAILMAN_VERSION exists:X-Mailman-Version
+describe MAILING_LIST_MULTI    Multiple indicators imply a widely-seen list manager
+# __ML2 and __HAS_LIST_ID are exactly equivalent, don't double-count
+meta   MAILING_LIST_MULTI      __HAS_X_LOOP + __HAS_X_MAILING_LIST + __HAS_X_MAILMAN_VERSION + __HAS_LIST_ID + __HAS_X_BEEN_THERE +__DOS_HAS_LIST_UNSUB + __ML1 + __ML3 + __ML4 + __ML5 > 2
+tflags MAILING_LIST_MULTI      nice
+
+# QUALCOMM Eudora
+# Note: uses X_LOOP and X_MAILING_LIST as subrules
+# X-Mailer: QUALCOMM Windows Eudora Version 5.0   (and 5.1)
+# X-Mailer: QUALCOMM Windows Eudora Version 6.0.0.22
+# updated to fix bugs 2047, 2598, 2654
+# NOTE: this is the *only* spammish Eudora MUA pattern that wasn't
+# ignored using __OLD_EUDORA1 and __OLD_EUDORA2 under previous rules.
+# v7 can't be tested, as it sometimes doesn't generate MID
+header __EUDORA_MUA             X-Mailer =~ /^QUALCOMM Windows Eudora (?:Pro |Light )?Version [3456]\./
+header __EUDORA_MSGID          MESSAGEID =~ /^<(?:\d\d?\.){3,5}\d{14}\.[a-f0-9]{8}\@\S+(?:\sport\s\d+)?>$/m
+meta FORGED_MUA_EUDORA          __EUDORA_MUA && !( __EUDORA_MSGID || __UNUSABLE_MSGID || MAILING_LIST_MULTI || MSGID_FROM_MTA_HEADER )
+describe FORGED_MUA_EUDORA     Forged mail pretending to be from Eudora
+  
+# From private mail with developers.  Some top tips here!
+header __THEBAT_MUA            X-Mailer =~ /^The Bat!/
+header __THEBAT_MUA_V1         X-Mailer =~ /^The Bat! \(v1\./
+#header __THEBAT_MUA_V2                X-Mailer =~ /^The Bat! \(v2\./
+#header __THEBAT_MUA_V3                X-Mailer =~ /^The Bat! \(v3\./
+header __CTYPE_CHARSET_QUOTED  Content-Type =~ /charset=\"/i
+header __CTYPE_HAS_BOUNDARY    Content-Type =~ /boundary/i
+header __BAT_BOUNDARY          Content-Type =~ /boundary=\"-{10}[A-F0-9]{4,}\"/
+header __MAILMAN_21             X-Mailman-Version =~ /\d/
+meta FORGED_MUA_THEBAT_CS      (__THEBAT_MUA && __CTYPE_CHARSET_QUOTED && !__MAILMAN_21)
+meta FORGED_MUA_THEBAT_BOUN     (__THEBAT_MUA && __CTYPE_HAS_BOUNDARY && !__BAT_BOUNDARY && !__MAILMAN_21)
+describe FORGED_MUA_THEBAT_CS  Mail pretending to be from The Bat! (charset)
+describe FORGED_MUA_THEBAT_BOUN Mail pretending to be from The Bat! (boundary)
+
+# bug 4649: bulk mail sent via Yahoo! often looks forged, even when it is not
+header __YAHOO_BULK            Received =~ /from \[\S+\] by \S+\.(?:groups|scd|dcn)\.yahoo\.com with NNFMP/
+
+meta FORGED_OUTLOOK_HTML       (!__YAHOO_BULK && __ANY_OUTLOOK_MUA && MIME_HTML_ONLY)
+describe FORGED_OUTLOOK_HTML   Outlook can't send HTML message only
+
+# bug 2525: FORGED_IMS_HTML fp'ing because new IMS *DOES* use text/html
+# ctype.  ARGH.  This was noted in build 5.5.2656.59, so permit builds
+# after that to get away with it.
+header __IMS_HTML_BUILDS       X-Mailer =~ /^Internet Mail Service .(?:[6789]\.|5\.[6789]|5\.5\.(?:[3456789]|2[789]|26[6789]|265[6789]))/
+header __IMS_HTML_RCVD         Received =~ /\bby \S+ with Internet Mail Service .(?:[6789]\.|5\.[6789]|5\.5\.(?:[3456789]|2[789]|26[6789]|265[6789]))/
+meta FORGED_IMS_HTML           (!__YAHOO_BULK && __IMS_MUA && MIME_HTML_ONLY && !(__IMS_HTML_BUILDS && __IMS_HTML_RCVD))
+describe FORGED_IMS_HTML       IMS can't send HTML message only
+
+meta FORGED_THEBAT_HTML                (__THEBAT_MUA_V1 && MIME_HTML_ONLY)
+describe FORGED_THEBAT_HTML    The Bat! can't send HTML message only
+
+# bug 2513
+header __REPTO_QUOTE           Reply-To =~ /".*"\s*\</
+meta REPTO_QUOTE_AOL           __REPTO_QUOTE && __AOL_MUA
+describe REPTO_QUOTE_AOL       AOL doesn't do quoting like this
+
+meta REPTO_QUOTE_IMS           __REPTO_QUOTE && __IMS_MUA
+describe REPTO_QUOTE_IMS       IMS doesn't do quoting like this
+
+meta REPTO_QUOTE_MSN           __REPTO_QUOTE && (__FROM_MSN_COM || __AT_MSN_MSGID)
+describe REPTO_QUOTE_MSN       MSN doesn't do quoting like this
+
+meta REPTO_QUOTE_QUALCOMM      __REPTO_QUOTE && __ANY_QUALCOMM_MUA
+describe REPTO_QUOTE_QUALCOMM  Qualcomm/Eudora doesn't do quoting like this
+
+meta REPTO_QUOTE_YAHOO         __REPTO_QUOTE && (__FROM_YAHOO_COM || __AT_YAHOO_MSGID)
+describe REPTO_QUOTE_YAHOO     Yahoo! doesn't do quoting like this
+
+# bug 1561
+# stronger version of USER_AGENT_APPLEMAIL
+# Apple Mail doesn't send text/html at all (unless it's an attachment)
+# It'll send text/plain, or multipart/alternative with text/plain and
+# text/enriched parts (boundary of "Apple-Mail-\d--\d+").  It can, however,
+# send a multipart/mixed with a single text/html attachment, so don't use
+# MIME_HTML_ONLY.
+# perhaps limit CTYPE to "text/plain", "multipart/alternative" with
+# "text/plain" and "text/enhanced", or "multipart/mixed"?
+# bug 4223: expand for new Apple Mail version format
+header __X_MAILER_APPLEMAIL    X-Mailer =~ /^Apple Mail \(\d\.\d+(?:\.\d+)?\)$/
+header __MSGID_APPLEMAIL        Message-Id =~ /^<[0-9A-F]{8}-(?:[0-9A-F]{4}-){3}[0-9A-F]{12}\@\S+>$/
+header __MIME_VERSION_APPLEMAIL        Mime-Version =~ /^1\.0 \(Apple Message framework v\d+(?:\.\d+)?\)$/
+meta __USER_AGENT_APPLEMAIL    !__CTYPE_HTML && __X_MAILER_APPLEMAIL && (__MSGID_APPLEMAIL || __MIME_VERSION_APPLEMAIL)
+
+# 2003-02-23: quinlan
+# some useful meta rule sub-elements
+header __CTYPE_HTML            Content-Type =~ /text\/html/i
+header __ANY_IMS_MUA           X-Mailer =~ /^Internet Mail Service\b/
+header __ANY_OUTLOOK_MUA       X-Mailer =~ /^Microsoft (?:Office )?Outlook\b/
+
+header __ANY_QUALCOMM_MUA       X-Mailer =~ /\bQUALCOMM\b/
+meta FORGED_QUALCOMM_TAGS      (__ANY_QUALCOMM_MUA && __MIME_HTML && !__TAG_EXISTS_HTML)
+describe FORGED_QUALCOMM_TAGS  QUALCOMM mailers can't send HTML in this format
+
+meta FORGED_IMS_TAGS           (!__YAHOO_BULK && __ANY_IMS_MUA && __MIME_HTML && !(__TAG_EXISTS_HTML && __TAG_EXISTS_HEAD && __TAG_EXISTS_META && __TAG_EXISTS_BODY))
+describe FORGED_IMS_TAGS       IMS mailers can't send HTML in this format
+
+meta FORGED_OUTLOOK_TAGS       (!__YAHOO_BULK && __ANY_OUTLOOK_MUA && __MIME_HTML && !(__TAG_EXISTS_HTML && __TAG_EXISTS_HEAD && __TAG_EXISTS_META && __TAG_EXISTS_BODY))
+describe FORGED_OUTLOOK_TAGS   Outlook can't send HTML in this format
+
+# Send-Safe ratware (idea from Alan Curry)
+# random alphanumerics, separated into groups of 16 by dashes (the first
+# and last group may be shorter), with a lowercase "l" and a number
+# appended. The final number is the length of the whole string not
+# including the dashes or the "l<number>".  Why? I have no idea.  It's
+# not a tracking code - the spamware does not save it locally.
+#
+# jm: it's specifically to throw off MIME base64 encoding, to evade AOL's
+# filters.
+#
+# http://groups.google.com/groups?selm=atp1ip0n22%40enews3.newsguy.com
+rawbody RATWARE_HASH_DASH      /[a-z\d]-[a-z\d]{16}-[a-z\d]{1,16}(?-i:l)\d/i
+describe RATWARE_HASH_DASH     Contains a hashbuster in Send-Safe format
+
+########################################################################
+# Most ratware uses message templates I would guess.
+# Here's two popular ones...
+
+########################################################################
+# This ratware always uses a +0000 TZ in the Date header, and has a multiplicity
+# of From: header formats. ("From" header samples from Steven Champeon
+# <schampeo.hesketh.com> via the spamtools.lists.abuse.net and SPAM-L lists).
+#
+# "First Last" <firstlast_[a-z][a-z]@somedomain>        1
+# "First Last" <firstlast[a-z][a-z]@somedomain>         1
+# "First Last" <first.last[a-z][a-z]@somedomain>        1
+# "First Last" <first_last[a-z][a-z]@somedomain>        1
+# "First Last" <first_last_[a-z][a-z]@somedomain>       1
+# "First Last" <flast_[a-z][a-z]@somedomain>            2
+# "First Last" <flast[a-z][a-z]@somedomain>             2
+# "First Last" <f.last_[a-z][a-z]@somedomain>           2
+# "First Last" <f.last[a-z][a-z]@somedomain>            2
+# "First Last" <f_last[a-z][a-z]@somedomain>            2
+# "First Last" <last[a-z][a-z]@somedomain>              3
+# "First M. Last" <firstlast_[a-z][a-z]@somedomain>     4
+# "First M. Last" <firstlast[a-z][a-z]@somedomain>      4
+# "First M. Last" <first.m.last[a-z][a-z]@somedomain>   5
+# "First M. Last" <firstmlast[a-z][a-z]@somedomain>     5
+# "First M. Last" <firstmlast_[a-z][a-z]@somedomain>    5
+# "First M. Last" <fmlast_[a-z][a-z]@somedomain>        6
+# "First M. Last" <mlast[a-z][a-z]@somedomain>          7
+# "First M. Last" <m.last[a-z][a-z]@somedomain>         7
+header __0_TZ_1      From =~ /^\"(\w)(\w+) (\w+)\" <\1\2[\._]?\3_?[a-z][a-z]\@/i
+header __0_TZ_2      From =~ /^\"(\w)(\w+) (\w+)\" <\1[\._]?\3_?[a-z][a-z]\@/i
+header __0_TZ_3      From =~ /^\"(\w)(\w+) (\w+)\" <\3_?[a-z][a-z]\@/i
+header __0_TZ_4      From =~ /^\"(\w)(\w+) (\w)\. (\w+)\" <\1\2[\._]?\4_?[a-z][a-z]\@/i
+header __0_TZ_5      From =~ /^\"(\w)(\w+) (\w)\. (\w+)\" <\1\2[\._]?\3[\._]?\4_?[a-z][a-z]\@/i
+header __0_TZ_6      From =~ /^\"(\w)(\w+) (\w)\. (\w+)\" <\1\3\4_?[a-z][a-z]\@/i
+header __0_TZ_7      From =~ /^\"(\w)(\w+) (\w)\. (\w+)\" <\3[\._]?\4_?[a-z][a-z]\@/i
+
+header __RATWARE_0_TZ_DATE     Date =~ / \+0000$/
+
+meta RATWARE_ZERO_TZ                   (__RATWARE_0_TZ_DATE && __CTYPE_HTML && (__0_TZ_1 || __0_TZ_2 || __0_TZ_3 || __0_TZ_4 || __0_TZ_5 || __0_TZ_6 || __0_TZ_7))
+describe RATWARE_ZERO_TZ       Bulk email fingerprint (+0000) found
+
+
+header X_MESSAGE_INFO          exists:X-Message-Info
+describe X_MESSAGE_INFO                Bulk email fingerprint (X-Message-Info) found
+
+# case-sensitive rule
+# only significant rules with no FPs, hit recently, on 2+ corpuses
+header HEADER_SPAM             ALL =~ /^(Alternate-Recipient|Antivirus|Approved|Delivery-Notification|Disclose-Recipients|Error-path|Language|Location|Mime-Subversion|Newsletter-ID|PID|Rot|UID|X-BounceTrace|X-CS-IP|X-Company-Address|X-Company-City|X-Company-Country|X-Company-State|X-Company-Zip|X-E(?:[Mm]ail)?|X-Encoding|X-Originating-Company|X-RMD-Text|X-SG4|X-SP-Track-ID|X-Webmail-Time|X-bounce-to):/m
+describe HEADER_SPAM           Bulk email fingerprint (header-based) found
+
+header RATWARE_RCVD_PF         Received =~ / \(Postfix\) with ESMTP id [^;]+\; \S+ \d+ \S+ \d+ \d+:\d+:\d+ \S+$/s
+describe RATWARE_RCVD_PF       Bulk email fingerprint (Received PF) found
+
+header RATWARE_RCVD_AT         Received =~ / by \S+\@\S+ with Microsoft SMTPSVC/
+describe RATWARE_RCVD_AT       Bulk email fingerprint (Received @) found
+
+header __RCVD_WITH_EXCHANGE    Received =~ /with Microsoft Exchange Server/
+
+meta RATWARE_OUTLOOK_NONAME    __MSGID_DOLLARS_OK && !__HAS_X_MAILER && !__RCVD_WITH_EXCHANGE
+describe RATWARE_OUTLOOK_NONAME        Bulk email fingerprint (Outlook no name) found
+
+
+
+header __MIMEOLE_MS            X-MIMEOLE =~ /^Produced By Microsoft MimeOLE/
+meta RATWARE_MS_HASH           __MSGID_DOLLARS_OK && !__MIMEOLE_MS && !__RCVD_WITH_EXCHANGE
+describe RATWARE_MS_HASH       Bulk email fingerprint (msgid ms hash) found
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+header __GATED_THROUGH_RCVD_REMOVER  eval:gated_through_received_hdr_remover()
+
+header __RATWARE_NAME_ID       eval:check_ratware_name_id()
+meta RATWARE_NAME_ID           __RATWARE_0_TZ_DATE && __RATWARE_NAME_ID
+describe RATWARE_NAME_ID       Bulk email fingerprint (msgid from) found
+
+header RATWARE_EFROM           eval:check_ratware_envelope_from()
+describe RATWARE_EFROM         Bulk email fingerprint (envfrom) found
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+body __MIME_HTML               eval:check_for_mime_html()
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+
+body __TAG_EXISTS_BODY         eval:html_tag_exists('body')
+body __TAG_EXISTS_HEAD         eval:html_tag_exists('head')
+body __TAG_EXISTS_HTML         eval:html_tag_exists('html')
+body __TAG_EXISTS_META         eval:html_tag_exists('meta')
+body __TAG_EXISTS_STYLE                eval:html_tag_exists('style')
+body __TAG_EXISTS_SCRIPT       eval:html_tag_exists('script')
+
+endif
diff --git a/sa-updates/20_uri_tests.cf b/sa-updates/20_uri_tests.cf
new file mode 100644 (file)
index 0000000..ae379b4
--- /dev/null
@@ -0,0 +1,123 @@
+# SpamAssassin rules file: URI tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+# possible IDN spoofing attack: https://web.archive.org/web/20141006091906/https://www.shmoo.com/idn/homograph.txt
+# not expecting any hits on this (yet)
+uri HIGH_CODEPAGE_URI         /^https?:\/\/[^\/]*\&\#(?:\d{4,}|[3456789]\d\d);/i
+tflags HIGH_CODEPAGE_URI       userconf
+
+###########################################################################
+
+# Redirector URI patterns
+redirector_pattern     /^http:\/\/chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/i
+redirector_pattern     /^http:\/\/www(?:\d+)?\.nate\.com\/r\/\w+\/(.*)$/i
+redirector_pattern     /^http:\/\/.+\.gov\/(?:.*\/)?externalLink\.jhtml\?.*url=(.*?)(?:&.*)?$/i
+redirector_pattern     /^http:\/\/redir\.internet\.com\/.+?\/.+?\/(.*)$/i
+redirector_pattern     /^http:\/\/(?:.*?\.)?adtech\.de\/.*(?:;|\|)link=(.*?)(?:;|$)/i
+redirector_pattern     m'^http.*?/redirect\.php\?.*(?<=[?&])goto=(.*?)(?:$|[&\#])'i
+redirector_pattern      m'^https?:/*(?:[^/]+\.)?emf\d\.com/r\.cfm.*?&r=(.*)'i
+
+uri NUMERIC_HTTP_ADDR          m{^https?://[\d.]+(?:[:/?\#]|$)}i
+describe NUMERIC_HTTP_ADDR     Uses a numeric IP address in URL
+
+# Theo sez:
+# Have gotten FPs off this, and whitespace can't be in the host, so...
+# %    Visit my homepage: http://i.like.foo.com %
+# Also ignore some bad parses like http://foo.bar%20http://foo.bar
+uri HTTP_ESCAPED_HOST           /^https?\:\/\/[^\/\s\?\&\#\']*(?!%(?:20|3[cCeE])(?:https?:|mailto:))%[0-9a-fA-F][0-9a-fA-F]/
+describe HTTP_ESCAPED_HOST     Uses %-escapes inside a URL's hostname
+
+# look for URI with escaped 0-9, A-Z, or a-z characters (all other safe
+# characters have been well-tested, but are sometimes unnecessarily escaped
+# in nonspam; requiring "http" or "https" also reduces false positives).
+uri HTTP_EXCESSIVE_ESCAPES     /^https?:\/\/\S*%(?:3\d|[46][1-9a-f]|[57][\da])/i
+describe HTTP_EXCESSIVE_ESCAPES        Completely unnecessary %-escapes inside a URL
+
+# bug 1801
+uri IP_LINK_PLUS       m{^https?://\d+\.\d+\.\d+\.\d+.{0,20}(?:cgi|click|ads|id=)}i
+describe IP_LINK_PLUS  Dotted-decimal IP address followed by CGI
+
+# allow ports 80 and 443 which are http and https, respectively
+# we don't want to hit http://www.cnn.com:USArticle1840@www.liquidshirts.com/
+# though, which actually doesn't have a weird port in it.
+uri WEIRD_PORT                 m{https?://[^/?\s]+?:\d+(?<!:80)(?<!:443)(?<!:8080)(?:/|\s|$)}
+describe WEIRD_PORT            Uses non-standard port number for HTTP
+
+# Matt Cline
+# Pretty good for most folks, except for jm: I have a really stupid
+# e-commerce bunch obfuscating their URLs with this for some reason. screw 'em
+# jm: hesitant to remove this outright; it should be good against phishers
+#uri      HTTP_ENTITIES_HOST   m{https?://[^\s\">/]*\&\#[\da-f]+}i
+#describe HTTP_ENTITIES_HOST   URI obscured with character entities
+
+uri YAHOO_RD_REDIR             m{^https?\://rd\.yahoo\.com/(?:[0-9]{4}|partner\b|dir\b)}i
+describe YAHOO_RD_REDIR                Has Yahoo Redirect URI
+
+uri YAHOO_DRS_REDIR            m{^https?://drs\.yahoo\.com/}i
+describe YAHOO_DRS_REDIR       Has Yahoo Redirect URI
+
+# "www" hidden as "%77%77%77", "ww%77", etc.
+# note: *not* anchored to start of string, to catch use of redirectors
+uri HTTP_77                    /http:\/\/.{0,2}\%77/
+describe HTTP_77               Contains an URL-encoded hostname (HTTP77)
+
+# a.com.b.c
+uri SPOOF_COM2OTH      m{^https?://(?:\w+\.)+?com\.(?!(?:[a-z]{2}\.)?s3\.amazonaws\.com|\w+\.psmtp\.com)(?:\w+\.){2}}i
+describe SPOOF_COM2OTH URI contains ".com" in middle
+
+# a.com.b.com
+uri __SPOOF_COM2COM    m{^https?://(?:\w+\.)+?com\.(?!(?:[a-z]{2}\.)?s3\.amazonaws\.com|\w+\.psmtp\.com)(?:\w+\.)+?com\b}i
+meta SPOOF_COM2COM     __SPOOF_COM2COM && !SPOOF_COM2OTH
+describe SPOOF_COM2COM         URI contains ".com" in middle and end
+
+# a.net.b.com
+uri SPOOF_NET2COM      m{^https?://(?:\w+\.)+?(?:net|org)\.(?!(?:[a-z]{2}\.)?s3\.amazonaws\.com)(?:\w+\.)+?com\b}i
+describe SPOOF_NET2COM         URI contains ".net" or ".org", then ".com"
+
+uri URI_HEX            m%^https?://[^/?&\#]*\b(?![0-9a-f]{0,12}[a-f]{3})[0-9a-f]{6,}\b%i
+describe URI_HEX       URI hostname has long hexadecimal sequence
+
+uri URI_NOVOWEL                m%^https?://[^/?&\#]*[bcdfgjklmnpqrstvwxz]{7}%i
+describe URI_NOVOWEL   URI hostname has long non-vowel sequence
+tflags URI_NOVOWEL      userconf     # lock scores low
+
+uri URI_UNSUBSCRIBE            /\b(?:gone|opened|out)\.php/i
+describe URI_UNSUBSCRIBE       URI contains suspicious unsubscribe link
+
+
+# bug 3896: URIs in various TLDs, other than 3rd level www
+uri URI_NO_WWW_INFO_CGI        /^(?:https?:\/\/)?[^\/]+(?<!\/www)\.[^.]{7,}\.info\/(?=\S{15,})\S*\?/i
+describe URI_NO_WWW_INFO_CGI   CGI in .info TLD other than third-level "www"
+
+uri URI_NO_WWW_BIZ_CGI /^(?:https?:\/\/)?[^\/]+(?<!\/www)\.[^.]{7,}\.biz\/(?=\S{15,})\S*\?/i
+describe URI_NO_WWW_BIZ_CGI    CGI in .biz TLD other than third-level "www"
+
+###########################################################################
+
+uri NORMAL_HTTP_TO_IP          m{^https?://(?!1(?:0|27|69\.254|72\.(?:1[6-9]|2\d|3[01])|92\.168)\.)\d+\.\d+\.\d+\.\d+\b(?![.-])}i
+describe NORMAL_HTTP_TO_IP     URI host has a public dotted-decimal IPv4 address
+
diff --git a/sa-updates/20_vbounce.cf b/sa-updates/20_vbounce.cf
new file mode 100644 (file)
index 0000000..3c877a7
--- /dev/null
@@ -0,0 +1,338 @@
+# A virus-bounce ruleset, suitable for use by anyone receiving a lot of joe-job
+# virus-blowback, or spam-blowback bounce messages.
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+#
+# If you use this, set up procmail or your mail app to spot the
+# "ANY_BOUNCE_MESSAGE" rule hits in the X-Spam-Status line, and move
+# messages that match that to a 'vbounce' folder.
+#
+# You should also add 'welcomelist_bounce_relays' lines, describing the names of
+# your own outgoing mail relays, like so:
+#
+#   welcomelist_bounce_relays       dogma.boxhost.net
+#
+# This is used to 'rescue' legitimate bounce messages that were generated in
+# response to mail you really *did* send.  If you don't do this, the
+# "BOUNCE_MESSAGE" rule will not fire.  See 'perldoc VBounce.pm' for more
+# details.
+#
+# This ruleset is substantially based on
+# https://www.timj.co.uk/linux/bogus-virus-warnings.cf ; the main difference is
+# that I (jm) prefer to keep bounces and spam separate, so it now uses a single
+# rule for each type of message, instead of having multiple individual rules
+# with high scores.  That way, you can spot the individual rule names, as
+# described in the paragraph above. There's a couple of rules that were FPing,
+# too, so I fixed or removed them; and there's been substantial additions, too.
+#
+###########################################################################
+
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  ifplugin Mail::SpamAssassin::Plugin::VBounce
+    body __MY_SERVERS_FOUND       eval:check_welcomelist_bounce_relays()
+  endif
+else
+  ifplugin Mail::SpamAssassin::Plugin::VBounce
+    body __MY_SERVERS_FOUND       eval:check_whitelist_bounce_relays()
+  endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::VBounce
+
+body __HAVE_BOUNCE_RELAYS     eval:have_any_bounce_relays()
+
+# ---------------------------------------------------------------------------
+# General bounce messages
+
+header __BOUNCE_FROM_DAEMON   From =~ /(?:^(?:mail\S+daemon|d[ae][ae]mon|majordomo|postmaster|automated-response|mailadmin|mailmaster|surfcontrol|You_Got_Spammed|SMTP.gateway)\@|scanner\S*\@|<>)/i
+
+header __BOUNCE_RPATH_NULL    Return-Path =~ /<>/
+header __BOUNCE_READ_NOTIFICATION   Subject =~ /^Read: /
+
+header __BOUNCE_RPATH_MD      Return-Path =~ /(?:mailer-(?:daemon|deamon)|quotaagent|pleaseforward|autoresponder|autoresponse-\S+|devnull\S*)\@/i
+
+# can appear in non-bounce mails with __XM_VBULLETIN,
+# or with X-Cron-Env headers, so exclude those cases
+header __XM_VBULLETIN   X-Mailer =~ /^vBulletin Mail/
+header __X_CRON_ENV     X-Cron-Env =~ /^</
+
+header __AUTO_GEN_MS    exists:X-MS-Embedded-Report
+header __AUTO_GEN_AG    exists:X-autogenerated
+header __AUTO_GEN_CM    exists:X-Choicemail-Registration-Request
+header __AUTO_GEN_3     X-MailScanner =~ /generated/
+header __AUTO_GEN_4     X-Mailer =~ /autoresponder/i
+header __AUTO_GEN_XXSP  X-XSP-Msgclass =~ /NOTIFICATION/
+header __AUTO_GEN_PREC  Precedence =~ /auto/
+meta __BOUNCE_AUTO_GENERATED     ((__AUTO_GEN_MS||__AUTO_GEN_3||__AUTO_GEN_4||__AUTO_GEN_AG||__AUTO_GEN_XXSP ||__AUTO_GEN_CM||__AUTO_GEN_PREC) && !__XM_VBULLETIN && !__X_CRON_ENV)
+
+header __BOUNCE_Y_AUTOGEN     Subject =~ /^Yahoo! Auto Response/
+header __BOUNCE_SYMANTEC      Subject =~ /^Returned mail.{0,5}(?:Error During Delivery|see transcript for details|)$/i
+header __BOUNCE_X_ERR_STAT    X-Error-Status =~ /User unknown/
+header   __BOUNCE_RETURNED Subject =~ /^Returned mail: (?:User unknown|unreachable recipients)/
+header   __BOUNCE_MAILDELFAIL Subject =~ /^Mail delivery failed: /
+header   __BOUNCE_MSGDELFAIL Subject =~ /^Message Delivery Failure/
+body     __BOUNCE_ESMTP /^This messages was created automatically by mail delivery software/
+# JM: prev versions used "automaticly", that was a typo
+
+body  __BOUNCE_NEVER_SEE  /\bThis is an autoresponder. I'll never see your message\b/i
+body  __BOUNCE_NONWORKING  /\bYou have reached a non.?working address.  Please check\b/i
+
+header   __BOUNCE_UNDELIVERABLE Subject =~ /^Undeliverable(?: -|:) /
+header   __BOUNCE_UNDELIVERABLE_ML Subject =~ /^Undeliver(?:able|ed) Mail\b/
+header   __BOUNCE_NOTDEL Subject =~ /^MESSAGE NOT DELIVERED: /
+header   __BOUNCE_ADDR_ERR Subject =~ /^e-mail addressing error \(/
+header   __BOUNCE_NO_VAL Subject =~ /^No valid recipient in /
+header   __BOUNCE_DATA_FORMAT Subject =~ /^Returned mail: Data format error$/
+header   __BOUNCE_COULD_NOT Subject =~ /^Mail could not be delivered$/
+header   __BOUNCE_UNDEL_MSG Subject =~ /^Undeliverable (?:Message|Mail)$/
+header   __BOUNCE_CTYPE Content-Type =~ /\bmultipart\/report\b/
+header   __BOUNCE_DEL_FAIL  Subject =~ /^Delivery Failure Notification/
+header   __BOUNCE_STAT_FAIL Subject =~ /^Delivery Status Notification/
+
+header __BOUNCE_NOTIF Subject =~ /^Notification d\'.tat de la distribution$/
+header __BOUNCE_RET_MAIL Subject =~ /^Returned Mail$/
+header __BOUNCE_DEL_FAIL Subject =~ /^DELIVERY FAILURE/i
+header __BOUNCE_MAIL_DEL_FAIL Subject =~ /^Mail Delivery Failure$/
+
+header __NONBOUNCE_READ_RECEIPT_CTYPE Content-Type =~ /\breport-type=disposition-notification\b/
+# bug 6051, some bounces *do* use that ctype
+header __YESBOUNCE_AUTO_REPLIED_REJ  Auto-Submitted =~ /^auto-replied \(rejected\)/
+meta __NONBOUNCE_READ_RECEIPT   (__NONBOUNCE_READ_RECEIPT_CTYPE && !__YESBOUNCE_AUTO_REPLIED_REJ)
+
+# Return-path: <delete@errmail.kagoya.net>
+# 'Invalid e-mail address.'
+header __BOUNCE_RPATH_ERRMAIL Return-Path =~ /delete\@errmail\./i
+
+header __BOUNCE_AUTO_RESPOND  Subject =~ /^(?:Automatically Generated Response from |Auto-Respond E-Mail from )/
+header __BOUNCE_AUTO_RESPONSE Subject =~ /^automated response$/i
+body __BOUNCE_ETRUST    /^eTrust Secure Content Manager SMTPMAIL could not deliver the e-mail /
+header __BOUNCE_INTERSCAN   From =~ /\bInterscan MSS Notification\b/
+
+body __BOUNCE_NO_RESEND  /\bPlease do not resend your original message\./
+
+header   __BOUNCE_AUTO_REPLY Subject =~ /\b(automatic reply|AutoReply)\b/
+
+meta BOUNCE_MESSAGE         __HAVE_BOUNCE_RELAYS && !OOOBOUNCE_MESSAGE && !__MY_SERVERS_FOUND && !ALL_TRUSTED && !__NONBOUNCE_READ_RECEIPT && (__BOUNCE_FROM_DAEMON || (__BOUNCE_RPATH_NULL && !__BOUNCE_READ_NOTIFICATION) || __BOUNCE_RPATH_MD || __BOUNCE_AUTO_GENERATED || __BOUNCE_Y_AUTOGEN || __BOUNCE_SYMANTEC || __BOUNCE_X_ERR_STAT || __BOUNCE_RETURNED || __BOUNCE_MAILDELFAIL || __BOUNCE_MSGDELFAIL || __BOUNCE_ESMTP || __BOUNCE_NEVER_SEE || __BOUNCE_NONWORKING || __BOUNCE_UNDELIVERABLE || __BOUNCE_UNDELIVERABLE_ML || __BOUNCE_NOTDEL || __BOUNCE_CTYPE || __BOUNCE_DEL_FAIL || __BOUNCE_STAT_FAIL || __BOUNCE_ADDR_ERR || __BOUNCE_NO_VAL || __BOUNCE_DATA_FORMAT || __BOUNCE_COULD_NOT || __BOUNCE_UNDEL_MSG || __BOUNCE_RPATH_ERRMAIL || __BOUNCE_INTERSCAN || __BOUNCE_ETRUST || __BOUNCE_AUTO_RESPONSE || __BOUNCE_AUTO_RESPOND || __BOUNCE_NO_RESEND || __BOUNCE_NOTIF || __BOUNCE_RET_MAIL || __BOUNCE_DEL_FAIL || __BOUNCE_MAIL_DEL_FAIL || __BOUNCE_AUTO_REPLY)
+
+describe BOUNCE_MESSAGE     MTA bounce message
+
+# ---------------------------------------------------------------------------
+# Out Of Office bounces
+
+# Do not use subject/body rules without checking for autoreply headers also
+header __AUTOREPLY_XAR  X-Autoreply =~ /\byes/i
+header __AUTOREPLY_PRE  Precedence =~ /\bauto_reply/i
+header __AUTOREPLY_XPR  X-Precedence =~ /\bauto_reply/i
+header __AUTOREPLY_ASU  Auto-Submitted =~ /\bauto-(?:replied|generated)(?! \(rejected\))/i
+meta __BOUNCE_OOO_ARHDR  __AUTOREPLY_XAR || __AUTOREPLY_PRE || __AUTOREPLY_XPR || __AUTOREPLY_ASU
+
+# Standalone subjects that are clearly out of office
+header __BOUNCE_OOO_S1  Subject =~ /^R.ponse automatique d'absence du bureau/
+header __BOUNCE_OOO_S2  Subject =~ / \(away from the office\)$/
+header __BOUNCE_OOO_S3  Subject =~ /^Out Of Office\b/
+meta __BOUNCE_OOO_SUBJECT  __BOUNCE_OOO_S1 || __BOUNCE_OOO_S2 || __BOUNCE_OOO_S3
+
+# Standalone body clauses that are clearly out of office
+body  __BOUNCE_OOO_B1  /\bI ?.m away until .{10,20} and am unable to read your message\b/
+body  __BOUNCE_OOO_B2  /\bI am currently out of the office\b/
+meta __BOUNCE_OOO_BODY  __BOUNCE_OOO_B1 || __BOUNCE_OOO_B2
+
+# Combined subject+body checks
+header __BOUNCE_OOO_CS1  Subject =~ /^Automa(?:tic reply|attinen vastaus|tisch antwoord):/
+body __BOUNCE_OOO_CB1  /\bout of (?:the )?office\b/i
+body __BOUNCE_OOO_CB2  /\bon (?:vacation|holiday)\b/i
+body __BOUNCE_OOO_CB3  /\bolen lomalla\b/i
+body __BOUNCE_OOO_CB4  /\breturn to (?:the )?office\b/i
+meta __BOUNCE_OOO_SUBJBODY  __BOUNCE_OOO_CS1 && (__BOUNCE_OOO_CB1 || __BOUNCE_OOO_CB2 || __BOUNCE_OOO_CB3 || __BOUNCE_OOO_CB4)
+
+meta OOOBOUNCE_MESSAGE  __BOUNCE_OOO_ARHDR && (__BOUNCE_OOO_SUBJECT || __BOUNCE_OOO_BODY || __BOUNCE_OOO_SUBJBODY)
+
+describe OOOBOUNCE_MESSAGE  Out Of Office bounce message
+
+# ---------------------------------------------------------------------------
+# Challenge/Response bounces
+
+header __CRBOUNCE_UOL     From =~ /\bAntiSpam UOL\b/
+header __CRBOUNCE_VERIF   Subject =~ /^(?:Your email requires verification verify:\S|Please Verify Your Email Address)/
+header __CRBOUNCE_RP      Return-Path =~ /<(?:spamblocker-challenge|spambush|apd\.sspam|spamhippo|devnull-quarantine)\@/i
+header __CRBOUNCE_RP_2    Return-Path =~ /\@(?:spamstomp\.com|ipermitmail\.com)>$/i
+header __CRBOUNCE_VANQ    From =~ /<confirm-\S+\@spamguard\.vanquish\.com>/
+header __CRBOUNCE_QURB    Subject =~ /\[Qurb .\d+\]$/
+
+uri __CRBOUNCE_0SPAM1    /^http:\/\/www\.0spam\.com\/v/
+header __CRBOUNCE_0SPAM2 From:addr =~ /^verify\@0spam.com$/
+meta __CRBOUNCE_0SPAM    (__CRBOUNCE_0SPAM1 && __CRBOUNCE_0SPAM2)
+
+header __CRBOUNCE_SPAMARREST exists:X-Spamarrest-noauth
+
+# https://mailinblack.com , a French C/R system with no other reliable
+# signatures.  annoying!
+header __CRBOUNCE_MIB    Content-Type =~ /mUlTiPaRtBoUnDaRy_MailInBlack/
+
+uri __CRBOUNCE_SI1    m,^http://si20.com/auth,
+header __CRBOUNCE_SI2 From:addr =~ /^siweb\@si20\.com/
+meta __CRBOUNCE_SI    (__CRBOUNCE_SI1 && __CRBOUNCE_SI2)
+
+# very frequent, using unrelated From lines; either spam or C/R, not yet
+# sure which
+header __CRBOUNCE_GETRESP Return-Path =~ /<bounce\S+\@\S+\.getresponse\.com>/
+
+header __CRBOUNCE_TMDA  Message-Id =~ /\@\S+\-tmda\-confirm>$/
+header __CRBOUNCE_ASK   X-AskVersion =~ /\d/
+header __CRBOUNCE_SZ    X-Spamazoid-MD =~ /\d/
+header __CRBOUNCE_SPAMLION Spamlion =~ /\S/
+
+# something called /cgi-bin/notaspammer does this!
+header __CRBOUNCE_PREC_SPAM  Precedence =~ /spam/
+
+header __AUTO_GEN_XBT   exists:X-Boxtrapper
+header __AUTO_GEN_BBTL  exists:X-Bluebottle-Request
+meta __CRBOUNCE_HEADER    (__AUTO_GEN_XBT || __AUTO_GEN_BBTL)
+
+header __CRBOUNCE_EXI   X-ExiSpam =~ /ExiSpam/
+
+header __CRBOUNCE_UNVERIF   Subject =~ /^Unverified email to /
+header __CRBOUNCE_BLOCKED   Subject =~ /^\*\*Message you sent blocked by our bulk email filter\*\*$/
+
+meta __CHALLENGE_RESPONSE     __CRBOUNCE_UOL || __CRBOUNCE_VERIF || __CRBOUNCE_RP || __CRBOUNCE_VANQ || __CRBOUNCE_HEADER || __CRBOUNCE_QURB || __CRBOUNCE_0SPAM || __CRBOUNCE_GETRESP || __CRBOUNCE_TMDA || __CRBOUNCE_ASK || __CRBOUNCE_EXI || __CRBOUNCE_PREC_SPAM || __CRBOUNCE_SZ || __CRBOUNCE_SPAMLION || __CRBOUNCE_MIB || __CRBOUNCE_SI || __CRBOUNCE_UNVERIF || __CRBOUNCE_RP_2 || __CRBOUNCE_BLOCKED || __CRBOUNCE_SPAMARREST
+meta CHALLENGE_RESPONSE      __MY_SERVERS_FOUND && __CHALLENGE_RESPONSE
+describe CHALLENGE_RESPONSE  Challenge-Response message for mail you sent
+
+meta CRBOUNCE_MESSAGE       !__MY_SERVERS_FOUND && __CHALLENGE_RESPONSE
+describe CRBOUNCE_MESSAGE   Challenge-Response bounce message
+
+# ---------------------------------------------------------------------------
+# "Virus found in your mail" bounces
+
+# source: VirusBounceRules from the exit0 SA wiki
+
+body __VBOUNCE_EXIM      /a potentially executable attachment /
+body __VBOUNCE_STRIP_ATTACH  /\bhas stripped one or more attachments from the following message\b/
+body __VBOUNCE_GUIN      /message contains file attachments that are not permitted/
+body __VBOUNCE_CISCO     /^Found virus \S+ in file \S/m
+body __VBOUNCE_SMTP      /host \S+ said: 5\d\d\s+Error: Message content rejected/
+body __VBOUNCE_AOL       /TRANSACTION FAILED - Unrepairable Virus Detected. /
+body __VBOUNCE_DUTCH     /bevatte bijlage besmet welke besmet was met een virus/
+body __VBOUNCE_MAILMARSHAL       /Mail.?Marshal Rule: Inbound Messages : Block Dangerous Attachments/
+header __VBOUNCE_MAILMARSHAL2    Subject =~ /^MailMarshal has detected possible spam in your message/
+header __VBOUNCE_NAVFAIL   Subject =~ /^Norton Anti.?Virus failed to scan an attachment in a message you sent/
+header __VBOUNCE_REJECTED   Subject =~ /^EMAIL REJECTED$/
+header __VBOUNCE_PROBLEME   Subject:raw =~ /^=?iso-8859-1?Q?Messagerie_.{1,100}_=3A_probl=E8me_de_s=E9curit=E9=2E?=/
+header __VBOUNCE_NAV   Subject =~ /^Norton Anti.?Virus detected and quarantined/
+header __VBOUNCE_MELDING   Subject =~ /^Virusmelding$/
+body __VBOUNCE_VALERT      /The mail message \S+ \S+ you sent to \S+ contains the virus/
+body __VBOUNCE_REJ_FILT    /Reason: Rejected by filter/
+header __VBOUNCE_YOUSENT   Subject =~ /^Warning - You sent a Virus Infected Email to /
+body __VBOUNCE_MAILSWEEP   /MAILsweeper has found that a \S+ \S+ \S+ \S+ one or more virus/
+header   __VBOUNCE_SCREENSAVER Subject =~ /\b(?:Re: ?)Wicked screensaver\b/i
+header   __VBOUNCE_DISALLOWED Subject =~ /^Disallowed attachment type found/
+header   __VBOUNCE_FROMPT From =~ /Security.?Scan Anti.?Virus/
+header   __VBOUNCE_WARNING Subject =~ /^Warning:\s*E-?mail virus(es)? detected/i
+header   __VBOUNCE_DETECTED Subject =~ /^Virus detected /i
+header   __VBOUNCE_INTERSCAN Subject =~ /^Failed to clean virus\b/i
+header   __VBOUNCE_VIOLATION Subject =~ /^Content violation/i
+header   __VBOUNCE_ALERT Subject =~ /^Virus Alert\b/i
+header   __VBOUNCE_NAV2 Subject =~ /^NAV detected a virus in a document /
+body      __VBOUNCE_NAV3 /^Reporting-MTA: Norton Anti.?Virus Gateway/
+header   __VBOUNCE_INTERSCAN2 Subject =~ /^InterScan MSS for SMTP has delivered a message/
+header   __VBOUNCE_INTERSCAN3 Subject =~ /^InterScan NT Alert/
+header   __VBOUNCE_ANTIGEN Subject =~ /^Antigen found\b/i
+header   __VBOUNCE_LUTHER From =~ /\blutherh\@stratcom.com\b/
+header   __VBOUNCE_AMAVISD Subject =~ /^VIRUS IN YOUR MAIL /i
+body     __VBOUNCE_AMAVISD2 /\bV I R U S\b/
+header __VBOUNCE_GSHIELD Subject =~ /^McAfee GroupShield Alert/
+
+# off: got an FP in a simple forward
+# rawbody  __VBOUNCE_SUBJ_IN_MAIL /^\s*Subject:\s*(Re: )*((my|your) )?(application|details)/i
+# rawbody  __VBOUNCE_SUBJ_IN_MAIL2 /^\s*Subject:\s*(Re: )*(Thank you!?|That movie|Wicked screensaver|Approved)/i
+
+header __VBOUNCE_SCANMAIL Subject =~ /^Scan.?Mail Message: .{0,30} virus found /i
+header __VBOUNCE_DOMINO1 Subject =~ /^Report to Sender/
+body __VBOUNCE_DOMINO2 /^Incident Information:/
+header __VBOUNCE_RAV Subject =~ /^RAV Anti.?Virus scan results/
+
+body __VBOUNCE_ATTACHMENT0     /(?:Attachment.{0,40}was Deleted|the infected attachment)/
+# Bart says: it appears that _ATTACHMENT0 is an alternate for _NAV -- both match the same messages.
+
+body __VBOUNCE_AVREPORT0       /(antivirus system report|the antivirus module has|illegal attachment|Unrepairable Virus Detected)/i
+header __VBOUNCE_SENDER       Subject =~ /^Virus to sender/
+body __VBOUNCE_MAILSWEEP2     /\bblocked by Mailsweeper\b/i
+
+header __VBOUNCE_MAILSWEEP3   From =~ /\bmailsweeper\b/i
+# Bart says: This one could replace both MAILSWEEP2 and MAILSWEEP as far as I can tell.
+#            Perhaps it's too general?
+
+body __VBOUNCE_CLICKBANK      /\bvirus scanner deleted your message\b/i
+header __VBOUNCE_FORBIDDEN    Subject =~ /\bFile type Forbidden\b/
+header   __VBOUNCE_MMS        Subject =~ /^MMS Notification/
+# added by JoeyKelly
+
+header __VBOUNCE_JMAIL Subject =~ /^Message Undeliverable: Possible Junk\/Spam Mail Identified$/
+
+body __VBOUNCE_QUOTED_EXE     /> TVqQAAMAAAAEAAAA/
+
+# majordomo is really stupid about this stuff
+header __MAJORDOMO_SUBJ     Subject =~ /^Majordomo results: /
+rawbody __MAJORDOMO_HELP_BODY  /\*\*\*\* Help for [mM]ajordomo\@/
+rawbody __MAJORDOMO_HELP_BODY2 /\*\*\*\* Command \'.{0,80}\' not recognized\b/
+meta __VBOUNCE_MAJORDOMO_HELP (__MAJORDOMO_SUBJ && __MAJORDOMO_HELP_BODY && __MAJORDOMO_HELP_BODY2)
+
+header __VBOUNCE_AV_RESULTS   Subject =~ /AntiVirus scan results/
+header __VBOUNCE_EMVD         Subject =~ /^Warning: E-mail viruses detected/
+header __VBOUNCE_UNDELIV      Subject =~ /^Undeliverable mail, invalid characters in header/
+header __VBOUNCE_BANNED_MAT   Subject =~ /^Banned or potentially offensive material/
+header __VBOUNCE_NAV_DETECT   Subject =~ /^Norton AntiVirus detected and quarantined/
+header __VBOUNCE_DEL_WARN     Subject =~ /^Delivery (?:warning|error) report id=/
+header __VBOUNCE_MIME_INFO    Subject =~ /^The MIME information you requested/
+header __VBOUNCE_EMAIL_REJ    Subject =~ /^EMAIL REJECTED/
+header __VBOUNCE_CONT_VIOL    Subject =~ /^Content violation/
+header __VBOUNCE_SYM_AVF      Subject =~ /^Symantec AVF detected /
+header __VBOUNCE_SYM_EMP      Subject =~ /^Symantec E-Mail-Proxy /
+header __VBOUNCE_VIR_FOUND    Subject =~ /^Virus Found in message/
+header __VBOUNCE_INFLEX       Subject =~ /^Inflex scan report \[/
+header __VBOUNCE_BITDEFENDER  X-Mailer =~ /^BitDefender VShield/
+header __VBOUNCE_INF_ATTACH   Subject =~ /^\[Mail Delivery .{20,100} infected attachment  *removed/
+
+header __VBOUNCE_RAPPORT      Subject =~ /^Spam rapport \/ Spam report \S+ -\s+\(\S+\)$/
+header __VBOUNCE_GWAVA        Subject =~ /^GWAVA Sender Notification \(RBL block\)$/
+header __VBOUNCE_GWAVA2       Subject =~ /Blocked Message \(RBL block\)$/
+
+header __VBOUNCE_EMANAGER     Subject =~ /^\[MailServer Notification\]/
+header __VBOUNCE_MSGLABS      Return-Path =~ /alert\@notification\.messagelabs\.com/i
+body __VBOUNCE_ATT_QUAR       /\bThe attachment was quarantined\b/
+body __VBOUNCE_SECURIQ        /\bGROUP securiQ.Wall\b/
+
+header __VBOUNCE_PT_BLOCKED   Subject =~ /^\*\*\*\s*Mensagem Bloqueada/i
+
+meta VBOUNCE_MESSAGE        !__MY_SERVERS_FOUND && (__VBOUNCE_MSGLABS || __VBOUNCE_EXIM || __VBOUNCE_GUIN || __VBOUNCE_CISCO || __VBOUNCE_SMTP || __VBOUNCE_AOL || __VBOUNCE_DUTCH || __VBOUNCE_MAILMARSHAL || __VBOUNCE_MAILMARSHAL2 || __VBOUNCE_NAVFAIL || __VBOUNCE_REJECTED || __VBOUNCE_PROBLEME || __VBOUNCE_NAV || __VBOUNCE_MELDING || __VBOUNCE_VALERT || __VBOUNCE_REJ_FILT || __VBOUNCE_YOUSENT || __VBOUNCE_MAILSWEEP || __VBOUNCE_SCREENSAVER || __VBOUNCE_DISALLOWED || __VBOUNCE_FROMPT || __VBOUNCE_WARNING || __VBOUNCE_DETECTED || __VBOUNCE_INTERSCAN || __VBOUNCE_VIOLATION || __VBOUNCE_ALERT || __VBOUNCE_NAV2 || __VBOUNCE_NAV3 || __VBOUNCE_INTERSCAN2 || __VBOUNCE_INTERSCAN3 || __VBOUNCE_ANTIGEN || __VBOUNCE_LUTHER || __VBOUNCE_AMAVISD || __VBOUNCE_AMAVISD2 || __VBOUNCE_SCANMAIL || __VBOUNCE_DOMINO1 || __VBOUNCE_DOMINO2 || __VBOUNCE_RAV || __VBOUNCE_GSHIELD || __VBOUNCE_ATTACHMENT0 || __VBOUNCE_AVREPORT0 || __VBOUNCE_SENDER || __VBOUNCE_MAILSWEEP2 || __VBOUNCE_MAILSWEEP3 || __VBOUNCE_CLICKBANK || __VBOUNCE_FORBIDDEN || __VBOUNCE_MMS || __VBOUNCE_QUOTED_EXE || __VBOUNCE_MAJORDOMO_HELP || __VBOUNCE_AV_RESULTS || __VBOUNCE_EMVD || __VBOUNCE_UNDELIV || __VBOUNCE_BANNED_MAT || __VBOUNCE_NAV_DETECT || __VBOUNCE_DEL_WARN || __VBOUNCE_MIME_INFO || __VBOUNCE_EMAIL_REJ || __VBOUNCE_CONT_VIOL || __VBOUNCE_SYM_AVF || __VBOUNCE_SYM_EMP || __VBOUNCE_ATT_QUAR || __VBOUNCE_SECURIQ || __VBOUNCE_VIR_FOUND || __VBOUNCE_EMANAGER || __VBOUNCE_JMAIL || __VBOUNCE_GWAVA || __VBOUNCE_GWAVA2 || __VBOUNCE_PT_BLOCKED || __VBOUNCE_INFLEX || __VBOUNCE_INF_ATTACH || __VBOUNCE_STRIP_ATTACH || __VBOUNCE_BITDEFENDER)
+
+describe VBOUNCE_MESSAGE    Virus-scanner bounce message
+
+# ---------------------------------------------------------------------------
+# a catch-all type for all the above
+
+meta     ANY_BOUNCE_MESSAGE (CRBOUNCE_MESSAGE||BOUNCE_MESSAGE||VBOUNCE_MESSAGE||OOOBOUNCE_MESSAGE)
+describe ANY_BOUNCE_MESSAGE Message is some kind of bounce message
+
+endif
diff --git a/sa-updates/23_bayes.cf b/sa-updates/23_bayes.cf
new file mode 100644 (file)
index 0000000..137bc4b
--- /dev/null
@@ -0,0 +1,83 @@
+# SpamAssassin basic config file
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+
+body BAYES_00          eval:check_bayes('0.00', '0.01')
+body BAYES_05          eval:check_bayes('0.01', '0.05')
+body BAYES_20          eval:check_bayes('0.05', '0.20')
+body BAYES_40          eval:check_bayes('0.20', '0.40')
+
+# note: tread carefully around 0.5... the Bayesian classifier
+# will use that for anything it's unsure about, or if it's untrained.
+body BAYES_50          eval:check_bayes('0.40', '0.60')
+
+body BAYES_60          eval:check_bayes('0.60', '0.80')
+body BAYES_80          eval:check_bayes('0.80', '0.95')
+body BAYES_95          eval:check_bayes('0.95', '0.99')
+body BAYES_99          eval:check_bayes('0.99', '1.00')
+
+#Additional rule to add more of a score to BAYES_99 FOR 99.9% to 100%
+body BAYES_999         eval:check_bayes('0.999', '1.00')
+
+tflags BAYES_00                nice learn
+tflags BAYES_05                nice learn
+tflags BAYES_20                nice learn
+tflags BAYES_40                nice learn
+tflags BAYES_50                learn
+tflags BAYES_60                learn
+tflags BAYES_80                learn
+tflags BAYES_95                learn
+tflags BAYES_99                learn
+tflags BAYES_999       learn
+
+describe BAYES_00      Bayes spam probability is 0 to 1%
+describe BAYES_05      Bayes spam probability is 1 to 5%
+describe BAYES_20      Bayes spam probability is 5 to 20%
+describe BAYES_40      Bayes spam probability is 20 to 40%
+describe BAYES_50      Bayes spam probability is 40 to 60%
+describe BAYES_60      Bayes spam probability is 60 to 80%
+describe BAYES_80      Bayes spam probability is 80 to 95%
+describe BAYES_95      Bayes spam probability is 95 to 99%
+describe BAYES_99      Bayes spam probability is 99 to 100%
+describe BAYES_999      Bayes spam probability is 99.9 to 100%
+
+priority BAYES_00      -90
+priority BAYES_05      -90
+priority BAYES_20      -90
+priority BAYES_40      -90
+priority BAYES_50      -90
+priority BAYES_60      -90
+priority BAYES_80      -90
+priority BAYES_95      -90
+priority BAYES_99      -90
+priority BAYES_99      -90
+priority BAYES_999     -90
+
+endif
diff --git a/sa-updates/25_accessdb.cf b/sa-updates/25_accessdb.cf
new file mode 100644 (file)
index 0000000..8fe8e12
--- /dev/null
@@ -0,0 +1,36 @@
+# SpamAssassin rules file: accessdb tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+
+# this code uses an access database (sendmail, postfix, etc.)
+# Since you need to actively create an accessdb to use it, the plugin
+# and rule is considered userconf and is disabled by default.
+header         ACCESSDB eval:check_access_database('/etc/mail/access.db')
+describe       ACCESSDB Message would have been caught by accessdb
+tflags         ACCESSDB userconf
+score          ACCESSDB 0
+
+endif
diff --git a/sa-updates/25_antivirus.cf b/sa-updates/25_antivirus.cf
new file mode 100644 (file)
index 0000000..5033ae1
--- /dev/null
@@ -0,0 +1,36 @@
+# SpamAssassin - anti-virus rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Requires the Mail::SpamAssassin::Plugin::AntiVirus plugin be loaded.
+
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+
+body MICROSOFT_EXECUTABLE      eval:check_microsoft_executable()
+describe MICROSOFT_EXECUTABLE  Message includes Microsoft executable program
+
+body MIME_SUSPECT_NAME         eval:check_suspect_name()
+describe MIME_SUSPECT_NAME     MIME filename does not match content
+
+endif   # Mail::SpamAssassin::Plugin::AntiVirus
diff --git a/sa-updates/25_asn.cf b/sa-updates/25_asn.cf
new file mode 100644 (file)
index 0000000..bd8f80c
--- /dev/null
@@ -0,0 +1,45 @@
+# SpamAssassin - ASN rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Requires the Mail::SpamAssassin::Plugin::ASN plugin be loaded.
+
+# This plugin queries asn.routeviews.org for ASN and route info and adds a
+# header containing the data returned so that it can be used by the bayes
+# tokenizer.  See the plugin's POD docs for more info.
+
+# Apply default ASN rules for pre-4.0 clients only.
+# Usage changed in 4.0: there is also direct GeoDB/GeoIP support,
+# users should configure manually as described in plugin documentation.
+ifplugin Mail::SpamAssassin::Plugin::ASN
+if can(Mail::SpamAssassin::Plugin::ASN::has_check_asn)
+ asn_lookup asn.routeviews.org _ASN_ _ASNCIDR_
+ add_header all ASN _ASN_ _ASNCIDR_
+
+ # IPv6 support (Bug 7211)
+ #if can(Mail::SpamAssassin::Plugin::ASN::has_asn_lookup_ipv6)
+ #  asn_lookup_ipv6 origin6.asn.cymru.com _ASN_ _ASNCIDR_
+ #endif
+endif  # has_check_asn
+endif  # Mail::SpamAssassin::Plugin::ASN
diff --git a/sa-updates/25_dcc.cf b/sa-updates/25_dcc.cf
new file mode 100644 (file)
index 0000000..a95dd22
--- /dev/null
@@ -0,0 +1,80 @@
+# SpamAssassin rules file: dcc tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+##
+## SpamAssassin 4.0.0 note:
+##   DCC rule priorities are automatically adjusted to -100 when dccifd in use
+##   (async lookup)
+##
+
+ifplugin Mail::SpamAssassin::Plugin::DCC
+
+full     DCC_CHECK     eval:check_dcc()
+describe DCC_CHECK     Detected as bulk mail by DCC (dcc-servers.net)
+tflags   DCC_CHECK     net
+priority DCC_CHECK     10
+reuse    DCC_CHECK
+
+
+# to receive reputation data from DCC servers requires a commercial license
+# Update 2019: reputation data is free starting from DCC 2.x version
+
+full     DCC_REPUT_00_12  eval:check_dcc_reputation_range(00,12)
+describe DCC_REPUT_00_12  DCC reputation between 0 and 12 %  (mostly ham)
+tflags   DCC_REPUT_00_12  nice net noautolearn
+priority DCC_REPUT_00_12  10
+reuse    DCC_REPUT_00_12
+
+full     DCC_REPUT_13_19  eval:check_dcc_reputation_range(13,19)
+describe DCC_REPUT_13_19  DCC reputation between 13 and 19 %
+tflags   DCC_REPUT_13_19  net nice
+priority DCC_REPUT_13_19  10
+reuse    DCC_REPUT_13_19
+
+full     DCC_REPUT_70_89  eval:check_dcc_reputation_range(70,89)
+describe DCC_REPUT_70_89  DCC reputation between 70 and 89 %
+tflags   DCC_REPUT_70_89  net
+priority DCC_REPUT_70_89  10
+reuse    DCC_REPUT_70_89
+
+full     DCC_REPUT_90_94  eval:check_dcc_reputation_range(90,94)
+describe DCC_REPUT_90_94  DCC reputation between 90 and 94 %
+tflags   DCC_REPUT_90_94  net
+priority DCC_REPUT_90_94  10
+reuse    DCC_REPUT_90_94
+
+full     DCC_REPUT_95_98  eval:check_dcc_reputation_range(95,98)
+describe DCC_REPUT_95_98  DCC reputation between 95 and 98 %  (mostly spam)
+tflags   DCC_REPUT_95_98  net
+priority DCC_REPUT_95_98  10
+reuse    DCC_REPUT_95_98
+
+full     DCC_REPUT_99_100 eval:check_dcc_reputation_range(99)
+describe DCC_REPUT_99_100 DCC reputation between 99 % or higher (spam)
+tflags   DCC_REPUT_99_100 net
+priority DCC_REPUT_99_100 10
+reuse    DCC_REPUT_99_100
+
+endif
diff --git a/sa-updates/25_dkim.cf b/sa-updates/25_dkim.cf
new file mode 100644 (file)
index 0000000..5c19243
--- /dev/null
@@ -0,0 +1,132 @@
+# SpamAssassin - DKIM rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Requires the Mail::SpamAssassin::Plugin::DKIM plugin be loaded.
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+# Note: DKIM_SIGNED, DKIM_VALID and DKIM_VALID_AU are mainly informational
+# rules, and can serve as a basis for meta rules; it is not difficult for a
+# sender to cause hits on them or to prevent them from firing, so their score
+# should be kept low.
+
+full     DKIM_SIGNED           eval:check_dkim_signed()
+describe DKIM_SIGNED           Message has a DKIM or DK signature, not necessarily valid
+tflags   DKIM_SIGNED           net
+reuse    DKIM_SIGNED
+
+full     DKIM_VALID            eval:check_dkim_valid()
+describe DKIM_VALID            Message has at least one valid DKIM or DK signature
+tflags   DKIM_VALID            net nice
+reuse    DKIM_VALID
+
+meta     DKIM_INVALID          DKIM_SIGNED && !DKIM_VALID
+describe DKIM_INVALID          DKIM or DK signature exists, but is not valid
+
+full     DKIM_VALID_AU         eval:check_dkim_valid_author_sig()
+describe DKIM_VALID_AU         Message has a valid DKIM or DK signature from author's domain
+tflags   DKIM_VALID_AU         net nice
+reuse    DKIM_VALID_AU
+
+if (version >= 3.004002)
+full     DKIM_VALID_EF         eval:check_dkim_valid_envelopefrom()
+describe DKIM_VALID_EF         Message has a valid DKIM or DK signature from envelope-from domain
+tflags   DKIM_VALID_EF         net nice
+reuse    DKIM_VALID_EF
+endif
+
+full     __DKIM_DEPENDABLE     eval:check_dkim_dependable()
+describe __DKIM_DEPENDABLE     A validation failure not attributable to truncation
+reuse    __DKIM_DEPENDABLE
+
+header   DKIM_ADSP_NXDOMAIN    eval:check_dkim_adsp('N')
+describe DKIM_ADSP_NXDOMAIN    No valid author signature and domain not in DNS
+tflags   DKIM_ADSP_NXDOMAIN    net
+reuse    DKIM_ADSP_NXDOMAIN
+
+header   DKIM_ADSP_DISCARD     eval:check_dkim_adsp('D')
+describe DKIM_ADSP_DISCARD     No valid author signature, domain signs all mail and suggests discarding the rest
+tflags   DKIM_ADSP_DISCARD     net
+reuse    DKIM_ADSP_DISCARD
+
+header   DKIM_ADSP_ALL         eval:check_dkim_adsp('A')
+describe DKIM_ADSP_ALL         No valid author signature, domain signs all mail
+tflags   DKIM_ADSP_ALL         net
+reuse    DKIM_ADSP_ALL
+
+header   DKIM_ADSP_CUSTOM_LOW  eval:check_dkim_adsp('1')
+describe DKIM_ADSP_CUSTOM_LOW  No valid author signature, adsp_override is CUSTOM_LOW
+tflags   DKIM_ADSP_CUSTOM_LOW  net userconf
+reuse    DKIM_ADSP_CUSTOM_LOW
+
+header   DKIM_ADSP_CUSTOM_MED  eval:check_dkim_adsp('2')
+describe DKIM_ADSP_CUSTOM_MED  No valid author signature, adsp_override is CUSTOM_MED
+tflags   DKIM_ADSP_CUSTOM_MED  net userconf
+reuse    DKIM_ADSP_CUSTOM_MED
+
+header   DKIM_ADSP_CUSTOM_HIGH eval:check_dkim_adsp('3')
+describe DKIM_ADSP_CUSTOM_HIGH No valid author signature, adsp_override is CUSTOM_HIGH
+tflags   DKIM_ADSP_CUSTOM_HIGH net userconf
+reuse    DKIM_ADSP_CUSTOM_HIGH
+
+full     __RESIGNER1     eval:check_dkim_valid('linkedin.com')
+tflags   __RESIGNER1     net
+reuse    __RESIGNER1
+full     __RESIGNER2     eval:check_dkim_valid('googlegroups.com','yahoogroups.com','yahoogroups.de')
+tflags   __RESIGNER2     net
+reuse    __RESIGNER2
+meta     __VIA_RESIGNER  __RESIGNER1 || __RESIGNER2
+describe __VIA_RESIGNER  Mail through a popular signing remailer
+
+meta     NML_ADSP_CUSTOM_LOW    DKIM_ADSP_CUSTOM_LOW  && !__VIA_ML && !__VIA_RESIGNER
+describe NML_ADSP_CUSTOM_LOW    ADSP custom_low hit, and not from a mailing list
+
+meta     NML_ADSP_CUSTOM_MED    DKIM_ADSP_CUSTOM_MED  && !__VIA_ML && !__VIA_RESIGNER
+describe NML_ADSP_CUSTOM_MED    ADSP custom_med hit, and not from a mailing list
+
+meta     NML_ADSP_CUSTOM_HIGH   DKIM_ADSP_CUSTOM_HIGH && !__VIA_ML && !__VIA_RESIGNER
+describe NML_ADSP_CUSTOM_HIGH   ADSP custom_high hit, and not from a mailing list
+
+#
+# old, declared for compatibility with pre-3.3, should have scores 0
+#
+
+full   DKIM_VERIFIED           eval:check_dkim_valid()
+tflags DKIM_VERIFIED           net nice
+reuse  DKIM_VERIFIED
+
+header DKIM_POLICY_TESTING     eval:check_dkim_testing()
+tflags DKIM_POLICY_TESTING     net nice
+reuse  DKIM_POLICY_TESTING
+
+header DKIM_POLICY_SIGNSOME    eval:check_dkim_signsome()
+tflags DKIM_POLICY_SIGNSOME    net nice
+reuse  DKIM_POLICY_SIGNSOME
+
+header DKIM_POLICY_SIGNALL     eval:check_dkim_signall()
+tflags DKIM_POLICY_SIGNALL     net nice
+reuse  DKIM_POLICY_SIGNALL
+
+endif   # Mail::SpamAssassin::Plugin::DKIM
diff --git a/sa-updates/25_dnswl.cf b/sa-updates/25_dnswl.cf
new file mode 100644 (file)
index 0000000..b6da165
--- /dev/null
@@ -0,0 +1,70 @@
+# SpamAssassin rules file: DNSWL tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+#  0.000   0.0000   0.0000    0.500   1.00   -8.00  T_RCVD_IN_DNSWL_HI
+#  0.817   0.2509   3.5683    0.066   0.50    1.00  __RCVD_IN_DNSWL
+#  0.059   0.0000   0.3481    0.000   0.50   -1.00  T_RCVD_IN_DNSWL_LOW
+#  0.163   0.0000   0.9574    0.000   0.00   -4.00  T_RCVD_IN_DNSWL_MED
+
+header __RCVD_IN_DNSWL         eval:check_rbl('dnswl-firsttrusted', 'list.dnswl.org.')
+tflags __RCVD_IN_DNSWL         nice net
+reuse   __RCVD_IN_DNSWL
+
+header RCVD_IN_DNSWL_NONE      eval:check_rbl_sub('dnswl-firsttrusted', '^127\.0\.\d+\.0$')
+describe RCVD_IN_DNSWL_NONE    Sender listed at https://www.dnswl.org/, no trust
+tflags RCVD_IN_DNSWL_NONE      nice net
+reuse  RCVD_IN_DNSWL_NONE
+
+header RCVD_IN_DNSWL_LOW       eval:check_rbl_sub('dnswl-firsttrusted', '^127\.0\.\d+\.1$')
+describe RCVD_IN_DNSWL_LOW     Sender listed at https://www.dnswl.org/, low trust
+tflags RCVD_IN_DNSWL_LOW       nice net
+reuse  RCVD_IN_DNSWL_LOW
+
+header RCVD_IN_DNSWL_MED       eval:check_rbl_sub('dnswl-firsttrusted', '^127\.0\.\d+\.2$')
+describe RCVD_IN_DNSWL_MED     Sender listed at https://www.dnswl.org/, medium trust
+tflags RCVD_IN_DNSWL_MED       nice net
+reuse  RCVD_IN_DNSWL_MED
+
+header RCVD_IN_DNSWL_HI        eval:check_rbl_sub('dnswl-firsttrusted', '^127\.0\.\d+\.3$')
+describe RCVD_IN_DNSWL_HI      Sender listed at https://www.dnswl.org/, high trust
+tflags RCVD_IN_DNSWL_HI                nice net
+reuse  RCVD_IN_DNSWL_HI
+
+## score RCVD_IN_DNSWL_LOW             -1
+## score RCVD_IN_DNSWL_MED             -4
+## score RCVD_IN_DNSWL_HI              -8
+
+header RCVD_IN_DNSWL_BLOCKED   eval:check_rbl_sub('dnswl-firsttrusted', '^127\.0\.\d+\.255$')
+describe RCVD_IN_DNSWL_BLOCKED ADMINISTRATOR NOTICE: The query to DNSWL was blocked.  See http://wiki.apache.org/spamassassin/DnsBlocklists\#dnsbl-block for more information.
+tflags RCVD_IN_DNSWL_BLOCKED   net noautolearn
+reuse  RCVD_IN_DNSWL_BLOCKED
+
+if can(Mail::SpamAssassin::Conf::feature_dns_block_rule)
+dns_block_rule RCVD_IN_DNSWL_BLOCKED list.dnswl.org
+endif
+
+endif
diff --git a/sa-updates/25_pyzor.cf b/sa-updates/25_pyzor.cf
new file mode 100644 (file)
index 0000000..12495ec
--- /dev/null
@@ -0,0 +1,40 @@
+# SpamAssassin rules file: pyzor rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+##
+## SpamAssassin 4.0.0 note:
+##   PYZOR rule priorities are automatically adjusted to -100 when pyzor_fork
+##   option is enabled (async lookup)
+##
+
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+
+full PYZOR_CHECK       eval:check_pyzor()
+describe PYZOR_CHECK   Listed in Pyzor (https://pyzor.readthedocs.io/en/latest/)
+tflags PYZOR_CHECK     net
+priority PYZOR_CHECK   30
+reuse  PYZOR_CHECK
+
+endif
diff --git a/sa-updates/25_razor2.cf b/sa-updates/25_razor2.cf
new file mode 100644 (file)
index 0000000..0626b73
--- /dev/null
@@ -0,0 +1,72 @@
+# SpamAssassin rules file: razor2 tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+##
+## SpamAssassin 4.0.0 note:
+##   RAZOR rule priorities are automatically adjusted to -100 when razor_fork
+##   option is enabled (async lookup)
+##
+
+ifplugin Mail::SpamAssassin::Plugin::Razor2
+
+full RAZOR2_CHECK      eval:check_razor2()
+describe RAZOR2_CHECK  Listed in Razor2 (http://razor.sf.net/)
+tflags RAZOR2_CHECK    net
+priority RAZOR2_CHECK  20
+reuse  RAZOR2_CHECK
+
+lang de describe RAZOR2_CHECK  Gelistet im "Razor2"-System (http://razor.sf.net/)
+lang nl describe RAZOR2_CHECK  Gevonden in Razor2 (http://razor.sf.net/)
+lang fr describe RAZOR2_CHECK  Message listé par Razor2, voir http://razor.sourceforge.net
+lang pl describe RAZOR2_CHECK  Na li¶cie Razor2 (http://razor.sf.net/)
+
+# cf (confidence level) is how likely the message is spam.  RAZOR2_CHECK
+# returns true if cf>=min_cf (as defined by user/config).  These return
+# true depending on what cf value the message has.  The algorithm goes:
+# check the message via razor, then go through each mime part and check
+# how razor scored it.  If the part is contested (ie: it's been reported
+# as both ham and spam) it's ignored.  SA takes the highest non-contested
+# part cf score and returns it for the range rules.  ie: This is essentially
+# Razor 2's logic_method 4.
+#
+# Note: Disabling RAZOR2_CHECK (score RAZOR2_CHECK 0) will also disable
+# these checks.
+#
+# Note: The scores are set to 0 on these tests right now until they get
+# better integrated with SA overall.
+#
+
+full    RAZOR2_CF_RANGE_51_100  eval:check_razor2_range('','51','100')
+tflags  RAZOR2_CF_RANGE_51_100 net
+priority RAZOR2_CF_RANGE_51_100 20
+reuse  RAZOR2_CF_RANGE_51_100
+describe RAZOR2_CF_RANGE_51_100        Razor2 gives confidence level above 50%
+
+lang de describe RAZOR2_CF_RANGE_51_100        Razor2 Spam-Bewertung liegt zwischen 51 und 100
+lang fr describe RAZOR2_CF_RANGE_51_100        Razor2 donne un indice de confiance entre 51 et 100
+lang nl describe RAZOR2_CF_RANGE_51_100        Razor2 geeft een zekerheid tussen 51 en 100
+lang pl describe RAZOR2_CF_RANGE_51_100        Razor2 stwierdzi³ pewno¶æ pomiêdzy 51 i 100
+
+endif
diff --git a/sa-updates/25_replace.cf b/sa-updates/25_replace.cf
new file mode 100644 (file)
index 0000000..734ee5b
--- /dev/null
@@ -0,0 +1,210 @@
+# SpamAssassin - ReplaceTags configuration
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Requires the Mail::SpamAssassin::Plugin::ReplaceTags plugin be loaded.
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+replace_tag    A       (?:[aA\@\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xe4\xe3\xe2\xe0\xe1\xe2\xe3\xe4\xe5\xe6]|[\xb6\xc1\xc4\xcb]|[\xc3][\x80\x81\x82\x83\x84\x85\xa0\xa1\xa2\xa3\xa4\xa5]|[\xc4][\x80\x81\x82\x83\x84\x85]|[\xce][\x86\x91\x94\x9b\xac\xb1]|[\xd0][\x90\xb0]|[\xd1][\xa6\xa7]|[\xd3][\x90\x91\x92\x93]|[\xe1](?:[\x8e][\xaa]|[\xb8][\x80\x81]|[\xba][\x9a\xa0-\xb7]|[\xbc][\x80-\x8f]|[\xbd][\xb0\xb1]|[\xbe][\x80-\x8f\xb0-\xbc])|[\xf0][\x9d](?:[\x90][\x80\x9a\xb4]|[\x91][\x8e\xa8]|[\x92][\x82\x9c\xb6]|[\x93][\x90\xaa]|[\x94][\xb8\x92]|[\x95][\x92]|[\x96][\xa0\xba]|[\x97][\x94\xae]|[\x98][\x88\xa2\xbc]|[\x99][\x96\xb0]|[\x9a][\x8a\xa8]|[\x9b][\x82\xa2\xbc]|[\x9c][\x9c\xb6]|[\x9d][\x96\xb0]|[\x9e][\x90\xaa]))
+replace_tag    B       (?:[bB8\xc2\xe2]|[\xce][\x92\xb2]|[\xcf][\x90\xb8]|[\xc3][\x9f]|[\xc6][\x80\x81\x82\x83\x84\x85]|[\xce][\x92\xb2]|[\xcf][\x90]|[\xd0][\x91\x92\xac\xb1\xb2]|[\xd1][\x8a\x8c\xa2\xa3]|[\xd2][\x8c\x8d]|[\xe1](?:[\xb8][\x82-\x87]|[\xba][\x9e])|[\xf0][\x9d](?:[\x90][\x81\x9b\xb5]|[\x91][\x8f\xa9]|[\x92][\x83\x9d\xb7]|[\x93][\x91\xab]|[\x94][\x85\x9f\xb9]|[\x95][\x93\xad]|[\x96][\x87\xa1\xbb]|[\x97][\x95\xaf]|[\x98][\x89\xa3\xbd]|[\x99][\x97\xb1]|[\x9a][\x8b\xa9]|[\x9b][\x83\xa3\xbd]|[\x9c][\x9d\xb7]|[\x9d][\x97\xb1]|[\x9e][\x91\xab]))
+replace_tag    C       (?:[cCk\xc7\xe7\xf2@]|[\xc3][\x87\xa7]|[\xc4][\x86\x87\x88\x89\x8a\x8b\x8c\x8d]|[\xc6][\x87\x88]|[\xcf][\x82\x9a\x9b\xb2\xb9\xbe]|[\xd0][\xa1]|[\xd1][\x81]|[\xd2][\x80\x81\xaa\xab]|[\xd5][\x87]|&\#(?:1(?:0(?:10|17|2[123]|57|89)|1(?:52|53|94|95)|99)|2(?:31|6[2-9])|39[12]|x(?:3(?:f2|f9|fe)|4(?:21|41|80|81|aa|ab)));|[\xe1](?:[\xb8][\x88\x89])|[\xf0][\x9d](?:[\x90][\x82\x9c\xb6]|[\x91][\x90\xaa]|[\x92][\x84\x9e\xb8]|[\x93][\x92\xac]|[\x94][\x86\xa0\xba]|[\x95][\x94\xae]|[\x96][\x88\xa2\xbc]|[\x97][\x96\xb0]|[\x98][\x8a\xa4\xbe]|[\x99][\x98\xb2]|[\x9a][\x8c]|[\x9b][\x93]|[\x9c][\x8d]|[\x9d][\x87]|[\x9e][\x81]))
+replace_tag    D       (?:[dD\xd0]|[\xc3][\x90]|[\xc4][\x8e\x8f\x90\x91]|[\xc6][\x89\x8a]|[\xd4][\x80\x81]|[\xd5][\xaa]|[\xe1](?:[\xb8][\x8a-\x93])|[\xf0][\x9d](?:[\x90][\x83\x9d\xb7]|[\x91][\x91\xab]|[\x92][\x85\x9f\xb9]|[\x93][\x93\xad]|[\x94][\x87\xa1\xbb]|[\x95][\x95\xaf]|[\x96][\x89\xa3\xbd]|[\x97][\x97\xb1]|[\x98][\x8b\xa5\xbf]|[\x99][\x99\xb3]|[\x9a][\x8d]))
+replace_tag    E       (?:[eE3\xb8\xc5\xd3\xdd\xe5\xee]|[\xc3][\x88\x89\x8a\x8b\xa8\xa9\xaa\xab]|[\xc4][\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b]|[\xc8][\x84\x85\x86\x87\xa8\xa9]|[\xce][\x88\x95\xa3\xad\xb5\xbe]|[\xcf][\xb5]|[\xd0][\x80\x81\x84\x95\xb5]|[\xd1][\x90\x91\x94\xb3]|[\xd2][\xbc\xbd\xbe\xbf]|[\xd3][\x96\x97\xa9\xab]|[\xd4][\x90\x91]|[\xc8\xc9\xca\xcb\xe8\xe9\xea\xeb\xa4]|&\#(?:1(?:0(?:13|2[458]|45|77)|108|2(?:1[2-5]|3[89]|9[67]))|2(?:0[0-3]|3[2-5]|7[4-9]|8[0-3])|400|51[6-9]|5[58][23]|603|9(?:04|17|[34]1|4[19]));|[\xe1](?:[\xb8][\x94-\x9d]|[\xba][\xb8-\xbf]|[\xbb][\x80-\x87]|[\xbc][\x90-\x9d]|[\xbd][\xb2\xb3]|[\xbf][\x88\x89])|[\xf0][\x9d](?:[\x90][\x84\x9e\xb8]|[\x91][\x92\xac]|[\x92][\x86\xa0\xba]|[\x93][\x94\xae]|[\x94][\xa2\xbc]|[\x95][\x96]|[\x96][\x8a\xa4\xbe]|[\x97][\x98\xb2]|[\x98][\x8c\xa6]|[\x99][\x80\x9a\xb4]|[\x9a][\x8e\xac\xba]|[\x9b][\x86\x9c\xa6\xb4]|[\x9c][\x80\x96\xa0\xae\xba]|[\x9d][\x90\x9a\xa8\xb4]|[\x9e][\x8a\x94\xa2\xae]|[\x9f][\x84]))
+replace_tag    F       (?:[fF]|[\xcf][\x9c\x9d]|[\xd2][\x92\x93]|[\xd3][\xba\xbb]|[\xd4][\xb2]|[\xd5][\xa2]|[\xe1](?:[\xb8][\x9e\x9f]|[\xba][\x9b\x9c\x9d])|[\xf0][\x9d](?:[\x90][\x85\x9f\xb9]|[\x91][\x93\xad]|[\x92][\x87\xa1\xbb]|[\x93][\x95\xaf]|[\x94][\xa3\xbd]|[\x95][\x97\xb1]|[\x96][\x8b\xa5\xbf]|[\x97][\x99\xb3]|[\x98][\x8d\xa7]|[\x99][\x81\x9b\xb5]|[\x9a][\x8f]|[\x9f][\x8a\x8b]))
+replace_tag    G       (?:[gGk]|[\xc4][\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3]|[\xd2][\xa8\xa9]|[\xd4][\x8c\x8d]|[\xd6][\x81]|[\xf0][\x9d](?:[\x90][\x86\xa0\xba]|[\x91][\x94\xae]|[\x92][\x88\xa2\xbc]|[\x93][\x96\xb0]|[\x94][\xa4\xbe]|[\x95][\x98]|[\x96][\x8c\xa6]|[\x97][\x80\x9a\xb4]|[\x98][\x8e\xa8]|[\x99][\x82\x9c\xb6]|[\x9a][\x90]))
+replace_tag    H       (?:[hH\xb9\xc7]|[\xc4][\xa4\xa5\xa6\xa7]|[\xce][\x89\x97]|[\xcf][\xa6]|[\xd0][\x8a\x8b\x9d\xbd]|[\xd1][\x92\x9b]|[\xd2][\x94\x95\xa2\xa3\xa4\xa5\xba\xbb]|[\xd3][\x87\x88\x89\x8a]|[\xd4][\xbb]|[\xd5][\xab\xb0]|&\#(?:2(?:22[3-6]|9[2-5])|54[23]|1(?:0(?:53|85)|18[6-9]|8(?:0(?:8[89]|9[0-5])|1(?:38[89]|340)))|919);|[\xe1](?:[\xb8][\xa2-\xab]|[\xba][\x96]|[\xbc][\xa8-\xaf]|[\xbe][\x98-\x9f]|[\xbf][\x8a-\x8c])|[\xf0][\x9d](?:[\x90][\x87\xa1\xbb]|[\x91][\x95\xaf]|[\x92][\x89\xa3\xbd]|[\x93][\x97\xb1]|[\x94][\xbf]|[\x95][\x99]|[\x96][\xa7]|[\x97][\x81\x9b\xb5]|[\x98][\x8f\xa9]|[\x99][\x83\x9d\xb7]|[\x9a][\x91\xae]|[\x9b][\xa8]|[\x9c][\xa2]|[\x9d][\x9c]|[\x9e][\x96]))
+replace_tag    I       (?:[iIl|!1y?\xcc\xcd\xce\xcf\xec\xed\xee\xef\xe9\xba\xc0\xc9\xda\xdf\xfa]|[\xc3][\x8c\x8d\x8e\x8f\xac\xad\xae\xaf]|[\xc4][\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1]|[\xc7][\x8f\x90]|[\xce][\x8a\x90\x99\xaa\xaf\xb9]|[\xcf][\x8a]|[\xd0][\x86\x87]|[\xd1][\x96\x97]|[\xd3][\x80\x8f]|[\xd5][\xac]|&\#(?:1(?:03[01]|11[01]|216|231)|2(?:0[4-7]|16|3[6-9]|9[6-9])|3(?:0[0-5])|4(?:0[67]|6[34])|52[0-3]);|[\xe1](?:[\xb8][\xac-\xaf]|[\xbb][\x88-\x8b]|[\xbc][\xb0-\xbf]|[\xbd][\xb6\xb7]|[\xbf][\x90-\x9b])|[\xf0][\x9d](?:[\x90][\x88\xa2\xbc]|[\x91][\x96\xb0]|[\x92][\x8a\xa4\xbe]|[\x93][\x98\xb2]|[\x94][\xa6]|[\x95][\x80\x9a]|[\x96][\x8e\xa8]|[\x97][\x82\x9c\xb6]|[\x98][\x90\xaa]|[\x99][\x84\x9e\xb8]|[\x9a][\x92\xb0]|[\x9b][\xaa]|[\x9c][\xa4]|[\x9d][\x9e]|[\x9e][\x98]))
+replace_tag    J       (?:[jJ]|[\xc4][\xb4\xb5]|[\xcf][\xb3]|[\xd0][\x88]|[\xd1][\x98]|[\xd5][\xb5]|[\xf0][\x9d](?:[\x90][\x89\xa3\xbd]|[\x91][\x97\xb1]|[\x92][\x8b\xa5\xbf]|[\x93][\x99\xb3]|[\x94][\xa7]|[\x95][\x81\x9b]|[\x96][\x8f\xa9]|[\x97][\x83\x9d\xb7]|[\x98][\x91\xab]|[\x99][\x85\x9f\xb9]|[\x9a][\x93]))
+replace_tag    K       (?:[kK\xca\xea]|[\xc4][\xb6\xb7\xb8]|[\xc7][\xa8\xa9]|[\xce][\x9a\xba]|[\xd0][\x8c\x9a\xba]|[\xd1][\x9c]|[\xd2][\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1]|[\xd3][\x83\x84]|[\xd4][\x9e\x9f]|&\#(?:31[0-2]|4[08][89]|9(?:22|54|75)|1(?:0(?:36|50|82)|1(?:16|7[89]|8[0-5])|219|220|31[01]));|[\xe1](?:[\xb8][\xb0-\xb5])|[\xf0][\x9d](?:[\x90][\x8a\xa4\xbe]|[\x91][\x98\xb2]|[\x92][\x8c\xa6]|[\x93][\x80\x9a\xb4]|[\x94][\xa8]|[\x95][\x82\x9c]|[\x96][\x90\xaa]|[\x97][\x84\x9e\xb8]|[\x98][\x92\xac]|[\x99][\x86\xa0\xba]|[\x9a][\x94\xb1]|[\x9b][\x8b\xab]|[\x9c][\x85\xa5\xbf]|[\x9d][\x9f\xb9]|[\x9e][\x99\xb3]))
+replace_tag    L       (?:[ilL|!1\xa3]|[\xc4][\xb9\xba\xbb\xbc\xbd\xbe\xbf]|[\xc5][\x80\x81\x82]|[\xc8][\xbd]|[\xce][\x8a\x99\xaa\xaf\xb9]|[\xd3][\x80\x8f]|[\xd4][\xbc]|[\xd5][\xac]|[\xd6][\x82]|&\#(?:1340|3(?:1[3-9]|2[0-2])|573|671|x53c|76);|[\xe1](?:[\xb8][\xb6-\xbd]|[\xbc][\xb8-\xbf]|[\xbf][\x98-\x9b])|[\xf0][\x9d](?:[\x90][\x8b\xa5\xbf]|[\x91][\x99\xb3]|[\x92][\x8d\xa7]|[\x93][\x81\x9b\xb5]|[\x94][\xa9]|[\x95][\x83\x9d]|[\x96][\x91\xab]|[\x97][\x85\x9f\xb9]|[\x98][\x93\xad]|[\x99][\x87\xa1\xbb]|[\x9a][\x95]|[\x9d][\x9e]|[\x9e][\x98]|[\x9f][\x8f\x99\xad\xb7]))
+replace_tag    M       (?:[mM\xcc]|rn|[\xc9][\xb1]|[\xce][\x9c]|[\xcf][\xba\xbb]|[\xd0][\x9c\xbc]|[\xd2][\xa7]|[\xd3][\x8d\x8e]|[\xe1](?:[\xb8][\xbe\xbf]|[\xb9][\x80-\x83])|[\xf0][\x9d](?:[\x90][\x8c\xa6]|[\x91][\x80\x9a\xb4]|[\x92][\x8e\xa8]|[\x93][\x82\x9c\xb6]|[\x94][\xaa]|[\x95][\x84\x9e]|[\x96][\x92\xac]|[\x97][\x86\xa0\xba]|[\x98][\x94\xae]|[\x99][\x88\xa2\xbc]|[\x9a][\x96\xb3]|[\x9b][\xad]|[\x9c][\xa7]|[\x9d][\xa1]|[\x9e][\x9b]))
+replace_tag    N       (?:[nN\xcd\xd0\xd1\xde\xe7\xf0\xf1]|[\xc3][\x91\xb1]|[\xc5][\x83\x84\x85\x86\x87\x88\x89\x8a\x8b]|[\xc9][\xb2\xb3\xb4]|[\xce][\x9d\xae\xb7]|[\xcf][\x80]|[\xd0][\x98\x99\x9f\xb8\xb9\xbb\xbf]|[\xd1][\x9d]|[\xd2][\x8a\x8b]|[\xd3][\x86\xa2\xa3\xa4\xa5]|[\xd4][\xa5]|[\xd5][\x88\x8c\xa4\xa8\xb2\xb8\xbc]|[\xd6][\x80]|[\xe1](?:[\xb9][\x84-\x8b]|[\xbc][\xa0-\xa7]|[\xbd][\xb4\xb5]|[\xbe][\x90-\x97]|[\xbf][\x82-\x87])|[\xf0][\x9d](?:[\x90][\x8d\xa7]|[\x91][\x81\x9b\xb5]|[\x92][\x8f\xa9]|[\x93][\x83\x9d\xb7]|[\x94][\xab]|[\x95][\x85\x9f]|[\x96][\x93\xad]|[\x97][\x87\xa1\xbb]|[\x98][\x95\xaf]|[\x99][\x89\xa3\xbd]|[\x9a][\x97\xb4]|[\x9b][\x88\xae]|[\x9c][\x82\xa8\xbc]|[\x9d][\xa2\xb6]|[\x9e][\x9c\xb0]))
+replace_tag    O       (?:[goO0u\xbc\xcf\xd2\xd3\xd4\xd5\xd6\xd8\xef\xf0\xf2\xf3\xf4\xf5\xf6\xf8\xfc]|[\xc3][\x92\x93\x94\x95\x96\x98\xb2\xb3\xb4\xb5\xb6\xb8]|[\xc5][\x8c\xbd\xbe\xbf\x90\x91]|[\xce][\x8c\x98\x9f\xbf]|[\xcf][\x8c\x98\x99]|[\xd0][\x9e\xae\xbe]|[\xd1][\xba\xbb]|[\xd3][\xa6\xa7\xa8\xaa]|[\xd4][\x9a]|[\xd5][\x95\xae]|[\xd6][\x85]|[\xd7][\xa1]|[\xe1](?:[\xb9][\x8c-\x93]|[\xbb][\x8c-\xa3]|[\xbd][\x80-\x8d\xb8\xb9]|[\xbf][\xb8\xb9])|[\xf0][\x9d](?:[\x90][\x8e\xa8]|[\x91][\x82\x9c\xb6]|[\x92][\x90\xaa]|[\x93][\x84\x9e\xb8]|[\x94][\xac]|[\x95][\x86\xa0]|[\x96][\x94\xae]|[\x97][\x88\xa2\xbc]|[\x98][\x96\xb0]|[\x99][\x8a\xa4\xbe]|[\x9a][\x98\xb6\xb9]|[\x9b][\x90\x94\xb0]|[\x9c][\x8a\x8e\xa3\xaa\xad\xbd]|[\x9d][\x84\x88\x9d\xa4\xa7\xbe]|[\x9e][\x82\x97\x9e\xa1\xb8\xbb]|[\x9f][\x8e\x98\xa2\xac]))
+replace_tag    P       (?:[pP\xd1\xf1\xfe]|[\xce][\xa1]|[\xcf][\x81\xb7\xb8]|[\xd0][\xa0]|[\xd1][\x80]|[\xd2][\x8e\x8f]|[\xd4][\x97]|[\xd5][\xa9]|[\xd6][\x84]|[\xe1](?:[\xb9][\x94-\x97]|[\xbf][\xa4\xa5\xac])|[\xf0][\x9d](?:[\x90][\x8f\xa9]|[\x91][\x83\x9d\xb7]|[\x92][\x91]|[\x93][\x9f]|[\x95][\x87\xa1]|[\x96][\xaf]|[\x97][\x89\xa3\xbd]|[\x98][\x97\xb1]|[\x99][\x8b\xa5\xbf]|[\x9a][\x99\xb8]|[\x9b][\x92\xb2]|[\x9c][\x8c\xac]|[\x9d][\x86\xa6]|[\x9e][\x80\xa0\xba]))
+replace_tag    Q       (?:[qQ]|[\xcf][\x98\xa4\xa5]|[\xd4][\x9a\x9b\xb3]|[\xd5][\xa3\xa6]|[\xf0][\x9d](?:[\x90][\x90\xaa]|[\x91][\x84\x9e\xb8]|[\x92][\x92]|[\x93][\x86\xba]|[\x94][\xae]|[\x95][\x88\xa2]|[\x96][\x96\xb0]|[\x97][\x8a\xa4\xbe]|[\x98][\x98\xb2]|[\x99][\x8c\xa6]|[\x9a][\x80\x9a]))
+replace_tag    R       (?:[rR]|[\xc5][\x94\x95\x96\x97\x98\x99]|[\xc8][\x90\x91\x92\x93]|[\xd0][\x93\xaf]|[\xd1][\x8f\x93]|[\xd2][\x90\x91\x93]|[\xd3][\xb6\xb7]|[\xd4][\xb8\xbb]|[\xd5][\x90\x92]|[\xd6][\x80]|&\#(?:1(?:071|103)|34[0-5]|422|5(?:2[89]|3[01]|8[89])|6(?:3[67]|40));|[\xe1](?:[\xb9][\x98-\x9f])|[\xf0][\x9d](?:[\x90][\x91\xab]|[\x91][\x85\x9f\xb9]|[\x92][\x93\xad]|[\x93][\x87\xa1\xbb]|[\x94][\x95\xaf]|[\x95][\x89\xa3\xbd]|[\x96][\x97\xb1]|[\x97][\x8b\xa5\xbf]|[\x98][\x99\xb3]|[\x99][\x8d\xa7]|[\x9a][\x81\x9b]))
+replace_tag    S       (?:[sSz\xa6\xa7]|[\xc5][\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1]|[\xd0][\x85]|[\xd1][\x95]|[\xd5][\x8f]|[\xe1](?:[\xb9][\xa0-\xa9])|[\xf0][\x9d](?:[\x90][\x92\xac]|[\x91][\x86\xa0\xba]|[\x92][\x94]|[\x94][\xb0]|[\x95][\x8a\xa4]|[\x96][\xb2]|[\x97][\x8c\xa6]|[\x98][\x80\x9a\xb4]|[\x99][\x8e\xa8]|[\x9a][\x82\x9c]))
+replace_tag    T       (?:[tT\xc3\xd4\xf4]|[\xc5][\xa2\xa3\xa4\xa5\xa6\xa7]|[\xcd][\xb2\xb3]|[\xce][\xa4]|[\xcf][\x84\xae\xaf]|[\xd0][\x93\xa2]|[\xd1][\x82]|[\xd2][\x90\xac\xad]|[\xd3][\xb6]|[\xd4][\xb5\xb7]|[\xd5][\x92\xa7]|[\xe1](?:[\xb9][\xaa-\xb1]|[\xba][\x97])|[\xf0][\x9d](?:[\x90][\x93\xad]|[\x91][\x87\xa1\xbb]|[\x92][\x95]|[\x93][\x89\xbd]|[\x94][\xb1]|[\x95][\x8b\xa5]|[\x96][\x99\xb3]|[\x97][\x8d\xa7]|[\x98][\x81\x9b\xb5]|[\x99][\x8f\xa9]|[\x9a][\x83\x9d\xbb]|[\x9b][\x95\xb5]|[\x9c][\x8f\xaf]|[\x9d][\x89\xa9]|[\x9e][\x83\xa3\xbd]))
+replace_tag    U       (?:[uUv\xb5\xd9\xda\xdb\xdc\xe0\xec\xf5\xfc\xfb\xfa\xf9\xfd]|[\xc3][\x99\x9a\x9b\x9c\xb9\xba\xbb\xbc]|[\xc5][\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3]|[\xcf][\x85\x8b\x8d]|[\xd0][\x8f\xa6]|[\xd1][\x86\x9f]|[\xd4][\xb1\xbf]|[\xd5][\x84\x8d\xb4\xb6\xbd\xbe]|[\xd6][\x87]|[\xe1](?:[\xb9][\xb2-\xbb]|[\xbb][\xa4-\xb1]|[\xbd][\x90-\x97\xba\xbb]|[\xbf][\xa0-\xa3\xa6\xa7])|[\xf0][\x9d](?:[\x90][\x94\xae]|[\x91][\x88\xa2\xbc]|[\x92][\x96\xb0]|[\x93][\x8a\xa4\xbe]|[\x94][\x98\xb2]|[\x95][\x8c\xa6]|[\x96][\x80\x9a\xb4]|[\x97][\x8e\xa8]|[\x98][\x82\x9c\xb6]|[\x99][\x90\xaa]|[\x9a][\x84\x9e]|[\x9b][\x8d\x96]|[\x9c][\x87\x90]|[\x9d][\x81\x8a\xbb]|[\x9e][\x84\xb5\xbe]))
+replace_tag    V       (?:[vVu\xe3\xed]|\\\/|[\xce][\xbd]|[\xd1][\xb4\xb5\xb6\xb7]|[\xe1](?:[\xb9][\xbc-\xbf]|[\xbd][\x90-\x97\xba\xbb]|[\xbf][\xa0-\xa3\xa6\xa7])|[\xf0][\x9d](?:[\x90][\x95\xaf]|[\x91][\x89\xa3\xbd]|[\x92][\x97]|[\x93][\x8b\xa5\xbf]|[\x95][\x8d\xa7]|[\x96][\xb5]|[\x97][\x8f\xa9]|[\x98][\x83\x9d\xb7]|[\x99][\x91\xab]|[\x9a][\x85\x9f]|[\x9b][\x96]|[\x9c][\x88]|[\x9d][\x8a]))
+replace_tag    W       (?:[wWv\xd8\xf8\xf9\xfe]|[\xc5][\xb4\xb5]|[\xc9][\xaf\xb0]|[\xce][\xa8]|[\xcf][\x86\x88\x89\x8e\x96\xa2\xa3]|[\xd0][\xa8\xa9]|[\xd1][\x88\x89\xa1\xb0\xb1\xbf]|[\xd4][\x9c\x9d]|[\xd5][\xa1\xba]|[\xe1](?:[\xba][\x80-\x89\x98]|[\xbd][\xa0-\xa7\xbc\xbd]|[\xbe][\xa0-\xa7]|[\xbf][\xb2-\xb7])|[\xf0][\x9d](?:[\x90][\x96\xb0]|[\x91][\x8a\xa4\xbe]|[\x92][\x98\xb2]|[\x93][\x8c\xa6]|[\x94][\x80\xb4]|[\x95][\x8e\xa8]|[\x96][\x9c\xb6]|[\x97][\x90\xaa]|[\x98][\x84\x9e\xb8]|[\x99][\x92\xac]|[\x9a][\x86\xa0\xbf]|[\x9b][\x97\x99\x9a\xa1\xb9]|[\x9c][\x91\x93\x94\x9b\xb3]|[\x9d][\x8b\x8d\x8e\x95\xad]|[\x9e][\x85\x87\x88\x8f\xa7\xbf]|[\x9f][\x81\x82\x89]))
+replace_tag    X       (?:[xX\xd7\xf7]|><|[\xce][\xa7]|[\xcf][\x87\xa7\x97\xb0]|[\xd0][\x96\xa5\xb6]|[\xd1][\x85]|[\xd2][\x96\x97\xb2\xb3]|[\xd3][\x81\x82\x9c\x9d\xbc\xbd\xbe\xbf]|[\xe1](?:[\xba][\x8a-\x8d])|[\xf0][\x9d](?:[\x90][\x97\xb1]|[\x91][\x8b\xa5\xbf]|[\x92][\x99]|[\x93][\x8d]|[\x94][\x81\xb5]|[\x95][\x8f\xa9]|[\x96][\x83\x9d\xb7]|[\x97][\x91\xab]|[\x98][\x85\x9f\xb9]|[\x99][\x93\xad]|[\x9a][\x87\xa1\xbe]|[\x9b][\x98\x9e\xb8]|[\x9c][\x92\x98\xb2]|[\x9d][\x92\x9f]|[\x9e][\x86\x8c\xa6]|[\x9f][\x80\x86]))
+replace_tag    Y       (?:[yY\xbe\xd5\xdb\xe3\xff\xfd\xa5j]|[\xc3][\x9d\xbd\xbf]|[\xc5][\xb6\xb7\xb8]|[\xce][\x8e\xa5\xab\xb3]|[\xcf][\x92\x93\x94]|[\xd0][\x8e\xa3]|[\xd1][\x83\x87\x9e]|[\xd2][\xae\xaf\xb0\xb1\xb6\xb7\xb8\xb9]|[\xd3][\x8b\x8c\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5]|[\xd4][\xbf]|[\xd5][\x8e\xaf\xbe]|[\xe1](?:[\xba][\x8e\x8f\x99]|[\xbb][\xb2-\xb9\xbe\xbf]|[\xbd][\x99-\x9f]|[\xbf][\xa8-\xab])|[\xf0][\x9d](?:[\x90][\x98\xb2]|[\x91][\x8c\xa6]|[\x92][\x80\x9a\xb4]|[\x93][\x8e\xa8]|[\x94][\x82]|[\x95][\x90\xaa]|[\x96][\xb8]|[\x97][\x92\xac]|[\x98][\x86\xa0\xba]|[\x99][\x94\xae]|[\x9a][\x88\xa2\xbc]|[\x9b][\x84\xb6\xbe]|[\x9c][\xb0\xb8]|[\x9d][\xaa\xb2]|[\x9e][\xa4\xac]))
+replace_tag    Z       (?:[zZs\xc6]|[\xc5][\xb9\xba\xbb\xbc\xbd\xbe]|[\xce][\x96\xb6]|[\xe1](?:[\xba][\x90-\x95])|[\xf0][\x9d](?:[\x90][\x99\xb3]|[\x91][\x8d\xa7]|[\x92][\x81\x9b]|[\x95][\x91\xab]|[\x96][\xb9]|[\x97][\x93\xad]|[\x98][\x87\xa1\xbb]|[\x99][\x95\xaf]|[\x9a][\x89\xa3\xad]|[\x9b][\xa7]|[\x9c][\xa1]|[\x9d][\x9b]|[\x9e][\x95]))
+replace_tag    IMG     (?:jpe?g|gif|png)
+replace_tag    SP      [\s\d_*\$\%(),.:;?!}{\[\]|\/?^\#~\xa1`'+-]
+replace_tag    WS      (?:=?\s|[\xe2](?:[\x80][\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\xaf]|[\x81][\x9f])|&(?:\#(?:8(?:19[2-9]|20[0-5]|239|287)|160|xa0)|(?:e[nm]|nb|thin)sp);)
+replace_tag    CUR     [\$\xa5\xa3\xa4\xa2]
+
+replace_inter  SP      [\s\d_*\$\%(),.:;?!}{\[\]|\/?^\#~\xa1`'+-]
+replace_inter  W1      \W?
+replace_inter  W2      \W{0,2}
+replace_inter  W3      \W{0,3}
+
+replace_post   P2      {1,2}
+replace_post   P3      {1,3}
+
+###########################################################################
+# fuzzy header tests
+
+header SUBJECT_FUZZY_MEDS      Subject =~ /(?:\b|_)(?!meds)<M><E><D><S>(?:\b|_)/i
+describe SUBJECT_FUZZY_MEDS    Attempt to obfuscate words in Subject:
+replace_rules SUBJECT_FUZZY_MEDS
+
+header __SUBJECT_FUZZY_VPILL   Subject =~ /<inter W2><post P3>(?!viagra)<V><I><A><G><R><A>/i
+replace_rules __SUBJECT_FUZZY_VPILL
+meta SUBJECT_FUZZY_VPILL       __SUBJECT_FUZZY_VPILL && !FUZZY_VPILL
+describe SUBJECT_FUZZY_VPILL   Attempt to obfuscate words in Subject:
+
+header SUBJECT_FUZZY_CHEAP     Subject =~ /<inter W2><post P3>\b(?!cheap)<C><H><E><A><P>(?:\b|<E>)/i
+describe SUBJECT_FUZZY_CHEAP   Attempt to obfuscate words in Subject:
+replace_rules SUBJECT_FUZZY_CHEAP
+
+header SUBJECT_FUZZY_PENIS     Subject =~ /<inter W3><post P3>\b(?!pen\s?(?:ie?s|ny[ ']?s))<P><E><N><I><S>\b/i
+describe SUBJECT_FUZZY_PENIS   Attempt to obfuscate words in Subject:
+replace_rules SUBJECT_FUZZY_PENIS
+
+header SUBJECT_FUZZY_TION      Subject =~ /<post P3>(?!tion)<T><I><O><N>/i
+describe SUBJECT_FUZZY_TION    Attempt to obfuscate words in Subject:
+replace_rules SUBJECT_FUZZY_TION
+
+###########################################################################
+# fuzzy body tests
+
+body FUZZY_AFFORDABLE  /<inter W1><post P2>(?!affordable)<A><F><F><O><R><D><A><B><L><E>/i
+describe FUZZY_AFFORDABLE      Attempt to obfuscate words in spam
+replace_rules FUZZY_AFFORDABLE
+
+# Not performing 6/2019, too much cpu
+#body FUZZY_AMBIEN     /<inter W1><post P2>(?<!t)(?!ambien)(?!ombien)<A><M><B><I><E><N>/i
+#describe FUZZY_AMBIEN Attempt to obfuscate words in spam
+#replace_rules FUZZY_AMBIEN
+
+body FUZZY_BILLION     /(?!billion)<B><I><L><L><I><O><N>/i
+describe FUZZY_BILLION Attempt to obfuscate words in spam
+replace_rules FUZZY_BILLION
+
+
+body FUZZY_CPILL       /(?!ciali[sz])<C><I><A><L><I><S>/i
+describe FUZZY_CPILL   Attempt to obfuscate words in spam
+replace_rules FUZZY_CPILL
+
+body FUZZY_CREDIT      /<inter W1>(?![ck]r(?:[e\xe9]|\xc3\xa9)dit)<C><R><E><D><I><T>/i
+describe FUZZY_CREDIT  Attempt to obfuscate words in spam
+replace_rules FUZZY_CREDIT
+
+# Not performing 6/2019, too much cpu
+#body FUZZY_ERECT      /<inter W2><post P3>(?!erection)<E><R><E><C><T><I><O><N>/i
+#describe FUZZY_ERECT  Attempt to obfuscate words in spam
+#replace_rules FUZZY_ERECT
+
+
+body FUZZY_GUARANTEE   /<inter W1><post P2>(?!guarantee)<G><U><A><R><A><N><T><E><E>/i
+describe FUZZY_GUARANTEE       Attempt to obfuscate words in spam
+replace_rules FUZZY_GUARANTEE
+
+body FUZZY_MEDICATION  /<inter W1><post P2>(?!medicati[eo])<M><E><D><I><C><A><T><I><O><N>/i
+describe FUZZY_MEDICATION      Attempt to obfuscate words in spam
+replace_rules FUZZY_MEDICATION
+
+
+body FUZZY_MILLION     /(?!milli?[o\xf3\xd3]n)<M><I><L><L><I><O><N>/i
+describe FUZZY_MILLION Attempt to obfuscate words in spam
+replace_rules FUZZY_MILLION
+
+body FUZZY_MONEY       /(?!money)<M><O><N><E><Y>/i
+describe FUZZY_MONEY   Attempt to obfuscate words in spam
+replace_rules FUZZY_MONEY
+
+body FUZZY_MORTGAGE    /<inter W1><post P2>(?!mortgage)<M><O><R><T><G><A><G><E>/i
+describe FUZZY_MORTGAGE        Attempt to obfuscate words in spam
+replace_rules FUZZY_MORTGAGE
+
+body FUZZY_OBLIGATION  /<inter W1><post P2>(?!obligation)<O><B><L><I><G><A><T><I><O><N>/i
+describe FUZZY_OBLIGATION      Attempt to obfuscate words in spam
+replace_rules FUZZY_OBLIGATION
+
+body FUZZY_OFFERS      /(?!offers)<O><F><F><E><R><S>/i
+describe FUZZY_OFFERS  Attempt to obfuscate words in spam
+replace_rules FUZZY_OFFERS
+
+body FUZZY_PHARMACY    /<inter W2><post P2>(?!pharmacy)<P><H><A><R><M><A><C><Y>/i
+describe FUZZY_PHARMACY        Attempt to obfuscate words in spam
+replace_rules FUZZY_PHARMACY
+
+body FUZZY_PHENT       /<inter W1><post P2>(?!phentermine)<P><H><E><N><T><E><R><M><I><N><E>/i
+describe FUZZY_PHENT   Attempt to obfuscate words in spam
+replace_rules FUZZY_PHENT
+
+
+body FUZZY_PRESCRIPT   /<inter W2><post P2>(?!prescription)<P><R><E><S><C><R><I><P><T><I><O><N>/i
+describe FUZZY_PRESCRIPT       Attempt to obfuscate words in spam
+replace_rules FUZZY_PRESCRIPT
+
+# left S off of negative look-ahead on purpose
+body FUZZY_PRICES      /<inter W2><post P2>(?!price)<P><R><I><C><E><S>/i
+describe FUZZY_PRICES  Attempt to obfuscate words in spam
+replace_rules FUZZY_PRICES
+
+body FUZZY_REFINANCE   /<inter W2><post P2>(?!refinance)<R><E><F><I><N><A><N><C><E>/i
+describe FUZZY_REFINANCE       Attempt to obfuscate words in spam
+replace_rules FUZZY_REFINANCE
+
+body FUZZY_REMOVE      /(?!remove)<R><E><M><O><V><E>/i
+describe FUZZY_REMOVE  Attempt to obfuscate words in spam
+replace_rules FUZZY_REMOVE
+
+# Not performing 6/2019, too much cpu
+#body FUZZY_ROLEX      /(?!rolex)<R><O><L><E><X>/i
+#describe FUZZY_ROLEX  Attempt to obfuscate words in spam
+#replace_rules FUZZY_ROLEX
+
+body FUZZY_SOFTWARE    /(?!software)<S><O><F><T><W><A><R><E>/i
+describe FUZZY_SOFTWARE        Attempt to obfuscate words in spam
+replace_rules FUZZY_SOFTWARE
+
+body FUZZY_THOUSANDS   /(?!thousands)<T><H><O><U><S><A><N><D><S>/i
+describe FUZZY_THOUSANDS       Attempt to obfuscate words in spam
+replace_rules FUZZY_THOUSANDS
+
+
+body FUZZY_VLIUM       /<inter W1><post P2>(?!valium|verifiquem|volturno|vollum)<V><A><L><I><U><M>/i
+describe FUZZY_VLIUM   Attempt to obfuscate words in spam
+replace_rules FUZZY_VLIUM
+
+
+body FUZZY_VIOXX       /<inter W1><post P2>(?!vioxx)<V><I><O><X><X>/i
+describe FUZZY_VIOXX   Attempt to obfuscate words in spam
+replace_rules FUZZY_VIOXX
+
+body FUZZY_VPILL       /(?!viagra)<V><I><A><G><R><A>/i
+describe FUZZY_VPILL   Attempt to obfuscate words in spam
+replace_rules FUZZY_VPILL
+
+body FUZZY_XPILL       /<inter W3><post P2>(?!xanax)<X><A><N><A><X>/i
+describe FUZZY_XPILL   Attempt to obfuscate words in spam
+replace_rules FUZZY_XPILL
+
+endif   # Mail::SpamAssassin::Plugin::ReplaceTags
diff --git a/sa-updates/25_spf.cf b/sa-updates/25_spf.cf
new file mode 100644 (file)
index 0000000..b8e103d
--- /dev/null
@@ -0,0 +1,124 @@
+# SpamAssassin - SPF rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Requires the Mail::SpamAssassin::Plugin::SPF plugin be loaded.
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+
+# SPF support:
+#   "pass" is nice
+#   "neutral" is somewhat bad
+#   "fail" is bad
+#   "softfail" is bad, but not as bad as "fail"
+#   "permerror" is very bad, and means the domain doesn't have a valid spf record
+# These are more trustworthy results than the SPF_HELO rules.
+
+# some are "userconf" so that scores are set by hand?
+
+header   SPF_PASS      eval:check_for_spf_pass()
+describe SPF_PASS      SPF: sender matches SPF record
+tflags   SPF_PASS      nice userconf net
+reuse    SPF_PASS
+
+header   SPF_NEUTRAL   eval:check_for_spf_neutral()
+describe SPF_NEUTRAL   SPF: sender does not match SPF record (neutral)
+tflags   SPF_NEUTRAL   net
+reuse    SPF_NEUTRAL
+
+header   SPF_FAIL      eval:check_for_spf_fail()
+describe SPF_FAIL      SPF: sender does not match SPF record (fail)
+tflags   SPF_FAIL      net
+reuse    SPF_FAIL
+
+header   SPF_SOFTFAIL  eval:check_for_spf_softfail()
+describe SPF_SOFTFAIL  SPF: sender does not match SPF record (softfail)
+tflags   SPF_SOFTFAIL  net
+reuse    SPF_SOFTFAIL
+
+
+# NOTE: SPF_HELO_PASS is not incredibly hard to fake, so shouldn't
+# provide much in the way of points compared to SPF_PASS et al.
+# However, a *failure* is still a very good spamsign.
+
+header   SPF_HELO_PASS         eval:check_for_spf_helo_pass()
+describe SPF_HELO_PASS         SPF: HELO matches SPF record
+tflags   SPF_HELO_PASS         nice userconf net
+reuse    SPF_HELO_PASS
+
+header   SPF_HELO_NEUTRAL      eval:check_for_spf_helo_neutral()
+describe SPF_HELO_NEUTRAL      SPF: HELO does not match SPF record (neutral)
+tflags   SPF_HELO_NEUTRAL      net
+reuse    SPF_HELO_NEUTRAL
+
+header   SPF_HELO_FAIL         eval:check_for_spf_helo_fail()
+describe SPF_HELO_FAIL         SPF: HELO does not match SPF record (fail)
+tflags   SPF_HELO_FAIL         net
+reuse    SPF_HELO_FAIL
+
+header   SPF_HELO_SOFTFAIL     eval:check_for_spf_helo_softfail()
+describe SPF_HELO_SOFTFAIL     SPF: HELO does not match SPF record (softfail)
+tflags   SPF_HELO_SOFTFAIL     net
+reuse    SPF_HELO_SOFTFAIL
+
+# Implementing the Sender Check for No SPF REcord defaulting to disabled so Admins can override
+header   SPF_NONE              eval:check_for_spf_none()
+describe SPF_NONE              SPF: sender does not publish an SPF Record
+tflags   SPF_NONE              net
+reuse    SPF_NONE
+
+header   SPF_HELO_NONE         eval:check_for_spf_helo_none()
+describe SPF_HELO_NONE         SPF: HELO does not publish an SPF Record
+tflags   SPF_HELO_NONE         net
+reuse    SPF_HELO_NONE
+
+
+
+if can(Mail::SpamAssassin::Plugin::SPF::has_check_for_spf_errors)
+
+header   T_SPF_PERMERROR       eval:check_for_spf_permerror()
+describe T_SPF_PERMERROR       SPF: test of record failed (permerror)
+tflags   T_SPF_PERMERROR       net
+reuse    T_SPF_PERMERROR
+
+header   T_SPF_TEMPERROR       eval:check_for_spf_temperror()
+describe T_SPF_TEMPERROR       SPF: test of record failed (temperror)
+tflags   T_SPF_TEMPERROR       net
+reuse    T_SPF_TEMPERROR
+
+header   T_SPF_HELO_PERMERROR  eval:check_for_spf_helo_permerror()
+describe T_SPF_HELO_PERMERROR  SPF: test of HELO record failed (permerror)
+tflags   T_SPF_HELO_PERMERROR  net
+reuse    T_SPF_HELO_PERMERROR
+
+header   T_SPF_HELO_TEMPERROR  eval:check_for_spf_helo_temperror()
+describe T_SPF_HELO_TEMPERROR  SPF: test of HELO record failed (temperror)
+tflags   T_SPF_HELO_TEMPERROR  net
+reuse    T_SPF_HELO_TEMPERROR
+
+endif
+
+
+
+endif   # Mail::SpamAssassin::Plugin::SPF
diff --git a/sa-updates/25_textcat.cf b/sa-updates/25_textcat.cf
new file mode 100644 (file)
index 0000000..0d35e9f
--- /dev/null
@@ -0,0 +1,43 @@
+# SpamAssassin rules file: language tests
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# 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.
+#
+# Note: If you are adding a rule which looks for a phrase in the body
+# (as most of them do), please add it to rules/20_phrases.cf instead.
+#
+# <@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>
+#
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+
+body UNWANTED_LANGUAGE_BODY    eval:check_language()
+describe UNWANTED_LANGUAGE_BODY        Message written in an undesired language
+tflags UNWANTED_LANGUAGE_BODY  userconf
+
+body BODY_8BITS                        eval:check_body_8bits()
+describe BODY_8BITS            Body includes 8 consecutive 8-bit characters
+tflags BODY_8BITS              userconf
+
+endif
diff --git a/sa-updates/25_uribl.cf b/sa-updates/25_uribl.cf
new file mode 100644 (file)
index 0000000..f911df9
--- /dev/null
@@ -0,0 +1,364 @@
+# SpamAssassin - URIDNSBL rules
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# Requires the Mail::SpamAssassin::Plugin::URIDNSBL plugin be loaded.
+# Note that this plugin defines a new config setting, 'uridnsbl',
+# which lists the zones to look up in advance.  The rules will
+# not hit unless each rule has a corresponding 'uridnsbl' line.
+
+ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+
+###########################################################################
+## Spamhaus
+
+uridnssub       URIBL_SBL        zen.spamhaus.org.       A   127.0.0.2
+body            URIBL_SBL        eval:check_uridnsbl('URIBL_SBL')
+describe        URIBL_SBL        Contains an URL's NS IP listed in the Spamhaus SBL blocklist
+tflags          URIBL_SBL        net
+reuse           URIBL_SBL
+
+uridnssub       URIBL_CSS        zen.spamhaus.org.       A   127.0.0.3
+body            URIBL_CSS        eval:check_uridnsbl('URIBL_CSS')
+describe        URIBL_CSS        Contains an URL's NS IP listed in the Spamhaus CSS blocklist
+tflags          URIBL_CSS        net
+reuse           URIBL_CSS
+
+# Only works correctly from 3.4.3, earlier versions basically run as URIBL_SBL duplicate
+if can(Mail::SpamAssassin::Plugin::URIDNSBL::has_uridnsbl_for_a)
+  uridnssub       URIBL_SBL_A      zen.spamhaus.org.       A   127.0.0.2
+  body            URIBL_SBL_A      eval:check_uridnsbl('URIBL_SBL_A')
+  describe        URIBL_SBL_A      Contains URL's A record listed in the Spamhaus SBL blocklist
+  tflags          URIBL_SBL_A      net a
+  reuse           URIBL_SBL_A
+
+  uridnssub       URIBL_CSS_A      zen.spamhaus.org.       A   127.0.0.3
+  body            URIBL_CSS_A      eval:check_uridnsbl('URIBL_CSS_A')
+  describe        URIBL_CSS_A      Contains URL's A record listed in the Spamhaus CSS blocklist
+  tflags          URIBL_CSS_A      net a
+  reuse           URIBL_CSS_A
+endif
+
+# New blocked checks 10/2019
+uridnssub URIBL_ZEN_BLOCKED_OPENDNS  zen.spamhaus.org.       A   127.255.255.254
+body      URIBL_ZEN_BLOCKED_OPENDNS  eval:check_uridnsbl('URIBL_ZEN_BLOCKED_OPENDNS')
+describe  URIBL_ZEN_BLOCKED_OPENDNS  ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/
+tflags    URIBL_ZEN_BLOCKED_OPENDNS  net
+reuse     URIBL_ZEN_BLOCKED_OPENDNS
+
+# New blocked checks 10/2019
+uridnssub URIBL_ZEN_BLOCKED  zen.spamhaus.org.       A   127.255.255.255
+body      URIBL_ZEN_BLOCKED  eval:check_uridnsbl('URIBL_ZEN_BLOCKED')
+describe  URIBL_ZEN_BLOCKED  ADMINISTRATOR NOTICE: The query to zen.spamhaus.org was blocked. See https://www.spamhaus.org/returnc/vol/
+tflags    URIBL_ZEN_BLOCKED  net
+reuse     URIBL_ZEN_BLOCKED
+
+if can(Mail::SpamAssassin::Conf::feature_dns_block_rule)
+dns_block_rule URIBL_ZEN_BLOCKED_OPENDNS zen.spamhaus.org
+dns_block_rule URIBL_ZEN_BLOCKED zen.spamhaus.org
+endif
+
+
+# DBL, https://www.spamhaus.org/dbl/
+# changes axb 05-17-2014: as per https://www.spamhaus.org/news/article/713/
+# SH changes effective 06-01-2014
+if can(Mail::SpamAssassin::Plugin::URIDNSBL::has_tflags_domains_only)
+
+urirhssub       URIBL_DBL_SPAM         dbl.spamhaus.org.       A   127.0.1.2
+body            URIBL_DBL_SPAM         eval:check_uridnsbl('URIBL_DBL_SPAM')
+describe        URIBL_DBL_SPAM         Contains a spam URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_SPAM         net domains_only
+reuse           URIBL_DBL_SPAM
+
+urirhssub       URIBL_DBL_PHISH        dbl.spamhaus.org.       A   127.0.1.4
+body            URIBL_DBL_PHISH                eval:check_uridnsbl('URIBL_DBL_PHISH')
+describe        URIBL_DBL_PHISH                Contains a Phishing URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_PHISH        net domains_only
+reuse           URIBL_DBL_PHISH
+
+urirhssub       URIBL_DBL_MALWARE      dbl.spamhaus.org.       A   127.0.1.5
+body            URIBL_DBL_MALWARE      eval:check_uridnsbl('URIBL_DBL_MALWARE')
+describe        URIBL_DBL_MALWARE      Contains a malware URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_MALWARE      net domains_only
+reuse           URIBL_DBL_MALWARE
+
+urirhssub       URIBL_DBL_BOTNETCC     dbl.spamhaus.org.       A   127.0.1.6
+body            URIBL_DBL_BOTNETCC     eval:check_uridnsbl('URIBL_DBL_BOTNETCC')
+describe        URIBL_DBL_BOTNETCC     Contains a botned C&C URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_BOTNETCC     net domains_only
+reuse           URIBL_DBL_BOTNETCC
+
+urirhssub       URIBL_DBL_ABUSE_SPAM   dbl.spamhaus.org.       A   127.0.1.102
+body            URIBL_DBL_ABUSE_SPAM   eval:check_uridnsbl('URIBL_DBL_ABUSE_SPAM')
+describe        URIBL_DBL_ABUSE_SPAM   Contains an abused spamvertized URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_ABUSE_SPAM   net domains_only
+reuse           URIBL_DBL_ABUSE_SPAM
+
+urirhssub       URIBL_DBL_ABUSE_REDIR          dbl.spamhaus.org.       A   127.0.1.103
+body            URIBL_DBL_ABUSE_REDIR          eval:check_uridnsbl('URIBL_DBL_ABUSE_REDIR')
+describe        URIBL_DBL_ABUSE_REDIR          Contains an abused redirector URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_ABUSE_REDIR          net domains_only
+reuse           URIBL_DBL_ABUSE_REDIR
+
+urirhssub       URIBL_DBL_ABUSE_PHISH          dbl.spamhaus.org.       A   127.0.1.104
+body            URIBL_DBL_ABUSE_PHISH  eval:check_uridnsbl('URIBL_DBL_ABUSE_PHISH')
+describe        URIBL_DBL_ABUSE_PHISH  Contains an abused phishing URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_ABUSE_PHISH  net domains_only
+reuse           URIBL_DBL_ABUSE_PHISH
+
+urirhssub       URIBL_DBL_ABUSE_MALW   dbl.spamhaus.org.       A   127.0.1.105
+body            URIBL_DBL_ABUSE_MALW   eval:check_uridnsbl('URIBL_DBL_ABUSE_MALW')
+describe        URIBL_DBL_ABUSE_MALW   Contains an abused malware URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_ABUSE_MALW   net domains_only
+reuse           URIBL_DBL_ABUSE_MALW
+
+urirhssub       URIBL_DBL_ABUSE_BOTCC          dbl.spamhaus.org.       A   127.0.1.106
+body            URIBL_DBL_ABUSE_BOTCC          eval:check_uridnsbl('URIBL_DBL_ABUSE_BOTCC')
+describe        URIBL_DBL_ABUSE_BOTCC          Contains an abused botnet C&C URL listed in the Spamhaus DBL blocklist
+tflags          URIBL_DBL_ABUSE_BOTCC          net domains_only
+reuse           URIBL_DBL_ABUSE_BOTCC
+
+
+# this indicates that IP-address queries were sent to DBL, and should
+# never appear; if it does, something is wrong with SpamAssassin
+urirhssub       URIBL_DBL_ERROR  dbl.spamhaus.org.       A   127.0.1.255
+body            URIBL_DBL_ERROR  eval:check_uridnsbl('URIBL_DBL_ERROR')
+describe        URIBL_DBL_ERROR  Error: queried the Spamhaus DBL blocklist for an IP
+tflags          URIBL_DBL_ERROR  net domains_only
+reuse           URIBL_DBL_ERROR
+
+# New blocked checks 10/2019
+urirhssub       URIBL_DBL_BLOCKED_OPENDNS  dbl.spamhaus.org.       A   127.255.255.254
+body            URIBL_DBL_BLOCKED_OPENDNS  eval:check_uridnsbl('URIBL_DBL_BLOCKED_OPENDNS')
+describe        URIBL_DBL_BLOCKED_OPENDNS  ADMINISTRATOR NOTICE: The query to dbl.spamhaus.org was blocked due to usage of an open resolver. See https://www.spamhaus.org/returnc/pub/
+tflags          URIBL_DBL_BLOCKED_OPENDNS  net domains_only
+reuse           URIBL_DBL_BLOCKED_OPENDNS
+
+# New blocked checks 10/2019
+urirhssub       URIBL_DBL_BLOCKED  dbl.spamhaus.org.       A   127.255.255.255
+body            URIBL_DBL_BLOCKED  eval:check_uridnsbl('URIBL_DBL_BLOCKED')
+describe        URIBL_DBL_BLOCKED  ADMINISTRATOR NOTICE: The query to dbl.spamhaus.org was blocked. See https://www.spamhaus.org/returnc/vol/
+tflags          URIBL_DBL_BLOCKED  net domains_only
+reuse           URIBL_DBL_BLOCKED
+
+endif
+
+###########################################################################
+## SURBL
+
+#MERGED INTO BIT 64 per bug 7279
+#urirhssub       URIBL_SC_SURBL  multi.surbl.org.        A   2
+#body            URIBL_SC_SURBL  eval:check_uridnsbl('URIBL_SC_SURBL')
+#describe        URIBL_SC_SURBL  Contains an URL listed in the SC SURBL blocklist
+#tflags          URIBL_SC_SURBL  net
+#reuse           URIBL_SC_SURBL
+
+urirhssub       URIBL_WS_SURBL  multi.surbl.org.        A   4
+body            URIBL_WS_SURBL  eval:check_uridnsbl('URIBL_WS_SURBL')
+describe        URIBL_WS_SURBL  Contains an URL listed in the WS SURBL blocklist
+tflags          URIBL_WS_SURBL  net
+reuse           URIBL_WS_SURBL
+
+urirhssub       URIBL_PH_SURBL  multi.surbl.org.        A   8
+body            URIBL_PH_SURBL  eval:check_uridnsbl('URIBL_PH_SURBL')
+describe        URIBL_PH_SURBL  Contains an URL listed in the PH SURBL blocklist
+tflags          URIBL_PH_SURBL  net
+reuse           URIBL_PH_SURBL
+
+urirhssub       URIBL_MW_SURBL  multi.surbl.org.        A   16
+body            URIBL_MW_SURBL  eval:check_uridnsbl('URIBL_MW_SURBL')
+describe        URIBL_MW_SURBL  Contains a URL listed in the MW SURBL blocklist
+tflags          URIBL_MW_SURBL  net
+reuse           URIBL_MW_SURBL
+
+urirhssub       URIBL_CR_SURBL  multi.surbl.org.        A   128
+body            URIBL_CR_SURBL  eval:check_uridnsbl('URIBL_CR_SURBL')
+describe        URIBL_CR_SURBL  Contains an URL listed in the CR SURBL blocklist
+tflags          URIBL_CR_SURBL  net
+reuse           URIBL_CR_SURBL
+
+#MERGED INTO BIT 64 per bug 7279
+#urirhssub       URIBL_AB_SURBL  multi.surbl.org.        A   32
+#body            URIBL_AB_SURBL  eval:check_uridnsbl('URIBL_AB_SURBL')
+#describe        URIBL_AB_SURBL  Contains an URL listed in the AB SURBL blocklist
+#tflags          URIBL_AB_SURBL  net
+#reuse           URIBL_AB_SURBL
+
+#JP MOVED INTO ABUSE AS WELL AND BIT REUSED  per bug 7279
+urirhssub       URIBL_ABUSE_SURBL  multi.surbl.org.        A   64
+body            URIBL_ABUSE_SURBL  eval:check_uridnsbl('URIBL_ABUSE_SURBL')
+describe        URIBL_ABUSE_SURBL  Contains an URL listed in the ABUSE SURBL blocklist
+tflags          URIBL_ABUSE_SURBL  net
+reuse           URIBL_ABUSE_SURBL
+
+#SURBL BLOCK RULES - Bit 1 means your DNS has been blocked and this rule should be triggered to notify you.
+urirhssub       SURBL_BLOCKED   multi.surbl.org.        A   1
+body            SURBL_BLOCKED   eval:check_uridnsbl('SURBL_BLOCKED')
+describe        SURBL_BLOCKED   ADMINISTRATOR NOTICE: The query to SURBL was blocked.  See http://wiki.apache.org/spamassassin/DnsBlocklists\#dnsbl-block for more information.
+tflags          SURBL_BLOCKED   net noautolearn
+reuse           SURBL_BLOCKED
+
+if can(Mail::SpamAssassin::Conf::feature_dns_block_rule)
+dns_block_rule SURBL_BLOCKED multi.surbl.org
+endif
+
+###########################################################################
+## URIBL
+
+urirhssub       URIBL_BLACK     multi.uribl.com.        A   2
+body            URIBL_BLACK     eval:check_uridnsbl('URIBL_BLACK')
+describe        URIBL_BLACK     Contains an URL listed in the URIBL blacklist
+tflags          URIBL_BLACK     net
+reuse           URIBL_BLACK
+
+urirhssub       URIBL_GREY      multi.uribl.com.        A   4
+body            URIBL_GREY      eval:check_uridnsbl('URIBL_GREY')
+describe        URIBL_GREY      Contains an URL listed in the URIBL greylist
+tflags          URIBL_GREY      net
+reuse           URIBL_GREY
+
+urirhssub       URIBL_RED       multi.uribl.com.        A   8
+body            URIBL_RED       eval:check_uridnsbl('URIBL_RED')
+describe        URIBL_RED       Contains an URL listed in the URIBL redlist
+tflags          URIBL_RED       net
+reuse           URIBL_RED
+
+#URIBL BLOCK RULES - Bit 1 means your DNS has been blocked and this rule should be triggered to notify you.
+urirhssub       URIBL_BLOCKED   multi.uribl.com.        A   1
+body            URIBL_BLOCKED   eval:check_uridnsbl('URIBL_BLOCKED')
+describe        URIBL_BLOCKED   ADMINISTRATOR NOTICE: The query to URIBL was blocked.  See http://wiki.apache.org/spamassassin/DnsBlocklists\#dnsbl-block for more information.
+tflags          URIBL_BLOCKED   net noautolearn
+reuse           URIBL_BLOCKED
+
+if can(Mail::SpamAssassin::Conf::feature_dns_block_rule)
+dns_block_rule URIBL_BLOCKED multi.uribl.com
+endif
+
+###########################################################################
+## DOMAINS TO SKIP (KNOWN GOOD)
+
+# Linting
+uridnsbl_skip_domain taint.org
+
+# Don't bother looking for example domains as per RFC 2606.
+uridnsbl_skip_domain example.com example.net example.org
+
+uridnsbl_skip_domain local.cf
+
+# MUA CSS class definitions
+uridnsbl_skip_domain div.tk p.tk li.tk no.tk
+
+# (roughly) top 200 domains not blacklisted by SURBL
+uridnsbl_skip_domain 126.com 163.com 2o7.net 4at1.com
+uridnsbl_skip_domain 5iantlavalamp.com about.com adelphia.net adobe.com addthis.com
+uridnsbl_skip_domain agora-inc.com agoramedia.com akamai.net
+uridnsbl_skip_domain akamaitech.net amazon.com ancestry.com aol.com
+uridnsbl_skip_domain apache.org apple.com arcamax.com astrology.com apple.news
+uridnsbl_skip_domain atdmt.com att.net bbc.co.uk
+uridnsbl_skip_domain bcentral.com bellsouth.net bfi0.com
+uridnsbl_skip_domain bridgetrack.com cafe24.com charter.net
+uridnsbl_skip_domain citibank.com citizensbank.com cjb.net
+uridnsbl_skip_domain classmates.com clickbank.net cnet.com
+uridnsbl_skip_domain cnn.com com.com com.ne.kr comcast.net
+uridnsbl_skip_domain corporate-ir.net cox.net cs.com
+uridnsbl_skip_domain custhelp.com daum.net dd.se debian.org
+uridnsbl_skip_domain dell.com directtrack.com directnic.com domain.com
+uridnsbl_skip_domain dsbl.org earthlink.net ebay.co.uk ebay.com
+uridnsbl_skip_domain ebayimg.com ebaystatic.com edgesuite.net ediets.com
+uridnsbl_skip_domain egroups.com emode.com excite.com f-secure.com
+uridnsbl_skip_domain free.fr freebsd.org
+uridnsbl_skip_domain gentoo.org geocities.com gmail.com gmx.net
+uridnsbl_skip_domain go.com google.com googleadservices.com grisoft.com
+uridnsbl_skip_domain hallmark.com hinet.net hotbar.com hotmail.com
+uridnsbl_skip_domain hotpop.com hp.com ibm.com incredimail.com
+uridnsbl_skip_domain investorplace.com ivillage.com joingevalia.com
+uridnsbl_skip_domain juno.com kernel.org livejournal.com lycos.com
+uridnsbl_skip_domain m7z.net mac.com macromedia.com
+uridnsbl_skip_domain mail.com mail.ru mailscanner.info marketwatch.com
+uridnsbl_skip_domain mcafee.com mchsi.com messagelabs.com
+uridnsbl_skip_domain microsoft.com military.com mindspring.com mit.edu
+uridnsbl_skip_domain monster.com msn.com nate.com
+uridnsbl_skip_domain netflix.com netscape.com netscape.net netzero.net
+uridnsbl_skip_domain norman.com nytimes.com optonline.net osdn.com
+uridnsbl_skip_domain overstock.com pacbell.net pandasoftware.com
+uridnsbl_skip_domain paypal.com peoplepc.com plaxo.com
+uridnsbl_skip_domain prodigy.net radaruol.com.br
+uridnsbl_skip_domain real.com redhat.com regions.com regionsnet.com
+uridnsbl_skip_domain rogers.com rr.com sbcglobal.net sec.gov sf.net
+uridnsbl_skip_domain shaw.ca shockwave.com smithbarney.com
+uridnsbl_skip_domain sourceforge.net spamcop.net speedera.net sportsline.com
+uridnsbl_skip_domain sun.com suntrust.com sympatico.ca t-online.de
+uridnsbl_skip_domain tails.nl telus.net terra.com.br ticketmaster.com
+uridnsbl_skip_domain tinyurl.com tiscali.co.uk tom.com
+uridnsbl_skip_domain tone.co.nz tux.org uol.com.br
+uridnsbl_skip_domain ups.com verizon.net w3.org usps.com
+uridnsbl_skip_domain wamu.com wanadoo.fr washingtonpost.com weatherbug.com
+uridnsbl_skip_domain web.de webshots.com webtv.net wsj.com
+uridnsbl_skip_domain yahoo.ca yahoo.co.kr yahoo.co.uk
+uridnsbl_skip_domain yahoo.com yahoo.com.br yahoogroups.com yimg.com
+uridnsbl_skip_domain yopi.de yoursite.com zdnet.com
+uridnsbl_skip_domain openxmlformats.org passport.com xmlsoap.org
+uridnsbl_skip_domain abc.xyz avast.com schema.org
+
+# wtogami's most frequent known good URIDNSBL lookups (1/1/2011)
+uridnsbl_skip_domain alexa.com ask.com baidu.com bing.com craigslist.org
+uridnsbl_skip_domain doubleclick.com ebay.de facebook.com flickr.com godaddy.com
+uridnsbl_skip_domain google.co.in google.it mozilla.com myspace.com rediff.com
+uridnsbl_skip_domain twitter.com wordpress.com yahoo.co.jp youtube.com
+
+# axb's frequent known good URIDNSBL lookups
+
+uridnsbl_skip_domain fedex.com
+uridnsbl_skip_domain openoffice.org
+uridnsbl_skip_domain vk.com
+
+# pointless footer noise
+uridnsbl_skip_domain security.cloud
+uridnsbl_skip_domain yac.mx
+
+# Microsoft on ns1.msedge.net
+uridnsbl_skip_domain microsofttranslator.com office.com microsoftonline.com bing.com msedge.net
+
+# Some frequent known good URIDNSBL lookups 3.10.2018 -hk
+uridnsbl_skip_domain aka.ms akamaihd.net alibaba.com alicdn.com amazon.co.uk
+uridnsbl_skip_domain amazon.de amazonaws.com amazonses.com bandcamp.com
+uridnsbl_skip_domain booking.com cdninstagram.com cloudfront.net dhl.com
+uridnsbl_skip_domain dhl.fi dna.fi domain.fi dpd.de dropbox.com ebay.fr
+uridnsbl_skip_domain elisa.fi elisanet.fi emltrk.com fbcdn.net ficora.fi
+uridnsbl_skip_domain gappssmtp.com github.com goo.gl google-analytics.com
+uridnsbl_skip_domain google.de google.fi googleapis.com googleusercontent.com
+uridnsbl_skip_domain gstatic.com hotels.com ikea.com images-amazon.com
+uridnsbl_skip_domain inet.fi instagram.com kolumbus.fi licdn.com linkedin.com
+uridnsbl_skip_domain media-amazon.com mtasv.net mzstatic.com nebula.fi
+uridnsbl_skip_domain nic.fi onmicrosoft.com oracle.com paypalobjects.com
+uridnsbl_skip_domain pinimg.com pinterest.com posti.com posti.fi pstmrk.it
+uridnsbl_skip_domain skype.com soundcloud.com ssl-images-amazon.com
+uridnsbl_skip_domain suomi24.fi t.co telia.com telia.fi tnt.com tori.fi
+uridnsbl_skip_domain tripadvisor.com twimg.com youtu.be
+# Some more frequent known good URIDNSBL lookups 10.4.2020 -hk
+uridnsbl_skip_domain docs.google.com etuovi.com iki.fi nflxext.com nflximg.com
+uridnsbl_skip_domain nflximg.net outlook.com postnord.com postnord.fi postnord.no
+uridnsbl_skip_domain saunalahti.fi
+
+endif   # Mail::SpamAssassin::Plugin::URIDNSBL
diff --git a/sa-updates/30_text_de.cf b/sa-updates/30_text_de.cf
new file mode 100644 (file)
index 0000000..7025146
--- /dev/null
@@ -0,0 +1,384 @@
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# character set used in the following texts (no need for iso-8859-15)
+lang de report_charset iso-8859-1
+
+#              ........................................................................
+lang de clear_report_template
+lang de report Software zur Erkennung von "Spam" auf dem Rechner
+lang de report
+lang de report "    _HOSTNAME_"
+lang de report
+lang de report hat die eingegangene E-mail als mögliche "Spam"-Nachricht identifiziert.
+lang de report Die ursprüngliche Nachricht wurde an diesen Bericht angehängt, so dass
+lang de report Sie sie anschauen können (falls es doch eine legitime E-Mail ist) oder
+lang de report Ã¤hnliche unerwünschte Nachrichten in Zukunft markieren können.
+lang de report Bei Fragen zu diesem Vorgang wenden Sie sich bitte an
+lang de report
+lang de report "    _CONTACTADDRESS_"
+lang de report
+lang de report Vorschau: _PREVIEW_
+lang de report
+lang de report Inhaltsanalyse im Detail:   (_SCORE_ Punkte, _REQD_ benötigt)
+lang de report
+lang de report "Pkte Regelname              Beschreibung"
+lang de report  ---- ---------------------- --------------------------------------------------
+lang de report _SUMMARY_
+#              ........................................................................
+
+#                     ........................................................................
+lang de clear_unsafe_report_template
+lang de unsafe_report Die ursprüngliche Nachricht enthielt nicht ausschließlich Klartext
+lang de unsafe_report (plain text) und kann eventuell eine Gefahr für einige E-Mail-Programme
+lang de unsafe_report darstellen (falls sie z.B. einen Computervirus enthält).
+lang de unsafe_report Möchten Sie die Nachricht dennoch ansehen, ist es wahrscheinlich
+lang de unsafe_report sicherer, sie zuerst in einer Datei zu speichern und diese Datei danach
+lang de unsafe_report mit einem Texteditor zu Ã¶ffnen.
+#                     ........................................................................
+
+lang de describe GTUBE Test zur Prüfung von Anti-Spam-Software
+lang de describe DIGEST_MULTIPLE Mehrere Internettests (Razor, DCC, Pyzor, etc.) treffen zu
+lang de describe TRACKER_ID Beinhaltet eine Identitätsnummer zur Nutzerbeobachtung
+lang de describe WEIRD_QUOTING Seltsame Häufung von Anführungszeichen im Nachrichtentext
+lang de describe __MIME_BASE64 Enthält Anhang in base64-Kodierung
+lang de describe __MIME_QP Enthält Anhang in "quoted-printable"-Kodierung
+#lang de describe MIME_BASE64_BLANKS Ãœberflüssige Leerzeilen bei der base64-Kodierung
+lang de describe MIME_BASE64_TEXT Text getarnt durch base64-Kodierung
+lang de describe MIME_HTML_MOSTLY Mehrteilige MIME-Nachricht Ã¼berwiegend in HTML
+lang de describe MIME_HTML_ONLY MIME-Nachricht besteht nur aus HTML
+lang de describe MIME_HTML_ONLY_MULTI Mehrteilige MIME-Nachricht besteht nur aus HTML
+lang de describe MIME_QP_LONG_LINE "quoted-printable"-kodierte Zeile länger als 76 Zeichen
+lang de describe MIME_CHARSET_FARAWAY MIME-Zeichensatz deutet auf fremde Sprache hin
+lang de describe MPART_ALT_DIFF Nachrichtentext im Text- und HTML-Format unterscheiden sich
+lang de describe CHARSET_FARAWAY Zeichensatz deutet auf fremde Sprache hin
+lang de describe EMAIL_ROT13 Eventuell ROT13-kodierte E-Mail-Adresse im Text
+lang de describe BLANK_LINES_80_90 Nachrichtentext besteht zu 80-90% aus Leerzeilen
+lang de describe LONGWORDS Eine Reihe von langen Wörtern hintereinander
+lang de describe ALL_TRUSTED Nachricht wurde nur Ã¼ber vertrauenswürdige Rechner weitergeleitet
+lang de describe __RCVD_IN_SORBS SORBS: Senderechner in Liste von dnsbl.sorbs.net
+lang de describe RCVD_IN_SORBS_HTTP SORBS: Senderechner als "open HTTP proxy" gemeldet
+lang de describe RCVD_IN_SORBS_MISC SORBS: Senderechner als "open proxy" gemeldet
+lang de describe RCVD_IN_SORBS_SMTP SORBS: Senderechner ist ein ungesicherter Mail-Server
+lang de describe RCVD_IN_SORBS_SOCKS SORBS: Senderechner als "open SOCKS proxy" gemeldet
+lang de describe RCVD_IN_SORBS_WEB SORBS: Senderechner ist ein ungesicherter WWW-Server
+lang de describe RCVD_IN_SORBS_BLOCK SORBS: Senderechner verweigert Tests
+lang de describe RCVD_IN_SORBS_ZOMBIE SORBS: Senderechner in Liste "entführter" Adressblöcke
+lang de describe RCVD_IN_SORBS_DUL SORBS: Senderechner nur temporär mit Internet verbunden
+lang de describe RCVD_IN_SBL Transportiert via Rechner in SBL-Liste (https://www.spamhaus.org/sbl/)
+lang de describe RCVD_IN_XBL Transportiert via Rechner in XBL-Liste (https://www.spamhaus.org/xbl/)
+lang de describe RCVD_IN_BL_SPAMCOP_NET Transportiert via Rechner in Liste von www.spamcop.net
+lang de describe RCVD_IN_MAPS_RBL Transportiert via Rechner in Liste von http://www.mail-abuse.org/rbl/
+lang de describe RCVD_IN_MAPS_DUL Transportiert via Rechner in Liste von http://www.mail-abuse.org/dul/
+lang de describe RCVD_IN_MAPS_RSS Transportiert via Rechner in Liste von http://www.mail-abuse.org/rss/
+lang de describe RCVD_IN_MAPS_NML Transportiert via Rechner in Liste von http://www.mail-abuse.org/nml/
+lang de describe SUBJECT_DRUG_GAP_C Betreff enthält 'cialis' mit L.ü.c.k.e.n
+lang de describe SUBJECT_DRUG_GAP_L Betreff enthält 'levitra' mit L.ü.c.k.e.n
+lang de describe SUBJECT_DRUG_GAP_S Betreff enthält 'soma' mit L.ü.c.k.e.n
+#lang de describe SUBJECT_DRUG_GAP_VA Betreff enthält 'valium' mit L.ü.c.k.e.n
+lang de describe SUBJECT_DRUG_GAP_X Betreff enthält 'xanax' mit L.ü.c.k.e.n
+lang de describe DRUG_DOSAGE Erwähnt den Preis einer Dosis
+lang de describe DRUG_ED_CAPS Erwähnt Medikament gegen Erektionsstörung
+lang de describe DRUG_ED_SILD Chemische Bezeichnung eines Medikaments gegen Erektionsstörungen
+lang de describe DRUG_ED_GENERIC Viagra als billiges Nachahmerpräparat
+lang de describe DRUG_ED_ONLINE Schnelle Lieferung von Viagra
+lang de describe ONLINE_PHARMACY Internetapotheke
+lang de describe VIA_GAP_GRA Versucht das Wort 'viagra' zu tarnen
+lang de describe DRUGS_ERECTILE Erwähnt ein Medikament gegen Erektionsstörungen
+lang de describe DRUGS_ERECTILE_OBFU Erwähnt (getarnt) Medikamente gegen Erektionsstörungen
+lang de describe DRUGS_DIET Erwähnt Diätmedikament
+lang de describe DRUGS_DIET_OBFU Erwähnt (getarnt) Diätmedikament
+lang de describe DRUGS_MUSCLE Erwähnt Muskelentspannungsmittel
+lang de describe DRUGS_ANXIETY Erwähnt Medikament gegen Angstneurosen
+lang de describe DRUGS_ANXIETY_OBFU Erwähnt (getarnt) Medikament gegen Angstneurosen
+lang de describe DRUGS_SMEAR1 Zwei oder mehr Medikamente in einem Wort
+lang de describe DRUGS_ANXIETY_EREC Erwähnt Medikamente gegen Erektionsstörungen und Angstneurosen
+lang de describe DRUGS_SLEEP_EREC Erwähnt Medikament gegen Erektionsstörungen und Schlafmittel
+lang de describe DRUGS_MANYKINDS Erwähnt mindestens vier Arten von Medikamenten
+#lang de describe FAKE_HELO_MAIL_COM_DOM HELO-Rechnername verdächtig (mail.com)
+lang de describe HELO_DYNAMIC_IPADDR HELO-Rechnername verdächtig (IP-Adresse 1)
+lang de describe HELO_DYNAMIC_DHCP HELO-Rechnername verdächtig (DHCP)
+lang de describe HELO_DYNAMIC_HCC HELO-Rechnername verdächtig (HCC)
+lang de describe HELO_DYNAMIC_ROGERS HELO-Rechnername verdächtig (Rogers)
+lang de describe HELO_DYNAMIC_DIALIN HELO-Rechnername verdächtig (T-Dialin)
+lang de describe HELO_DYNAMIC_HEXIP HELO-Rechnername verdächtig (Hexadezimale IP-Adresse)
+lang de describe HELO_DYNAMIC_SPLIT_IP HELO-Rechnername verdächtig (getrennte IP-Adresse)
+lang de describe HELO_DYNAMIC_IPADDR2 HELO-Rechnername verdächtig (IP-Adresse 2)
+lang de describe HELO_DYNAMIC_CHELLO_NL HELO-Rechnername verdächtig (Chello.nl)
+lang de describe HELO_DYNAMIC_HOME_NL HELO-Rechnername verdächtig (Home.nl)
+lang de describe FROM_STARTS_WITH_NUMS Absenderadresse beginnt mit Ziffern im Benutzernamen
+lang de describe FROM_OFFERS Absenderadresse enthält "@...offers"
+lang de describe FROM_NO_USER Adressteil vor dem @-Zeichen fehlt im Absender
+lang de describe PLING_QUERY Betreff enthält Ausrufe- und Fragezeichen
+lang de describe SUBJ_ALL_CAPS Betreff enthält nur Großbuchstaben
+lang de describe MSGID_SPAM_CAPS Kopfzeile "Message-ID" von Spam-Software erzeugt (Großbuchstaben)
+lang de describe MSGID_SPAM_LETTERS Kopfzeile "Message-ID" von Spam-Software erzeugt (Buchstaben)
+lang de describe MSGID_OUTLOOK_INVALID Gefälschte Kopfzeile "Message-ID" im Format von Outlook Express
+lang de describe MSGID_RANDY Muster in Kopfzeile "Message-ID" typisch für Spam
+lang de describe MSGID_YAHOO_CAPS Kopfzeile "Message-ID" enthält GROSSBUCHSTABEN@yahoo.com
+lang de describe MSGID_FROM_MTA_HEADER Kopfzeile "Message-ID" von fremdem Senderechner hinzugefügt
+lang de describe DATE_SPAMWARE_Y2K Datumskopfzeile hat ungewöhnliches Format
+lang de describe INVALID_DATE Datumskopfzeile nicht standardkonform zu RFC 2822
+lang de describe INVALID_DATE_TZ_ABSURD Ungültiges Datum, diese Zeitzone existiert nicht
+lang de describe INVALID_TZ_CST Ungültiges Datum in Kopfzeile (falsche CST Zeitzone)
+lang de describe INVALID_TZ_EST Ungültiges Datum in Kopfzeile (falsche EST Zeitzone)
+lang de describe DATE_IN_PAST_03_06 Absendezeit 3 bis 6 Stunden vor Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_PAST_06_12 Absendezeit 6 bis 12 Stunden vor Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_PAST_12_24 Absendezeit 12 bis 24 Stunden vor Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_PAST_24_48 Absendezeit 24 bis 48 Stunden vor Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_PAST_96_XX Absendezeit mehr als 96 Stunden vor Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_FUTURE_03_06 Absendezeit 3 bis 6 Stunden nach Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_FUTURE_06_12 Absendezeit 6 bis 12 Stunden nach Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_FUTURE_12_24 Absendezeit 12 bis 24 Stunden nach Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_FUTURE_24_48 Absendezeit 24 bis 48 Stunden nach Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_FUTURE_48_96 Absendezeit 48 bis 96 Stunden nach Datum in "Received"-Kopfzeilen
+lang de describe DATE_IN_FUTURE_96_XX Absendezeit mehr als 96 Stunden nach Datum in "Received"-Kopfzeilen
+lang de describe UNRESOLVED_TEMPLATE Kopfzeilen enthalten nicht ersetzte Variablen
+lang de describe SUBJ_ILLEGAL_CHARS Betreff enthält zu viele ungültige Zeichen
+lang de describe FROM_ILLEGAL_CHARS Absendeadresse enthält zu viele ungültige Zeichen
+lang de describe HEAD_ILLEGAL_CHARS Kopfzeilen enthalten zu viele ungültige Zeichen
+lang de describe ENGLISH_UCE_SUBJECT Betreff enthält englische Werbungskennzeichnung
+lang de describe JAPANESE_UCE_SUBJECT Betreff enthält japanische Werbungskennzeichnung
+lang de describe KOREAN_UCE_SUBJECT Betreff enthält koreanische Werbungskennzeichnung
+lang de describe NO_DNS_FOR_FROM Domain der Absendeadresse nicht im DNS registriert (kein MX/A Eintrag)
+lang de describe RCVD_HELO_IP_MISMATCH HELO-Name und IP-Adresse in Kopfzeilen passen nicht
+lang de describe RCVD_ILLEGAL_IP "Received"-Kopfzeilen enthalten ungültige IP-Adresse
+lang de describe RCVD_DOUBLE_IP_SPAM Kennzeichen von Spam-Software (doppelte IP-Adresse)
+lang de describe RCVD_DOUBLE_IP_LOOSE Empfänger/Sender in Kopfzeilen sehen aus wie IP-Adressen
+lang de describe FORGED_TELESP_RCVD Gefälschte Rechnernamen eines brasilianischen DSL-Providers
+lang de describe FORGED_HOTMAIL_RCVD2 Absendeadresse von hotmail.com, aber keine passende "Received"-Zeile
+lang de describe FORGED_YAHOO_RCVD Gefälschte "Received"-Kopfzeile von yahoo.com gefunden
+lang de describe CONFIRMED_FORGED Gefälschte "Received"-Kopfzeilen
+lang de describe MULTI_FORGED Mehrfach gefälschte "Received"-Kopfzeilen
+lang de describe NONEXISTENT_CHARSET Den angegebenen Zeichensatz gibt es nicht
+lang de describe CHARSET_FARAWAY_HEADER Fremdsprachlicher Zeichensatz in Kopfzeilen benutzt
+lang de describe MISSING_DATE Datumskopfzeile fehlt
+lang de describe MISSING_HEADERS Empfängeradresse ("To") fehlt
+lang de describe MISSING_SUBJECT Betreff ("Subject") fehlt
+lang de describe SUSPICIOUS_RECIPS Empfängeradressen sind sich Ã¤hnlich
+lang de describe SORTED_RECIPS Empfänger sind nach Adressen sortiert
+lang de describe GAPPY_SUBJECT Betreff enthält Text mit "L.ü.c.k.e.n"
+lang de describe MISSING_MIMEOLE Kopfzeile "X-MSMail-Priority" aber kein "X-MimeOLE"
+lang de describe SUBJ_AS_SEEN Betreff enthält "as seen"
+lang de describe SUBJ_DOLLARS Betreff beginnt mit einem Dollar-Betrag
+#lang de describe SUBJ_YOUR_DEBT Betreff dreht sich um Rechnungen oder Kredite
+lang de describe SUBJ_YOUR_FAMILY Betreff enthält "Your Family"
+lang de describe RCVD_FAKE_HELO_DOTCOM "Received"-Kopfzeilen enthalten gefälschten HELO-Rechnernamen
+lang de describe SUBJECT_DIET Betreff dreht sich um Gewichtsabnahme
+lang de describe MIME_BOUND_DD_DIGITS Bestimmtes Muster von Spam-Software in MIME-Begrenzung
+lang de describe MIME_BOUND_DIGITS_15 Bestimmtes Muster von Spam-Software in MIME-Begrenzung
+lang de describe MIME_BOUND_MANY_HEX Bestimmtes Muster von Spam-Software in MIME-Begrenzung
+lang de describe TO_MALFORMED Format der Zieladresse inkorrekt
+lang de describe MIME_HEADER_CTYPE_ONLY Kopfzeile "Content-Type" ohne MIME-Kopfzeilen gefunden
+lang de describe WITH_LC_SMTP Kopfzeilen mit "smtp" in Kleinschreibung
+lang de describe SUBJ_BUY Betreff dreht sich ums Kaufen ("buy...")
+lang de describe RCVD_AM_PM Gefälschte "Received"-Kopfzeilen (AM/PM Zeitangabe)
+lang de describe HEADER_COUNT_CTYPE Kopfzeile "Content-Type" mehrfach vorhanden
+lang de describe NO_RDNS_DOTCOM_HELO HELO-Identifikation als großer Provider, aber rDNS-Name inkorrekt
+lang de describe FAKE_OUTBLAZE_RCVD "mr.outblaze.com" in "Received"-Kopfzeile ist gefälscht
+lang de describe HTML_MESSAGE Nachricht enthält HTML
+lang de describe HTML_COMMENT_SHORT HTML-Kommentar ist sehr kurz
+lang de describe HTML_COMMENT_SAVED_URL Nachricht ist eine gespeicherte Webseite
+lang de describe HTML_EMBEDS HTML-Nachricht mit eingebettetem WWW-Plugin
+lang de describe HTML_FONT_SIZE_LARGE HTML-Schriftgröße ist sehr groß
+lang de describe HTML_FONT_SIZE_HUGE HTML-Schriftgröße ist riesig
+lang de describe HTML_FONT_LOW_CONTRAST HTML-Schriftfarbe Ã¤hnlich der Hintergrundfarbe
+lang de describe HTML_FONT_FACE_BAD HTML-Schriftart inkorrekt angegeben
+lang de describe HTML_FORMACTION_MAILTO HTML-Formular in Nachricht verschickt E-mail
+lang de describe HTML_IMAGE_ONLY_04 Außer Bildern nur 0-400 Zeichen Text
+lang de describe HTML_IMAGE_ONLY_08 Außer Bildern nur 400-800 Zeichen Text
+lang de describe HTML_IMAGE_ONLY_12 Außer Bildern nur 800-1200 Zeichen Text
+lang de describe HTML_IMAGE_ONLY_16 Außer Bildern nur 1200-1600 Zeichen Text
+lang de describe HTML_IMAGE_ONLY_20 Außer Bildern nur 1600-2000 Zeichen Text
+lang de describe HTML_IMAGE_ONLY_24 Außer Bildern nur 2000-2400 Zeichen Text
+lang de describe HTML_IMAGE_RATIO_02 Verhältnis Bilderfläche zu Text ist klein
+lang de describe HTML_IMAGE_RATIO_04 Verhältnis Bilderfläche zu Text ist klein
+lang de describe HTML_IMAGE_RATIO_06 Verhältnis Bilderfläche zu Text ist klein
+lang de describe HTML_IMAGE_RATIO_08 Verhältnis Bilderfläche zu Text ist klein
+lang de describe HTML_OBFUSCATE_05_10 Nachrichtentext enthält 0-10% wirres HTML
+lang de describe HTML_OBFUSCATE_10_20 Nachrichtentext enthält 10-20% wirres HTML
+lang de describe HTML_OBFUSCATE_20_30 Nachrichtentext enthält 20-30% wirres HTML
+lang de describe HTML_OBFUSCATE_30_40 Nachrichtentext enthält 30-40% wirres HTML
+lang de describe HTML_OBFUSCATE_50_60 Nachrichtentext enthält 50-60% wirres HTML
+lang de describe HTML_OBFUSCATE_70_80 Nachrichtentext enthält 70-80% wirres HTML
+lang de describe HTML_OBFUSCATE_90_100 Nachrichtentext enthält 90-100% wirres HTML
+lang de describe HTML_TAG_BALANCE_BODY Anzahl "body"-Tags nicht ausgeglichen
+lang de describe HTML_TAG_BALANCE_HEAD Anzahl "head"-Tags nicht ausgeglichen
+lang de describe HTML_BADTAG_40_50 Nachricht enthält 40-50% inkorrekte HTML-Syntax
+lang de describe HTML_BADTAG_50_60 Nachricht enthält 50-60% inkorrekte HTML-Syntax
+lang de describe HTML_BADTAG_60_70 Nachricht enthält 60-70% inkorrekte HTML-Syntax
+lang de describe HTML_BADTAG_90_100 Nachricht enthält 90-100% inkorrekte HTML-Syntax
+lang de describe HTML_NONELEMENT_30_40 30-40% der HTML-Elemente entsprechen nicht dem Standard
+lang de describe HTML_NONELEMENT_40_50 40-50% der HTML-Elemente entsprechen nicht dem Standard
+lang de describe HTML_NONELEMENT_60_70 60-70% der HTML-Elemente entsprechen nicht dem Standard
+lang de describe HTML_NONELEMENT_80_90 80-90% der HTML-Elemente entsprechen nicht dem Standard
+lang de describe HTML_SHORT_CENTER Wenig HTML mit "center"-Element
+lang de describe HTML_CHARSET_FARAWAY Fremdsprachlicher Zeichensatz für HTML benutzt
+lang de describe HTML_MIME_NO_HTML_TAG Nachricht besteht nur aus HTML, hat aber kein "html"-Element
+lang de describe HTML_MISSING_CTYPE HTML-Nachricht ohne passende Kopfzeile "Content-Type"
+lang de describe HIDE_WIN_STATUS JavaScript-Anweisungen verstecken Hyperlinks
+lang de describe OBFUSCATING_COMMENT HTML-Kommentar versucht Text zu verschleiern
+lang de describe JS_FROMCHARCODE Dokument wird aus JavaScript-Programm erzeugt
+lang de describe UPPERCASE_50_75 Nachrichtentext besteht zu 50-75% aus Großbuchstaben
+lang de describe UPPERCASE_75_100 Nachrichtentext besteht zu 75-100% aus Großbuchstaben
+lang de describe INVALID_MSGID "Message-ID"-Zeile ist ungültig gemäß RFC-2822
+lang de describe FORGED_MUA_MOZILLA Gefälschte E-Mail gibt vor vom Mailprogramm Mozilla zu kommen
+lang de describe GUARANTEED_100_PERCENT Zu 100% garantiert...
+lang de describe DEAR_FRIEND Anonyme Anrede ("dear friend")
+lang de describe DEAR_SOMETHING Anonyme Anrede ("dear ...")
+lang de describe BILLION_DOLLARS Erwähnt sehr große Geldbeträge
+lang de describe EXCUSE_4 Behauptet, man könne sich von der Adressliste entfernen lassen
+lang de describe EXCUSE_24 Angeblich haben möchten Sie diese Werbung bekommen
+lang de describe EXCUSE_REMOVE Beschreibt, wie Sie diese Nachrichten wieder loswerden
+lang de describe STRONG_BUY Erwähnt eine starke Kaufempfehlung (von Aktien?)
+lang de describe STOCK_ALERT Bietet eine Benachrichtigung Ã¼ber Aktienwerte an
+lang de describe NOT_ADVISOR Dreht sich um einen nicht registrierten Investmentberater
+lang de describe PREST_NON_ACCREDITED Kaufen Sie Studienabschlüsse obskurer Universitäten
+lang de describe BODY_ENHANCEMENT Informationen zur Penis-/Brustvergrößerung
+lang de describe BODY_ENHANCEMENT2 Informationen zur Penis-/Brustvergrößerung
+lang de describe IMPOTENCE Beseitigt Impotenz
+#lang de describe NA_DOLLARS Handelt von einer Million Dollar aus den US oder Kanada
+#lang de describe US_DOLLARS_3 Erwähnt Millonen von Dollar
+#lang de describe MILLION_USD Erwähnt Millonen von Dollar
+lang de describe URG_BIZ Dringende Geschäfte
+lang de describe MONEY_BACK Mit Geld-zurück Garantie
+lang de describe FREE_QUOTE_INSTANT Kostenlos ein schnelles Preisangebot, ohne Verpflichtung
+lang de describe BAD_CREDIT Erwähnt geplatzte Kredite oder Kreditwürdigkeit
+lang de describe REFINANCE_YOUR_HOME Dreht sich um Baufinanzierung
+lang de describe REFINANCE_NOW Dreht sich um Baufinanzierung
+lang de describe NO_MEDICAL Keine medizinischen Examen nötig
+lang de describe DIET_1 Reduzieren Sie Ihr Gewicht
+lang de describe FIN_FREE Finanzielle Unabhängigkeit
+lang de describe FORWARD_LOOKING Enthält Formulierungen aus Aktienprospekten
+lang de describe ONE_TIME Einmaliges Angebot/Gelegenheit
+lang de describe JOIN_MILLIONS Machen Sie es Millionen von Amerikanern nach
+lang de describe MARKETING_PARTNERS Angeblich haben Sie sich bei einem Partnerunternehmen registriert
+lang de describe LOW_PRICE Niedrigste Preise
+lang de describe UNCLAIMED_MONEY Geld oder Gewinne ohne Besitzer
+lang de describe OBSCURED_EMAIL Eventuell ROT13-kodierte E-mail-Adresse im Text
+lang de describe BANG_OPRAH Erwähnt Oprah (Winfrey), mit Ausrufezeichen
+lang de describe ACT_NOW_CAPS Reagieren Sie jetzt (in Großbuchstaben)
+lang de describe MORE_SEX Werden Sie sexuell aktiver
+lang de describe BANG_GUAR Eine Garantie mit Ausrufezeichen
+lang de describe FREE_PORN Eventuell Pornowerbung: Kostenlose Pornos
+lang de describe CUM_SHOT Eventuell Pornowerbung: "cum shot"
+lang de describe LIVE_PORN Eventuell Pornowerbung: Seien Sie live dabei
+lang de describe SUBJECT_SEXUAL Betreff weist auf sexuellen Nachrichtentext hin
+lang de describe RATWARE_EGROUPS Nachrichtenstruktur weist auf Spam-Software hin (eGroups)
+lang de describe RATWARE_OE_MALFORMED Kopfzeilen enthalten gefälschte Hinweise auf Outlook Express
+lang de describe RATWARE_MOZ_MALFORMED Kopfzeilen enthalten gefälschte Hinweise auf Mozilla
+lang de describe FORGED_MUA_IMS E-Mail täuscht E-Mail-Software Exchange vor
+lang de describe FORGED_MUA_OUTLOOK E-Mail täuscht E-Mail-Software Outlook vor
+lang de describe FORGED_MUA_OIMO E-Mail täuscht E-Mail-Software Outlook vor
+lang de describe FORGED_MUA_EUDORA E-Mail täuscht E-Mail-Software Eudora vor
+lang de describe FORGED_MUA_THEBAT_CS E-Mail täuscht E-Mail-Software The Bat! vor
+lang de describe FORGED_MUA_THEBAT_BOUN E-Mail täuscht E-Mail-Software The Bat! vor
+lang de describe FORGED_OUTLOOK_HTML Outlook verschickt keine reinen HTML-Nachrichten
+lang de describe FORGED_IMS_HTML Exchange verschickt keine reinen HTML-Nachrichten
+lang de describe FORGED_THEBAT_HTML The Bat! v1 verschickt keine reinen HTML-Nachrichten
+lang de describe FORGED_QUALCOMM_TAGS E-Mail-Programm von Qualcomm verwendet diese Art HTML nicht
+lang de describe FORGED_IMS_TAGS Exchange verwendet diese Art HTML nicht
+lang de describe FORGED_OUTLOOK_TAGS Outlook verwendet diese HTML-Markierung nicht
+lang de describe RATWARE_HASH_DASH Enthält Abwehrmaßnahme gegen Anti-Spam-Software ("hashbuster")
+lang de describe RATWARE_ZERO_TZ Seltsame Zeitzone (+0000)
+lang de describe X_MESSAGE_INFO Kopfzeile "X-Message-Info"
+lang de describe RATWARE_RCVD_PF Gefälschte "Received"-Kopfzeile von Postfix
+lang de describe RATWARE_RCVD_AT "Received"-Kopfzeile mit @-Zeichen
+lang de describe NUMERIC_HTTP_ADDR Benutzt eine einzige Zahl als IP-Adresse in einem Hyperlink
+lang de describe HTTP_ESCAPED_HOST Benutzt %-Kodierung innerhalb des Hyperlinks
+lang de describe HTTP_EXCESSIVE_ESCAPES Ãœberflüssige %-Kodierung in Webadresse
+lang de describe IP_LINK_PLUS IP-Adresse (a.b.c.d) gefolgt von CGI-Programm
+lang de describe WEIRD_PORT Ungewöhnliche Portnummer in HTTP-Hyperlink
+lang de describe YAHOO_RD_REDIR URL mit Umleitung Ã¼ber Yahoo
+lang de describe YAHOO_DRS_REDIR URL mit Umleitung Ã¼ber Yahoo
+lang de describe HTTP_77 Enthält URL mit kodiertem Rechnernamen
+
+# 23_bayes.cf
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+lang de describe BAYES_00 Spamwahrscheinlichkeit nach Bayes-Test: 0-1%
+lang de describe BAYES_05 Spamwahrscheinlichkeit nach Bayes-Test: 1-5%
+lang de describe BAYES_20 Spamwahrscheinlichkeit nach Bayes-Test: 5-20%
+lang de describe BAYES_40 Spamwahrscheinlichkeit nach Bayes-Test: 20-40%
+lang de describe BAYES_50 Spamwahrscheinlichkeit nach Bayes-Test: 40-60%
+lang de describe BAYES_60 Spamwahrscheinlichkeit nach Bayes-Test: 60-80%
+lang de describe BAYES_80 Spamwahrscheinlichkeit nach Bayes-Test: 80-95%
+lang de describe BAYES_95 Spamwahrscheinlichkeit nach Bayes-Test: 95-99%
+lang de describe BAYES_99 Spamwahrscheinlichkeit nach Bayes-Test: 99-100%
+lang de describe BAYES_999 Spamwahrscheinlichkeit nach Bayes-Test: 99.9-100%
+endif
+#
+lang de describe USER_IN_BLACKLIST Absenderadresse steht in Ihrer persönlichen schwarzen Liste
+lang de describe USER_IN_WHITELIST Absenderadresse steht in Ihrer persönlichen weißen Liste
+lang de describe USER_IN_DEF_WHITELIST Absenderadresse steht in der allgemeinen weißen Liste
+lang de describe USER_IN_BLACKLIST_TO Empfängeradresse steht in Ihrer persönlichen schwarzen Liste
+lang de describe USER_IN_WELCOMELIST_TO Empfängeradresse steht in Ihrer persönlichen weißen Liste
+lang de describe USER_IN_MORE_SPAM_TO Empfängeradresse soll fast alle (Spam-) Nachrichten erhalten
+lang de describe USER_IN_ALL_SPAM_TO Empfängeradresse soll alle (Spam-) Nachrichten erhalten
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+lang de describe SPF_PASS SPF: Senderechner entspricht SPF-Datensatz
+lang de describe SPF_FAIL SPF: Senderechner entspricht nicht SPF-Datensatz (fail)
+lang de describe SPF_SOFTFAIL Senderechner entspricht nicht SPF-Datensatz (softfail)
+lang de describe SPF_HELO_PASS SPF: HELO-Name entspricht dem SPF-Datensatz
+lang de describe SPF_HELO_FAIL HELO-Name entspricht nicht SPF-Datensatz (fail)
+lang de describe SPF_HELO_SOFTFAIL HELO-Name entspricht nicht SPF-Datensatz (softfail)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+lang de describe URIBL_SBL Enthält URL in SBL-Liste (https://www.spamhaus.org/sbl/)
+#lang de describe URIBL_SC_SURBL Enthält URL in SC-Liste  (www.surbl.org) - removed bug 7279
+lang de describe URIBL_WS_SURBL Enthält URL in WS-Liste (www.surbl.org)
+lang de describe URIBL_PH_SURBL Enthält URL in PH-Liste (www.surbl.org)
+#lang de describe URIBL_OB_SURBL Enthält URL in OB-Liste (www.surbl.org)  - REMOVED BUG 6853
+#lang de describe URIBL_AB_SURBL Enthält URL in AB-Liste (www.surbl.org) - removed bug 7279
+lang de describe URIBL_ABUSE_SURBL Enthält URL in ABUSE-Liste (www.surbl.org) - changed from JP to ABUSE bug 7279
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AWL
+lang de describe AWL Absenderadresse in der automatischen weißen Liste
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+lang de describe MIME_SUSPECT_NAME MIME-Dateiname entspricht nicht dem MIME-Typ
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::DCC
+lang de describe DCC_CHECK Als Massen-E-Mail erkannt von DCC (dcc-servers.net)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+lang de describe PYZOR_CHECK Gelistet im Pyzor-System (https://pyzor.readthedocs.io/en/latest/)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+lang de describe BODY_8BITS Nachrichtentext enthält Folge von 8 oder mehr 8-Bit-Zeichen
+lang de describe UNWANTED_LANGUAGE_BODY Nachrichtentext in unerwünschter Sprache
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+lang de describe ACCESSDB Nachricht wäre von access.db erkannt worden
+endif
+
+lang de describe NORMAL_HTTP_TO_IP Benutzt eine IP-Adresse (a.b.c.d) in einem Hyperlink
+
diff --git a/sa-updates/30_text_fr.cf b/sa-updates/30_text_fr.cf
new file mode 100644 (file)
index 0000000..a511300
--- /dev/null
@@ -0,0 +1,283 @@
+# SpamAssassin translations: Française
+#
+# Written by Michel Bouissou <michel@bouissou.net> for SpamAssassin 2.60
+# Latest revision: 2003/11/14
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+#      ......................................................................
+lang fr clear-report-template
+lang fr report ------------------ Début de Rapport SpamAssassin ---------------------
+lang fr report Ce message est probablement du SPAM (message non sollicité envoyé en
+lang fr report masse, publicité, escroquerie...).
+lang fr report
+lang fr report Cette notice a Ã©té ajoutée par le système d'analyse "SpamAssassin" sur
+lang fr report votre serveur de courrier "_HOSTNAME_", pour vous
+lang fr report aider Ã  identifier ce type de messages.
+lang fr report
+lang fr report Le système SpamAssassin ajoute un en-tête "X-Spam-Flag: YES" aux
+lang fr report messages qu'il considère comme Ã©tant probablement du Spam.
+lang fr report Vous pouvez si vous le souhaitez utiliser cette caractéristique
+lang fr report pour régler un filtre dans votre logiciel de lecture de courrier,
+lang fr report afin de détruire ou de classer Ã  part ce type de message.
+lang fr report
+lang fr report Si ce robot a classifié incorrectement un message qui vous Ã©tait
+lang fr report destiné, ou pour toute question, veuillez contacter l'administrateur
+lang fr report du système par e-mail Ã  _CONTACTADDRESS_ .
+lang fr report
+lang fr report Voir https://spamassassin.apache.org/tag/ pour plus de détails (en anglais).
+lang fr report
+lang fr report Détails de l'analyse du message:   (_SCORE_ points, _REQD_ requis)
+lang fr report _SUMMARY_
+lang fr report -------------------- Fin de Rapport SpamAssassin ---------------------
+
+#      ......................................................................
+# Vous devriez changer "report_contact" dans le fichier 10_misc.cf.
+# _CONTACTADDRESS_ est remplacée par ce texte.
+#      ......................................................................
+
+#                     ......................................................................
+lang fr clear-unsafe-report-template
+lang fr unsafe-report Le message original n'étant pas au format text brut, il est peut-être
+lang fr unsafe-report dangereux de l'ouvrir avec votre logiciel e-mail ; en particulier il
+lang fr unsafe-report pourrait contenir un virus, ou confirmer Ã  l'expéditeur que votre
+lang fr unsafe-report adresse e-mail est active, et peut recevoir du spam. Si vous voulez
+lang fr unsafe-report lire ce message, et n'êtes pas certain de la sécurité de votre logiciel
+lang fr unsafe-report e-mail, il est plus prudent d'enregistrer ce message sur votre disque
+lang fr unsafe-report dur, et de l'afficher ensuite avec un Ã©diteur de texte.
+#                     ......................................................................
+
+#############
+# 23_bayes.cf
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+lang fr describe BAYES_00      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 0 et 1%
+lang fr describe BAYES_05      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 1 et 5%
+lang fr describe BAYES_20      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 5 et 20%
+lang fr describe BAYES_40      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 20 et 40%
+lang fr describe BAYES_50      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 40 et 60%
+lang fr describe BAYES_60      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 60 et 80%
+lang fr describe BAYES_80      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 80 et 95%
+lang fr describe BAYES_95      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 95 et 99%
+lang fr describe BAYES_99      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 99 et 100%
+lang fr describe BAYES_999      L'algorithme Bayésien a Ã©valué la probabilité de spam entre 99.9 et 100%
+endif
+
+lang fr describe ACT_NOW_CAPS          Demande d'agir immédiatement (en majuscules)
+lang fr describe BAD_CREDIT            Contient "Eliminate Bad Credit"
+lang fr describe BANG_GUAR             Quelque chose est "garanti" de manière emphatique
+lang fr describe BANG_OPRAH            Parle d'Oprah avec point d'exclamation !
+lang fr describe BILLION_DOLLARS        Evoque des millions ou milliards de dollars
+lang fr describe BLANK_LINES_80_90     Le corps du message a 80 Ã  90% de lignes vides
+lang fr describe CHARSET_FARAWAY       Message utilisant un jeu de caractères exotique
+lang fr describe CHARSET_FARAWAY_HEADER        En-tête utilisant un jeu de caractères exotique
+lang fr describe CONFIRMED_FORGED      Les en-têtes "Received:" ont Ã©té falsifiés
+lang fr describe CUM_SHOT               Pornographie probable, "gros plans d'éjaculations"
+lang fr describe DATE_IN_PAST_03_06    Date: est 3 Ã  6 heures avant la date de l'en-tête Received:
+lang fr describe DATE_IN_PAST_06_12    Date: est 6 Ã  12 heures avant la date de l'en-tête Received:
+lang fr describe DATE_IN_PAST_12_24    Date: est 12 Ã  24 heures avant la date de l'en-tête Received:
+lang fr describe DATE_IN_PAST_24_48    Date: est 24 Ã  48 heures avant la date de l'en-tête Received:
+lang fr describe DATE_IN_PAST_96_XX    Date: est plus de 96 heures avant la date de l'en-tête Received:
+lang fr describe DATE_IN_FUTURE_03_06  Date: est 3 Ã  6 heures après la date de l'en-tête Received:
+lang fr describe DATE_IN_FUTURE_06_12  Date: est 6 Ã  12 heures après la date de l'en-tête Received:
+lang fr describe DATE_IN_FUTURE_12_24  Date: est 12 Ã  24 heures après la date de l'en-tête Received:
+lang fr describe DATE_IN_FUTURE_24_48  Date: est 24 Ã  48 heures après la date de l'en-tête Received:
+lang fr describe DATE_IN_FUTURE_48_96  Date: est 48 Ã  96 heures après la date de l'en-tête Received:
+lang fr describe DATE_IN_FUTURE_96_XX  Date: est plus de 96 heures après la date de l'en-tête Received:
+lang fr describe MISSING_DATE          En-tête "Date:" absent
+lang fr describe DATE_SPAMWARE_Y2K     L'en-tête date utilise un format Y2K inhabituel
+lang fr describe DEAR_FRIEND           Contient la formule "Dear friend"
+lang fr describe DEAR_SOMETHING                Le message contient "Dear... (quelqu'un)"
+lang fr describe DIET_1                        Spam proposant une perte de poids
+lang fr describe EMAIL_ROT13           Corps contient une adresse mail encodée en ROT13
+lang fr describe EXCUSE_REMOVE         Explique comment Ãªtre retiré des listes de mailing (soi-disant...)
+lang fr describe EXCUSE_4              Prétend que vous pouvez vous faire supprimer de leur liste
+lang fr describe EXCUSE_24             Prétend que vous avez demandé Ã  recevoir cette publicité
+lang fr describe FIN_FREE              Parle de "liberté financière" (Financial Freedom)
+lang fr describe FORGED_HOTMAIL_RCVD2  From hotmail.com, mais sans "Received:"
+lang fr describe FORGED_IMS_HTML       IMS n'envoie pas de messages en HTML seul
+lang fr describe FORGED_IMS_TAGS       IMS n'envoie pas de HTML dans ce format
+lang fr describe FORGED_MUA_EUDORA     Message falsifié prétendant provenir du logiciel Eudora
+lang fr describe FORGED_MUA_IMS                Message falsifié prétendant provenir du logiciel IMS
+lang fr describe FORGED_MUA_MOZILLA    Message falsifié prétendant provenir du logiciel Mozilla
+lang fr describe FORGED_MUA_OIMO       Message falsifié prétendant provenir du logiciel MS Outlook IMO
+lang fr describe FORGED_MUA_OUTLOOK    Message falsifié prétendant provenir du logiciel MS Outlook
+lang fr describe FORGED_MUA_THEBAT_BOUN Mail prétendant provenir de The Bat! (boundary)
+lang fr describe FORGED_MUA_THEBAT_CS  Mail pretendant provenir de The Bat! (charset)
+lang fr describe FORGED_OUTLOOK_HTML   Outlook n'envoie pas de messages en HTML seul
+lang fr describe FORGED_OUTLOOK_TAGS   Outlook n'envoie pas de HTML sous ce format
+lang fr describe FORGED_QUALCOMM_TAGS  QUALCOMM mailers n'envoient pas de HTML sous ce format
+lang fr describe FORGED_TELESP_RCVD    Contient un nom de machine falsifié chez un F.A.I. brésilien
+lang fr describe FORGED_THEBAT_HTML    The Bat! n'envoie pas de messages en HTML seul
+lang fr describe FORGED_YAHOO_RCVD     Contient un en-tête falsifié Received: yahoo.com
+lang fr describe FORWARD_LOOKING       Contient un "Stock Disclaimer Statement" (bourse)
+lang fr describe FREE_PORN              Pornographie probable "Free porn"
+lang fr describe FREE_QUOTE_INSTANT    Contient formule type "Free express" ou "no obligation"
+lang fr describe FROM_ILLEGAL_CHARS    From: contient trop de caractères bruts invalides
+lang fr describe FROM_NO_USER          L'en-tête From: n'a pas de nom d'utilisateur avant le signe @
+lang fr describe FROM_OFFERS           L'adresse d'expéditeur est "at something-offers"
+lang fr describe FROM_STARTS_WITH_NUMS L'en-tête From: commence par des chiffres
+lang fr describe GAPPY_SUBJECT         L'en-tête Subject: contient du "t e x t e  e s p a c Ã©"
+lang fr describe GTUBE                 Test générique de courrier non sollicté en masse
+lang fr describe GUARANTEED_100_PERCENT        Contient "One hundred percent guaranteed" (100% garanti)
+lang fr describe HEAD_ILLEGAL_CHARS    En-tête contient trop de caractères bruts invalides
+lang fr describe HEADER_COUNT_CTYPE    Plusieurs en-têtes Content-Type
+lang fr describe HIDE_WIN_STATUS       Javascript destiné Ã  camoufler une URL dans le navigateur
+lang fr describe HTML_CHARSET_FARAWAY  Jeu de caractères exotique utilisé pour le HTML
+lang fr describe HTML_COMMENT_SAVED_URL        Le message HTML est une page web sauvegardée
+lang fr describe HTML_EMBEDS           HTML: Inclusion d'objets
+lang fr describe HTML_FONT_FACE_BAD    Le nom de la police HTML n'est pas un mot
+lang fr describe HTML_FONT_LOW_CONTRAST        Police HTML de la même couleur que le fond
+lang fr describe HTML_FORMACTION_MAILTO        HTML inclut un formulaire d'envoi de mail
+lang fr describe HTML_IMAGE_ONLY_04    HTML contient images avec 200 Ã  400 octets de texte
+lang fr describe HTML_IMAGE_ONLY_08    HTML contient images avec 600 Ã  800 octets de texte
+lang fr describe HTML_IMAGE_ONLY_12    HTML contient images avec 1000 Ã  1200 octets de texte
+lang fr describe HTML_IMAGE_RATIO_02   HTML Faible ratio de texte par rapport aux images
+lang fr describe HTML_IMAGE_RATIO_04   HTML Faible ratio de texte par rapport aux images
+lang fr describe HTML_IMAGE_RATIO_06   HTML Faible ratio de texte par rapport aux images
+lang fr describe HTML_IMAGE_RATIO_08   HTML Faible ratio de texte par rapport aux images
+lang fr describe HTML_MESSAGE          HTML inclus dans le message
+lang fr describe HTML_MIME_NO_HTML_TAG Message en HTML seul, mais sans tags HTML
+lang fr describe HTML_TAG_BALANCE_BODY Le tag de fermeture de "body" HTML est manquant
+lang fr describe HTML_TAG_BALANCE_HEAD Le tag de fermeture de "head" HTML est manquant
+lang fr describe HTTP_ESCAPED_HOST     URI: Contient des %-escapes dans le nom de machine
+lang fr describe HTTP_EXCESSIVE_ESCAPES        URI: Contient des %-escapes nombreux et superflus
+lang fr describe IMPOTENCE             Prétend permettre de combattre l'impuissance
+lang fr describe MORE_SEX              Parle d'augmenter le désir sexuel
+lang fr describe INVALID_DATE          L'en-tête Date: est incorrect (il contient AM/PM)
+lang fr describe INVALID_DATE_TZ_ABSURD        L'en-tête Date: est incorrect (la zone de temps n'existe pas)
+lang fr describe INVALID_MSGID         Le Message-ID est invalide, selon la RFC-2822
+lang fr describe IP_LINK_PLUS          Adresse IP en décimal suivie d'un CGI
+lang fr describe JAPANESE_UCE_SUBJECT  Sujet contient une marque japonaise de spam
+lang fr describe JOIN_MILLIONS         Contient "Join Millions of Americans"
+lang fr describe KOREAN_UCE_SUBJECT    Le sujet contient des caractères coréens
+lang fr describe LIVE_PORN              Pornographie probable: porno en direct-live
+lang fr describe SUBJECT_DIET            Le sujet parle de perte de poids
+lang fr describe LOW_PRICE              Contient "Lowest Price" (le prix le plus bas)
+lang fr describe MARKETING_PARTNERS    Prétend que vous vous Ãªtes enregistré auprès d'un "partenaire" quelconque
+#lang fr describe MILLION_USD          Phrase clé d'escroquerie nigérienne (millions of dollars)
+lang fr describe __MIME_BASE64         Inclut un attachement en BASE64
+#lang fr describe MIME_BASE64_BLANKS   Ligne blanches surnuméraires dans l'encodage BASE64
+lang fr describe MIME_BASE64_TEXT      Texte du message camouflé par encodage en BASE64
+lang fr describe MIME_BOUND_MANY_HEX   Motif caractéristique d'outil de spam dans les délimiteurs MIME
+lang fr describe MIME_CHARSET_FARAWAY  Jeu de caractères MIME exotique
+lang fr describe MIME_HEADER_CTYPE_ONLY En-tête "Content-Type" présent sans les en-têtes MIME requis
+lang fr describe MIME_HTML_MOSTLY      Message multipart principalement en MIME text/html
+lang fr describe MIME_HTML_ONLY                Le message possède uniquement des parties MIME text/html
+lang fr describe MIME_HTML_ONLY_MULTI  Message multipart uniquement en MIME text/html
+lang fr describe __MIME_QP             Contient en attachement en quoted-printable
+lang fr describe MIME_QP_LONG_LINE     Ligne quoted-printable de plus de 76 caractères
+lang fr describe MISSING_HEADERS       Le message ne comporte pas l'en-tête To:
+lang fr describe MISSING_MIMEOLE       Possède un en-tête X-MSMail-Priority, mais pas de X-MimeOLE
+lang fr describe MONEY_BACK            Vous garantit un "remboursement si insatisfait" (en anglais)
+lang fr describe MSGID_FROM_MTA_HEADER Message-ID ajouté par un relais
+lang fr describe MSGID_OUTLOOK_INVALID Message-ID falsifié (fortmat Outlook Express)
+lang fr describe MULTI_FORGED          les en-têtes "Received" montrent de nombreuses falsifications
+#lang fr describe NA_DOLLARS           Parle d'un million de dollars "nord-américains"
+lang fr describe NONEXISTENT_CHARSET   Message rédigé dans un jeu de caractères inexistant
+lang fr describe NOT_ADVISOR           Contient "Not registered investment advisor"
+lang fr describe NO_DNS_FOR_FROM       Adresse From: inconnue en DNS (pas d'enregistrement MX)
+lang fr describe NO_MEDICAL            Contient "No Medical Exams" (sans examen médical)
+lang fr describe NO_RDNS_DOTCOM_HELO   HELO de F.A.I. important, mais pas de rDNS
+lang fr describe NUMERIC_HTTP_ADDR     Utilise une adresse IP, sans points, dans une URL
+lang fr describe OBFUSCATING_COMMENT   Commentaires HTML inutiles destinés Ã  camoufler le texte
+lang fr describe OBSCURED_EMAIL         Le message semble contenir une adresse mail camouflée par rot13
+lang fr describe ONLINE_PHARMACY       Produits pharmaceutiques en ligne
+lang fr describe BODY_ENHANCEMENT              Arnaque prétendant augmenter la taile de votre pénis
+lang fr describe BODY_ENHANCEMENT2             Arnaque prétendant augmenter la taile de votre pénis
+lang fr describe PLING_QUERY           Le sujet a un point d'interrogation ET un point d'exclamation
+lang fr describe PREST_NON_ACCREDITED  Fait référence a une "prestigieuse université" non reconnue
+lang fr describe RATWARE_EGROUPS       Trace de logiciel de mailing en masse (eGroups) dans les en-têtes
+lang fr describe RATWARE_HASH_DASH     Contient un "hashbuster" au format Send-Safe
+lang fr describe RATWARE_OE_MALFORMED  En-tête X-Mailer indique No de version Outlook Express malformé
+lang fr describe RCVD_AM_PM            En-tête Received: falsifié (AM/PM)
+lang fr describe RCVD_FAKE_HELO_DOTCOM  En-tête Received contient nom d'hôte falsifié dans le HELO
+lang fr describe RCVD_IN_BL_SPAMCOP_NET        Relais listé dans http://spamcop.net/bl.shtml
+lang fr describe RCVD_IN_SORBS_DUL     Envoyé directement depuis une adresse IP dynamique
+lang fr describe RCVD_IN_MAPS_DUL      Relais listé dans DUL, http://www.mail-abuse.org/dul/
+lang fr describe RCVD_IN_MAPS_NML      Relais listé dans NML, http://www.mail-abuse.org/nml/
+lang fr describe RCVD_IN_MAPS_RBL      Relais listé dans RBL, http://www.mail-abuse.org/rbl/
+lang fr describe RCVD_IN_MAPS_RSS      Relais listé dans RSS, http://www.mail-abuse.org/rss/
+lang fr describe RCVD_IN_SBL           Relais listé dans https://www.spamhaus.org/sbl/
+lang fr describe RCVD_IN_SORBS_BLOCK   SORBS: Relais refusant d'être testé par SORBS
+lang fr describe RCVD_IN_SORBS_HTTP    SORBS: Envoyé par un proxy HTTP ouvert
+lang fr describe RCVD_IN_SORBS_MISC    SORBS: Envoyé par un proxy ouvert
+lang fr describe RCVD_IN_SORBS_SMTP    SORBS: Envoyé par un relais SMTP ouvert
+lang fr describe RCVD_IN_SORBS_SOCKS   SORBS: Envoyé par un proxy SOCKS ouvert
+lang fr describe RCVD_IN_SORBS_WEB     SORBS: Envoyé depuis un serveur web vulnérable
+lang fr describe RCVD_IN_SORBS_ZOMBIE  SORBS: Envoyé depuis un réseau IP piraté
+lang fr describe REFINANCE_NOW          Offre de refinancement immobilier
+lang fr describe REFINANCE_YOUR_HOME   Offre de refinancement immobilier
+lang fr describe SORTED_RECIPS         La liste des destinataires est triée par ordre alphabétique
+lang fr describe STOCK_ALERT           Contient la formule "stock alert"
+lang fr describe STRONG_BUY            Contient la formule "strong buy"
+lang fr describe SUBJ_ALL_CAPS         Le sujet est en majuscules
+lang fr describe SUBJ_AS_SEEN          Le sujet contient "As Seen" (généralement "vu Ã  la télé"...)
+lang fr describe SUBJ_BUY               Le sujet commence par "Buy, Buying" (achetez, achat)
+lang fr describe SUBJ_DOLLARS           Le sujet commence par une somme en dollars
+lang fr describe SUBJ_ILLEGAL_CHARS    Subject: contient trop de caractères bruts invalides
+#lang fr describe SUBJ_YOUR_DEBT               Le sujet contient "Your Bills" (vos factures) ou similaire
+lang fr describe SUBJ_YOUR_FAMILY      Le sujet contient "Your Family" (votre famille)
+lang fr describe SUSPICIOUS_RECIPS     L'en-tête To: contient plus de dix fois le même nom de domaine
+lang fr describe TO_MALFORMED          L'en-tête To: contient une adresse mal formée
+lang fr describe TRACKER_ID            Contient un numéro permettant de vous identifier
+lang fr describe UNCLAIMED_MONEY        Argent non réclamé: Chacun sait que c'est courant ;-)
+lang fr describe UPPERCASE_50_75       Message composé de 50 Ã  75% de majuscules
+lang fr describe UPPERCASE_75_100      Message composé de 75 Ã  100% de majuscules
+lang fr describe URG_BIZ               Contient la formule "urgent business"
+lang fr describe USER_IN_ALL_SPAM_TO   Destinataire sur la liste "all_spam_to" (config SA locale)
+lang fr describe USER_IN_BLACKLIST     Expéditeur sur la liste noire (config SA locale)
+lang fr describe USER_IN_BLACKLIST_TO   Destinataire sur la liste "blacklist_to" (config SA locale)
+lang fr describe USER_IN_DEF_WHITELIST Expéditeur dans la liste OK par défaut de SpamAssassin
+lang fr describe USER_IN_MORE_SPAM_TO  Destinataire sur la liste "more_spam_to" (config SA locale)
+lang fr describe USER_IN_WHITELIST     Expéditeur sur la liste blanche (OK) (config SA locale)
+lang fr describe USER_IN_WELCOMELIST_TO        Destinataire sur la liste blanche (config SA)
+#lang fr describe US_DOLLARS_3           Escroq. nigérienne, version modifiée, phrase clé ($NN,NNN,NNN.NN)
+lang fr describe DRUG_ED_ONLINE          Vente de Viagra par correspondance
+lang fr describe WEIRD_PORT            Lien HTTP vers un numéro de port non standard
+lang fr describe WEIRD_QUOTING         Utilisation Ã©trange de symboles de citations
+lang fr describe WITH_LC_SMTP          Une ligne Received: contient un signe de spam ("smtp" en minuscules)
+
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+lang fr describe MIME_SUSPECT_NAME     Le nom du fichier joint MIME semble suspect (virus ?)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::DCC
+lang fr describe DCC_CHECK             Message listé par DCC: http://www.www.dcc-servers.net/dcc/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+lang fr describe PYZOR_CHECK           Message listé par Pyzor, voir https://pyzor.readthedocs.io/en/latest/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+lang fr describe BODY_8BITS            Contient plusieurs caractères 8-bits consécutifs
+lang fr describe UNWANTED_LANGUAGE_BODY        Message dans une langue non désirée (config locale)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+lang fr describe ACCESSDB              Ce message aurait Ã©té bloqué par accessdb
+endif
+
+lang fr describe NORMAL_HTTP_TO_IP     URI: Contient une adresse IP en notation décimale
+
diff --git a/sa-updates/30_text_it.cf b/sa-updates/30_text_it.cf
new file mode 100644 (file)
index 0000000..d4af5fe
--- /dev/null
@@ -0,0 +1,35 @@
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# character set used in the following texts
+#lang it report_charset iso-8859-1
+
+#                     ........................................................................
+#lang it clear_unsafe_report_template
+#lang it unsafe_report Attenzione: il messaggio originale non testo puro, e potrebbe essere
+#lang it unsafe_report pericoloso da aprire con alcuni programmi di posta.  Ad esempio, potrebbe
+#lang it unsafe_report contenere un virus, o confermare ad un mittente di spam che il messaggio
+#lang it unsafe_report stato letto.  Un modo sicuro per visualizzarne il testo (ma non le
+#lang it unsafe_report immagini o gli allegati) salvarlo in un file e aprirlo con un editor.
+#                     ........................................................................
diff --git a/sa-updates/30_text_nl.cf b/sa-updates/30_text_nl.cf
new file mode 100644 (file)
index 0000000..882f015
--- /dev/null
@@ -0,0 +1,275 @@
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# contributed by Jesse Houwing, bug 3197
+#
+#              ..............................................................................
+lang nl report Spam detectie software op het systeem "_HOSTNAME_", heeft dit bericht
+lang nl report als mogelijke spam aangemerkt. Het originele bericht is bijgevoegd als
+lang nl report bijlage bij dit bericht zodat u het kunt bekijken (als het geen spam is)
+lang nl report of soortgelijke toekomstige berichten blokkeren. Zie _CONTACTADDRESS_
+lang nl report voor meer details
+lang nl report
+lang nl report Gedeelte van de inhoud:  _PREVIEW_
+lang nl report
+lang nl report Analyse details:   (_SCORE_ punten, _REQD_ vereist)
+lang nl report
+lang nl report " pnt regel naam             omschrijving"
+lang nl report  ---- ---------------------- -------------------------------------------------
+lang nl report _SUMMARY_
+#              ..............................................................................
+
+#                    ........................................................................
+lang nl unsafe_report Het originele bericht bestond niet geheel uit tekst en is mogelijk
+lang nl unsafe_report onveilig om te openen im sommige emailprogramma's. Het bericht bevat
+lang nl unsafe_report mogelijk een virus of code om te verifieren dat uw adres spam
+lang nl unsafe_report berichten kan ontvangen. Het is veiliger om het bericht op te slaan
+lang nl unsafe_report en het te bekijken in een tekstbewerkingsprogramma.
+#                    ........................................................................
+
+lang nl describe GTUBE                           Standaard test voor ongewenste bulk mail
+lang nl describe TRACKER_ID                      Maakt gebruik van een nummer om het bericht te kunnen volgen
+lang nl describe WEIRD_QUOTING                   Vreemde herhaalde dubbel aanhalingsteken
+lang nl describe __MIME_BASE64                   Bevat een base64 bijlage
+lang nl describe __MIME_QP                       Bevat een  quoted-printable bijlage
+#lang nl describe MIME_BASE64_BLANKS              Extra witregels in base64 codering
+lang nl describe MIME_BASE64_TEXT                Bericht verborgen door middel van base64 codering
+lang nl describe MIME_HTML_MOSTLY                Multipart bericht bestaat voornamelijk uit text/html MIME
+lang nl describe MIME_HTML_ONLY                  Bericht bestaat enkel uit text/html MIME delen
+lang nl describe MIME_HTML_ONLY_MULTI            Bericht heeft enkel text/html MIME delen
+lang nl describe MIME_QP_LONG_LINE               Quoted-printable regel langer dan 76 karakters
+lang nl describe MIME_CHARSET_FARAWAY            MIME karakterset wijst op vreemde taal
+lang nl describe MPART_ALT_DIFF                  HTML en tekst delen zijn verschillend
+lang nl describe CHARSET_FARAWAY                 Karakterset wijst op vreemde taal
+lang nl describe EMAIL_ROT13                     Body bevat een ROT13-versleuteld emailadres
+lang nl describe BLANK_LINES_80_90               Bericht bestaat voor 80-90% uit witregels
+lang nl describe __RCVD_IN_SORBS                 SORBS: verzender is gevonden in SORBS
+lang nl describe RCVD_IN_SORBS_HTTP              SORBS: verzender is een open HTTP proxy server
+lang nl describe RCVD_IN_SORBS_MISC              SORBS: verzender is een open proxy server
+lang nl describe RCVD_IN_SORBS_SMTP              SORBS: verzender is een open SMTP relay
+lang nl describe RCVD_IN_SORBS_SOCKS             SORBS: verzender is een open SOCKS proxy server
+lang nl describe RCVD_IN_SORBS_WEB               SORBS: verzender is een misbruikbare web server
+lang nl describe RCVD_IN_SORBS_BLOCK             SORBS: verzender weigert getest te worden
+lang nl describe RCVD_IN_SORBS_ZOMBIE            SORBS: verzender is een gekaapt netwerk
+lang nl describe RCVD_IN_SORBS_DUL               SORBS: bericht is direct verstuurd vanaf een dynamisch IP adres
+lang nl describe RCVD_IN_SBL                     Ontvangen via een relay die gevonden is in Spamhaus SBL
+lang nl describe RCVD_IN_XBL                     Ontvangen via een relay die gevonden is in Spamhaus XBL
+lang nl describe RCVD_IN_BL_SPAMCOP_NET          Ontvangen via een relay die gevonden is in bl.spamcop.net
+lang nl describe RCVD_IN_MAPS_RBL                Relay in RBL, http://www.mail-abuse.org/rbl/
+lang nl describe RCVD_IN_MAPS_DUL                Relay in DUL, http://www.mail-abuse.org/dul/
+lang nl describe RCVD_IN_MAPS_RSS                Relay in RSS, http://www.mail-abuse.org/rss/
+lang nl describe RCVD_IN_MAPS_NML                Relay in NML, http://www.mail-abuse.org/nml/
+lang nl describe FROM_STARTS_WITH_NUMS           Van: begint met nummers
+lang nl describe FROM_OFFERS                     Van: adres is van "at iets-aangeboden"
+lang nl describe FROM_NO_USER                    Van: heeft geen lokaal deel voor het @-tje
+lang nl describe PLING_QUERY                     Onderwerp heeft een uitroepteken en een vraagteken
+lang nl describe SUBJ_ALL_CAPS                   Onderwerp bevat alleen hoofdletters
+lang nl describe MSGID_SPAM_LETTERS              Spam tool Message-Id: (letters variant)
+lang nl describe MSGID_OUTLOOK_INVALID           Message-Id is nep (in Outlook Express formaat)
+lang nl describe MSGID_RANDY                     Message-Id bevat een patroon dat wordt gebruikt in SPAM
+lang nl describe MSGID_FROM_MTA_HEADER           Message-Id was door een relay toegevoegd
+lang nl describe DATE_SPAMWARE_Y2K               Datum heeft een vreemde Y2K opmaak
+lang nl describe INVALID_DATE                    Ongeldige Date: header (niet RFC 2822)
+lang nl describe INVALID_DATE_TZ_ABSURD          Ongeldige Date: header (tijdzone bestaat niet)
+lang nl describe DATE_IN_PAST_03_06              Date: is 3 tot 6 uur voor Received: datum
+lang nl describe DATE_IN_PAST_06_12              Date: is 6 tot 12 uur voor Received: datum
+lang nl describe DATE_IN_PAST_12_24              Date: is 12 tot 24 uur voor Received: datum
+lang nl describe DATE_IN_PAST_24_48              Date: is 24 tot 48 uur voor Received: datum
+lang nl describe DATE_IN_PAST_96_XX              Date: is 96 of meer uur voor Received: datum
+lang nl describe DATE_IN_FUTURE_03_06            Date: is 3 tot 6 uur na Received: datum
+lang nl describe DATE_IN_FUTURE_06_12            Date: is 6 tot 12 uur na Received: datum
+lang nl describe DATE_IN_FUTURE_12_24            Date: is 12 tot 24 uur na Received: datum
+lang nl describe DATE_IN_FUTURE_24_48            Date: is 24 tot 48 uur na Received: datum
+lang nl describe DATE_IN_FUTURE_48_96            Date: is 48 tot 96 uur na Received: datum
+lang nl describe DATE_IN_FUTURE_96_XX            Date: is 96 of meer uur na Received: datum
+lang nl describe SUBJ_ILLEGAL_CHARS              Onderwerp: bevat te veel 'raw' tekens
+lang nl describe FROM_ILLEGAL_CHARS              Van: bevat te veel 'raw' tekens
+lang nl describe HEAD_ILLEGAL_CHARS              Header: bevat te veel illegale tekens
+lang nl describe JAPANESE_UCE_SUBJECT            Onderwerp: bevat een Japanese UCE tag
+lang nl describe KOREAN_UCE_SUBJECT              Onderwerp: bevat een koreaanse ongewenste email tag
+lang nl describe NO_DNS_FOR_FROM                 Domein in Van heeft geen MX of A DNS record
+lang nl describe RCVD_DOUBLE_IP_SPAM             Buld email vingerafdruk (dubbel IP) gevonden
+lang nl describe RCVD_DOUBLE_IP_LOOSE            Received: door en van lijken op IP adressen
+lang nl describe FORGED_TELESP_RCVD              Bevat een vervalde hostnaam voor een DSL IP in Brazilie
+lang nl describe FORGED_HOTMAIL_RCVD2            hotmail.com 'Van' adres, maar geen 'Received:'
+lang nl describe FORGED_YAHOO_RCVD               'Van' yahoo.com Komt niet overeen met 'Received' headers
+lang nl describe CONFIRMED_FORGED                Received headers zijn vervalst
+lang nl describe MULTI_FORGED                    Received headers wijzen op meerdere vervalsingen
+lang nl describe NONEXISTENT_CHARSET             Karakterset bestaat niet
+lang nl describe CHARSET_FARAWAY_HEADER          Een buitenlandse taal wordt gebruikt in de headers
+lang nl describe MISSING_HEADERS                 Ontbrekende Aan: header
+lang nl describe SUSPICIOUS_RECIPS               Vergelijkbare adressen in de ontvangerslijst
+lang nl describe SORTED_RECIPS                   Ontvangerslijst is gesorteerd op alfabet
+lang nl describe GAPPY_SUBJECT                   Onderwerp: bevat G.a.t.e.n.k.a.a.s
+lang nl describe MISSING_MIMEOLE                 Bericht heeft een X-MSMail-Priority, maar geen X-MimeOLE
+lang nl describe SUBJ_AS_SEEN                    Onderwerp bevat "As Seen"
+lang nl describe SUBJ_DOLLARS                    Onderwerp begint met een bedrag in dollars
+#lang nl describe SUBJ_YOUR_DEBT                  Onderwerp bevat "Your Bills" of iets dergelijks
+lang nl describe SUBJ_YOUR_FAMILY                Onderwerp bevat  "Your Family"
+lang nl describe RCVD_FAKE_HELO_DOTCOM           Received bevat een vervalde HELO hostnaam
+lang nl describe MIME_BOUND_DIGITS_15            Spam tool patroon in MIME grens
+lang nl describe MIME_BOUND_MANY_HEX             Spam tool patroon in MIME grens
+lang nl describe TO_MALFORMED                    Aan: foutief opgesteld adres
+lang nl describe MIME_HEADER_CTYPE_ONLY          'Content-Type' gevonden zonder de benodigde MIME headers
+lang nl describe WITH_LC_SMTP                    Received regel bevat een spam merkteken (lowercase smtp)
+lang nl describe SUBJ_BUY                        Onderwerp: begint met 'Buy(ing)'
+lang nl describe RCVD_AM_PM                      Received headers vervalst (AM/PM)
+lang nl describe HEADER_COUNT_CTYPE              Meerdere Content-Type headers gevonden
+lang nl describe NO_RDNS_DOTCOM_HELO             Host HELO'd als een grote internet provider ISP, maar heeft geen rDNS
+lang nl describe HTML_MESSAGE                    HTML opgenomen in het bericht
+lang nl describe HTML_COMMENT_SAVED_URL          HTML bericht is een opgeslagen webpagina
+lang nl describe HTML_EMBEDS                     HTML met plugin
+lang nl describe HTML_FONT_LOW_CONTRAST          HTML tekstkleur lijkt er op de achtergrondkleur
+lang nl describe HTML_FONT_FACE_BAD              HTML lettertype naam is geen woord
+lang nl describe HTML_FORMACTION_MAILTO          HTML bevat een formulier dat email verstuurd
+lang nl describe HTML_IMAGE_ONLY_04              HTML: plaatjes met 200-400 bytes aan woorden
+lang nl describe HTML_IMAGE_ONLY_08              HTML: plaatjes met 600-800 bytes aan woorden
+lang nl describe HTML_IMAGE_ONLY_12              HTML: plaatjes met 1000-1200 bytes aan woorden
+lang nl describe HTML_IMAGE_RATIO_02             HTML heeft een lage verhouding tussen tekst en plaatjes
+lang nl describe HTML_IMAGE_RATIO_04             HTML heeft een lage verhouding tussen tekst en plaatjes
+lang nl describe HTML_IMAGE_RATIO_06             HTML heeft een lage verhouding tussen tekst en plaatjes
+lang nl describe HTML_IMAGE_RATIO_08             HTML heeft een lage verhouding tussen tekst en plaatjes
+lang nl describe HTML_OBFUSCATE_10_20            Bericht bevat 10% tot 20% HTML verdoezeling
+lang nl describe HTML_OBFUSCATE_20_30            Bericht bevat 20% tot 30% HTML verdoezeling
+lang nl describe HTML_OBFUSCATE_30_40            Bericht bevat 30% tot 40% HTML verdoezeling
+lang nl describe HTML_OBFUSCATE_50_60            Bericht bevat 50% tot 60% HTML verdoezeling
+lang nl describe HTML_OBFUSCATE_70_80            Bericht bevat 70% tot 80% HTML verdoezeling
+lang nl describe HTML_OBFUSCATE_90_100           Bericht bevat 90% tot 100% HTML verdoezeling
+lang nl describe HTML_TAG_BALANCE_BODY           HTML bevat ongebalanceerde "body" tags
+lang nl describe HTML_TAG_BALANCE_HEAD           HTML bevat ongebalanceerde "head" tags
+lang nl describe HTML_BADTAG_40_50               HTML bericht bevat 40% tot 50% foute tags
+lang nl describe HTML_BADTAG_50_60               HTML bericht bevat 50% tot 60% foute tags
+lang nl describe HTML_BADTAG_60_70               HTML bericht bevat 60% tot 70% foute tags
+lang nl describe HTML_BADTAG_90_100              HTML bericht bevat 90% tot 100% foute tags
+lang nl describe HTML_NONELEMENT_30_40           30% tot 40% van de HTML elementen zijn niet standaard
+lang nl describe HTML_NONELEMENT_40_50           40% tot 50% van de HTML elementen zijn niet standaard
+lang nl describe HTML_NONELEMENT_60_70           60% tot 70% van de HTML elementen zijn niet standaard
+lang nl describe HTML_NONELEMENT_80_90           80% tot 90% van de HTML elementen zijn niet standaard
+lang nl describe HTML_CHARSET_FARAWAY            Een vreemde taal wordt gebruikt in de karakterset
+lang nl describe HTML_MIME_NO_HTML_TAG           HTML-only bericht, maar er is geen HTML tag
+lang nl describe HIDE_WIN_STATUS                 Javascript om URLs te verbergen in het bericht
+lang nl describe OBFUSCATING_COMMENT             HTML commentaar om het bericht te verdoezelen
+lang nl describe UPPERCASE_50_75                 Bericht tekst bestaat voor 50-75% uit hoofdletters
+lang nl describe UPPERCASE_75_100                Bericht tekst bestaat voor 75-100% uit hoofdletters
+lang nl describe INVALID_MSGID                   Message-Id is ongeldig, volgens RFC 2822
+lang nl describe FORGED_MUA_MOZILLA              Vervalste mail die afkomstig zou zijn van Mozilla
+lang nl describe GUARANTEED_100_PERCENT          100% gegarandeerd
+lang nl describe DEAR_FRIEND                     Beste vriend, klinkt niet erg bekend...
+lang nl describe DEAR_SOMETHING                  Bevat 'Dear (iets)'
+lang nl describe BILLION_DOLLARS                 Spreekt van heeel veel geld
+lang nl describe EXCUSE_4                        Claimt dat je van de lijst verwijderd kan worden
+lang nl describe EXCUSE_24                       Claimt dat je om deze advertentie hebt gevraagd
+lang nl describe EXCUSE_REMOVE                   Heeft het over hoe je verwijderd kan worden van de lijst
+lang nl describe STRONG_BUY                      Vertelt je over een goede aankoop
+lang nl describe STOCK_ALERT                     Biedt aan je aandelen in de gaten te houden
+lang nl describe NOT_ADVISOR                     Geen geregistreerde beleggings adviseur
+lang nl describe PREST_NON_ACCREDITED            'Prestigieuze "Non-Accredited" Universiteiten'
+lang nl describe BODY_ENHANCEMENT                Informatie over het vergroten van lichaamsdelen
+lang nl describe BODY_ENHANCEMENT2               Informatie over het vergroten van lichaamsdelen
+lang nl describe IMPOTENCE                       Medicijn voor impotentie
+#lang nl describe NA_DOLLARS                      Praat over een miljoen Noord-Amerikaanse dollars
+#lang nl describe US_DOLLARS_3                    Vermeldt miljoenen $ ($NN,NNN,NNN.NN)
+#lang nl describe MILLION_USD                     Heeft het over miljoenen dollars
+lang nl describe MONEY_BACK                      Niet-goed-geld-terug garantie
+lang nl describe FREE_QUOTE_INSTANT              Gratis offerte
+lang nl describe BAD_CREDIT                      Los al uw leningen op
+lang nl describe REFINANCE_YOUR_HOME             Hyphoteek oversluiten
+lang nl describe REFINANCE_NOW                   Hyphoteek oversluiten
+lang nl describe NO_MEDICAL                      Geen medische keuring
+lang nl describe FORWARD_LOOKING                 Aandelen waarschuwing
+lang nl describe ONE_TIME                        Eenmalige afzettingspraktijk
+lang nl describe JOIN_MILLIONS                   Voeg je bij miljoenen Amerikanen
+lang nl describe ONLINE_PHARMACY                 Online apotheek
+lang nl describe MARKETING_PARTNERS              Zegt dat je je bij een partner bedrijf hebt geregistreerd
+lang nl describe LOW_PRICE                       Laagste prijzen
+lang nl describe UNCLAIMED_MONEY                 Mensen laten het geld rondslingeren
+lang nl describe OBSCURED_EMAIL                  Bevat een rot13ed adres
+lang nl describe BANG_OPRAH                      Iets met Oprah!
+lang nl describe ACT_NOW_CAPS                    Heeft het in hoofdletters over "nu in actie komen"
+lang nl describe BANG_GUAR                  ...gegaranderd!
+lang nl describe FREE_PORN                       Dikke kans op porno - Gratis Porno
+lang nl describe CUM_SHOT                        Dikke kans op porno - Kwakjes
+lang nl describe LIVE_PORN                       Dikke kans op porno - Rechtstreekse Porno uitzending
+lang nl describe RATWARE_EGROUPS                 Bulk email kenmerk (eGroups) gevonden
+lang nl describe RATWARE_OE_MALFORMED            X-Mailer bevat misvormde Outlook Express versie
+lang nl describe FORGED_MUA_IMS                  Vals mailtje, pretendeert afkomstig te zijn van IMS
+lang nl describe FORGED_MUA_OUTLOOK              Vals mailtje, pretendeert afkomstig te zijn van MS Outlook
+lang nl describe FORGED_MUA_OIMO                 Vals mailtje, pretendeert afkomstig te zijn van MS Outlook IMO
+lang nl describe FORGED_MUA_EUDORA               Vals mailtje, pretendeert afkomstig te zijn van Eudora
+lang nl describe FORGED_MUA_THEBAT_CS            Mailtje dat pretendeert afkomstig te zijn van The Bat! (charset)
+lang nl describe FORGED_MUA_THEBAT_BOUN          Mailtje dat pretendeert afkomstig te zijn van The Bat! (boundary)
+lang nl describe FORGED_OUTLOOK_HTML             Outlook kan geen berichten met alleen HTML versturen
+lang nl describe FORGED_IMS_HTML                 IMS kan geen berichten met alleen HTML versturen
+lang nl describe FORGED_THEBAT_HTML              The Bat! kan geen berichten met alleen HTML versturen
+lang nl describe FORGED_QUALCOMM_TAGS            QUALCOMM email programma's versturen geen HTML zoals deze
+lang nl describe FORGED_IMS_TAGS                 IMS email programma's versturen geen HTML zoals deze
+lang nl describe FORGED_OUTLOOK_TAGS             Outlook verstuurt geen HTML zoals deze
+lang nl describe RATWARE_HASH_DASH               Bevat een hashbuster in Send-Safe opmaak
+lang nl describe NUMERIC_HTTP_ADDR               Gebruikt een numeriek IP adres in een URL
+lang nl describe HTTP_ESCAPED_HOST               Gebruikt %-escapes in de hostname van een URL
+lang nl describe HTTP_EXCESSIVE_ESCAPES          Volkomen overbodige %-escapes in een URL
+lang nl describe IP_LINK_PLUS                    "Dotted-decimal" IP address gevolgd door CGI
+lang nl describe WEIRD_PORT                      Gebruikt een afwijkend poort nummer voor HTTP
+lang nl describe YAHOO_RD_REDIR                  Bevat een Yahoo Redirect URI
+lang nl describe YAHOO_DRS_REDIR                 Bevat een Yahoo Redirect URI
+
+# 23_bayes.cf
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+lang nl describe BAYES_00                        Bayesiaanse kans op spam is 0 tot 1%
+lang nl describe BAYES_05                        Bayesiaanse kans op spam is 1 tot 5%
+lang nl describe BAYES_20                        Bayesiaanse kans op spam is 5 tot 20%
+lang nl describe BAYES_40                        Bayesiaanse kans op spam is 20 tot 40%
+lang nl describe BAYES_50                        Bayesiaanse kans op spam is 40 tot 60%
+lang nl describe BAYES_60                        Bayesiaanse kans op spam is 60 tot 80%
+lang nl describe BAYES_80                        Bayesiaanse kans op spam is 80 tot 95%
+lang nl describe BAYES_95                        Bayesiaanse kans op spam is 95 tot 99%
+lang nl describe BAYES_99                        Bayesiaanse kans op spam is 99 tot 100%
+lang nl describe BAYES_999                       Bayesiaanse kans op spam is 99.9 tot 100%
+endif
+#
+lang nl describe DRUG_DOSAGE                   Heeft het over een prijs per dosis
+
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+lang nl describe MIME_SUSPECT_NAME               MIME bestandsnaam komt niet overeen met inhoud
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::DCC
+lang nl describe DCC_CHECK                       Gevonden in DCC (https://www.dcc-servers.net/dcc/)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+lang nl describe PYZOR_CHECK                     Gevonden in Pyzor (https://pyzor.readthedocs.io/en/latest/)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+lang nl describe BODY_8BITS                      Bericht bevat 8 aaneengesloten 8-bit karakters
+lang nl describe UNWANTED_LANGUAGE_BODY          Bericht is opgesteld in een ongewenste taal
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+lang nl describe ACCESSDB                        Bericht zou gevangen zijn door accessdb
+endif
+
+lang nl describe NORMAL_HTTP_TO_IP               Gebruikt een "dotted-decimal" IP adres in een URL
+
diff --git a/sa-updates/30_text_pl.cf b/sa-updates/30_text_pl.cf
new file mode 100644 (file)
index 0000000..37712dc
--- /dev/null
@@ -0,0 +1,267 @@
+# SpamAssassin translations: Polish
+# Charset: ISO-8859-2
+#
+# Polish translation based on work started by <radek at alter dot pl>
+# rewrite for version 2.60: Jerzy Szczud³owski <jerzy at jedwab dot net dot pl >
+# (v0.2)
+#
+# Proszê nie modyfikowaæ tego pliku, gdy¿ wszelkie zmiany zostan± nadpisane
+# podczas nastêpnego uaktualnienia. Zamiast tego, proszê u¿ywaæ
+# /etc/mail/spamassassin/local.cf. Szczegó³y w 'perldoc Mail::SpamAssassin::Conf'
+#
+# Ten program   jest  darmowy;  mo¿na  go rozprowadzaæ i/lub  modyfikowaæ  na
+# warunkach Licencji    Artystycznej lub Powszechnej Licencji Publicznej  GNU
+# publikowanej  przez Free  Software  Foundation;   zarówno   w wersji 1 lub,
+# którejkolwiek  pó¼niejszej. Szczegó³y w pliku "License",  znajduj±cym siê w
+# g³ównym katalogu ze Â¼ród³ami SpamAssassina.
+#
+#
+# U¿ycie:
+# - ustaw w /etc/procmailrc (lub lokalnie w ~/.procmailrc) zmienn± LANG=pl_PL
+# - w konfiguracji SpamAssassina (globalnie local.cf, lokalnie user_prefs)
+#   dodaj opcjê: report_charset iso-8859-2
+#
+###########################################################################
+
+############## ........................................................................
+lang pl clear_report_template
+lang pl report ----------------- AUTOMATYCZNY raport antySPAMowy ----------------------
+lang pl report Oprogramowanie  do  wykrywania  spamu,  dzia³aj±ce  na  serwerze:
+lang pl report *** "_HOSTNAME_" ***,
+lang pl report zidentyfikowa³o  ten email  jako prawdopodobny  spam. Oryginalna  wiadomo¶æ
+lang pl report zosta³a do³±czona    do tej, aby mo¿na by³o j± przejrzeæ, zweryfikowaæ  lub
+lang pl report zablokowaæ na  przysz³o¶æ. Je¿eli masz jakie¶ w±tpliwo¶ci, to kieruj je pod
+lang pl report adres _CONTACTADDRESS_
+lang pl report
+lang pl report Przegl±d zawarto¶ci:  _PREVIEW_
+lang pl report
+lang pl report Szczegó³y analizy zawarto¶ci: (_HITS_ zaliczonych, _REQD_ wymaganych)
+lang pl report
+lang pl report "pkt  nazwa regu³y           krótki opis"
+lang pl report  ---- ---------------------- -------------------------------------------
+lang pl report _SUMMARY_
+############## ........................................................................
+
+###########################################################################
+# szablon raportu wiadomo¶ci niebezpieczne-do-wgl±du
+#
+##################### ......................................................................
+lang pl clear_unsafe_report_template
+lang pl unsafe_report Oryginalna wiadomo¶æ nie by³a w ca³o¶ci  tekstowa, w zwi±zku z tym otwarcie
+lang pl unsafe_report jej za  pomoc± niektórych  programów pocztowych   mo¿e  nie  byæ ca³kowicie
+lang pl unsafe_report bezpieczne; w  szczególno¶ci,   przesy³ka  mo¿e   zawieraæ  wirusa  lub kod
+lang pl unsafe_report informuj±cy spamera, Â¿e twój adres pocztowy jest  prawid³owy    i mo¿na  na
+lang pl unsafe_report niego przysy³aæ wiêcej spamu.  Je¿eli  chcesz    j± przejrzeæ, bezpieczniej
+lang pl unsafe_report bêdzie zapisaæ j± najpierw na dysk, a nastêpnie otworzyæ edytorem tekstu.
+##################### ......................................................................
+
+
+# t³umaczenia regu³
+
+lang pl describe ACT_NOW_CAPS          Tekst 'ACTING NOW'
+lang pl describe BAD_CREDIT            Likwidacja problemów kredytowych
+lang pl describe BANG_GUAR             Dobitna gwarancja czego¶
+lang pl describe BANG_OPRAH            Tre¶æ: o Oprah z wykrzyknikiem!
+
+# 23_bayes.cf
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+lang pl describe BAYES_00              Bayesowskie prawdopodobieñstwo spamu wynosi 0 do 1%
+lang pl describe BAYES_05              Bayesowskie prawdopodobieñstwo spamu wynosi 1 do 5%
+lang pl describe BAYES_20              Bayesowskie prawdopodobieñstwo spamu wynosi 5 do 20%
+lang pl describe BAYES_40              Bayesowskie prawdopodobieñstwo spamu wynosi 20 do 40%
+lang pl describe BAYES_50              Bayesowskie prawdopodobieñstwo spamu wynosi 40 do 60%
+lang pl describe BAYES_60              Bayesowskie prawdopodobieñstwo spamu wynosi 60 do 80%
+lang pl describe BAYES_80              Bayesowskie prawdopodobieñstwo spamu wynosi 80 do 95%
+lang pl describe BAYES_95              Bayesowskie prawdopodobieñstwo spamu wynosi 95 do 99%
+lang pl describe BAYES_99              Bayesowskie prawdopodobieñstwo spamu wynosi 99 do 100%
+lang pl describe BAYES_999              Bayesowskie prawdopodobieñstwo spamu wynosi 99.9 do 100%
+endif
+#
+lang pl describe BILLION_DOLLARS       Tre¶æ: o niesamowitej ilo¶ci pieniêdzy
+lang pl describe BLANK_LINES_80_90     Tre¶æ zawiera 80-90% pustych linii
+lang pl describe CHARSET_FARAWAY_HEADER        Obcojêzyczny zestaw znaków w nag³ówkach
+lang pl describe CHARSET_FARAWAY       List zawiera typ znaków oznaczaj±cy jêzyk obcy
+lang pl describe CONFIRMED_FORGED      Nag³ówki Received: s± sfa³szowane
+lang pl describe CUM_SHOT              Prawdopodobnie porno - 'Wytrysk nasienia'
+lang pl describe DATE_IN_FUTURE_03_06  Data: jest od 3 do 6 godzin po dacie z Received:
+lang pl describe DATE_IN_FUTURE_06_12  Data: jest od 6 do 12 godzin po dacie z Received:
+lang pl describe DATE_IN_FUTURE_12_24  Data: jest od 12 do 24 godzin po dacie z Received:
+lang pl describe DATE_IN_FUTURE_24_48  Data: jest od 24 do 48 godzin po dacie z Received:
+lang pl describe DATE_IN_FUTURE_48_96  Data: jest od 48 do 96 godzin po dacie z Received:
+lang pl describe DATE_IN_FUTURE_96_XX  Data: jest od 96 lub wiêcej godzin po dacie z Received:
+lang pl describe DATE_IN_PAST_03_06    Data: jest od 3 do 6 godzin przed dat± z Received:
+lang pl describe DATE_IN_PAST_06_12    Data: jest od 6 do 12 godzin przed dat± z Received:
+lang pl describe DATE_IN_PAST_12_24    Data: jest od 12 do 24 godzin przed dat± z Received:
+lang pl describe DATE_IN_PAST_24_48    Data: jest od 24 do 48 godzin przed dat± z Received:
+lang pl describe DATE_IN_PAST_96_XX    Data: jest od 96 lub wiêcej godzin przed dat± z Received:
+lang pl describe MISSING_DATE          Brakuje nag³ówka Data:
+lang pl describe DATE_SPAMWARE_Y2K     Nag³ówek Data: u¿ywa podejrzanego formatowania Y2k
+lang pl describe DEAR_FRIEND           'Drogi Przyjacielu' (ang.)
+lang pl describe DEAR_SOMETHING                Zawiera 'Drogi Kto¶tam' (ang.)
+lang pl describe EMAIL_ROT13           Tre¶æ zawiera adres email zakodowany ROT13
+lang pl describe EXCUSE_24             Twierdzi, Â¿e chcia³e¶ tê reklamê
+lang pl describe EXCUSE_4              Twierdzi, Â¿e mo¿esz byæ usuniêty z listy
+lang pl describe EXCUSE_REMOVE         Pisze, jak mo¿na zostaæ usuniêtym z listy
+lang pl describe FIN_FREE              Wolno¶æ finansowa
+lang pl describe FORGED_HOTMAIL_RCVD2  Od: hotmail.com, lecz bez 'Received:'
+lang pl describe FORGED_IMS_HTML       IMS nie potrafi wysy³aæ wiadomo¶ci ca³kowicie w HTML
+lang pl describe FORGED_IMS_TAGS       Programy pocztowe IMS nie potrafi± wysy³aæ HTMLa w tym formacie
+lang pl describe FORGED_MUA_EUDORA     Podrobiony mail udaj±cy przesy³kê z programu Eudora
+lang pl describe FORGED_MUA_IMS                Podrobiony mail udaj±cy przesy³kê z IMS
+lang pl describe FORGED_MUA_MOZILLA    Podrobiony mail udaj±cy przesy³kê z Mozilli
+lang pl describe FORGED_MUA_OIMO       Podrobiony mail udaj±cy przesy³kê z MS Outlook IMO
+lang pl describe FORGED_MUA_OUTLOOK    Podrobiony mail udaj±cy przesy³kê z MS Outlook
+lang pl describe FORGED_MUA_THEBAT_BOUN        Podrobiony mail udaj±cy przesy³kê z programu The Bat! (granica)
+lang pl describe FORGED_MUA_THEBAT_CS  Podrobiony mail udaj±cy przesy³kê z programu The Bat! (zestaw znaków)
+lang pl describe FORGED_OUTLOOK_HTML   Outlook nie potrafi wysy³aæ wiadomo¶ci ca³kowicie w HTML
+lang pl describe FORGED_OUTLOOK_TAGS   Outlook nie potrafi wysy³aæ wiadomo¶ci HTML w tym formacie
+lang pl describe FORGED_QUALCOMM_TAGS  Programy pocztowe QUALCOMM nie potrafi± wysy³aæ HTMLa w tym formacie
+lang pl describe FORGED_TELESP_RCVD    Zawiera podrobion± nazwê hosta pod IP DSLa z Brazylii
+lang pl describe FORGED_THEBAT_HTML    The Bat! nie potrafi wysy³aæ wiadomo¶ci ca³kowicie w HTML
+lang pl describe FORGED_YAHOO_RCVD     Od: yahoo.com nie zgadza siê z nag³ówkami Received:
+lang pl describe FORWARD_LOOKING       O¶wiadczenie rezygnuj±cego akcjonariusza
+lang pl describe FREE_PORN             Prawdopodobnie porno - darmowe porno
+lang pl describe FREE_QUOTE_INSTANT    Darmowe notowania (ekspresowe lub bez zobowi±zañ)
+lang pl describe FROM_ILLEGAL_CHARS    From: zawiera zbyt wiele niedozwolonych znaków
+lang pl describe FROM_NO_USER          Od: nie ma niczego przed znakiem @
+lang pl describe FROM_OFFERS           Od: adresu typu "@wspania³a-okazja"
+lang pl describe FROM_STARTS_WITH_NUMS Od: zaczyna siê cyframi
+lang pl describe GAPPY_SUBJECT         Temat: zawiera D.z.i.u.r.a.w.y-T.e.k.s.t
+lang pl describe GTUBE                 Ogólny test na Niepo¿±dane Przesy³ki Email
+lang pl describe GUARANTEED_100_PERCENT        100% gwarancji
+lang pl describe HEADER_COUNT_CTYPE    Znaleziono wielokrotne nag³ówki Content-Type
+lang pl describe HEAD_ILLEGAL_CHARS    Nag³ówek zawiera zbyt wiele niedozwolonych znaków
+lang pl describe HIDE_WIN_STATUS       U¿ywa Javascriptu by ukryæ URLe w przegl±darce
+lang pl describe HTML_CHARSET_FARAWAY  Obcy jêzyk u¿ywany w znacznikach HTML
+lang pl describe HTML_COMMENT_SAVED_URL        Wiadomo¶æ HTML jest stron± WWW
+lang pl describe HTML_EMBEDS           HTML z osadzonym obiektem typu wtyczka
+lang pl describe HTML_FONT_FACE_BAD    HTMLowy opis czcionki nie jest s³owem
+lang pl describe HTML_FONT_LOW_CONTRAST        kolor czcionki w HTML jest podobny do t³a
+lang pl describe HTML_FORMACTION_MAILTO        czê¶æ HTML zawiera formularz, który wysy³a pocztê
+lang pl describe HTML_IMAGE_ONLY_04    HTML: grafika i 200-400 bajtów s³ów
+lang pl describe HTML_IMAGE_ONLY_08    HTML: grafika i 600-800 bajtów s³ów
+lang pl describe HTML_IMAGE_ONLY_12    HTML: grafika i 1000-1200 bajtów s³ów
+lang pl describe HTML_IMAGE_RATIO_02   HTML posiada niski stosunek objêto¶ci tekstu do obrazu
+lang pl describe HTML_IMAGE_RATIO_04   HTML posiada niski stosunek objêto¶ci tekstu do obrazu
+lang pl describe HTML_IMAGE_RATIO_06   HTML posiada niski stosunek objêto¶ci tekstu do obrazu
+lang pl describe HTML_IMAGE_RATIO_08   HTML posiada niski stosunek objêto¶ci tekstu do obrazu
+lang pl describe HTML_MESSAGE          Wiadomo¶æ zawiera kod HTML
+lang pl describe HTML_MIME_NO_HTML_TAG Wiadomo¶æ ca³kowicie w HTML, lecz bez odpowiedniego oznaczenia
+lang pl describe HTML_TAG_BALANCE_BODY HTML posiada niepozamykane znaczniki w "body"
+lang pl describe HTML_TAG_BALANCE_HEAD HTML posiada niepozamykane znaczniki w "head"
+lang pl describe HTTP_ESCAPED_HOST     U¿ywa % wewn±trz nazwy hosta w URL
+lang pl describe HTTP_EXCESSIVE_ESCAPES        Ca³kowicie zbêdne % wewn±trz URL
+lang pl describe IMPOTENCE             Lekarstwo na impotencjê
+lang pl describe INVALID_DATE          Nieprawid³owa data (RFC 2822)
+lang pl describe INVALID_DATE_TZ_ABSURD        Nieprawid³owa data (nieistniej±ca strefa czasowa)
+lang pl describe INVALID_MSGID         Zgodnie z RFC 2822, Message-Id jest nieprawid³owe
+lang pl describe IP_LINK_PLUS          CGI poprzedzone kropkowo-dziesiêtnym adresem IP
+lang pl describe JAPANESE_UCE_SUBJECT  Temat: zawiera japoñski znacznik UCE
+lang pl describe JOIN_MILLIONS         Do³±cz do Milionów Amerykan
+lang pl describe KOREAN_UCE_SUBJECT    Temat: zawiera koreañski znacznik UCE
+lang pl describe LIVE_PORN             Prawdopodobnie porno - Porno na Â¿ywo
+lang pl describe LOW_PRICE             Najni¿sza cena
+lang pl describe MARKETING_PARTNERS    Twierdzi, Â¿e jeste¶ zarejestrowany jako partner
+#lang pl describe MILLION_USD          O milionach dolarów
+#lang pl describe MIME_BASE64_BLANKS   Dodatkowe puste linie kodowane w Base64
+lang pl describe MIME_BASE64_TEXT      Tekst wiadomo¶ci zakamuflowany przy u¿yciu kodowania Base64
+lang pl describe __MIME_BASE64         Zawiera za³±cznik kodowany w Base64
+lang pl describe MIME_BOUND_MANY_HEX   Na granicy MIME widaæ Â¶lad narzêdzia spamerskiego
+lang pl describe MIME_CHARSET_FARAWAY  zestaw znaków MIME wskazuje na jêzyk obcy
+lang pl describe MIME_HEADER_CTYPE_ONLY        Znaleziono nag³ówek 'Content-Type' lecz bez nag³ówków MIME
+lang pl describe MIME_HTML_MOSTLY      Wiadomo¶æ wieloczê¶ciowa, g³ownie tekst/html MIME
+lang pl describe MIME_HTML_ONLY_MULTI  Wiadomo¶æ wieloczê¶ciowa posiada tylko czê¶ci tekstowe/html MIME
+lang pl describe MIME_HTML_ONLY                Wiadomo¶æ posiada tylko czê¶ci tekstowe/html MIME
+lang pl describe MIME_QP_LONG_LINE     Linia QP d³u¿sza ni¿ 76 znaków
+lang pl describe __MIME_QP             Zawiera za³±cznik kodowany w Quoted-Printable
+lang pl describe MISSING_HEADERS       Brakuje jednego z nag³ówków: Od, Dd lub Data
+lang pl describe MISSING_MIMEOLE       Wiadomo¶æ zawiera X-MSMail-Priority, lecz bez X-MimeOLE
+lang pl describe MONEY_BACK            Gwarancja zwrotu pieniêdzy
+lang pl describe MSGID_FROM_MTA_HEADER Message-Id zosta³ dodany przez relay
+lang pl describe MSGID_OUTLOOK_INVALID Sfa³szowany Message-Id (w formacie Outlook Express)
+lang pl describe MULTI_FORGED          Nag³ówki Received: wykazuj± wielokrotne fa³szowanie
+#lang pl describe NA_DOLLARS           O milionie Pó³nocno Amerykañskich dolarów
+lang pl describe NO_DNS_FOR_FROM       Domena w nag³ówku Do: nie posiada wpisu w DNS (MX lub A)
+lang pl describe NO_MEDICAL            Bez badañ medycznych
+lang pl describe NONEXISTENT_CHARSET   Nieznany zestaw znaków (jêzyk).
+lang pl describe NO_RDNS_DOTCOM_HELO   Odpowied¼ HELO hosta pokazuje wielkiego ISP, lecz brakuje rDNS
+lang pl describe NOT_ADVISOR           Niezarejestrowany doradca inwestycyjny
+lang pl describe NUMERIC_HTTP_ADDR     U¿ywa kropkowo-dziesiêtnego adresu IP w URL
+lang pl describe OBFUSCATING_COMMENT   Komentarze HTML zaciemniaj± tekst
+lang pl describe OBSCURED_EMAIL                Wiadomo¶æ zdaje siê zawieraæ zrotowany (rot13) adres
+lang pl describe ONE_TIME              Jednokrotna grabie¿
+lang pl describe ONLINE_PHARMACY       Apteka on-line
+lang pl describe PLING_QUERY           Temat zawiera wykrzyknik i pytajnik
+lang pl describe PREST_NON_ACCREDITED  'Presti¿owe nieakredytowane uniwersytety'
+lang pl describe RATWARE_EGROUPS       Znaleziono oznaczenie  przesy³ki masowej (eGroups)
+lang pl describe RATWARE_HASH_DASH     Zawiera zabezpieczenia przeciwko detekcji spamu w formacie Send-Safe
+lang pl describe RATWARE_OE_MALFORMED  Nag³ówek X-Mailer podaje z³± wersjê Outlook Express
+lang pl describe RCVD_AM_PM            Sfa³szowane nag³ówki Received (AM/PM)
+lang pl describe RCVD_FAKE_HELO_DOTCOM Nag³ówek Received zawiera sfa³szowan± nazwê hosta HELO
+lang pl describe RCVD_IN_BL_SPAMCOP_NET        Odebrane od systemu klasy RELAY w/g: bl.spamcop.net
+lang pl describe RCVD_IN_MAPS_DUL      "open relay" wed³ug DUL, http://www.mail-abuse.org/dul/
+lang pl describe RCVD_IN_MAPS_NML      "open relay" wed³ug NML, http://www.mail-abuse.org/nml/
+lang pl describe RCVD_IN_MAPS_RBL      "open relay" wed³ug RBL, http://www.mail-abuse.org/rbl/
+lang pl describe RCVD_IN_MAPS_RSS      "open relay" wed³ug RSS, http://www.mail-abuse.org/rss/
+lang pl describe RCVD_IN_SBL           Otrzymano przez relay listowany w Spamhaus Block List
+lang pl describe RCVD_IN_SORBS_BLOCK   SORBS: nadawca nie pozwala siê testowaæ
+lang pl describe RCVD_IN_SORBS_HTTP    SORBS: nadawca jest otwartym serwerem HTTP
+lang pl describe RCVD_IN_SORBS_MISC    SORBS: nadawca jest otwartym serwerem proxy
+lang pl describe RCVD_IN_SORBS_SMTP    SORBS: nadawca posiada otwarty serwer (Open Relay)
+lang pl describe RCVD_IN_SORBS_SOCKS   SORBS: nadawca jest otwartym serwerem SOCKS proxy
+lang pl describe RCVD_IN_SORBS_WEB     SORBS: nadawca posiada nadu¿ywany serwer WWW
+lang pl describe RCVD_IN_SORBS_ZOMBIE  SORBS: nadawca jest z sieci bez kontroli
+lang pl describe REFINANCE_NOW         Refinansowanie domów
+lang pl describe REFINANCE_YOUR_HOME   Refinansowanie domów
+lang pl describe SORTED_RECIPS         Lista odbiorców posortowana wed³ug adresu
+lang pl describe STOCK_ALERT           Oferuje powiadomienie o kursach akcji
+lang pl describe STRONG_BUY            Mówi o mocnym zakupie
+lang pl describe SUBJ_ALL_CAPS         Temat zawiera same du¿e litery
+lang pl describe SUBJ_AS_SEEN          Temat: zawiera "Jak pokazywano"
+lang pl describe SUBJ_BUY              Temat: zaczyna siê od Kup/Kupowanie
+lang pl describe SUBJ_DOLLARS          Temat: zaczyna siê od kwoty dolarów
+lang pl describe SUBJ_ILLEGAL_CHARS    Temat: zawiera zbyt wiele niedozwolonych znaków
+#lang pl describe SUBJ_YOUR_DEBT               Temat: zawiera "Twoje rachunki" lub podobnie
+lang pl describe SUBJ_YOUR_FAMILY      Temat: zawiera "Twoja rodzina"
+lang pl describe SUSPICIOUS_RECIPS     Do: zawiera tê sam± domenê przynajmniej 10 razy.
+lang pl describe TO_MALFORMED          Do: zawiera uszkodzony adres
+lang pl describe TRACKER_ID            Zawiera numer identyfikacyjny
+lang pl describe UNCLAIMED_MONEY       (ludzie po prostu rozrzucaj± pieni±dze dooko³a)
+lang pl describe UPPERCASE_50_75       Tre¶æ jest w 50-75% wielkimi literami
+lang pl describe UPPERCASE_75_100      Tre¶æ jest w 75-100% wielkimi literami
+lang pl describe URG_BIZ               Pilna sprawa
+#lang pl describe US_DOLLARS_3         Wspomina miliony $ ($NN,NNN,NNN.NN)
+lang pl describe USER_IN_ALL_SPAM_TO   U¿ytkownik jest wymieniony w 'all_spam_to'
+lang pl describe USER_IN_BLACKLIST     Od: zawiera adres z Twojej "czarnej listy"
+lang pl describe USER_IN_BLACKLIST_TO  U¿ytkownik jest wymieniony w 'blacklist_to'
+lang pl describe USER_IN_DEF_WHITELIST U¿ytkownik jest wymieniony w domy¶lnej white-list (bia³ej li¶cie)
+lang pl describe USER_IN_MORE_SPAM_TO  U¿ytkownik jest wymieniony w 'more_spam_to'
+lang pl describe USER_IN_WHITELIST     Od: zawiera adres z white-list (bia³ej listy)
+lang pl describe USER_IN_WELCOMELIST_TO        U¿ytkownik jest wymieniony w 'whitelist_to'
+lang pl describe WEIRD_PORT            U¿ywa niestandardowego numeru portu dla HTTP
+lang pl describe WEIRD_QUOTING         Dziwne, powtarzaj±ce siê znaki podwójnego cytowania
+lang pl describe WITH_LC_SMTP          Linia 'Received' zawiera spamerski podpis (smtp)
+
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+lang pl describe MIME_SUSPECT_NAME     Nazwa pliku MIME nie zgadza siê z zawarto¶ci±
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::DCC
+lang pl describe DCC_CHECK             Na li¶cie DCC (http://www.dcc-servers.net/dcc/)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+lang pl describe PYZOR_CHECK           Na li¶cie Pyzor (https://pyzor.readthedocs.io/en/latest/)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+lang pl describe BODY_8BITS            Tre¶æ zawiera 8 kolejnych 8mio bitowych znaków
+lang pl describe UNWANTED_LANGUAGE_BODY        Wiadomo¶æ napisana w niepo¿±danym jêzyku
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+lang pl describe ACCESSDB              Wiadomo¶æ zosta³aby przechwycona przez accessdb
+endif
+
+lang pl describe NORMAL_HTTP_TO_IP     U¿ywa kropkowo-dziesiêtnego adresu IP w URL
+
diff --git a/sa-updates/30_text_pt_br.cf b/sa-updates/30_text_pt_br.cf
new file mode 100644 (file)
index 0000000..1e6f859
--- /dev/null
@@ -0,0 +1,613 @@
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+
+# character set
+lang pt_BR report_charset iso-8859-1
+
+# pt_BR translation by W3P Projetos Web (http://www.w3p.com.br/)
+
+lang pt_BR clear_report_template
+lang pt_BR report O filtro de spam do servidor "_HOSTNAME_" identificou este
+lang pt_BR report e-mail como um spam.  A mensagem original está anexa a este
+lang pt_BR report este e-mail para que possa ser visualizada (caso não seja
+lang pt_BR report um spam) ou para que emails futuros similares a este sejam
+lang pt_BR report marcados como spam também. Caso tenha alguma dúvida, entre
+lang pt_br report em contato no email _CONTACTADDRESS_ para mais detalhes.
+lang pt_BR report
+lang pt_BR report Visualização de um trecho:  _PREVIEW_
+lang pt_BR report
+lang pt_BR report Detalhes da análise:   (_SCORE_ pontos, mínimo de _REQD_)
+lang pt_BR report
+lang pt_BR report " pts regra                  descrição"
+lang pt_BR report  ---- ---------------------- --------------------------------------------------
+lang pt_BR report _SUMMARY_
+
+lang pt_BR clear_unsafe_report_template
+lang pt_BR unsafe_report A mensagem original não estava em texto puro e pode ser inseguro abrí-la
+lang pt_BR unsafe_report em alguns clientes de email; mais especificamente, ela pode conter um vírus
+lang pt_BR unsafe_report ou confirmar que seu endereço de email pode receber spam.
+lang pt_BR unsafe_report Se quiser visualizar a mensagem, pode ser mais seguro salvá-la em um arquivo
+lang pt_BR unsafe_report e abrí-la com um editor.
+
+lang pt_BR describe USER_IN_BLACKLIST Endereço do From: está na blacklist do usuário
+lang pt_BR describe USER_IN_WHITELIST Endereço do From: está na whitelist do usuário
+lang pt_BR describe USER_IN_DEF_WHITELIST Endereço do From: está na whitelist padrão
+lang pt_BR describe USER_IN_BLACKLIST_TO Usuário está listado na 'blacklist_to'
+lang pt_BR describe USER_IN_WELCOMELIST_TO Usuário está listado na 'whitelist_to'
+lang pt_BR describe USER_IN_MORE_SPAM_TO Usuário está listado na 'more_spam_to'
+lang pt_BR describe USER_IN_ALL_SPAM_TO Usuário está listado na 'all_spam_to'
+
+ifplugin Mail::SpamAssassin::Plugin::AWL
+lang pt_BR describe AWL Endereço do From: está na auto whitelist
+endif
+
+# 20_advance_fee.cf - These are removed and will break lint
+#lang pt_BR describe ADVANCE_FEE_2 Aparenta ser fraude (Nigerian 419)
+#lang pt_BR describe ADVANCE_FEE_3_NEW Aparenta ser fraude (Nigerian 419)
+#lang pt_BR describe ADVANCE_FEE_4_NEW Aparenta ser fraude (Nigerian 419)
+
+# 20_body_tests.cf
+lang pt_BR describe GTUBE Generic Test for Unsolicited Bulk Email
+lang pt_BR describe TRACKER_ID Mensagem contém um código rastramento
+lang pt_BR describe WEIRD_QUOTING Possui caracteres "" estranhos
+lang pt_BR describe MIME_HTML_ONLY_MULTI Mensagem diz ser multipart mas só possui formato text/html
+lang pt_BR describe MIME_CHARSET_FARAWAY MIME character set indica idioma estrangeiro
+lang pt_BR describe EMAIL_ROT13 Mensagem contém um endereço de email codificado com ROT13
+lang pt_BR describe LONGWORDS Contém trechos longos de palavras extensas
+lang pt_BR describe MPART_ALT_DIFF Versão HTML e versão Texto da mensagem são diferentes
+lang pt_BR describe MPART_ALT_DIFF_COUNT Versão HTML e versão Texto da mensagem são diferentes
+lang pt_BR describe BLANK_LINES_80_90 Corpo da mensagem Ã© composto por 80-90% de linhas em branco
+lang pt_BR describe CHARSET_FARAWAY Character set indica um idioma estrangeiro
+lang pt_BR describe __MIME_BASE64 Possui anexo no formato base64
+lang pt_BR describe __MIME_QP Possui anexo no formato quoted-printable
+#lang pt_BR describe MIME_BASE64_BLANKS Possui linhas vazias extras em codificação base64
+lang pt_BR describe MIME_BASE64_TEXT Texto da mensagem está disfarçado usando codificação base64
+lang pt_BR describe MISSING_MIME_HB_SEP Falta linha em branco entre MIME header e Body
+lang pt_BR describe MIME_HTML_MOSTLY Mensagem multipart Ã© composta em sua maioria por text/html
+lang pt_BR describe MIME_HTML_ONLY Mensagem somente possui formato text/html
+lang pt_BR describe MIME_QP_LONG_LINE Linha do tipo Quoted-printable maior que 76 caracteres
+lang pt_BR describe MIME_BAD_ISO_CHARSET MIME character set Ã© um charset ISO desconhecido
+lang pt_BR describe HTTPS_IP_MISMATCH Link indica HTTPS, mas na verdade aponta para um IP
+lang pt_BR describe URI_TRUNCATED Mensagem possui uma URI que foi truncada
+
+# 20_compensate.cf
+lang pt_BR describe NO_RECEIVED Informação: mensagem não possui cabeçalho Received:
+lang pt_BR describe ALL_TRUSTED Mensagem passou via SMTP apenas por hosts confiáveis
+lang pt_BR describe NO_RELAYS Informação: mensagem não foi recebida via SMTP
+
+# 20_dnsbl_tests.cf
+lang pt_BR describe __RCVD_IN_SORBS Recebida por um relay listado em SORBS
+lang pt_BR describe RCVD_IN_SORBS_HTTP SORBS: remetente Ã© um proxy HTTP aberto
+lang pt_BR describe RCVD_IN_SORBS_SOCKS SORBS: remetente Ã© um proxy SOCKS aberto
+lang pt_BR describe RCVD_IN_SORBS_MISC SORBS: remetente Ã© um proxy aberto
+lang pt_BR describe RCVD_IN_SORBS_SMTP SORBS: remetente Ã© um relay SMTP aberto
+lang pt_BR describe RCVD_IN_SORBS_WEB SORBS: remetente Ã© um servidor web explorável
+lang pt_BR describe RCVD_IN_SORBS_BLOCK SORBS: remetente requer que não seja testado
+lang pt_BR describe RCVD_IN_SORBS_ZOMBIE SORBS: remetente está em uma rede comprometida
+lang pt_BR describe RCVD_IN_SORBS_DUL SORBS: mensagem enviada a partir de um IP dinâmico
+lang pt_BR describe __RCVD_IN_ZEN Recebida por um relay listado em Spamhaus Zen
+lang pt_BR describe RCVD_IN_SBL Recebida por um relay listado em Spamhaus SBL
+lang pt_BR describe RCVD_IN_XBL Recebida por um relay listado em Spamhaus XBL
+lang pt_BR describe RCVD_IN_PBL Recebida por um relay listado em Spamhaus PBL
+lang pt_BR describe RCVD_IN_BL_SPAMCOP_NET Recebida por um relay listado em bl.spamcop.net
+lang pt_BR describe RCVD_IN_MAPS_RBL Relay consta em RBL, http://www.mail-abuse.com/enduserinfo_rbl.html
+lang pt_BR describe RCVD_IN_MAPS_DUL Relay consta em DUL, http://www.mail-abuse.com/enduserinfo_dul.html
+lang pt_BR describe RCVD_IN_MAPS_RSS Relay consta em RSS, http://www.mail-abuse.com/enduserinfo_rss.html
+lang pt_BR describe RCVD_IN_MAPS_OPS Relay consta em OPS, http://www.mail-abuse.com/enduserinfo_ops.html
+lang pt_BR describe RCVD_IN_MAPS_NML Relay consta em NML, http://www.mail-abuse.com/enduserinfo_nml.html
+lang pt_BR describe RCVD_IN_IADB_VOUCHED ISIPP IADB indica que o remetente Ã© confiável (vouched-for sender)
+
+# 20_drugs.cf
+lang pt_BR describe SUBJECT_DRUG_GAP_C Assunto contém uma modificação da palavra 'cialis'
+lang pt_BR describe SUBJECT_DRUG_GAP_L Assunto contém uma modificação da palavra 'levitra'
+lang pt_BR describe SUBJECT_DRUG_GAP_S Assunto contém uma modificação da palavra 'soma'
+#lang pt_BR describe SUBJECT_DRUG_GAP_VA Assunto contém uma modificação da palavra 'valium'
+lang pt_BR describe SUBJECT_DRUG_GAP_X Assunto contém uma modificação da palavra 'xanax'
+lang pt_BR describe DRUG_DOSAGE Mensagem Ã© sobre preço por dose (price per dose)
+lang pt_BR describe DRUG_ED_CAPS Menciona uma droga para disfunção erétil
+lang pt_BR describe DRUG_ED_SILD Menciona o princípio ativo de uma droga para disfunção erétil
+lang pt_BR describe DRUG_ED_GENERIC Menciona "Generic Viagra"
+lang pt_BR describe DRUG_ED_ONLINE Contém "Fast Viagra Delivery"
+lang pt_BR describe ONLINE_PHARMACY Contém "Online Pharmacy"
+lang pt_BR describe NO_PRESCRIPTION Contém a frase "No prescription needed"
+lang pt_BR describe VIA_GAP_GRA Tentativa de disfarçar a palavra 'viagra'
+lang pt_BR describe DRUGS_ERECTILE Refere-se a uma droga para disfunção erétil
+lang pt_BR describe DRUGS_ERECTILE_OBFU Referência ofuscada a uma droga para disfunção erétil
+lang pt_BR describe DRUGS_DIET Refere-se a uma droga para dieta
+lang pt_BR describe DRUGS_DIET_OBFU Referência ofuscada a uma droga para dieta
+lang pt_BR describe DRUGS_MUSCLE Referência a um relaxante muscular
+lang pt_BR describe DRUGS_ANXIETY Referência a uma droga para controle de ansiedade
+lang pt_BR describe DRUGS_ANXIETY_OBFU Referência ofuscada a uma droga para controle de ansiedade
+lang pt_BR describe DRUGS_SMEAR1 Duas ou mais drogas em uma palavra só
+lang pt_BR describe DRUGS_ANXIETY_EREC Refere-se a uma droga para disfunção erétil e outra para controle de ansiedade
+lang pt_BR describe DRUGS_SLEEP_EREC Refere-se a uma droga para disfunção erétil e um calmante
+lang pt_BR describe DRUGS_MANYKINDS Refere-se ao menos a quatro tipos de drogas diferentes
+
+# 20_dynrdns.cf
+lang pt_BR describe __RDNS_DYNAMIC_IPADDR Comando HELO enviado usando hostname suspeito (IP addr 1)
+lang pt_BR describe __RDNS_DYNAMIC_DHCP Comando HELO enviado usando hostname suspeito (DHCP)
+lang pt_BR describe __RDNS_DYNAMIC_HCC Comando HELO enviado usando hostname suspeito (HCC)
+lang pt_BR describe __RDNS_DYNAMIC_ATTBI Comando HELO enviado usando hostname suspeito (ATTBI.com)
+lang pt_BR describe __RDNS_DYNAMIC_ROGERS Comando HELO enviado usando hostname suspeito (Rogers)
+lang pt_BR describe __RDNS_DYNAMIC_ADELPHIA Comando HELO enviado usando hostname suspeito (Adelphia)
+lang pt_BR describe __RDNS_DYNAMIC_DIALIN Comando HELO enviado usando hostname suspeito (T-Dialin)
+lang pt_BR describe __RDNS_DYNAMIC_HEXIP Comando HELO enviado usando hostname suspeito (Hex IP)
+lang pt_BR describe __RDNS_DYNAMIC_SPLIT_IP Comando HELO enviado usando hostname suspeito (Split IP)
+lang pt_BR describe __RDNS_DYNAMIC_YAHOOBB Comando HELO enviado usando hostname suspeito (YahooBB)
+lang pt_BR describe __RDNS_DYNAMIC_OOL Comando HELO enviado usando hostname suspeito (OptOnline)
+lang pt_BR describe __RDNS_DYNAMIC_RR2 Comando HELO enviado usando hostname suspeito (RR 2)
+lang pt_BR describe __RDNS_DYNAMIC_COMCAST Comando HELO enviado usando hostname suspeito (Comcast)
+lang pt_BR describe __RDNS_DYNAMIC_TELIA Comando HELO enviado usando hostname suspeito (Telia)
+lang pt_BR describe __RDNS_DYNAMIC_VTR Comando HELO enviado usando hostname suspeito (VTR)
+lang pt_BR describe __RDNS_DYNAMIC_CHELLO_NO Comando HELO enviado usando hostname suspeito (Chello.no)
+lang pt_BR describe __RDNS_DYNAMIC_CHELLO_NL Comando HELO enviado usando hostname suspeito (Chello.nl)
+lang pt_BR describe __RDNS_DYNAMIC_VELOX Comando HELO enviado usando hostname suspeito (Veloxzone)
+lang pt_BR describe __RDNS_DYNAMIC_NTL Comando HELO enviado usando hostname suspeito (NTL)
+lang pt_BR describe RDNS_DYNAMIC Entregue a uma rede interna por um host com rDNS que parece ser dinâmico
+lang pt_BR describe RDNS_NONE Entregue a uma rede interna por um host sem rDNS
+
+# 20_fake_helo_tests.cf
+lang pt_BR describe HELO_STATIC_HOST Comando HELO enviado usando hostname estatico
+#lang pt_BR describe FAKE_HELO_MAIL_COM_DOM Comando HELO enviado usando hostname suspeito (mail.com)
+lang pt_BR describe HELO_DYNAMIC_IPADDR Comando HELO enviado usando hostname suspeito (IP addr 1)
+lang pt_BR describe HELO_DYNAMIC_DHCP Comando HELO enviado usando hostname suspeito (DHCP)
+lang pt_BR describe HELO_DYNAMIC_HCC Comando HELO enviado usando hostname suspeito (HCC)
+lang pt_BR describe HELO_DYNAMIC_ROGERS Comando HELO enviado usando hostname suspeito (Rogers)
+lang pt_BR describe HELO_DYNAMIC_DIALIN Comando HELO enviado usando hostname suspeito (T-Dialin)
+lang pt_BR describe HELO_DYNAMIC_HEXIP Comando HELO enviado usando hostname suspeito (Hex IP)
+lang pt_BR describe HELO_DYNAMIC_SPLIT_IP Comando HELO enviado usando hostname suspeito (Split IP)
+lang pt_BR describe HELO_DYNAMIC_IPADDR2 Comando HELO enviado usando hostname suspeito (IP addr 2)
+lang pt_BR describe HELO_DYNAMIC_CHELLO_NL Comando HELO enviado usando hostname suspeito (Chello.nl)
+lang pt_BR describe HELO_DYNAMIC_HOME_NL Comando HELO enviado usando hostname suspeito (Home.nl)
+
+# 20_freemail.cf
+lang pt_BR describe FREEMAIL_REPLYTO Reply-To/From ou Reply-To/body usam diferentes emails gratuitos
+lang pt_BR describe FREEMAIL_REPLY From e body contém diferentes emails gratuitos
+lang pt_BR describe FREEMAIL_FROM Remetente utiliza um email gratuito
+lang pt_BR describe FREEMAIL_ENVFROM_END_DIGIT Nome de usuário de email gratuito no Envelope-From termina em dígito
+lang pt_BR describe FREEMAIL_REPLYTO_END_DIGIT Nome de usuário de email gratuito no Reply-To termina em dígito
+lang pt_BR describe FREEMAIL_FORGED_REPLYTO Email gratuito usado no Reply-To, mas não no From:
+
+# 20_head_tests.cf
+lang pt_BR describe FRAGMENTED_MESSAGE Mensagem fragmentada
+lang pt_BR describe FROM_BLANK_NAME From: contém um nome vazio
+lang pt_BR describe FROM_STARTS_WITH_NUMS From: começa com muitos números
+lang pt_BR describe FROM_OFFERS Endereço do From: contém "offers"
+lang pt_BR describe FROM_NO_USER From: não tem nenhum nome de usuário antes do @
+lang pt_BR describe PLING_QUERY Assunto contém exclamação e interrogação
+lang pt_BR describe MSGID_SPAM_CAPS Message-Id conhecido como spam (caps variant)
+lang pt_BR describe MSGID_SPAM_LETTERS Message-Id conhecido como spam (letters variant)
+lang pt_BR describe MSGID_RANDY Message-Id tem padrão comum encontrado em spam
+lang pt_BR describe MSGID_YAHOO_CAPS Message-ID possui MAIUSCULAS@yahoo.com
+lang pt_BR describe FORGED_MSGID_AOL Message-ID Ã© forjado (aol.com)
+lang pt_BR describe FORGED_MSGID_EXCITE Message-ID Ã© forjado (excite.com)
+lang pt_BR describe FORGED_MSGID_HOTMAIL Message-ID Ã© forjado (hotmail.com)
+lang pt_BR describe FORGED_MSGID_MSN Message-ID Ã© forjado (msn.com)
+lang pt_BR describe FORGED_MSGID_YAHOO Message-ID Ã© forjado (yahoo.com)
+lang pt_BR describe MSGID_FROM_MTA_HEADER Message-Id foi adicionado por um relay
+lang pt_BR describe MSGID_SHORT Message-ID Ã© curto demais
+lang pt_BR describe DATE_SPAMWARE_Y2K Data no cabeçalho usa formatação estranha
+lang pt_BR describe INVALID_DATE Cabeçalho Date: Ã© inválido (não segue a RFC 2822)
+lang pt_BR describe INVALID_DATE_TZ_ABSURD Cabeçalho Date: Ã© inválido (timezone não existe)
+lang pt_BR describe INVALID_TZ_CST Data inválida no header (timezone CST incorreta)
+lang pt_BR describe INVALID_TZ_EST Data inválida no header (timezone EST incorreta)
+lang pt_BR describe FROM_EXCESS_BASE64 Endereço do From: está desnecessariamente codificado em base64
+lang pt_BR describe ENGLISH_UCE_SUBJECT Assunto contém um texto comum de UCE (unsolicited commercial email) em inglês
+lang pt_BR describe JAPANESE_UCE_SUBJECT Assunto contém um texto comum de UCE (unsolicited commercial email) em japonês
+lang pt_BR describe JAPANESE_UCE_BODY Corpo da mensagem contém um texto comum de UCE (unsolicited commercial email) em japonês
+lang pt_BR describe KOREAN_UCE_SUBJECT Assunto contém um texto comum de UCE (unsolicited commercial email) em coreano
+lang pt_BR describe RCVD_DOUBLE_IP_SPAM Spam conhecido (double IP)
+lang pt_BR describe RCVD_DOUBLE_IP_LOOSE "Received by" e "From" parecem ser endereços IP
+lang pt_BR describe FORGED_TELESP_RCVD Contém um hostname forjado para um IP DSL do Brasil
+lang pt_BR describe CONFIRMED_FORGED Cabeçalho Received Ã© forjado
+lang pt_BR describe MULTI_FORGED Cabeçalho Received contém várias entradas forjadas
+lang pt_BR describe NONEXISTENT_CHARSET Codificação inexistente
+lang pt_BR describe MISSING_MID Não possui header Message-Id
+lang pt_BR describe MISSING_DATE Não possui header Date
+lang pt_BR describe MISSING_SUBJECT Não possui header Subject
+lang pt_BR describe GAPPY_SUBJECT Assunto contém T.e.x.t.o-E.s.t.r.a.n.h.o
+lang pt_BR describe PREVENT_NONDELIVERY Mensagem possui cabeçaho Prevent-NonDelivery-Report
+lang pt_BR describe X_IP Mensagem possui cabeçalho X-IP
+lang pt_BR describe MISSING_MIMEOLE Mensagem possui X-MSMail-Priority mas não possui X-MimeOLE
+lang pt_BR describe SUBJ_AS_SEEN Assunto contém "As Seen"
+lang pt_BR describe SUBJ_DOLLARS Assunto começa com um valor em dólar
+#lang pt_BR describe SUBJ_YOUR_DEBT Assunto contém "Your Bills" ou algo parecido
+lang pt_BR describe SUBJ_YOUR_FAMILY Assunto contém "Your Family" ou algo parecido
+lang pt_BR describe RCVD_FAKE_HELO_DOTCOM Cabeçalho Received contém um hostname de HELO falso
+lang pt_BR describe SUBJECT_DIET Assunto fala sobre perda de peso
+lang pt_BR describe MIME_BOUND_DD_DIGITS Padrão de spam conhecido em MIME boundary
+lang pt_BR describe MIME_BOUND_DIGITS_15 Padrão de spam conhecido em MIME boundary
+lang pt_BR describe MIME_BOUND_MANY_HEX Padrão de spam conhecido em MIME boundary
+lang pt_BR describe FAKE_OUTBLAZE_RCVD Cabeçalho Received contém o hostname forjado 'mr.outblaze.com'
+lang pt_BR describe TO_MALFORMED Cabeçalho To: possui um endereço malformado
+lang pt_BR describe MIME_HEADER_CTYPE_ONLY 'Content-Type' encontrado mas não existe MIME headers necessários
+lang pt_BR describe WITH_LC_SMTP Cabeçalho Received contém um indício de spam ("smtp" em caixa baixa)
+lang pt_BR describe SUBJ_BUY Assunto começa com "Buy" ou "Buying"
+lang pt_BR describe RCVD_AM_PM Cabeçalho Received forjado (AM/PM)
+lang pt_BR describe UNCLOSED_BRACKET Cabeçalho contém um colchete aberto que não foi fechado
+lang pt_BR describe FROM_DOMAIN_NOVOWEL Domínio do From: contém uma série de consoantes
+lang pt_BR describe FROM_LOCAL_NOVOWEL Usuário do From: contém uma série de consoantes
+lang pt_BR describe FROM_LOCAL_HEX Usuário do From: contém uma longa sequencia de hexadecimais
+lang pt_BR describe FROM_LOCAL_DIGITS Usuário do From: contém uma longa sequencia de hexadecimais
+lang pt_BR describe X_PRIORITY_CC Cabeçalho "Cc:" posicionado depois de "X-Priority:" (spam conhecido)
+lang pt_BR describe BAD_ENC_HEADER Mensagem possui MIME encoding incorreto
+lang pt_BR describe __VIA_ML Email de uma mailing list
+lang pt_BR describe RCVD_ILLEGAL_IP Cabeçalho "Received:" contém endereço IP ilegal
+lang pt_BR describe CHARSET_FARAWAY_HEADER Charset estrangeiro utilizado no header
+lang pt_BR describe SUBJ_ILLEGAL_CHARS Assunto possui muitos caracteres ilegais
+lang pt_BR describe FROM_ILLEGAL_CHARS "From:" possui muitos caracteres ilegais
+lang pt_BR describe HEAD_ILLEGAL_CHARS Cabeçalho possui muitos caracteres ilegais
+lang pt_BR describe FORGED_HOTMAIL_RCVD2 Endereço do From Ã© do hotmail.com, mas não há hotmail.com no 'Received:'
+lang pt_BR describe FORGED_YAHOO_RCVD Endereço do From Ã© do yahoo.com, mas não há yahoo.com no 'Received:'
+lang pt_BR describe SORTED_RECIPS Lista de destinatários está ordenada alfabeticamente
+lang pt_BR describe SUSPICIOUS_RECIPS Lista de destinatários possui endereços semelhantes
+lang pt_BR describe MISSING_HEADERS Não possui o cabeçalho To:
+lang pt_BR describe DATE_IN_PAST_03_06 Date: Ã© 3 a 6 horas antes da data do Received:
+lang pt_BR describe DATE_IN_PAST_06_12 Date: Ã© 6 a 12 horas antes da data Received:
+lang pt_BR describe DATE_IN_PAST_12_24 Date: Ã© 12 a 24 horas antes da data do Received:
+lang pt_BR describe DATE_IN_PAST_24_48 Date: Ã© 24 a 48 horas antes da data do Received:
+lang pt_BR describe DATE_IN_PAST_96_XX Date: Ã© 96 horas ou mais antes da data do Received:
+lang pt_BR describe DATE_IN_FUTURE_03_06 Date: Ã© 3 a 6 horas depois do Received:
+lang pt_BR describe DATE_IN_FUTURE_06_12 Date: Ã© 6 a 12 horas depois do Received:
+lang pt_BR describe DATE_IN_FUTURE_12_24 Date: Ã© 12 a 24 horas depois do Received:
+lang pt_BR describe DATE_IN_FUTURE_24_48 Date: Ã© 24 a 48 horas depois do Received:
+lang pt_BR describe DATE_IN_FUTURE_48_96 Date: Ã© 48 a 96 horas depois do Received:
+lang pt_BR describe DATE_IN_FUTURE_96_XX Date: Ã© 96 horas ou mais depois do Received:
+lang pt_BR describe UNRESOLVED_TEMPLATE Cabeçalho contém um template não substituído
+lang pt_BR describe SUBJ_ALL_CAPS Assunto Ã© composto apenas por letras maiúsculas
+lang pt_BR describe LOCALPART_IN_SUBJECT Destinatário do email aparece no assunto da mensagem
+lang pt_BR describe MSGID_OUTLOOK_INVALID Message-Id Ã© falso (no formato do Outlook Express)
+lang pt_BR describe HEADER_COUNT_CTYPE Vários cabeçalhos Content-Type foram encontrados
+lang pt_BR describe HEAD_LONG Cabeçalhos da mensagem são muito longos
+lang pt_BR describe MISSING_HB_SEP Não há uma linha separando o cabeçalho do corpo da mensagem
+lang pt_BR describe UNPARSEABLE_RELAY Info: mensagem possui dados de relay que não puderam ser lidos
+lang pt_BR describe RCVD_HELO_IP_MISMATCH HELO e IP no "Received:" não conferem
+lang pt_BR describe NO_RDNS_DOTCOM_HELO Comando HELO enviado como um provedor confiável, mas não possui rDNS
+
+# 20_html_tests.cf
+lang pt_BR describe HTML_SHORT_LINK_IMG_1 O código HTML Ã© muito pequeno, com uma imagem com link
+lang pt_BR describe HTML_SHORT_LINK_IMG_2 O código HTML Ã© muito pequeno, com uma imagem com link
+lang pt_BR describe HTML_SHORT_LINK_IMG_3 O código HTML Ã© muito pequeno, com uma imagem com link
+lang pt_BR describe HTML_SHORT_CENTER O código HTML Ã© muito curto e usa uma tag center.
+lang pt_BR describe HTML_CHARSET_FARAWAY Um idioma estrangeiro foi declarado no charset do HTML
+lang pt_BR describe HTML_MIME_NO_HTML_TAG A mensagem Ã© em HTML, mas não há uma tag HTML
+lang pt_BR describe HTML_MISSING_CTYPE A mensagem Ã© em HTML mas não tem a declaração HTML Content-Type
+lang pt_BR describe HIDE_WIN_STATUS Uso de Javascript para ocultar as URLS no navegador
+lang pt_BR describe OBFUSCATING_COMMENT HTML possui comentários com texto suspeito
+lang pt_BR describe JS_FROMCHARCODE Documento construído a partir de um array em Javascript
+lang pt_BR describe HTML_MESSAGE HTML incluso na mensagem
+lang pt_BR describe HTML_COMMENT_SHORT O comentário no HTML Ã© muito curto
+lang pt_BR describe HTML_COMMENT_SAVED_URL O HTML da mensagem foi salvo de uma página da web
+lang pt_BR describe HTML_EMBEDS O HTML possui um objeto plugin incorporado
+lang pt_BR describe HTML_EXTRA_CLOSE HTML contém muitas tags fechadas (que não foram abertas)
+lang pt_BR describe HTML_FONT_SIZE_LARGE O HTML contém fonte de tamanho grande
+lang pt_BR describe HTML_FONT_SIZE_HUGE O HTML contém fonte de tamanho muito grande
+lang pt_BR describe HTML_FONT_LOW_CONTRAST Há textos com cores similares Ã  cor de fundo
+lang pt_BR describe HTML_FONT_FACE_BAD font face não Ã© uma expressão
+lang pt_BR describe HTML_FORMACTION_MAILTO O HTML contém um formulário que envia email
+lang pt_BR describe HTML_IMAGE_ONLY_04 HTML: Código HTML possui entre 0-400 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_08 HTML: Código HTML possui entre 400-800 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_12 HTML: Código HTML possui entre 800-1200 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_16 HTML: Código HTML possui entre 1200-1600 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_20 HTML: Código HTML possui entre 1600-2000 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_24 HTML: Código HTML possui entre 2000-2400 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_28 HTML: Código HTML possui entre 2400-2800 caracteres
+lang pt_BR describe HTML_IMAGE_ONLY_32 HTML: Código HTML possui entre 2800-320000 caracteres
+lang pt_BR describe HTML_IMAGE_RATIO_02 O HTML tem pouco texto em relação Ã s imagens
+lang pt_BR describe HTML_IMAGE_RATIO_02 O HTML tem pouco texto em relação Ã s imagens
+lang pt_BR describe HTML_IMAGE_RATIO_02 O HTML tem pouco texto em relação Ã s imagens
+lang pt_BR describe HTML_IMAGE_RATIO_02 O HTML tem pouco texto em relação Ã s imagens
+lang pt_BR describe HTML_OBFUSCATE_05_10 HTML possui de 5% a 10% de tags vazias ou desnecessárias
+lang pt_BR describe HTML_OBFUSCATE_10_20 HTML possui de 10% a 20% de tags vazias ou desnecessárias
+lang pt_BR describe HTML_OBFUSCATE_20_30 HTML possui de 20% a 30% de tags vazias ou desnecessárias
+lang pt_BR describe HTML_OBFUSCATE_30_40 HTML possui de 30% a 40% de tags vazias ou desnecessárias
+lang pt_BR describe HTML_OBFUSCATE_50_60 HTML possui de 50% a 60% de tags vazias ou desnecessárias
+lang pt_BR describe HTML_OBFUSCATE_70_80 HTML possui de 70% a 80% de tags vazias ou desnecessárias
+lang pt_BR describe HTML_TAG_BALANCE_BODY HTML possui uma tag "body" que não foi aberta ou fechada
+lang pt_BR describe HTML_TAG_BALANCE_HEAD HTML possui uma tag "head" que não foi aberta ou fechada
+lang pt_BR describe HTML_TAG_EXIST_BGSOUND O HTML contém uma tag "bgsound"
+lang pt_BR describe HTML_BADTAG_40_50 HTML da mensagem possui de 40% a 50% de tags inválidas
+lang pt_BR describe HTML_BADTAG_40_50 HTML da mensagem possui de 50% a 60% de tags inválidas
+lang pt_BR describe HTML_BADTAG_40_50 HTML da mensagem possui de 60% a 70% de tags inválidas
+lang pt_BR describe HTML_BADTAG_40_50 HTML da mensagem possui de 90% a 100% de tags inválidas
+lang pt_BR describe HTML_NONELEMENT_30_40 O HTML usa de 30% a 40% de elementos fora dos padrões
+lang pt_BR describe HTML_NONELEMENT_30_40 O HTML usa de 40% a 50% de elementos fora dos padrões
+lang pt_BR describe HTML_NONELEMENT_30_40 O HTML usa de 60% a 70% de elementos fora dos padrões
+lang pt_BR describe HTML_NONELEMENT_30_40 O HTML usa de 80% a 90% de elementos fora dos padrões
+lang pt_BR describe HTML_BADTAG_40_50 HTML da mensagem possui tah IFRAME com URL no src
+
+# 20_imageinfo.cf
+lang pt_BR describe __DC_IMG_HTML_RATIO Low rawbody to pixel area ratio
+lang pt_BR describe __DC_IMG_TEXT_RATIO Low body to pixel area ratio
+lang pt_BR describe DC_GIF_UNO_LARGO Message contains a single large inline gif
+lang pt_BR describe __DC_GIF_MULTI_LARGO Message has 2+ inline gif covering lots of area
+lang pt_BR describe DC_PNG_UNO_LARGO Message contains a single large inline gif
+lang pt_BR describe __DC_PNG_MULTI_LARGO Message has 2+ inline png covering lots of area
+lang pt_BR describe DC_IMAGE_SPAM_TEXT Possible Image-only spam with little text
+lang pt_BR describe DC_IMAGE_SPAM_HTML Possible Image-only spam
+
+# 20_meta_tests.cf
+lang pt_BR describe UPPERCASE_50_75 Mensagem possui de 50% a 75% de textos em caixa alta.
+lang pt_BR describe UPPERCASE_75_100 Mensagem possui de 75% a 100% de textos em caixa alta.
+lang pt_BR describe INVALID_MSGID Message-ID inválido, de acordo com a RFC-2822
+lang pt_BR describe FORGED_MUA_MOZILLA Email forjado, tentando se passar como da Mozilla
+lang pt_BR describe PERCENT_RANDOM Mensagem contém uma macro randômica
+lang pt_BR describe EMPTY_MESSAGE Mensagem parece não conter texto no conteúdo e no Assunto.
+lang pt_BR describe NO_HEADERS_MESSAGE Mensagem parece não conter grande parte dos cabeçalhos RFC-822
+
+# 20_net_tests.cf
+lang pt_BR describe DIGEST_MULTIPLE Remetente está listado em mais de uma blacklist
+lang pt_BR describe NO_DNS_FOR_FROM Remetente não possui registros MX ou A no DNS
+
+# 20_phrases.cf
+lang pt_BR describe REMOVE_BEFORE_LINK Frase indicando remoção de email de lista logo antes de um link
+lang pt_BR describe GUARANTEED_100_PERCENT Contém "One hundred percent guaranteed"
+lang pt_BR describe DEAR_FRIEND Contém "Dear Friend"
+lang pt_BR describe DEAR_SOMETHING Contém 'Dear (alguma coisa)'
+lang pt_BR describe BILLION_DOLLARS Fala sobre muito dinheiro
+lang pt_BR describe EXCUSE_4 Afirma que você pode ser removido da lista se quiser
+lang pt_BR describe EXCUSE_24 Afirma que você queria receber essa propaganda
+lang pt_BR describe EXCUSE_REMOVE Informa como você pode ser removido da lista
+lang pt_BR describe STRONG_BUY Contém "strong buy"
+lang pt_BR describe STOCK_ALERT Contém um alerta sobre ações (stock)
+lang pt_BR describe NOT_ADVISOR Contém "Not registered investment advisor"
+lang pt_BR describe PREST_NON_ACCREDITED Contém "Prestigious Non-Accredited Universities"
+lang pt_BR describe BODY_ENHANCEMENT Informação sobre como aumentar partes do corpo
+lang pt_BR describe BODY_ENHANCEMENT2 Informação sobre como aumentar partes do corpo
+lang pt_BR describe IMPOTENCE Fala sobre cura da impotência
+#lang pt_BR describe NA_DOLLARS Fala sobre milhões de dólares norte americanos ou canadenses
+#lang pt_BR describe US_DOLLARS_3 Contém $($NN,NNN,NNN.NN)
+#lang pt_BR describe MILLION_USD Fala sobre milhões de dólares
+lang pt_BR describe URG_BIZ Contém: "urgent matter"
+lang pt_BR describe MONEY_BACK Contém: "Money back guarantee"
+lang pt_BR describe FREE_QUOTE_INSTANT Contém: "Free express or no-obligation quote"
+lang pt_BR describe BAD_CREDIT Contém: "Eliminate Bad Credit"
+lang pt_BR describe REFINANCE_YOUR_HOME Contém: "Home refinancing"
+lang pt_BR describe REFINANCE_NOW Contém: "Home refinancing"
+lang pt_BR describe NO_MEDICAL Contém: "No Medical Exams"
+lang pt_BR describe DIET_1 Spam de perda de peso
+lang pt_BR describe FIN_FREE Contém: "Freedom of a financial nature"
+lang pt_BR describe FORWARD_LOOKING Possui informações sobre o mercado de ações
+lang pt_BR describe ONE_TIME Contém: "One Time (alguma coisa)"
+lang pt_BR describe JOIN_MILLIONS Contém: "Join Millions of Americans"
+lang pt_BR describe MARKETING_PARTNERS Afirma que você se cadastrou com um parceiro
+lang pt_BR describe LOW_PRICE Contém: "Lowest Price"
+lang pt_BR describe UNCLAIMED_MONEY Spam sobre dinheiro que pode ser seu
+lang pt_BR describe OBSCURED_EMAIL Mensagem tenta esconder um endereço de email com codificação ROT13
+lang pt_BR describe BANG_OPRAH Contém: "Oprah!"
+lang pt_BR describe ACT_NOW_CAPS Contém: "Act Now"
+lang pt_BR describe MORE_SEX Fala sobre um maior desejo por sexo
+lang pt_BR describe BANG_GUAR Spam sobre "alguma coisa" garantida ("guaranteed!")
+lang pt_BR describe RUDE_HTML Mensagem diz que seu cliente de email não suporta HTML
+lang pt_BR describe INVESTMENT_ADVICE Mensagem possui "conselhos" sobre investimentos
+lang pt_BR describe MALE_ENHANCE Mensagem fala sobre melhorar a masculinidade
+lang pt_BR describe PRICES_ARE_AFFORDABLE Mensagem diz que os preços são baixos
+lang pt_BR describe REPLICA_WATCH Mensagem fala sobre réplicas de relógio
+lang pt_BR describe EM_ROLEX Mensagem põe Ãªnfase no fabricante do relógio
+
+# 20_porn.cf
+lang pt_BR describe FREE_PORN Pornografia - mensagem contém "Free Porn"
+lang pt_BR describe CUM_SHOT Pornografia - mensagem contém "Cum Shot"
+lang pt_BR describe LIVE_PORN Pornografia - mensagem contém "Live Porn"
+lang pt_BR describe SUBJECT_SEXUAL Assunto indica conteúdo sexualmente-explícito
+
+# 20_ratware.cf
+lang pt_BR describe RATWARE_EGROUPS Detectado como email em massa já conhecido (eGroups)
+lang pt_BR describe RATWARE_OE_MALFORMED X-Mailer mal-formado tentando indicar uma versão do Outlook Express
+lang pt_BR describe RATWARE_MOZ_MALFORMED Detectado como email em massa já conhecido (Mozilla malformed)
+lang pt_BR describe RATWARE_MPOP_WEBMAIL Detectado como email em massa já conhecido (mPOP Web-Mail)
+lang pt_BR describe FORGED_MUA_IMS Email Email fingindo ser enviado pelo IMS
+lang pt_BR describe FORGED_MUA_OUTLOOK Email fingindo ser enviado pelo MS Outlook
+lang pt_BR describe FORGED_MUA_OIMO Email fingindo ser enviado pelo MS Outlook IMO
+lang pt_BR describe FORGED_MUA_EUDORA Email fingindo ser enviado pelo Eudora
+lang pt_BR describe FORGED_MUA_THEBAT_CS Email fingindo ser enviado pelo The Bat! (charset)
+lang pt_BR describe FORGED_MUA_THEBAT_BOUN Email fingindo ser enviado pelo The Bat! (boundary)
+lang pt_BR describe FORGED_OUTLOOK_HTML Outlook não consegue enviar mensagens apenas HTML
+lang pt_BR describe FORGED_IMS_HTML IMS não consegue enviar mensagens apenas HTML
+lang pt_BR describe FORGED_THEBAT_HTML The Bat! não consegue enviar mensagens apenas HTML
+lang pt_BR describe REPTO_QUOTE_AOL AOL não usa o formato de citação usado no email
+lang pt_BR describe REPTO_QUOTE_IMS IMS não usa o formato de citação usado no email
+lang pt_BR describe REPTO_QUOTE_MSN MSN não usa o formato de citação usado no email
+lang pt_BR describe REPTO_QUOTE_QUALCOMM Qualcomm/Eudora não usa o formato de citação usado no email
+lang pt_BR describe REPTO_QUOTE_YAHOO Yahoo! não usa o formato de citação usado no email
+lang pt_BR describe FORGED_QUALCOMM_TAGS QUALCOMM não consegue enviar emails HTML neste formato
+lang pt_BR describe FORGED_IMS_TAGS IMS não consegue enviar emails HTML neste formato
+lang pt_BR describe FORGED_OUTLOOK_TAGS Outlook não consegue enviar emails HTML neste formato
+lang pt_BR describe RATWARE_HASH_DASH Contém hashbuster no formato Sender-Safe
+lang pt_BR describe RATWARE_ZERO_TZ Detectado como email em massa já conhecido (+0000)
+lang pt_BR describe X_MESSAGE_INFO Detectado como email em massa já conhecido (X-Message-Info)
+lang pt_BR describe HEADER_SPAM Detectado como email em massa já conhecido (header-based)
+lang pt_BR describe RATWARE_RCVD_PF Detectado como email em massa já conhecido (Received PF)
+lang pt_BR describe RATWARE_RCVD_AT Detectado como email em massa já conhecido (Received @)
+lang pt_BR describe RATWARE_OUTLOOK_NONAME Detectado como email em massa já conhecido (Outlook no name)
+lang pt_BR describe RATWARE_MS_HASH Detectado como email em massa já conhecido (msgid ms hash)
+lang pt_BR describe RATWARE_NAME_ID Detectado como email em massa já conhecido (msgid from)
+lang pt_BR describe RATWARE_EFROM Detectado como email em massa já conhecido (envfrom)
+
+# 20_uri_tests.cf
+lang pt_BR describe NUMERIC_HTTP_ADDR Utiliza um endereço em número IP na URL
+lang pt_BR describe HTTP_ESCAPED_HOST Usa %-escapes no hostname de uma URL
+lang pt_BR describe HTTP_EXCESSIVE_ESCAPES Usa %-escapes desnecessários dentro de uma URL
+lang pt_BR describe WEIRD_PORT Usa um número de porta não padrão para o HTTP
+lang pt_BR describe YAHOO_RD_REDIR Possui URI de Redirecionamento do Yahoo
+lang pt_BR describe YAHOO_DRS_REDIR Possui URI de Redirecionamento do Yahoo
+lang pt_BR describe SPOOF_COM2OTH URI contém ".com" no meio
+lang pt_BR describe SPOOF_COM2COM URI contém ".com" no meio e no fim
+lang pt_BR describe SPOOF_NET2COM URI contém ".net" ou ".org" e depois ".com"
+lang pt_BR describe URI_HEX Hostname apresenta uma longa seqüência hexadecimal
+lang pt_BR describe URI_NOVOWEL Hostname da URI contém uma longa seqüência sem vogal
+lang pt_BR describe URI_UNSUBSCRIBE Contém link suspeito de opt-out
+lang pt_BR describe IP_LINK_PLUS Endereço IP seguido de arquivo CGI
+lang pt_BR describe NORMAL_HTTP_TO_IP Usa um endereço IP na URL
+lang pt_BR describe URI_NO_WWW_INFO_CGI Domínio .info possui string suspeita ao invés de "www"
+lang pt_BR describe URI_NO_WWW_BIZ_CGI Domínio .biz possui string suspeita ao invés de "www"
+lang pt_BR describe HTTP_77 Contém uma URL codificada (URL-encoded) (HTTP77)
+
+# 20_vbounce.cf
+lang pt_BR describe BOUNCE_MESSAGE Mensagem de bounce do MTA
+lang pt_BR describe CHALLENGE_RESPONSE Mensagem Tira-Teima de um email que você enviou
+lang pt_BR describe CRBOUNCE_MESSAGE Bounce de mensagem Tira-Teima
+lang pt_BR describe VBOUNCE_MESSAGE Bounce de mensagem de antivirus
+lang pt_BR describe ANY_BOUNCE_MESSAGE Mensagem Ã© um bounce de algum email
+
+# 23_bayes.cf
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+lang pt_BR describe BAYES_00 Probabilidade de ser spam entre 0 to 1%
+lang pt_BR describe BAYES_05 Probabilidade de ser spam entre 1 to 5%
+lang pt_BR describe BAYES_20 Probabilidade de ser spam entre 5 to 20%
+lang pt_BR describe BAYES_40 Probabilidade de ser spam entre 20 to 40%
+lang pt_BR describe BAYES_50 Probabilidade de ser spam entre 40 to 60%
+lang pt_BR describe BAYES_60 Probabilidade de ser spam entre 60 to 80%
+lang pt_BR describe BAYES_80 Probabilidade de ser spam entre 80 to 95%
+lang pt_BR describe BAYES_95 Probabilidade de ser spam entre 95 to 99%
+lang pt_BR describe BAYES_99 Probabilidade de ser spam entre 99 to 100%
+lang pt_BR describe BAYES_999 Probabilidade de ser spam entre 99.9 to 100%
+endif
+#
+# 25_accessdb.cf
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+lang pt_BR describe ACCESSDB Mensagem teria sido pega pela accessdb
+endif
+
+# 25_antivirus.c
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+lang pt_BR describe MICROSOFT_EXECUTABLE Mensagem contém um programa executável Microsoft
+lang pt_BR describe MIME_SUSPECT_NAME Extensão do arquivo não corresponde ao seu conteúdo
+endif
+
+# 25_dcc.cf
+ifplugin Mail::SpamAssassin::Plugin::DCC
+lang pt_BR describe DCC_CHECK Classificado como email em massa pelo DCC (dcc-servers.net)
+lang pt_BR describe DCC_REPUT_00_12 Reputação no DCC entre 0 e 12 %  (maioria não-spam)
+lang pt_BR describe DCC_REPUT_70_89 Reputação no DCC entre 70 and 89 %
+lang pt_BR describe DCC_REPUT_90_94 Reputação no DCC entre 90 and 94 %
+lang pt_BR describe DCC_REPUT_95_98 Reputação no DCC entre 95 and 98 %  (maioria de spam)
+lang pt_BR describe DCC_REPUT_99_100 Reputação no DCC entre 99 % ou mais (definitamente spam)
+endif
+
+# 25_dkim.cf
+lang pt_BR describe DKIM_SIGNED Mensagem possui uma assinatura DKIM ou DK não necessariamente válida
+lang pt_BR describe DKIM_VALID Mensagem possui ao menos uma assinatura DKIM ou DK válida
+lang pt_BR describe DKIM_VALID_AU Mensagem possui uma assinatura DKIM ou DK válida do domínio do autor da mensagem
+lang pt_BR describe __DKIM_DEPENDABLE Falha na validação DKIM
+lang pt_BR describe DKIM_ADSP_NXDOMAIN Nenhuma assinatura válida e o domínio não consta no DNS
+lang pt_BR describe DKIM_ADSP_DISCARD Nenhuma assinatura válida do autor da mensagem e o domínio assina todos os emails e sugere descartar o resto
+lang pt_BR describe DKIM_ADSP_ALL Nenhuma assinatura válida do autor da mensagem e o domínio assina todos os emails
+lang pt_BR describe DKIM_ADSP_CUSTOM_LOW Nenhuma assinatura válida do autor da mensagem. adsp_override = CUSTOM_LOW
+lang pt_BR describe DKIM_ADSP_CUSTOM_MED Nenhuma assinatura válida do autor da mensagem. adsp_override = CUSTOM_MED
+lang pt_BR describe DKIM_ADSP_CUSTOM_HIGH Nenhuma assinatura válida do autor da mensagem. adsp_override = CUSTOM_HIGH
+lang pt_BR describe __VIA_RESIGNER Email passou por um Mail through a popular signing remailer
+lang pt_BR describe NML_ADSP_CUSTOM_LOW ADSP custom_low foi atingida, e não foi de uma mailing list
+lang pt_BR describe NML_ADSP_CUSTOM_MED ADSP custom_med foi atingida, e não foi de uma mailing list
+lang pt_BR describe NML_ADSP_CUSTOM_HIGH ADSP custom_high foi atingida, e não foi de uma mailing list
+
+# 25_pyzor.cf
+lang pt_BR describe PYZOR_CHECK Listado na Pyzor (https://pyzor.readthedocs.io/en/latest/)
+
+# 25_razor2.cf
+lang pt_BR describe RAZOR2_CHECK Listado na Razor2 (http://razor.sf.net/)
+lang pt_BR describe RAZOR2_CF_RANGE_51_100 Nível de confiança na Razor2 acima de 50%
+
+# 25_replace.cf
+lang pt_BR describe SUBJECT_FUZZY_MEDS Tentativa de esconder palavras no Subject:
+lang pt_BR describe SUBJECT_FUZZY_VPILL Tentativa de esconder palavras no Subject:
+lang pt_BR describe SUBJECT_FUZZY_CHEAP Tentativa de esconder palavras no Subject:
+lang pt_BR describe SUBJECT_FUZZY_PENIS Tentativa de esconder palavras no Subject:
+lang pt_BR describe SUBJECT_FUZZY_TION Tentativa de esconder palavras no Subject:
+lang pt_BR describe FUZZY_AFFORDABLE Tentativa de esconder palavras na mensagem
+#lang pt_BR describe FUZZY_AMBIEN Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_BILLION Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_CPILL Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_CREDIT Tentativa de esconder palavras na mensagem
+#lang pt_BR describe FUZZY_ERECT Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_GUARANTEE Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_MEDICATION Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_MILLION Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_MONEY Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_MORTGAGE Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_OBLIGATION Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_OFFERS Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_PHARMACY Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_PHENT Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_PRESCRIPT Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_PRICES Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_REFINANCE Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_REMOVE Tentativa de esconder palavras na mensagem
+#lang pt_BR describe FUZZY_ROLEX Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_SOFTWARE Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_THOUSANDS Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_VLIUM Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_VIOXX Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_VPILL Tentativa de esconder palavras na mensagem
+lang pt_BR describe FUZZY_XPILL Tentativa de esconder palavras na mensagem
+
+# 25_spf.cf
+lang pt_BR describe SPF_PASS SPF: Remetente Ã© válido de acordo com registro SPF
+lang pt_BR describe SPF_NEUTRAL SPF: Remetente não confere com registro SPF (neutral)
+lang pt_BR describe SPF_FAIL SPF: Remetente não confere com registro SPF (fail)
+lang pt_BR describe SPF_SOFTFAIL SPF: Remetente não confere com registro SPF (softfail)
+lang pt_BR describe SPF_HELO_PASS SPF: HELO confere com registro SPF
+lang pt_BR describe SPF_HELO_NEUTRAL SPF: HELO não confere com registro SPF (neutral)
+lang pt_BR describe SPF_HELO_FAIL SPF: HELO não confere com registro SPF (fail)
+lang pt_BR describe SPF_HELO_SOFTFAIL SPF: HELO não confere com registro SPF (softfail)
+
+# 25_textcat.cf
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+lang pt_BR describe UNWANTED_LANGUAGE_BODY Mensagem está escrita em um idioma indesejado
+lang pt_BR describe BODY_8BITS Body contém 8 caracteres de 8-bit consecutivos
+endif
+
+# 25_uribl.cf
+lang pt_BR describe URIBL_SBL Contém uma URL listada na blacklist SBL
+lang pt_BR describe URIBL_DBL_SPAM Contém uma URL listada na blacklist DBL blocklist
+lang pt_BR describe URIBL_DBL_ERROR Erro: Consultou a DBL por um IP
+#lang pt_BR describe URIBL_SC_SURBL Contém uma URL listada na blacklist SC SURBL - removed bug 7279
+lang pt_BR describe URIBL_WS_SURBL Contém uma URL listada na blacklist WS SURBL
+lang pt_BR describe URIBL_PH_SURBL Contém uma URL listada na blacklist PH SURBL
+#lang pt_BR describe URIBL_OB_SURBL Contém uma URL listada na blacklist OB SURBL - REMOVED BUG 6853
+#lang pt_BR describe URIBL_AB_SURBL Contém uma URL listada na blacklist AB SURBL - removed bug 7279
+#Changed from JP to ABUSE per bug 7279
+lang pt_BR describe URIBL_ABUSE_SURBL Contém uma URL listada na blacklist ABUSE SURBL
+lang pt_BR describe URIBL_BLACK Contém uma URL listada na blacklist URIBL
+lang pt_BR describe URIBL_GREY Contém uma URL listada na greylist URIBL
+lang pt_BR describe URIBL_RED Contém uma URL listada na redlist URIBL
+
+# 60_shortcircuit.cf
+ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
+lang pt_BR describe SHORTCIRCUIT Nem todas as regras foram executadas por causa de um problema em uma delas
+endif
+
+# 60_whitelist_dkim.cf
+lang pt_BR describe USER_IN_DKIM_WHITELIST Endereço do From: está na whitelist de DKIM do usuário
+lang pt_BR describe USER_IN_DEF_DKIM_WL Endereço do From: está na whitelist de DKIM padrão
+
+# 60_whitelist_spf.cf
+lang pt_BR describe USER_IN_SPF_WHITELIST Endereço do From: está na whitelist de SPF do usuário
+lang pt_BR describe USER_IN_DEF_SPF_WL Endereço do From: está na whitelist de SPF padrão
+lang pt_BR describe ENV_AND_HDR_SPF_MATCH Endereço do From: confere com Envelope From e está na whitelist de SPF
+
+# 60_whitelist_subject.cf
+lang pt_BR describe SUBJECT_IN_WHITELIST Assunto contém palavra que está na whitelist do usuário
+lang pt_BR describe SUBJECT_IN_BLACKLIST Assunto contém palavra que está na blacklist do usuário
+
diff --git a/sa-updates/50_scores.cf b/sa-updates/50_scores.cf
new file mode 100644 (file)
index 0000000..5b69e60
--- /dev/null
@@ -0,0 +1,997 @@
+# SpamAssassin score file
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+#
+###########################################################################
+# Default scores.   Note that if a test is named in the files, but a score is
+# not assigned here, the default score will be set to 1.
+
+# The following block of scores were generated using the mass-checking
+# scripts, and a perceptron to determine the optimum scores which
+# resulted in minimum false positives or negatives.  The scores are
+# weighted to produce roughly 1 false positive in 2500 non-spam messages
+# using the default threshold of 5.0.
+
+# Start of generated scores.  <gen:mutable>
+
+score ACT_NOW_CAPS 0.1
+#score ADVANCE_FEE_2 2.314 2.294 1.198 1.053
+#score ADVANCE_FEE_3 2.686 1.898 3.505 3.817
+#score ADVANCE_FEE_4 0.001 0.001 0.001 0.271
+score ALL_TRUSTED -1.000
+score APOSTROPHE_FROM 0.148 0.786 0.651 0.545 # n=2
+score BAD_CREDIT 0.1
+score BANG_GUAR 1.0
+score BANG_OPRAH 0 # n=0 n=1 n=2 n=3
+score BANKING_LAWS 2.399 2.004 2.157 1.099 # n=2
+score BILLION_DOLLARS 0.001 1.451 1.229 1.638
+score BODY_ENHANCEMENT 0.927 1.611 0.974 0.001
+score BODY_ENHANCEMENT2 0.1
+score BUG6152_INVALID_DATE_TZ_ABSURD 0.1
+score CONFIRMED_FORGED 0 # n=0 n=1 n=2 n=3
+score CORRUPT_FROM_LINE_IN_HDRS 0 # n=0 n=1 n=2 n=3
+score CTYPE_001C_A 0 # n=0 n=1 n=2 n=3
+score CTYPE_001C_B 0.001 0.001 0.001 0.001  # n=1
+score CUM_SHOT 0 # n=0 n=1 n=2 n=3
+score CURR_PRICE 0.001 # n=0 n=1 n=2 n=3
+score DATE_SPAMWARE_Y2K 0 # n=0 n=1 n=2 n=3
+score DEAR_FRIEND 2.683 2.604 1.801 2.577
+score DEAR_SOMETHING 1.999 1.731 1.787 1.973
+score DEAR_WINNER 3.099 3.099 2.309 3.099 # n=2
+score DIET_1 0.714 0.000 0.399 0.001
+score DIGEST_MULTIPLE 0 0.001 0 0.293 # n=0 n=2
+score DOS_ANAL_SPAM_MAILER 0 # n=0 n=1 n=2
+score DOS_FIX_MY_URI 0 # n=0 n=1 n=2 n=3
+score DOS_HIGH_BAT_TO_MX 0 # n=0 n=1 n=2
+score DOS_LET_GO_JOB 0 # n=0 n=1 n=2 n=3
+score DOS_OE_TO_MX 2.602 3.086 2.265 2.523
+score DOS_OE_TO_MX_IMAGE 2.886 1.886 2.425 3.699
+score DOS_OUTLOOK_TO_MX 2.636 1.449 1.737 2.845
+score DOS_RCVD_IP_TWICE_C 2.599 2.060 3.292 0.096
+score DOS_STOCK_BAT 0.001 # n=0 n=1 n=2 n=3
+score DOS_STOCK_BAT2 0 # n=0 n=1 n=2 n=3
+score DOS_URI_ASTERISK 0 # n=0 n=1 n=2 n=3
+score DOS_YOUR_PLACE 0 # n=0 n=1 n=2 n=3
+score DRUGS_ANXIETY 0.1
+score DRUGS_ANXIETY_EREC 0 # n=0 n=1 n=2 n=3
+score DRUGS_ANXIETY_OBFU 0 # n=0 n=1 n=2 n=3
+score DRUGS_DIET 2.660 0.757 1.831 0.337
+score DRUGS_DIET_OBFU 0 # n=0 n=1 n=2 n=3
+score DRUGS_ERECTILE 1.778 2.221 1.299 1.994
+score DRUGS_ERECTILE_OBFU 1.324 1.309 2.935 1.109
+score DRUGS_HDIA 0 # n=0 n=1 n=2 n=3
+score DRUGS_MANYKINDS 2.001 1.473 0.841 0.342
+score DRUGS_MUSCLE 0.001 2.499 0.392 0.164
+score DRUGS_SLEEP_EREC 0 # n=0 n=1 n=2 n=3
+score DRUGS_SMEAR1 3.300 2.051 3.148 0.235 # n=0
+score DRUGS_STOCK_MIMEOLE 2.699 1.681 2.478 1.321 # n=2
+score DRUG_DOSAGE 0 # n=0 n=1 n=2 n=3
+score DRUG_ED_CAPS 2.799 1.023 2.516 0.936
+score DRUG_ED_GENERIC 0 # n=0 n=1 n=2 n=3
+score DRUG_ED_ONLINE 0.696 1.152 1.221 0.608 # n=0
+score DRUG_ED_SILD 0.001
+score DYN_RDNS_AND_INLINE_IMAGE 1.345 1.344 1.434 1.168 # n=2
+score DYN_RDNS_SHORT_HELO_HTML 0.001 0.001 0.000 0.001 # n=2
+score DYN_RDNS_SHORT_HELO_IMAGE 1.825 2.516 2.285 1.013 # n=2
+score EMAIL_ROT13 0 # n=0 n=1 n=2 n=3
+score EMPTY_MESSAGE 2.195 2.344 1.552 2.320
+score EM_ROLEX 0.595 1.309 2.068 0.618 # n=0
+score ENGLISH_UCE_SUBJECT 0.953 1.542 2.569 2.899 # n=0
+score EXCUSE_4 2.399 1.687 2.399 1.325
+score EXCUSE_REMOVE 2.907 2.992 3.299 3.299
+#score FAKE_HELO_MAIL_COM_DOM 1.887 0.152 1.370 2.136
+score FAKE_OUTBLAZE_RCVD 0 # n=0 n=1 n=2 n=3
+score FAKE_REPLY_C 0.688 0.001 2.553 1.486 # n=2
+score FILL_THIS_FORM_FRAUD_PHISH 1.195 0.396 0.615 0.334
+score FILL_THIS_FORM_LOAN 2.092 2.237 1.836 2.880
+score FILL_THIS_FORM_LONG 3.800 3.476 2.300 3.404
+score FIN_FREE 0.1
+score FORGED_IMS_HTML 0 # n=0 n=1 n=2 n=3
+score FORGED_IMS_TAGS 0 # n=0 n=1 n=2 n=3
+score FORGED_MSGID_AOL 0 # n=0 n=1 n=2 n=3
+score FORGED_MSGID_EXCITE 2.399 1.899 1.649 0.528 # n=0
+score FORGED_MSGID_HOTMAIL 0 # n=0 n=1 n=2 n=3
+score FORGED_MSGID_MSN 0 # n=0 n=1 n=2 n=3
+score FORGED_MSGID_YAHOO 0.1
+score FORGED_MUA_EUDORA 2.828 2.510 1.962 0.001
+score FORGED_MUA_IMS 2.399 2.399 2.399 1.943
+score FORGED_MUA_MOZILLA 2.399 1.596 2.399 2.309
+score FORGED_MUA_OIMO 2.600 2.599 2.599 2.599
+score FORGED_MUA_OUTLOOK 3.999 2.785 2.500 1.927
+score FORGED_MUA_THEBAT_BOUN 3.046 3.220 3.207 3.399
+score FORGED_MUA_THEBAT_CS 0 # n=0 n=1 n=2 n=3
+score FORGED_OUTLOOK_HTML 0.001 0.001 0.001 0.021
+score FORGED_OUTLOOK_TAGS 0.003 0.565 0.001 0.052
+score FORGED_QUALCOMM_TAGS 0 # n=0 n=1 n=2 n=3
+score FORGED_TELESP_RCVD 2.499 2.499 2.499 1.841 # n=0
+score FORGED_THEBAT_HTML 0 # n=0 n=1 n=2 n=3
+score FORWARD_LOOKING 0 # n=0 n=1 n=2 n=3
+score FRAGMENTED_MESSAGE 0 # n=0 n=1 n=2
+
+#FREEMAIL SCORES - Scores lowered per bug 6744
+score FREEMAIL_FORGED_REPLYTO 1.199 2.503 1.204 2.095
+score FREEMAIL_REPLY 1.0
+score FREEMAIL_REPLYTO 1.0
+score FREEMAIL_REPLYTO_END_DIGIT 0.25
+score FREEMAIL_ENVFROM_END_DIGIT 0.25
+score FREEMAIL_FROM     0.001
+
+score FREE_PORN 0 # n=0 n=1 n=2 n=3
+score FREE_QUOTE_INSTANT 2.700 2.699 2.699 1.297 # n=2
+score FROM_BLANK_NAME 2.099 2.099 2.099 0.723
+score FROM_DOMAIN_NOVOWEL 0.500
+score FROM_EXCESS_BASE64 0.001
+score FROM_LOCAL_DIGITS 0.001
+score FROM_LOCAL_HEX 0.000 0.331 0.001 0.006
+score FROM_LOCAL_NOVOWEL 0.500
+score FROM_NO_USER 0.001 2.599 0.019 0.798
+#score FROM_OFFERS 2.699 2.699 2.510 2.699     # defer to nightly GA rescorer per bug 6580
+score FROM_STARTS_WITH_NUMS 2.801 0.553 1.201 0.738
+score FSL_FAKE_HOTMAIL_RVCD 2.631 1.816 2.011 2.365
+score FSL_HELO_BARE_IP_1 2.598 1.426 3.099 2.347
+score FSL_HELO_DEVICE 0.1
+score FSL_HELO_NON_FQDN_1 2.361 0.001 1.783 0.001
+score FSL_HELO_SETUP 0 # n=0 n=1 n=2
+score FSL_INTERIA_ABUSE 3.899 2.664 3.080 3.106
+score GAPPY_SUBJECT 0.1
+score GEO_QUERY_STRING 0 # n=0 n=1 n=2 n=3
+score GUARANTEED_100_PERCENT 2.699 2.699 2.480 2.699
+score HDR_ORDER_FTSDMCXX_001C 0 # n=0 n=1 n=2 n=3
+score HDR_ORDER_FTSDMCXX_BAT 0 # n=0 n=1 n=2 n=3
+score HEADER_SPAM 2.499 2.499 1.994 0.585
+score HEAD_LONG 0 # n=0 n=1 n=2
+score HELO_DYNAMIC_CHELLO_NL 2.412 1.918 2.019 2.428
+score HELO_DYNAMIC_DHCP 2.602 0.841 1.537 0.206
+score HELO_DYNAMIC_DIALIN 2.629 3.233 2.186 1.366
+score HELO_DYNAMIC_HCC 4.299 2.514 2.931 2.762
+score HELO_DYNAMIC_HEXIP 2.321 0.511 1.773 1.789
+score HELO_DYNAMIC_HOME_NL 2.385 1.530 1.024 1.459
+score HELO_DYNAMIC_IPADDR 2.633 3.243 3.680 1.951
+score HELO_DYNAMIC_IPADDR2 2.815 3.888 3.728 3.607
+score HELO_DYNAMIC_ROGERS 0 # n=0 n=1 n=2 n=3
+score HELO_DYNAMIC_SPLIT_IP 3.031 2.893 4.225 3.482
+score HELO_FRIEND 0 # n=0 n=1 n=2 n=3
+score HELO_LH_HOME 0.001 2.023 0.537 1.736 # n=2
+score HELO_LH_LD 0 # n=0 n=1 n=2 n=3
+score HELO_LOCALHOST 2.639 3.603 2.915 3.828 # n=2
+score HELO_OEM 2.899 2.899 1.234 0.270 # n=2
+score HIDE_WIN_STATUS 0.001
+score HIGH_CODEPAGE_URI 0 # n=0 n=1 n=2
+# score HK_LOTTO 3.599 2.755 2.993 3.599 # Allow GA manage score
+score HK_NAME_DRUGS 4.299 0.001 3.077 0.552
+score HK_RANDOM_ENVFROM 2.638 0.626 1.798 0.001
+score HTML_MIME_NO_HTML_TAG 0.001 0.635 0.001 0.377
+score HTML_MISSING_CTYPE 0 # n=0 n=1 n=2 n=3
+score HTML_SHORT_CENTER 3.799 3.421 2.611 0.743
+score HTML_SHORT_LINK_IMG_1 2.215 0.139 0.480 0.001
+score HTML_SHORT_LINK_IMG_2 1.419 0.259 0.603 0.001
+score HTML_SHORT_LINK_IMG_3 0.691 0.328 0.001 0.148
+score HTML_TITLE_SUBJ_DIFF 1.149 2.171 1.801 2.036
+score HTTP_77 0 # n=0 n=1 n=2 n=3
+score HTTP_ESCAPED_HOST 0.1
+score HTTP_EXCESSIVE_ESCAPES 0.001
+score IMPOTENCE 1.539 2.144 3.028 1.374
+score INVALID_DATE 1.701 0.432 1.200 1.096
+score INVALID_DATE_TZ_ABSURD 0.262 0.632 0.706 0.491
+score INVALID_MSGID 2.602 1.167 1.328 0.568
+score INVALID_TZ_CST 0 # n=0 n=1 n=2 n=3
+score INVALID_TZ_EST 0 # n=0 n=1 n=2 n=3
+score INVESTMENT_ADVICE 0.1
+score IP_LINK_PLUS 0.001 0.001 0.246 0.012
+score JAPANESE_UCE_BODY 0 # n=0 n=1 n=2 n=3
+score JAPANESE_UCE_SUBJECT 0 # n=0 n=1 n=2 n=3
+score JM_I_FEEL_LUCKY 0 # n=0 n=1 n=2
+score JM_RCVD_QMAILV1 0 # n=0 n=1 n=2 n=3
+score JM_TORA_XM 0 # n=0 n=1 n=2 n=3
+score JOIN_MILLIONS 0.1
+score JS_FROMCHARCODE 0 # n=0 n=1 n=2 n=3
+score KB_DATE_CONTAINS_TAB 3.800 3.799 3.799 2.751
+score KB_FAKED_THE_BAT 2.432 3.441 2.008 2.694
+score KB_RATWARE_MSGID 4.099 2.987 2.108 1.700
+score KB_RATWARE_OUTLOOK_MID 4.400 4.400 2.503 1.499
+score KOREAN_UCE_SUBJECT 0 # n=0 n=1 n=2 n=3
+score LIVEFILESTORE 0.1
+score LIVE_PORN 0 # n=0 n=1 n=2 n=3
+score LONGWORDS 2.199 1.844 1.819 2.035
+score LONG_TERM_PRICE 0.001 # n=0 n=1 n=2 n=3
+score LOOPHOLE_1 0 # n=0 n=1 n=2 n=3
+score LOTTERY_1 0.001 1.488 1.630 0.087 # n=2
+score LOTTERY_PH_004470 0.1
+score LOW_PRICE 0.1
+score L_SPAM_TOOL_13 0.539 0.485 0.494 1.333 # n=2
+score MALE_ENHANCE 3.100 3.099 3.099 0.851
+score MARKETING_PARTNERS 0.553 0.235 0.689 0.001
+score MID_DEGREES 0 # n=0 n=1 n=2 n=3
+#score MILLION_USD 3.799 2.477 3.221 3.247
+score MIME_BOUND_DD_DIGITS 3.016 0.349 2.417 1.373
+score MIME_BOUND_DIGITS_15 0.1
+score MIME_BOUND_EQ_REL 0 # n=0 n=1 n=2 n=3
+score MIME_BOUND_MANY_HEX 0 # n=0 n=1 n=2 n=3
+score MIME_HEADER_CTYPE_ONLY 0.1
+score MIME_HTML_ONLY_MULTI 0.000 0.001 0.001 0.001
+score MIME_PHP_NO_TEXT 2.800 2.799 2.799 2.799
+score MISSING_DATE 2.739 1.396 1.800 1.360 # n=0
+score MISSING_HB_SEP 0 # n=0 n=1 n=2
+score MISSING_MID 0.552 0.140 1.199 0.497 # n=1
+score MISSING_MIMEOLE 0.392 1.843 0.571 1.899
+score MISSING_SUBJECT 0.001 1.767 1.300 1.799
+score MONEY_BACK 2.910 2.486 0.601 1.232
+score MORE_SEX 2.799 2.765 2.568 1.413
+score MSGID_DOLLARS_RANDOM 0 # n=0 n=1 n=2 n=3
+score MSGID_FROM_MTA_HEADER 0.401 0.001 0.473 0.001
+score MSGID_RANDY 2.196 2.599 2.599 2.599
+score MSGID_SHORT 0.001 0.337 0.001 0.001
+score MSGID_SPAM_CAPS 2.366 1.997 3.099 3.099
+score MSGID_SPAM_LETTERS 0 # n=0 n=1 n=2 n=3
+score MSGID_YAHOO_CAPS 0.797 1.413 2.278 1.411
+score MSOE_MID_WRONG_CASE 0.993 3.373 0.960 2.584 # n=2
+score MULTI_FORGED 0 # n=0 n=1 n=2 n=3
+#score NA_DOLLARS 3.599
+score NONEXISTENT_CHARSET 0 # n=0 n=1 n=2 n=3
+score NORMAL_HTTP_TO_IP 0.159 0.001 0.795 0.001
+score NOT_ADVISOR 0 # n=0 n=1 n=2 n=3
+score NO_MEDICAL 2.199 1.254 2.199 1.773 # n=0
+score NO_PRESCRIPTION 1.915 1.102 2.280 2.399
+score NULL_IN_BODY 0.511 0.498 2.056 1.596 # n=2
+score NUMERIC_HTTP_ADDR 0.000 0.001 0.001 1.242
+score OBFUSCATING_COMMENT 0.000 0.000 0.001 0.723
+score OBSCURED_EMAIL 0 # n=0 n=1 n=2 n=3
+score ONE_TIME 1.840 1.175 1.830 0.714 # n=0
+score ONLINE_PHARMACY 0.843 2.371 0.008 0.650
+score PERCENT_RANDOM 2.999 2.837 2.983 1.838
+score PLING_QUERY 0.1
+score PREST_NON_ACCREDITED 0 # n=0 n=1 n=2 n=3
+score PREVENT_NONDELIVERY 0 # n=0 n=1 n=2 n=3
+score PRICES_ARE_AFFORDABLE 0.794 0.851 1.112 0.551
+score RATWARE_EGROUPS 1.898 1.258 1.406 1.621
+score RATWARE_HASH_DASH 0 # n=0 n=1 n=2 n=3
+score RATWARE_MOZ_MALFORMED 0 # n=0 n=1 n=2 n=3
+score RATWARE_MPOP_WEBMAIL 1.153 1.338 1.229 1.999 # n=0
+score RATWARE_MS_HASH 2.036 3.692 0.454 2.148
+score RATWARE_OE_MALFORMED 0 # n=0 n=1 n=2 n=3
+score RATWARE_OUTLOOK_NONAME 2.964 0.033 2.685 2.950
+score RATWARE_RCVD_AT 0 # n=0 n=1 n=2 n=3
+score RATWARE_RCVD_PF 0 # n=0 n=1 n=2 n=3
+score RATWARE_ZERO_TZ 2.392 2.535 0.265 1.781 # n=0
+score RCVD_AM_PM 0 # n=0 n=1 n=2 n=3
+score RCVD_BAD_ID 0 # n=0 n=1 n=2 n=3
+score RCVD_DOUBLE_IP_LOOSE 1.150 0.960 1.042 1.012
+score RCVD_DOUBLE_IP_SPAM 2.411 2.777 1.912 1.808
+score RCVD_FAKE_HELO_DOTCOM 2.799 2.389 2.605 1.189
+score RCVD_FORGED_WROTE 0 # n=0 n=1 n=2 n=3
+score RCVD_FORGED_WROTE2 0 # n=0 n=1 n=2 n=3
+#score RCVD_IN_BRBL_LASTEXT 0 1.644 0 1.449 # n=0 n=2
+score RCVD_IN_PSBL 0 2.700 0 2.700 # n=0 n=2
+score RCVD_IN_RP_RNBL 0 1.284 0 1.310 # n=0 n=2
+score RCVD_MAIL_COM 0 # n=0 n=1 n=2 n=3
+score RDNS_DYNAMIC 2.639 0.363 1.663 0.982
+score RDNS_LOCALHOST 3.700 0.969 2.345 0.001
+score RDNS_NONE 2.399 1.274 1.228 0.793
+score REFINANCE_NOW 0 # n=0 n=1 n=2 n=3
+score REFINANCE_YOUR_HOME 0 # n=0 n=1 n=2 n=3
+score REMOVE_BEFORE_LINK 0.1
+score REPLICA_WATCH 3.487 3.164 4.074 3.775
+score REPLYTO_WITHOUT_TO_CC 2.399 1.946 0.607 1.552
+score REPTO_QUOTE_AOL 0 # n=0 n=1 n=2 n=3
+score REPTO_QUOTE_IMS 0 # n=0 n=1 n=2 n=3
+score REPTO_QUOTE_MSN 0 # n=0 n=1 n=2 n=3
+score REPTO_QUOTE_QUALCOMM 0 # n=0 n=1 n=2 n=3
+score REPTO_QUOTE_YAHOO 0.001 0.490 0.001 0.646
+score RUDE_HTML 0 # n=0 n=1 n=2 n=3
+score SB_GIF_AND_NO_URIS 2.199 2.199 2.200 2.199 # n=2
+score SHORT_HELO_AND_INLINE_IMAGE 0.1
+score SHORT_TERM_PRICE 0.001 # n=0 n=1 n=2 n=3
+score SPAMMY_XMAILER 2.650 0.862 1.993 2.491 # n=2
+score SPOOF_COM2COM 0.001
+score SPOOF_COM2OTH 0.001
+score SPOOF_NET2COM 0 # n=0 n=1 n=2 n=3
+score STOCK_ALERT 0 # n=0 n=1 n=2 n=3
+score STOCK_IMG_CTYPE 0.001 0.005 0.001 0.001 # n=2
+score STOCK_IMG_HDR_FROM 0.001 0.001 0.001 0.021 # n=2
+score STOCK_IMG_HTML 0.000 0.028 0.000 0.005 # n=2
+score STOCK_IMG_OUTLOOK 0.001 0.702 0.413 0.190 # n=2
+score STOCK_PRICES 0 # n=0 n=1 n=2 n=3
+score STOX_AND_PRICE 0 # n=0 n=1 n=2 n=3
+score STOX_REPLY_TYPE 1.898 0.212 0.141 0.439 # n=1
+score STOX_REPLY_TYPE_WITHOUT_QUOTES 3.099 1.860 1.629 1.757
+score STRONG_BUY 0 # n=0 n=1 n=2 n=3
+score SUBJECT_DIET 1.927 1.563 0.817 1.466
+score SUBJECT_DRUG_GAP_C 2.108 0.989 1.348 2.140
+score SUBJECT_DRUG_GAP_L 2.799 2.304 1.402 1.561
+score SUBJECT_DRUG_GAP_S 0 # n=0 n=1 n=2 n=3
+#score SUBJECT_DRUG_GAP_VA 0 # n=0 n=1 n=2 n=3
+score SUBJECT_DRUG_GAP_X 0 # n=0 n=1 n=2 n=3
+score SUBJECT_NEEDS_ENCODING 0.498 0.100 0.804 0.049 # n=2
+score SUBJECT_SEXUAL 0 # n=0 n=1 n=2 n=3
+score SUBJ_AS_SEEN 2.711 3.099 3.099 1.461 # n=0
+score SUBJ_BUY 0.594 1.498 0.001 0.639
+score SUBJ_DOLLARS 0.1
+#score SUBJ_YOUR_DEBT 3.299 3.045 1.199 0.987
+score SUBJ_YOUR_FAMILY 2.910 2.999 2.999 2.999
+score TBIRD_SUSP_MIME_BDRY 2.400 2.400 2.399 2.399
+score THEBAT_UNREG 2.599 1.843 2.324 1.524
+score TO_MALFORMED 0.1
+score TRACKER_ID 0.1
+score TT_MSGID_TRUNC 0.748 0.023 1.434 1.448 # n=2
+score TT_OBSCURED_VALIUM 0 # n=0 n=1 n=2 n=3
+score TT_OBSCURED_VIAGRA 0 # n=0 n=1 n=2 n=3
+score TVD_ACT_193 0 # n=0 n=1 n=2 n=3
+score TVD_DEAR_HOMEOWNER 0 # n=0 n=1 n=2 n=3
+score TVD_EB_PHISH 0 # n=0 n=1 n=2 n=3
+score TVD_ENVFROM_APOST 0 # n=0 n=1 n=2 n=3
+score TVD_FINGER_02 0.001
+score TVD_FLOAT_GENERAL 0 # n=0 n=1 n=2 n=3
+score TVD_INCREASE_SIZE 1.529 0.601 1.055 0.001 # n=1
+score TVD_LINK_SAVE 0 # n=0 n=1 n=2 n=3
+score TVD_PH_BODY_ACCOUNTS_PRE 0.001 #changed to 0.001 due to .211 S/O on 2015-05-01 but left due to Meta Use - #1.201 1.527 1.327 2.393 # n=1
+score TVD_PH_REC 0.1
+score TVD_PH_SEC 0.1
+score TVD_PP_PHISH 0 # n=0 n=1 n=2 n=3
+score TVD_QUAL_MEDS 2.697 2.397 2.799 2.483 # n=2
+score TVD_RATWARE_CB 0 # n=0 n=1 n=2 n=3
+score TVD_RATWARE_CB_2 0 # n=0 n=1 n=2 n=3
+score TVD_RATWARE_MSGID_02 0 # n=0 n=1 n=2 n=3
+#score TVD_RCVD_SPACE_BRACKET 0.001 0.001 0.001 0.001 # n=1
+score TVD_SECTION 0 # n=0 n=1 n=2 n=3
+score TVD_SILLY_URI_OBFU 0 # n=0 n=1 n=2 n=3
+score TVD_SPACED_SUBJECT_WORD3 0 # n=0 n=1 n=2 n=3
+score TVD_SUBJ_ACC_NUM 0.1
+score TVD_SUBJ_FINGER_03 0 # n=0 n=1 n=2 n=3
+score TVD_SUBJ_OWE 0 # n=0 n=1 n=2 n=3
+score TVD_SUBJ_WIPE_DEBT 2.599 2.291 2.599 1.004 # n=2
+score TVD_VISIT_PHARMA 1.957 1.196 0.417 1.406 # n=2
+score TVD_VIS_HIDDEN 0 # n=0 n=1 n=2 n=3
+score UNCLAIMED_MONEY 2.699 2.699 2.699 2.427
+score UNCLOSED_BRACKET 2.699 1.329 1.425 1.496
+score UPPERCASE_50_75 0.001 0.791 0.001 0.008
+score UPPERCASE_75_100 1.480 1.189 0.001 0.001
+score URG_BIZ 1.750 0.941 0.568 0.573
+score URI_NOVOWEL 0.500
+#score URI_NO_WWW_BIZ_CGI 2.399 2.399 2.400 2.399 # n=0
+#score URI_NO_WWW_INFO_CGI 2.299 2.299 0.292 2.071
+#score URI_OBFU_WWW 3.099 3.099 2.306 2.475
+score URI_UNSUBSCRIBE 0 # n=0 n=1 n=2 n=3
+#score US_DOLLARS_3 2.599 2.523 1.780 1.754
+score VIA_GAP_GRA 0 # n=0 n=1 n=2 n=3
+score WEIRD_PORT 0.001 0.001 0.097 0.001
+score WEIRD_QUOTING 0.001 0.001 0.001 0.001
+score WITH_LC_SMTP 0 # n=0 n=1 n=2 n=3
+score X_IP 0.001 0.001 0.001 0.001
+score X_MAILER_CME_6543_MSN 2.886 2.004 3.002 3.348
+score X_MESSAGE_INFO 0 # n=0 n=1 n=2 n=3
+score X_PRIORITY_CC 0 # n=0 n=1 n=2 n=3
+score YAHOO_DRS_REDIR 0 # n=0 n=1 n=2 n=3
+score YAHOO_RD_REDIR 0 # n=0 n=1 n=2 n=3
+
+# End of generated scores.  </gen:mutable>
+
+
+# Bug 5700 - performing terribly 6/2019
+#score URI_HEX 2.800 1.313 1.206 1.122
+score URI_HEX 0.1
+
+# Bug 6022, settle at informative score
+score TVD_RCVD_IP 0.001
+score TVD_RCVD_IP4 0.001
+# Bug 6280, 5690, settle at informative score
+score BAD_ENC_HEADER 0.001
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
+score SHORTCIRCUIT 0
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::AccessDB
+score ACCESSDB 0
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+# <gen:mutable>
+score BLANK_LINES_80_90 0 # n=0 n=1 n=2 n=3
+score MPART_ALT_DIFF 2.246 0.724 0.595 0.790
+score MPART_ALT_DIFF_COUNT 2.799 1.483 1.199 1.112
+score TVD_STOCK1 0 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+score TVD_SPACE_RATIO 0.001
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+# <gen:mutable>
+score HTML_COMMENT_SAVED_URL 0.198 0.357 0.899 1.391
+score HTML_COMMENT_SHORT 0 # n=0 n=1 n=2 n=3
+score HTML_EMBEDS 0.001
+score HTML_EXTRA_CLOSE 0.001
+score HTML_FONT_FACE_BAD 0.001
+score HTML_FONT_LOW_CONTRAST 0.713 0.001 0.786 0.001
+score HTML_FONT_SIZE_HUGE 0.001
+score HTML_FONT_SIZE_LARGE 0.001
+score HTML_FORMACTION_MAILTO 0 # n=0 n=1 n=2 n=3
+score HTML_IFRAME_SRC 0 # n=0 n=1 n=2 n=3
+score HTML_IMAGE_ONLY_04 1.680 0.342 1.799 1.172
+score HTML_IMAGE_ONLY_08 0.585 1.781 1.845 1.651
+score HTML_IMAGE_ONLY_12 1.381 1.629 1.400 2.059
+score HTML_IMAGE_ONLY_16 1.969 1.048 1.199 1.092
+score HTML_IMAGE_ONLY_20 2.109 0.700 1.300 1.546
+score HTML_IMAGE_ONLY_24 2.799 1.282 1.328 1.618
+score HTML_IMAGE_ONLY_28 2.799 0.726 1.512 1.404
+score HTML_IMAGE_ONLY_32 2.196 0.001 1.172 0.001
+score HTML_IMAGE_RATIO_02 0.001
+score HTML_IMAGE_RATIO_04 0.001
+score HTML_IMAGE_RATIO_06 0.001 0.001 0.001 0.001
+score HTML_IMAGE_RATIO_08 0.001 0.001 0.001 0.001
+score HTML_OBFUSCATE_05_10 0.601 0.001 0.718 0.260
+score HTML_OBFUSCATE_10_20 0.174 1.162 0.588 0.093
+score HTML_OBFUSCATE_20_30 2.499 2.441 1.449 1.999
+score HTML_OBFUSCATE_30_40 0 # n=0 n=1 n=2 n=3
+score HTML_OBFUSCATE_50_60 0 # n=0 n=1 n=2 n=3
+score HTML_OBFUSCATE_70_80 0 # n=0 n=1 n=2 n=3
+score HTML_OBFUSCATE_90_100 2.000 # n=0 n=1 n=2 n=3   - manually scored per list discussion
+score HTML_BADTAG_40_50 0 # n=0 n=1 n=2 n=3
+score HTML_BADTAG_50_60 0 # n=0 n=1 n=2 n=3
+score HTML_BADTAG_60_70 0 # n=0 n=1 n=2 n=3
+score HTML_BADTAG_90_100 0 # n=0 n=1 n=2 n=3
+score HTML_NONELEMENT_30_40 0.000 0.001 0.308 0.001
+score HTML_NONELEMENT_40_50 0 # n=0 n=1 n=2 n=3
+score HTML_NONELEMENT_60_70 0 # n=0 n=1 n=2 n=3
+score HTML_NONELEMENT_80_90 0 # n=0 n=1 n=2 n=3
+score HTML_TAG_BALANCE_BODY 0.1
+score HTML_TAG_BALANCE_HEAD 0.520 0.000 0.600 0.817
+score HTML_TAG_EXIST_BGSOUND 0 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+
+# HTML control test
+score HTML_MESSAGE 0.001
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+# <gen:mutable>
+score RCVD_IN_BL_SPAMCOP_NET 0 1.246 0 1.347 # n=0 n=2
+score RCVD_IN_IADB_DK 0 -0.223 0 -0.095 # n=0 n=1 n=2
+score RCVD_IN_IADB_DOPTIN_GT50 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_DOPTIN_LT50 0 -0.001 0 -0.001 # n=0 n=1 n=2
+score RCVD_IN_IADB_EDDB 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_EPIA 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_GOODMAIL 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_LISTED 0 -0.380 0 -0.001 # n=0 n=2
+score RCVD_IN_IADB_LOOSE 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_MI_CPEAR 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_MI_CPR_30 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_MI_CPR_MAT 0 -0.332 0 -0.000 # n=0 n=1 n=2
+score RCVD_IN_IADB_NOCONTROL 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_OOO 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_OPTIN 0 -2.057 0 -1.470 # n=0 n=1 n=2
+score RCVD_IN_IADB_OPTIN_GT50 0 -1.208 0 -0.007 # n=0 n=2
+score RCVD_IN_IADB_OPTIN_LT50 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_OPTOUTONLY 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_RDNS 0 -0.167 0 -0.235 # n=0 n=1 n=2
+score RCVD_IN_IADB_SENDERID 0 -0.001 0 -0.001 # n=0 n=2
+score RCVD_IN_IADB_SPF 0 -0.001 0 -0.059 # n=0 n=2
+score RCVD_IN_IADB_UNVERIFIED_1 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_UNVERIFIED_2 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_UT_CPEAR 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_UT_CPR_30 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_IADB_UT_CPR_MAT 0 -0.095 0 -0.001 # n=0 n=1 n=2
+score RCVD_IN_SBL 0 2.596 0 0.141 # n=0 n=2
+score RCVD_IN_SORBS_BLOCK 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_SORBS_DUL 0 0.001 0 0.001 # n=0 n=2
+score RCVD_IN_SORBS_HTTP 0 2.499 0 0.001 # n=0 n=2
+score RCVD_IN_SORBS_MISC 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_SORBS_SMTP 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_SORBS_SOCKS 0 2.443 0 1.927 # n=0 n=2
+#score RCVD_IN_SORBS_SPAM 0 0.5 0 0.5
+score RCVD_IN_SORBS_WEB  0 1.5 0 1.5
+score RCVD_IN_SORBS_ZOMBIE 0 # n=0 n=1 n=2 n=3
+score RCVD_IN_XBL 0 0.724 0 0.375 # n=0 n=2
+score RCVD_IN_PBL 0 3.558 0 3.335 # n=0 n=2
+score RCVD_IN_SBL_CSS 0 3.558 0 3.335 # n=0 n=2
+
+score NO_DNS_FOR_FROM 0 0.379 0 0.001 # n=0 n=2
+# </gen:mutable>
+
+score RCVD_IN_ZEN_BLOCKED_OPENDNS 0 0.001 0 0.001
+score RCVD_IN_ZEN_BLOCKED 0 0.001 0 0.001
+
+# ReturnPath Certified
+# https://www.returnpath.net/internetserviceprovider/certification/
+# CERTIFIED is a subset of SAFE, thus the score is cumulative.
+# -2 + -3 = -5 points for CERTIFIED
+score RCVD_IN_RP_CERTIFIED 0.0 -3.0 0.0 -3.0
+score RCVD_IN_RP_SAFE 0.0 -2.0 0.0 -2.0
+
+# DNSWL is a commercial service that requires payment for servers over 100K queries daily.
+# Unfortunately, they will return true answers for DNS servers they consider abusive so
+# SA Admins must enable these rules manually.
+#
+score RCVD_IN_DNSWL_NONE 0 -0.0001 0 -0.0001
+score RCVD_IN_DNSWL_LOW 0 -0.7 0 -0.7
+score RCVD_IN_DNSWL_MED 0 -2.3 0 -2.3
+score RCVD_IN_DNSWL_HI 0 -5 0 -5
+score RCVD_IN_DNSWL_BLOCKED 0 0.001 0 0.001
+
+# IADB
+score RCVD_IN_IADB_VOUCHED 0 -2.2 0 -2.2
+score RCVD_IN_IADB_DOPTIN 0 -4 0 -4
+score RCVD_IN_IADB_ML_DOPTIN 0 -6 0 -6
+
+# MAPS
+# MAPS is a commercial service.  If you pay for these, assign a score
+# so they will be checked.
+score RCVD_IN_MAPS_RBL 0
+score RCVD_IN_MAPS_DUL 0
+score RCVD_IN_MAPS_RSS 0
+score RCVD_IN_MAPS_OPS 0
+score RCVD_IN_MAPS_NML 0
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+# <gen:mutable>
+score DATE_IN_FUTURE_03_06 3.399 2.426 2.997 3.027
+score DATE_IN_FUTURE_06_12 2.899 0.001 2.222 1.947
+score DATE_IN_FUTURE_12_24 2.603 2.489 3.199 3.199
+score DATE_IN_FUTURE_24_48 2.598 1.248 0.001 2.048
+score DATE_IN_FUTURE_48_96 2.384 0.813 1.078 2.181
+#score DATE_IN_FUTURE_96_XX 2.614 3.028 2.851 3.087
+score DATE_IN_FUTURE_96_XX 0
+score DATE_IN_PAST_03_06 2.399 1.076 1.200 1.592
+score DATE_IN_PAST_06_12 1.699 1.103 1.274 1.543
+score DATE_IN_PAST_12_24 0.001 0.804 1.190 1.049
+score DATE_IN_PAST_24_48 1.109 0.485 0.624 1.340
+score DATE_IN_PAST_96_XX 2.600 2.070 1.233 3.405
+score FORGED_HOTMAIL_RCVD2 0.001 1.187 0.698 0.874
+score FORGED_YAHOO_RCVD 2.397 1.022 2.599 1.630
+score FROM_ILLEGAL_CHARS 2.192 2.059 0.240 0.036
+score HEADER_COUNT_CTYPE 0 # n=0 n=1 n=2 n=3
+score HEADER_COUNT_SUBJECT 0 # n=0 n=1 n=2 n=3
+score HEAD_ILLEGAL_CHARS 0 # n=0 n=1 n=2 n=3
+score LOCALPART_IN_SUBJECT 0.001 0.730 1.199 1.107
+score MISSING_HEADERS 0.915 1.207 1.204 1.021
+score MSGID_OUTLOOK_INVALID 3.899
+score RATWARE_EFROM 0.1
+score RATWARE_NAME_ID 3.099 0.309 3.099 0.247 # n=0
+score SORTED_RECIPS 1.801 2.474 1.791 2.499
+score SUBJ_ALL_CAPS 0.5
+score SUBJ_ILLEGAL_CHARS 0.620 1.105 0.448 1.518
+score SUSPICIOUS_RECIPS 2.499 2.497 2.139 2.510
+score UNRESOLVED_TEMPLATE 3.035 0.716 2.424 1.252
+# </gen:mutable>
+
+# ok_locales
+score CHARSET_FARAWAY_HEADER 3.200
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+# <gen:mutable>
+score DC_GIF_UNO_LARGO 0.001 1.323 0.053 2.176 # n=2
+score DC_IMAGE_SPAM_HTML 0.1
+score DC_IMAGE_SPAM_TEXT 0.1
+score DC_PNG_UNO_LARGO 0.001 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+# <gen:mutable>
+score BASE64_LENGTH_78_79 0.1
+score BASE64_LENGTH_79_INF 1.379 2.019 0.583 1.502 # n=2
+score MIME_BAD_ISO_CHARSET 0 # n=0 n=1 n=2 n=3
+#score MIME_BASE64_BLANKS 0.001 0.001 0.001 0.001
+score MIME_BASE64_TEXT 0.001 0.001 0.001 1.741
+score MIME_HTML_MOSTLY 0.1
+score MIME_HTML_ONLY 0.1
+score MISSING_MIME_HB_SEP 0.001 0.001 0.001 0.001
+score MULTIPART_ALT_NON_TEXT 0 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+score MIME_QP_LONG_LINE 0.001
+score MIMEPART_LIMIT_EXCEEDED 0.001
+
+# ok_locales
+score CHARSET_FARAWAY 3.200
+
+# we dare you
+# score HEAD_LONG 2.5
+# score MISSING_HB_SEP 2.5
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::RelayEval
+# <gen:mutable>
+score NO_RDNS_DOTCOM_HELO 3.100 0.433 3.099 0.823
+score RCVD_HELO_IP_MISMATCH 1.680 1.186 2.362 2.368
+# score RCVD_ILLEGAL_IP 3.399
+score RCVD_ILLEGAL_IP 1.3
+score RCVD_NUMERIC_HELO 0.001 0.865 0.001 1.164
+# </gen:mutable>
+
+# Informational rules about Received header parsing
+score NO_RELAYS -0.001
+score UNPARSEABLE_RELAY 0.001
+score HELO_STATIC_HOST -0.001
+
+# immutable (due to tflags userconf), see bug 5544
+# score ALL_TRUSTED -1.360 -1.440 -1.665 -1.800
+
+endif
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::URIEval
+# <gen:mutable>
+score HTTPS_IP_MISMATCH 0 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+score URI_TRUNCATED 0.001
+endif
+
+###########################################################################
+
+# Scores for tests that are scored manually or with isolated rescore runs.
+# Most are net tests, userconf tests, tests occuring with very low frequency,
+# or tests with many false positives.
+
+# GTUBE - Generic Test for Unsolicited Bulk Email
+score GTUBE 1000.000
+
+# we dare you
+# score FRAGMENTED_MESSAGE 2.5
+# score HIGH_CODEPAGE_URI 2.5
+
+# make the Bayes scores unmutable (as discussed in bug 4505)
+ifplugin Mail::SpamAssassin::Plugin::Bayes
+score BAYES_00  0  0 -1.5   -1.9
+score BAYES_05  0  0 -0.3   -0.5
+score BAYES_20  0  0 -0.001 -0.001
+score BAYES_40  0  0 -0.001 -0.001
+score BAYES_50  0  0  2.0    0.8
+score BAYES_60  0  0  2.5    1.5
+score BAYES_80  0  0  2.7    2.0
+score BAYES_95  0  0  3.2    3.0
+score BAYES_99  0  0  3.8    3.5
+score BAYES_999 0  0  0.2    0.2
+endif
+
+# Informational rules about Received header parsing
+score NO_RECEIVED -0.001
+
+# Informational rule, URI parsing encountered an overlong URI
+
+# Informational rule, typically means corrupt corpus/input
+score NO_HEADERS_MESSAGE 0.001
+
+# ok_locales
+score HTML_CHARSET_FARAWAY 0.500
+score MIME_CHARSET_FARAWAY 2.450
+
+# rescore never changes the whitelist/blacklist scores
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+#score USER_IN_BLACKLIST 100.000 - Moved to 60_whitelist.cf
+#score USER_IN_WHITELIST -100.000 - Moved to 60_whitelist.cf
+#score USER_IN_DEF_WHITELIST -15.000 - Moved to 60_whitelist.cf
+#score USER_IN_BLACKLIST_TO   10.000 - Moved to 60_whitelist.cf
+score URI_HOST_IN_BLACKLIST  100.0
+score URI_HOST_IN_WHITELIST -100.0
+#Removed in bug 7256
+#score HEADER_HOST_IN_BLACKLIST        100.0
+#score HEADER_HOST_IN_WHITELIST -100.0
+
+# not really false positives but the user wants spam!
+#score USER_IN_WHITELIST_TO -6.000 - Moved to 60_whitelist.cf
+score USER_IN_MORE_SPAM_TO -20.000
+score USER_IN_ALL_SPAM_TO -100.000
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::WhiteListSubject
+score SUBJECT_IN_WHITELIST -100
+score SUBJECT_IN_BLACKLIST 100
+endif # Mail::SpamAssassin::Plugin::WhiteListSubject
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+score USER_IN_SPF_WHITELIST -100.000
+score USER_IN_DEF_SPF_WL -7.500
+score ENV_AND_HDR_SPF_MATCH -0.5
+endif # Mail::SpamAssassin::Plugin::SPF
+
+# DKIM
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+score USER_IN_DKIM_WHITELIST -100.000
+score USER_IN_DEF_DKIM_WL -7.500
+score DKIM_SIGNED 0.1
+score DKIM_VALID -0.1
+score DKIM_INVALID 0.1
+score DKIM_VALID_AU -0.1
+
+if (version >= 3.004002)
+score DKIM_VALID_EF -0.1
+endif
+
+score DKIM_VERIFIED 0
+score DKIM_POLICY_SIGNALL 0
+score DKIM_POLICY_SIGNSOME 0
+score DKIM_POLICY_TESTING 0
+score DKIM_ADSP_CUSTOM_LOW 0.001
+score DKIM_ADSP_CUSTOM_MED 0.001
+score DKIM_ADSP_CUSTOM_HIGH 0.001
+score NML_ADSP_CUSTOM_LOW  0 0.7 0 0.7
+score NML_ADSP_CUSTOM_MED  0 1.2 0 0.9
+score NML_ADSP_CUSTOM_HIGH 0 2.6 0 2.5
+# <gen:mutable>
+score DKIM_ADSP_ALL        0 1.1 0 0.8
+score DKIM_ADSP_DISCARD    0 1.8 0 1.8
+score DKIM_ADSP_NXDOMAIN   0 0.8 0 0.9
+# </gen:mutable>
+endif # Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+# <gen:mutable>
+score DKIMDOMAIN_IN_DWL 0 -3.5 0 -3.5
+score DKIMDOMAIN_IN_DWL_UNKNOWN  0 -0.01 0 -0.01
+# </gen:mutable>
+endif
+
+# SPF
+# Note that the benefit for a valid SPF record is deliberately minimal; it's
+# likely that more spammers would quickly move to setting valid SPF records
+# otherwise.  The penalties for an *incorrect* record, however, are large.  ;)
+ifplugin Mail::SpamAssassin::Plugin::SPF
+score SPF_NONE 0.001
+score SPF_HELO_NONE 0.001
+score SPF_PASS -0.001
+score SPF_HELO_PASS -0.001
+# <gen:mutable>
+score SPF_FAIL 0 0.919 0 0.001 # n=0 n=2
+score SPF_HELO_FAIL 0 0.001 0 0.001 # n=0 n=2
+score SPF_HELO_NEUTRAL 0 0.001 0 0.112 # n=0 n=2
+score SPF_HELO_SOFTFAIL 0 0.896 0 0.732 # n=0 n=2
+score SPF_NEUTRAL 0 0.652 0 0.779 # n=0 n=2
+score SPF_SOFTFAIL 0 0.972 0 0.665 # n=0 n=2
+# </gen:mutable>
+endif # Mail::SpamAssassin::Plugin::SPF
+
+# URIDNSBL
+ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+# <gen:mutable>
+#score URIBL_AB_SURBL 0 4.499 0 4.499 # n=0 n=2 - removed bug 7279
+#Changed below from JP to Abuse - bug 7279
+score URIBL_ABUSE_SURBL 0 1.948 0 1.250 # n=0 n=2
+score URIBL_PH_SURBL 0 0.001 0 0.610 # n=0 n=2
+score URIBL_RHS_DOB 0 0.276 0 1.514 # n=0 n=2
+score URIBL_SBL 0 0.644 0 1.623 # n=0 n=2
+score URIBL_CSS 0 0.1 0 0.1
+score URIBL_SBL_A 0 0.1 0 0.1
+score URIBL_CSS_A 0 0.1 0 0.1
+#score URIBL_SC_SURBL 0 0.001 0 0.568 # n=0 n=2 - removed bug 7279
+score URIBL_WS_SURBL 0 1.659 0 1.608 # n=0 n=2
+score URIBL_MW_SURBL 0 1.263 0 1.263
+score URIBL_CR_SURBL 0 1.263 0 1.263
+score URIBL_BLACK 0 1.7 0 1.7 # n=0 n=2
+score URIBL_GREY 0 1.084 0 0.424 # n=0 n=2
+score URIBL_DBL_SPAM   0 2.5 0 2.5
+score URIBL_DBL_PHISH  0 2.5 0 2.5
+score URIBL_DBL_MALWARE        0 2.5 0 2.5
+score URIBL_DBL_BOTNETCC 0 2.5 0 2.5
+score URIBL_DBL_ABUSE_SPAM 0 2.0 0 2.0
+score URIBL_DBL_ABUSE_REDIR 0 0.001 0 0.001
+score URIBL_DBL_ABUSE_PHISH 0 2.5 0 2.5
+score URIBL_DBL_ABUSE_MALW  0 2.5 0 2.5
+score URIBL_DBL_ABUSE_BOTCC 0 2.5 0 2.5
+
+# </gen:mutable>
+# score URIBL_GREY 0.25
+score URIBL_RED 0 0.001 0 0.001
+score URIBL_BLOCKED 0 0.001 0 0.001
+score URIBL_DBL_ERROR 0 0.001 0 0.001
+score URIBL_ZEN_BLOCKED_OPENDNS 0 0.001 0 0.001
+score URIBL_ZEN_BLOCKED 0 0.001 0 0.001
+score URIBL_DBL_BLOCKED_OPENDNS 0 0.001 0 0.001
+score URIBL_DBL_BLOCKED 0 0.001 0 0.001
+endif # Mail::SpamAssassin::Plugin::URIDNSBL
+
+# ReplaceTags
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+# <gen:mutable>
+score FUZZY_AFFORDABLE 0 # n=0 n=1 n=2 n=3
+#score FUZZY_AMBIEN 0.1
+score FUZZY_BILLION 0 # n=0 n=1 n=2 n=3
+score FUZZY_CPILL 0.001 0.001 0.001 0.001
+score FUZZY_CREDIT 1.699 1.413 0.601 1.678
+#score FUZZY_ERECT 0.1
+score FUZZY_GUARANTEE 0 # n=0 n=1 n=2 n=3
+score FUZZY_MEDICATION 0 # n=0 n=1 n=2 n=3
+score FUZZY_MERIDIA 0 # n=0 n=1 n=2 n=3
+score FUZZY_MILLION 0.1
+score FUZZY_MONEY 0 # n=0 n=1 n=2 n=3
+score FUZZY_MORTGAGE 0 # n=0 n=1 n=2 n=3
+score FUZZY_OBLIGATION 0 # n=0 n=1 n=2 n=3
+score FUZZY_OFFERS 0 # n=0 n=1 n=2 n=3
+score FUZZY_PHARMACY 2.960 3.299 1.967 1.353
+score FUZZY_PHENT 2.799 1.647 1.540 2.662 # n=0
+score FUZZY_PRESCRIPT 0 # n=0 n=1 n=2 n=3
+score FUZZY_PRICES 1.821 0.720 2.210 2.311
+score FUZZY_REFINANCE 0 # n=0 n=1 n=2 n=3
+score FUZZY_REMOVE 0 # n=0 n=1 n=2 n=3
+#score FUZZY_ROLEX 0.1
+score FUZZY_SOFTWARE 0 # n=0 n=1 n=2 n=3
+score FUZZY_THOUSANDS 0 # n=0 n=1 n=2 n=3
+score FUZZY_VLIUM 0 # n=0 n=1 n=2 n=3
+score FUZZY_VIOXX 0 # n=0 n=1 n=2 n=3
+score FUZZY_VPILL 0.001 0.494 0.796 1.014
+score FUZZY_XPILL 0.1
+score SUBJECT_FUZZY_CHEAP 0.641 1.831 0.833 0.001 # n=0
+score SUBJECT_FUZZY_MEDS 0 # n=0 n=1 n=2 n=3
+score SUBJECT_FUZZY_PENIS 0 # n=0 n=1 n=2 n=3
+score SUBJECT_FUZZY_TION 0 # n=0 n=1 n=2 n=3
+score SUBJECT_FUZZY_VPILL 0 # n=0 n=1 n=2 n=3
+score TVD_FUZZY_DEGREE 0 # n=0 n=1 n=2 n=3
+score TVD_FUZZY_FINANCE 0 # n=0 n=1 n=2 n=3
+score TVD_FUZZY_FIXED_RATE 0 # n=0 n=1 n=2 n=3
+score TVD_FUZZY_MICROCAP 0 # n=0 n=1 n=2 n=3
+score TVD_FUZZY_PHARMACEUTICAL 0 # n=0 n=1 n=2 n=3
+score TVD_FUZZY_SYMBOL 0 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+endif # Mail::SpamAssassin::Plugin::ReplaceTags
+
+# DCC
+ifplugin Mail::SpamAssassin::Plugin::DCC
+score DCC_CHECK        0  1.1   0  1.1
+score DCC_REPUT_00_12  0 -0.8   0 -0.4
+score DCC_REPUT_13_19  0 -0.1   0 -0.1
+score DCC_REPUT_70_89  0  0.1   0  0.1
+score DCC_REPUT_90_94  0  0.4   0  0.6
+score DCC_REPUT_95_98  0  0.7   0  1.0
+score DCC_REPUT_99_100 0  1.2   0  1.4
+endif # Mail::SpamAssassin::Plugin::DCC
+
+# Pyzor
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+# <gen:mutable>
+score PYZOR_CHECK 0 1.985 0 1.392 # n=0 n=2
+# </gen:mutable>
+endif # Mail::SpamAssassin::Plugin::Pyzor
+
+# Razor2
+ifplugin Mail::SpamAssassin::Plugin::Razor2
+# <gen:mutable>
+score RAZOR2_CHECK 0 1.729 0 0.922 # n=0 n=2
+score RAZOR2_CF_RANGE_51_100 0 2.430 0 1.886 # n=0 n=2
+# </gen:mutable>
+endif # Mail::SpamAssassin::Plugin::Razor2
+
+# TextCat
+ifplugin Mail::SpamAssassin::Plugin::TextCat
+score UNWANTED_LANGUAGE_BODY 2.800
+score BODY_8BITS 1.500
+endif # Mail::SpamAssassin::Plugin::TextCat
+
+# AntiVirus
+ifplugin Mail::SpamAssassin::Plugin::AntiVirus
+score MICROSOFT_EXECUTABLE 0.1
+score MIME_SUSPECT_NAME 0.1
+endif # Mail::SpamAssassin::Plugin::AntiVirus
+
+# VBounce - anti-bounce message ruleset.  All of these are informational,
+# and should not be scored as antispam rules; instead the user needs
+# to detect messages that hit ANY_BOUNCE_MESSAGE, and filter them aside
+# as spurious bounces.
+#
+ifplugin Mail::SpamAssassin::Plugin::VBounce
+score BOUNCE_MESSAGE     0.1
+score CRBOUNCE_MESSAGE   0.1
+score VBOUNCE_MESSAGE    0.1
+score OOOBOUNCE_MESSAGE  0.1
+score ANY_BOUNCE_MESSAGE 0.1
+endif # Mail::SpamAssassin::Plugin::VBounce
+
+# another informational rule: this is for C/R responses to mail the user
+# really did sent -- the opposite of CRBOUNCE_MESSAGE.  some users might
+# like to block all C/R bounces, or filter them separately.
+#
+score CHALLENGE_RESPONSE 0.1
+
+# It's still quite common for non-spam senders to send mail from hosts with
+# no rDNS, or "dynamic-looking" rDNS.  Lock these down to low values;
+# some sites can increase them as a matter of local policy, and they
+# make great fodder for meta rules, too.
+#
+# score RDNS_NONE     0 1.1 0 0.7
+# score RDNS_DYNAMIC  0 0.5 0 0.5
+
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+# <gen:mutable>
+score CTYPE_8SPACE_GIF 0 # n=0 n=1 n=2 n=3
+# </gen:mutable>
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+# <gen:mutable>
+score HTTPS_HTTP_MISMATCH 0.1
+# </gen:mutable>
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+# <gen:mutable>
+score PART_CID_STOCK 0.001 0.001 0.001 0.000 # n=2
+# </gen:mutable>
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+# <gen:mutable>
+score PART_CID_STOCK_LESS 0.000 0.036 0.745 0.894 # n=2
+# </gen:mutable>
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+# <gen:mutable>
+score TVD_FW_GRAPHIC_NAME_LONG 0.001 0.648 0.836 1.293 # n=2
+# </gen:mutable>
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+# <gen:mutable>
+score TVD_FW_GRAPHIC_NAME_MID 0.600 0.001 0.389 0.095 # n=2
+# </gen:mutable>
+endif
+
+# Bug 6155 c115
+score KB_RATWARE_OUTLOOK_08  0
+score KB_RATWARE_OUTLOOK_12  0
+score KB_RATWARE_OUTLOOK_16  0
+score KB_RATWARE_BOUNDARY    0
+
+# MAILSPIKE RBL ENABLED FOR SA3.4 and above - BUG 6400
+if (version >= 3.004000)
+  # FLOATING SCORES FOR GA - adjust after GA to make L3 - L5 linear
+  # Probably adjust up slightly to make up for the "reuse" imperfection
+# <gen:mutable>
+  score RCVD_IN_MSPIKE_ZBI     2.7
+  score RCVD_IN_MSPIKE_L5      2.5
+  score RCVD_IN_MSPIKE_L4      1.7
+  score RCVD_IN_MSPIKE_L3      0.9
+# </gen:mutable>
+  # FIXED SCORES
+  # TEMPORARILY LOWERED - adjust these higher after GA is done
+  # (pending discussion: Welcomelists need scores, but they shouldn't effect the scoring of spam detection rules.)
+  score RCVD_IN_MSPIKE_H3      -0.01
+  score RCVD_IN_MSPIKE_H4      -0.01
+  score RCVD_IN_MSPIKE_H5      -1.0
+  # FIXED SCORES - informational rules, useful only for statistical comparisons
+  score RCVD_IN_MSPIKE_BL      0.01
+  score RCVD_IN_MSPIKE_WL      -0.01
+endif
diff --git a/sa-updates/60_adsp_override_dkim.cf b/sa-updates/60_adsp_override_dkim.cf
new file mode 100644 (file)
index 0000000..3fb16d5
--- /dev/null
@@ -0,0 +1,218 @@
+# SpamAssassin rules file: default DKIM ADSP overrides
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+###########################################################################
+# DKIM ADSP overrides
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+# Later rules override previous, so to override any of the pre-sets here, just
+# declare the domain as unknown, e.g.: 'adsp_override somedomain unknown' .
+#
+# 'discardable' is implied in absence of the second argument.
+
+adsp_override ebay.com
+adsp_override ebay.at
+adsp_override ebay.be
+adsp_override ebay.ca
+adsp_override ebay.ch
+adsp_override ebay.de
+adsp_override ebay.ee
+adsp_override ebay.es
+adsp_override ebay.fr
+adsp_override ebay.hu
+adsp_override ebay.ie
+adsp_override ebay.in
+adsp_override ebay.it
+adsp_override ebay.nl
+adsp_override ebay.ph
+adsp_override ebay.pl
+adsp_override ebay.pt
+adsp_override ebay.se
+adsp_override ebay.co.kr
+adsp_override ebay.co.uk
+adsp_override ebay.com.au
+adsp_override ebay.com.cn
+adsp_override ebay.com.hk
+adsp_override ebay.com.mx
+adsp_override ebay.com.my
+adsp_override ebay.com.sq
+
+adsp_override paypal.com
+adsp_override paypal.co.uk
+
+adsp_override ealerts.bankofamerica.com
+adsp_override alert.bankofamerica.com
+adsp_override americangreetings.com
+adsp_override yahoo.americangreetings.com
+adsp_override msn.americangreetings.com
+adsp_override egreetings.com
+adsp_override bluemountain.com
+adsp_override hallmark.com
+adsp_override update.hallmark.com
+adsp_override *.hallmark.com
+
+adsp_override amazon.com            all
+adsp_override amazon.co.uk          all
+adsp_override amazon.de             all
+adsp_override amazon.fr             all
+adsp_override birthdayalarm.com     all
+adsp_override astrology.com         all
+adsp_override linkedin.com          all
+adsp_override *.linkedin.com        all
+adsp_override facebookmail.com      all
+adsp_override *.greenpeace.org      all
+adsp_override lists.sourceforge.net all
+adsp_override lufthansa.com         all
+adsp_override *.lufthansa.com       all
+adsp_override *.delivery.net        all
+
+adsp_override youtube.com    custom_high
+
+adsp_override google.com     custom_med
+adsp_override gmail.com      custom_med
+adsp_override googlemail.com custom_med
+
+adsp_override yahoo.com      custom_med
+adsp_override yahoo.com.ar   custom_med
+adsp_override yahoo.com.au   custom_med
+adsp_override yahoo.com.br   custom_med
+adsp_override yahoo.com.cn   custom_med
+adsp_override yahoo.com.hk   custom_med
+adsp_override yahoo.com.mx   custom_med
+adsp_override yahoo.com.my   custom_med
+adsp_override yahoo.com.ph   custom_med
+adsp_override yahoo.com.sg   custom_med
+adsp_override yahoo.com.tw   custom_med
+adsp_override yahoo.co.id    custom_med
+adsp_override yahoo.co.in    custom_med
+adsp_override yahoo.co.jp    custom_med
+adsp_override yahoo.co.nz    custom_med
+adsp_override yahoo.co.th    custom_med
+adsp_override yahoo.co.uk    custom_med
+adsp_override yahoo.ca       custom_med
+adsp_override yahoo.cn       custom_med
+adsp_override yahoo.de       custom_med
+adsp_override yahoo.dk       custom_med
+adsp_override yahoo.es       custom_med
+adsp_override yahoo.fr       custom_med
+adsp_override yahoo.gr       custom_med
+adsp_override yahoo.ie       custom_med
+adsp_override yahoo.it       custom_med
+adsp_override yahoo.no       custom_med
+adsp_override yahoo.pl       custom_med
+adsp_override yahoo.se       custom_med
+
+
+# Ignore linting, makes unnecessary lookups
+adsp_override compiling.spamassassin.taint.org unknown
+
+# To effectively disable ADSP network DNS lookups for all other domains:
+# adsp_override *            unknown
+
+
+# Currently few domains publish their signing practices (draft-ietf-dkim-ssp,
+# ADSP), partly because the ADSP draft/rfc is rather new, partly because they
+# think hardly any recipient bothers to check it, and partly for fear that
+# some recipients might lose mail due to problems in their signature validation
+# procedures or mail mangling by mailers beyond their control.
+# 
+# Nevertheless, recipients could benefit by knowing signing practices of a
+# sending (author's) domain, for example to recognize forged mail claiming
+# to be from certain domains which are popular targets for phishing, like
+# financial institutions. Unfortunately, as signing practices are seldom
+# published or are weak, it is hardly justifiable to look them up in DNS.
+# 
+# To overcome this chicken-or-the-egg problem, the adsp_override mechanism
+# allows recipients using SpamAssassin to override published or defaulted
+# ADSP for certain domains. This makes it possible to manually specify a
+# stronger (or weaker) signing practices than a signing domain is willing
+# to publish (explicitly or by default), and also save on a DNS lookup.
+# 
+# Note that ADSP (published or overridden) is only consulted for messages
+# which do not contain a valid DKIM signature from the author's domain.
+# 
+# According to ADSP draft, signing practices can be one of the following:
+# unknown, all and discardable.
+# 
+# unknown: Messages from this domain might or might not have an author
+# signature. This is a default if a domain exists in DNS but no ADSP record
+# is found.
+# 
+# all: All messages from this domain are signed with an Author Signature.
+# 
+# discardable: All messages from this domain are signed with an Author
+# Signature. If a message arrives without a valid Author Signature, the
+# domain encourages the recipient(s) to discard it.
+# 
+# ADSP lookup can also determine that a domain is "out of scope", i.e., the
+# domain does not exist (NXDOMAIN) in the DNS.
+# 
+# To override domain's signing practices in a SpamAssassin configuration file,
+# specify an adsp_override directive for each sending domain to be overridden.
+# 
+# Its first argument is a domain name. Author's domain is matched against it,
+# matching is case insensitive. This is not a regular expression or a file-glob
+# style wildcard, but limited wildcarding is still available: if this argument
+# starts by a "*." (or is a sole "*"), author's domain matches if it is a
+# subdomain (to one or more levels) of the argument. Otherwise (with no
+# leading asterisk) the match must be exact (not a subdomain).
+# 
+# An optional second parameter is one of the following keywords
+# (case-insensitive): nxdomain, unknown, all, discardable,
+# custom_low, custom_med, custom_high.
+# 
+# Absence of this second parameter implies discardable. If a domain is not
+# listed by a adsp_override directive nor does it explicitly publish any
+# ADSP record, then unknown is implied for valid domains, and nxdomain
+# for domains not existing in DNS. (Note: domain validity may be unchecked
+# with current versions of Mail::DKIM, so nxdomain may never turn up.)
+# 
+# The strong setting discardable is useful for domains which are known
+# to always sign their mail and to always send it directly to recipients
+# (not to mailing lists), and are frequent targets of fishing attempts,
+# such as financial institutions. The discardable is also appropriate
+# for domains which are known never to send any mail.
+# 
+# When a message does not contain a valid signature by the author's domain
+# (the domain in a From header field), the signing practices pertaining
+# to author's domain determine which of the following rules fire and
+# contributes its score: DKIM_ADSP_NXDOMAIN, DKIM_ADSP_ALL, DKIM_ADSP_DISCARD,
+# DKIM_ADSP_CUSTOM_LOW, DKIM_ADSP_CUSTOM_MED, DKIM_ADSP_CUSTOM_HIGH. Not more
+# than one of these rules can fire. The last three can only result from a
+# 'signing_practices' as given in a adsp_override directive (not from a
+# DNS lookup), and can serve as a convenient means of providing a different
+# score if scores assigned to DKIM_ADSP_ALL or DKIM_ADSP_DISCARD are not
+# considered suitable for some domains.
+# 
+# As a precaution against firing DKIM_ADSP_* rules when there is a known
+# local reason for a signature verification failure, the domain's ADSP is
+# considered unknown when DNS lookups are disabled or a DNS lookup encountered
+# a temporary problem on fetching a public key from the author's domain.
+# Similarly, ADSP is considered unknown when this plugin did its own signature
+# verification (signatures were not passed to SA by a caller) and a metarule
+# __TRUNCATED was triggered, indicating the caller intentionally passed a
+# truncated message to SpamAssassin, which was a likely reason for a signature
+# verification failure.
+
+endif # Mail::SpamAssassin::Plugin::DKIM
diff --git a/sa-updates/60_awl.cf b/sa-updates/60_awl.cf
new file mode 100644 (file)
index 0000000..6b86007
--- /dev/null
@@ -0,0 +1,31 @@
+# SpamAssassin rules file: auto-whitelist
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+ifplugin Mail::SpamAssassin::Plugin::AWL
+
+header AWL                     eval:check_from_in_auto_whitelist()
+describe AWL                   Adjusted score from AWL reputation of From: address
+tflags AWL                     userconf noautolearn
+priority AWL                    1000
+
+endif # Mail::SpamAssassin::Plugin::AWL
diff --git a/sa-updates/60_bayes_stopwords.cf b/sa-updates/60_bayes_stopwords.cf
new file mode 100644 (file)
index 0000000..443dcc3
--- /dev/null
@@ -0,0 +1,67 @@
+# <@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>
+
+if (version >= 4.000000)
+ if can(Mail::SpamAssassin::Conf::feature_bayes_stopwords)
+  # Danish
+  bayes_stopword_dk (?^:(?:a(?:lle|nden)|bl(?:ev|iver?)|d(?:e(?:nne|res|tte)|isse)|e(?:fter|ller)|h(?:a(?:ns|v(?:de|e))|endes?|v(?:ad|is|or))|ikke|kunne|m(?:ange|eget|ine)|nog(?:et|le)|o(?:gs\xc3\xa5|ver)|s(?:elv|ine|k(?:al|ulle)|\xc3\xa5dan)|under|v(?:ille|\xc3\xa6ret?)))
+
+  # Dutch
+  bayes_stopword_nl (?^:(?:a(?:l(?:les|tijd)|ndere)|d(?:aar|eze|o(?:ch|en|or))|eens|ge(?:en|weest)|h(?:aar|e(?:bben|eft)|ier)|ie(?:mand|ts)|kunnen|m(?:aar|eer|ijn|oet)|n(?:aar|iets?)|o(?:mdat|nder|ver)|reeds|t(?:egen|o(?:ch|en))|v(?:eel|oor)|w(?:a(?:nt|ren)|e(?:rd|zen)|ord(?:en|t))|z(?:elf|i(?:ch|jn)|onder)))
+
+  # German
+  bayes_stopword_de (?:a(?:ber|l(?:le[mnrs]?|so)|nder(?:(?:e[mnrs]?|[mnrs]))?|uch)|bist|d(?:a(?:mit|nn|ss(?:elbe)?|zu)|e(?:in(?:e[mnrs]?)?|mselben|n(?:selben|n)|r(?:er|selben?)|sse(?:lben|n))|i(?:ch|es(?:e(?:(?:lben?|[mnrs]))?)?)|o(?:ch|rt)|urch)|e(?:in(?:e[mnrs]?|ig(?:e[mnrs]?)?|mal)|twas|u(?:ch|er|re[mnrs]?))|ge(?:gen|wesen)|h(?:a(?:ben?|tten?)|i(?:er|nter))|i(?:h(?:nen|re[mnrs]?)|ndem)|je(?:de[mnrs]?|ne[mnrs]?|tzt)|k(?:ann|ein(?:e[mnrs]?)?|\xc3\xb6nn(?:en|te))|m(?:a(?:chen|nche[mnrs]?)|ein(?:e[mnrs]?)?|ich|uss(?:te)?)|n(?:ach|ichts?|och)|o(?:der|hne)|s(?:e(?:hr|in(?:e[mnrs]?)?|lbst)|i(?:ch|nd)|o(?:l(?:che[mnrs]?|l(?:te)?)|n(?:dern|st)))|un(?:ser(?:e[mns]?)?|ter)|viel|w(?:ar(?:en|st)|e(?:i(?:ter|l)|lche[mnrs]?|nn|rden?)|i(?:eder|ll|r(?:st|d))|oll(?:en|te)|\xc3(?:\xa4hrend|\xbcrden?))|zw(?:ar|ischen)|\xc3\xbcber)
+
+  # English
+  bayes_stopword_en (?:a(?:ble|l(?:ready|l)|n[dy]|re)|b(?:ecause|oth)|c(?:an|ome)|e(?:ach|mail|ven)|f(?:ew|irst|or|rom)|give|h(?:a(?:ve|s)|ttp)|i(?:n(?:formation|to)|t\'s)|just|know|l(?:ike|o(?:ng|ok))|m(?:a(?:de|il(?:(?:ing|to))?|ke|ny)|o(?:re|st)|uch)|n(?:eed|o[tw]|umber)|o(?:ff|n(?:ly|e)|ut|wn)|p(?:eople|lace)|right|s(?:ame|ee|uch)|t(?:h(?:at|is|rough|e)|ime)|using|w(?:eb|h(?:ere|y)|ith(?:out)?|or(?:ld|k))|y(?:ears?|ou(?:(?:\'re|r))?))$
+  # bayes_stopword_en (?:a(?:bo(?:ut|ve)|fter|gain(?:st)?|ren(?:\'t)?)|b(?:e(?:cause|en|fore|ing|low|tween)|oth)|couldn(?:\'t)?|d(?:idn(?:\'t)?|o(?:es(?:n(?:\'t)?)?|ing|n\'t|wn)|uring)|each|f(?:rom|urther)|h(?:a(?:dn(?:\'t)?|sn(?:\'t)?|v(?:e(?:n(?:\'t)?)?|ing))|er(?:s(?:elf)?|e)|imself)|i(?:nto|sn\'t|t(?:\'s|self))|just|m(?:ightn(?:\'t)?|o(?:re|st)|ustn(?:\'t)?|yself)|needn(?:\'t)?|o(?:n(?:ce|ly)|ther|urs(?:elves)?|ver)|s(?:ame|h(?:an(?:\'t)?|e\'s|ould(?:(?:\'ve|n(?:\'t)?))?)|ome|uch)|th(?:a(?:t(?:\'ll)?|n)|e(?:irs?|m(?:selves)?|re|se|[ny])|is|ose|rough)|un(?:der|til)|very|w(?:asn(?:\'t)?|ere(?:n(?:\'t)?)?|h(?:at|e(?:re|n)|i(?:ch|le)|om)|i(?:ll|th)|o(?:n\'t|uldn(?:\'t)?))|you(?:\'(?:ll|re|ve|d)|r(?:s(?:el(?:ves|f))?)?))
+
+  # Spanish
+  bayes_stopword_es (?:a(?:lg(?:un(?:as|os)|o)|ntes?)|c(?:o(?:mo|ntra)|ua(?:ndo|l))|d(?:esde|onde|urante)|e(?:ll(?:as?|os)|ntre|r(?:a(?:is|[ns])|es)|s(?:as|os|t(?:a(?:(?:ba(?:(?:is|[ns]))?|d(?:(?:as?|os?))?|mos|ndo|r(?:(?:emos|\xc3(?:\xa1[ns]?|\xa9(?:is)?|\xada(?:(?:is|mos|[ns]))?)))?|s))?|e(?:mos)?|o[sy]?|uv(?:i(?:e(?:r(?:a(?:(?:is|[ns]))?|on)|se(?:(?:is|[ns]))?)|mos|ste(?:is)?|\xc3\xa9(?:ramos|semos))|[eo])|\xc3(?:\xa1(?:(?:bamos|is|[ns]))?|\xa9(?:(?:is|[ns]))?))))|fu(?:e(?:r(?:a(?:(?:is|[ns]))?|on)|se(?:(?:is|[ns]))?)|i(?:mos|ste(?:is)?)|\xc3\xa9(?:ramos|semos))|h(?:a(?:b(?:i(?:d(?:as?|os?)|endo)|r(?:emos|\xc3(?:\xa1[ns]?|\xa9(?:is)?|\xada(?:(?:is|mos|[ns]))?))|\xc3(?:\xa9is|\xada(?:(?:is|mos|[ns]))?))|sta|y(?:a(?:(?:mos|[ns]))?|\xc3\xa1is))|emos|ub(?:i(?:e(?:r(?:a(?:(?:is|[ns]))?|on)|se(?:(?:is|[ns]))?)|mos|ste(?:is)?|\xc3\xa9(?:ramos|semos))|[eo]))|m(?:uchos?|\xc3\xad(?:as|os))|n(?:ada|osotr(?:as|os)|uestr(?:as?|os?))|otr(?:as?|os?)|p(?:ara|ero|o(?:co|rque))|quien(?:es)?|s(?:e(?:a(?:mos|[ns])|ntid(?:(?:as?|os?))?|r(?:emos|\xc3(?:\xa1[ns]?|\xa9(?:is)?|\xada(?:(?:is|mos|[ns]))?))|\xc3\xa1is)|i(?:ente|ntiendo)|o(?:bre|is|mos)|uy(?:as?|os?))|t(?:a(?:mbi\xc3\xa9n|nto)|en(?:dr(?:emos|\xc3(?:\xa1[ns]?|\xa9(?:is)?|\xada(?:(?:is|mos|[ns]))?))|e(?:mos|d)|g(?:a(?:(?:mos|[ns]))?|\xc3\xa1is|o)|i(?:d(?:as?|os?)|endo)|\xc3(?:\xa9is|\xada(?:(?:is|mos|[ns]))?))|iene[ns]?|odos?|u(?:v(?:i(?:e(?:r(?:a(?:(?:is|[ns]))?|on)|se(?:(?:is|[ns]))?)|mos|ste(?:is)?|\xc3\xa9(?:ramos|semos))|[eo])|y(?:as?|os?)))|unos|v(?:osotr(?:as|os)|uestr(?:as?|os?))|\xc3\xa9ramos)
+
+  # Finnish
+  bayes_stopword_fi (?^:(?:e(?:iv\xc3\xa4t|mme|tt(?:\xc3\xa4|e))|h(?:ei(?:d\xc3\xa4[nt]|hin|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4)|\xc3\xa4n(?:e(?:en|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|s(?:s\xc3\xa4|t\xc3\xa4)|[nt])|t\xc3\xa4))|itse|jo(?:hon|i(?:den|hin|ksi|l(?:l[ae]|ta)|na|s(?:sa|ta)|ta)|k(?:si|a)|l(?:l[ae]|ta)|n(?:ka|a)|s(?:sa|ta)|t(?:ka|a))|k(?:anssa|e(?:i(?:den|hin|ksi|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|n\xc3\xa4|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4)|ne(?:en|ksi|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|n(?:\xc3\xa4)?|s(?:s\xc3\xa4|t\xc3\xa4)|t)|t(?:k\xc3\xa4|\xc3\xa4))|oska|u(?:in|ka))|m(?:ei(?:d\xc3\xa4[nt]|hin|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4)|i(?:hin|k(?:si|\xc3\xa4)|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|n(?:k\xc3\xa4|u(?:l(?:l[ae]|ta)|s(?:sa|ta)|un|[ant])|\xc3\xa4)|s(?:s\xc3\xa4|t\xc3\xa4)|t(?:k\xc3\xa4|\xc3\xa4))|u(?:kaan|tta))|n(?:ii(?:den|hin|ksi|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|n(?:\xc3\xa4)?|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4)|oi(?:den|hin|ksi|l(?:l[ae]|ta)|na?|s(?:sa|ta)|ta)|\xc3\xa4(?:i(?:den|hin|ksi|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|n\xc3\xa4|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4)|m\xc3\xa4))|o(?:l(?:e(?:mme|t(?:te)?|n)|i(?:mme|si(?:(?:mme|t(?:te)?|vat|n))?|t(?:te)?|vat|n)|l(?:eet|ut|a))|vat)|poikki|s(?:ek\xc3\xa4|i(?:i(?:hen|n\xc3\xa4|t\xc3\xa4)|ksi|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|n(?:u(?:l(?:l[ae]|ta)|s(?:sa|ta)|un|[ant])|\xc3\xa4)|t\xc3\xa4))|t(?:all\xc3\xa4|ei(?:d\xc3\xa4[nt]|hin|l(?:l(?:\xc3\xa4|e)|t\xc3\xa4)|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4)|uo(?:hon|ksi|l(?:l[ae]|ta)|na?|s(?:sa|ta)|t\xc3\xa4)|\xc3\xa4(?:h\xc3\xa4n|ksi|l(?:le|t\xc3\xa4)|m\xc3\xa4n?|n\xc3\xa4|s(?:s\xc3\xa4|t\xc3\xa4)|t\xc3\xa4))|va(?:an|ikka)))
+
+  # French
+  bayes_stopword_fr (?:a(?:ie(?:nt|s)|ur(?:a(?:(?:i(?:(?:ent|[st]))?|s))?|ez|i(?:ez|ons)|on[st])|v(?:ai(?:ent|[st])|e[cz]|i(?:ez|ons)|ons)|y(?:ant(?:(?:es?|s))?|ez|ons))|dans|e(?:lle|u(?:es|rent|ss(?:e(?:(?:nt|s))?|i(?:ez|ons)))|\xc3\xbb(?:mes|tes))|f(?:u(?:rent|ss(?:e(?:(?:nt|s))?|i(?:ez|ons)))|\xc3\xbb(?:mes|tes))|leur|m(?:ais|\xc3\xaame)|no(?:tre|us)|pour|s(?:er(?:a(?:(?:i(?:(?:ent|[st]))?|s))?|ez|i(?:ez|ons)|on[st])|o(?:i(?:ent|[st])|mmes|nt|y(?:ez|ons))|uis)|vo(?:tre|us)|\xc3(?:\xa9t(?:a(?:i(?:ent|[st])|nt(?:(?:es?|s))?)|i(?:ez|ons)|\xc3\xa9(?:es?|s))|\xaates))
+
+  # Greek
+  bayes_stopword_gr (?^:(?:\xce(?:\xb1(?:\xce(?:\xbb\xce\xbb\xce\xb1|\xbd\xcf\x84\xce\xb9)|\xcf\x85\xcf\x84(?:\xce(?:\xb5\xcf\x83|\xbf(?:(?:\xce\xb9|\xcf(?:\x85\xcf\x83|\x83)))?|[\xb1\xb7])|\xcf\x89\xce\xbd)|\xe1\xbd\x90\xcf\x84(?:\xcf\x8c\xcf\x83|\xe1\xbd\xb8\xcf\x82))|\xb3\xce\xbf\xe1\xbf\xa6\xce\xbd|\xb4\xce\xb1(?:\xce\xaf\xcf\x83|\xe1\xbd\xb6\xcf\x82)|\xb5(?:\xce(?:\xb9(?:\xce(?:\xbc\xce\xb1(?:\xce\xb9|\xcf\x83\xcf\x84\xce\xb5)|\xbd\xce\xb1\xce\xb9)|\xcf\x83(?:\xce\xb1\xce\xb9|\xcf\x84\xce\xb5))|\xba\xce\xb5\xce\xb9\xce\xbd(?:\xce(?:\xb5\xcf\x83|\xbf(?:(?:\xce\xb9|\xcf(?:\x85\xcf\x83|\x83)))?|[\xb1\xb7])|\xcf\x89\xce\xbd))|\xe1\xbc(?:\xb0\xce\xbc(?:\xce\xaf|\xe1\xbd\xb6)|\xb4(?:\xce\xbc\xce\xb9|\xcf\x84\xce\xb5)))|\xb9\xcf\x83\xcf\x89\xcf\x83|\xba\xce\xb1(?:\xce\xaf\xcf\x84\xce\xbf\xce\xb9|\xcf\x84(?:\xce[\xac\xb1]|\xe1\xbd\xb0))|\xbc\xce(?:\xae\xcf\x84\xce\xb5|\xb5\xcf\x84(?:\xce[\xac\xb1]|\xe1\xbd\xb0))|\xbf(?:\xce\xbc\xcf\x89\xcf\x83|\xcf\x80\xcf\x89\xcf\x83|\xe1\xbd(?:\x90(?:\xce\xb4(?:\xce(?:\xb5(?:\xce\xaf\xcf\x83|\xe1\xbd\xb6\xcf\x82)|\xad)|\xe1\xbd\xb2(?:\xce\xbd)?)|\xcf\x87\xe1\xbd\xb6)|\x94\xcf\x84\xce\xb5|\x95\xcf\x84\xcf\x89(?:\xcf[\x82\x83])?|\x97\xcf\x84\xce\xbf\xcf[\x82\x83])))|\xcf(?:\x80(?:\xce(?:\xb1\xcf\x81(?:\xce[\xac\xb1]|\xe1\xbd\xb0)|\xb5\xcf\x81(?:\xce\xaf|\xe1\xbd\xb6)|\xbf(?:\xce\xb9(?:\xce(?:\xb5\xcf\x83|\xbf(?:(?:\xce\xb9|\xcf(?:\x85\xcf\x83|\x83)))?|\xb1)|\xcf\x89\xce\xbd)|\xcf\x84\xce\xb5))|\xcf\x81(?:\xce\xbf\xcf\x83|\xcf\x8c\xcf\x83|\xe1\xbd\xb8\xcf\x82))|\x83\xcf\x84\xce(?:\xb7\xce\xbd|\xbf\xce\xbd)|\x84(?:\xce(?:\xb1\xe1\xbf\x96\xcf\x82|\xb9\xce\xbd\xce\xb1|\xbf(?:\xce\xb9\xce\xbf\xe1\xbf\xa6\xcf\x84\xce\xbf\xcf[\x82\x83]|\xcf(?:\x84\xce\xb5|\x8d\xcf\x83)|\xe1(?:\xbd\xba\xcf\x82|\xbf\x96\xcf\x82)))|\xcf\x8c\xcf\x84\xce\xb5))|\xe1(?:\xbc(?:\x80\xce\xbb\xce\xbb(?:\xce\xac|\xe1\xbd\xb0|\xe2\x80\x99|\')|\x84\xce\xbb\xce\xbb\xce\xbf\xcf[\x82\x83]|\x90(?:\xce\xbc(?:\xcf\x8c\xcf\x83|\xe1\xbd\xb8\xcf\x82)|\xcf(?:\x80\xce\xb5\xe1\xbd\xb6|\x83\xcf\x84\xce\xb9))|\x91\xce\xb1\xcf\x85\xcf\x84\xce\xbf\xe1\xbf\xa6)|\xbd(?:\x85(?:\xce\xb8\xce\xb5\xce\xbd|\xcf(?:\x80\xce\xb5\xcf\x81|\x83\xcf\x84\xce\xb9\xcf[\x82\x83]))|\x91(?:\xce\xbc\xcf\x8c\xcf\x83|\xcf\x80(?:\xce\xad\xcf\x81|\xe1\xbd\xb2\xcf\x81))|\xa5\xcf\x83\xcf\x84\xce\xb5))))
+
+  # Hungarian
+  bayes_stopword_hu (?^:(?:a(?:bban|h(?:hoz|o(?:gy|l))|k(?:ik|kor)|latt|m(?:ely(?:(?:e(?:k(?:(?:ben|et))?|t)|nek))?|i(?:kor|t)|olyan|\xc3\xadg)|nnak|rr(?:\xc3\xb3l|a)|z(?:o(?:n(?:ban)?|k)|t\xc3\xa1n|ut\xc3\xa1n|zal|\xc3\xa9rt))|be(?:l\xc3\xbcl|nne)|c(?:ikk(?:ek(?:et)?)?|sak)|e(?:bben|ddig|g(?:y(?:e(?:tlen|s)|ik|re|\xc3\xa9b)|\xc3\xa9sz)|hhez|kkor|l(?:len|s\xc3\xb5|\xc3(?:\xa9g|\xb5(?:sz\xc3\xb6r|tt)))|milyen|nnek|rre|z(?:e[kn]|zel|\xc3\xa9rt))|fel\xc3\xa9|h(?:anem|iszen|ogy(?:an)?)|i(?:gen|l(?:l(?:etve|\.)|yen(?:kor)?)|s(?:m\xc3\xa9t|on))|jobban|k(?:e(?:ll(?:ett)?|res(?:s\xc3\xbcnk|zt\xc3\xbcl))|\xc3(?:\xadv\xc3\xbcl|\xb6z\xc3(?:\xb6tt|\xbcl)))|le(?:g(?:al\xc3\xa1bb|yen)|het(?:ett)?|nn[ei]|sz|tt)|m(?:a(?:g(?:\xc3\xa1t|a)|jd)|e(?:l(?:lett|y(?:ek)?)|rt)|i(?:kor|lyen|n(?:d(?:en(?:(?:ki|t))?|ig)|t(?:ha)?)|vel|\xc3\xa9rt)|ost|\xc3\xa1sik)|n(?:agy(?:o(?:bb|n))?|ek(?:em|i)|incs|\xc3\xa9(?:h(?:\xc3\xa1ny|a)|lk\xc3\xbcl))|olyan|pe(?:dig|rsze)|s(?:aj\xc3\xa1t|emmi|ok(?:at|kal)|z(?:e(?:mben|rint)|inte|\xc3\xa1m\xc3\xa1ra))|t(?:al\xc3\xa1n|e(?:h\xc3\xa1t|ljes)|ov\xc3\xa1bb(?:\xc3\xa1)?|\xc3\xb6bb)|u(?:gyanis|t(?:ols\xc3\xb3|\xc3\xa1na?))|v(?:a(?:gy(?:(?:is|ok))?|l(?:a(?:ki|mi(?:nt)?)|\xc3\xb3)|nnak)|ele|is(?:sza|zont)|ol(?:na|t(?:(?:a[km]|unk))?))|\xc3(?:\xa1ltal(?:\xc3\xa1ban)?|\xa9ppen|\xb5ket|\xb6ssze|\xbaj(?:abb|ra))))
+
+  # Italian
+  bayes_stopword_it (?:a(?:bbia(?:(?:mo|no|te))?|gli|ll[aeo]|nche|v(?:e(?:mmo|ndo|s(?:s(?:e(?:ro)?|i(?:mo)?)|t[ei])|te|v(?:a(?:(?:mo|no|te))?|[io]))|r(?:a(?:nno|i)|e(?:bbe(?:ro)?|m(?:mo|o)|st[ei]|te|i)|\xc3[\xa0\xb2])|ut[aeio]))|co(?:me|ntro)|d(?:a(?:gli?|ll[aeo]?)|e(?:gli?|ll[aeo]?)|ove)|e(?:bb(?:e(?:ro)?|i)|ra(?:no|va(?:mo|te))|ssendo)|f(?:a(?:c(?:ci(?:a(?:(?:mo|no|te))?|o)|e(?:mmo|ndo|s(?:s(?:e(?:ro)?|i(?:mo)?)|t[ei])|v(?:a(?:(?:mo|no|te))?|[io])))|nno|r(?:a(?:nno|i)|e(?:bbe(?:ro)?|m(?:mo|o)|st[ei]|te|i)|\xc3[\xa0\xb2]))|ec(?:e(?:ro)?|i)|os(?:s(?:e(?:ro)?|i(?:mo)?)|t[ei])|u(?:mmo|rono))|hanno|loro|miei|n(?:e(?:gli?|ll[aeo]?)|ostr[aeio])|perch\xc3\xa9|qu(?:a(?:le|nt[aeio])|e(?:ll[aeio]|st[aeio]))|s(?:ar(?:a(?:nno|i)|e(?:bbe(?:ro)?|m(?:mo|o)|st[ei]|te|i)|\xc3[\xa0\xb2])|i(?:a(?:mo|no|te)|ete)|ono|t(?:a(?:n(?:do|no)|r(?:a(?:nno|i)|e(?:bbe(?:ro)?|m(?:mo|o)|st[ei]|te|i)|\xc3[\xa0\xb2])|v(?:a(?:(?:mo|no|te))?|[io])|i)|e(?:mmo|s(?:s(?:e(?:ro)?|i(?:mo)?)|t[ei])|tt(?:e(?:ro)?|i))|ia(?:(?:mo|no|te))?)|u(?:gli?|ll[aeo]?|oi))|tu(?:oi|tt[io])|vostr[aeio])
+
+ # Norwegian
+ bayes_stopword_no (?^:(?:alle|b(?:are|egge|l(?:ei|i(?:tt|r))|\xc3\xa5de)|d(?:e(?:i(?:r(?:es|a)|m)|nne|res?|tte)|i(?:sse|tt)|ykk(?:ar)?)|e(?:itt|lle[rs]|tter)|fordi|h(?:a(?:dde|ns)|enn(?:ar|es?)|o(?:nom|ss(?:en)?)|v(?:e[mr]|i(?:lken?|s)|or(?:(?:dan|for))?))|i(?:kk(?:je|e)|n(?:g(?:en|i)|kje|ni))|k(?:or(?:leis|so)|unne|v(?:ar(?:helst)?|en|ifor))|m(?:ange|e(?:dan|get|llom)|i(?:ne|tt)|ykje)|no(?:en|k(?:o[nr]?|re|a))|o(?:gs\xc3\xa5|ver)|s(?:amme|elv|i(?:d(?:an|en)|ne|tt)|j\xc3\xb8l|k(?:al|ulle)|lik|om(?:me|t)|\xc3\xa5nn)|uten|v(?:arte?|er(?:te|e)|ille|or[est]|\xc3\xa6r[et])))
+
+ # Portuguese
+ bayes_stopword_pt (?^:(?:aqu(?:el(?:as?|es?)|ilo)|como|de(?:l(?:as?|es?)|pois)|e(?:l(?:as|es)|ntre|ram|s(?:s(?:as?|es?)|t(?:a(?:(?:mos|vam?|s))?|e(?:(?:ja(?:m(?:os)?)?|ve|s))?|iv(?:e(?:(?:mos|r(?:(?:am?|em|mos))?|ssem?))?|\xc3\xa9(?:ramos|ssemos))|ou|\xc3(?:\xa1(?:vamos)?|\xa3o))))|f(?:o(?:mos|r(?:am?|em|mos)|ssem?)|\xc3\xb4(?:ramos|ssemos))|h(?:a(?:ja(?:m(?:os)?)?|vemos)|ouv(?:e(?:(?:mos|r(?:(?:am?|e(?:m(?:os)?|i)|iam?|mos|\xc3(?:\xa3o|\xadamos|\xa1)))?|ssem?))?|\xc3\xa9(?:ramos|ssemos)))|is(?:so|to)|lhes|m(?:ais|e(?:smo|us)|inhas?|uito)|n(?:oss(?:as?|os?)|uma)|p(?:ara|el(?:as?|os?))|qu(?:a(?:ndo|l)|em)|s(?:e(?:ja(?:m(?:os)?)?|r(?:e(?:mos|i)|iam?|\xc3(?:\xa3o|\xadamos|\xa1))|us)|omos|uas)|t(?:amb\xc3\xa9m|e(?:mos|nh(?:a(?:m(?:os)?)?|o)|r(?:e(?:mos|i)|iam?|\xc3(?:\xa3o|\xadamos|\xa1))|us|ve)|i(?:nham?|v(?:e(?:(?:mos|r(?:(?:am?|em|mos))?|ssem?))?|\xc3\xa9(?:ramos|ssemos)))|uas|\xc3\xadnhamos)|voc\xc3\xaas?|\xc3\xa9ramos))
+
+ # Russian
+ bayes_stopword_ru (?^:(?:\xd0(?:\xb1(?:\xd0\xbe\xd0\xbb(?:\xd0\xb5\xd0\xb5|\xd1\x8c\xd1\x88\xd0\xb5)|\xd1(?:\x83\xd0\xb4(?:\xd0\xb5\xd1\x82|\xd1\x82\xd0\xbe)|\x8b(?:\xd0\xbb\xd0[\xb0\xb8\xbe]|\xd1\x82\xd1\x8c)))|\xb2(?:\xd0(?:\xb4\xd1\x80\xd1\x83\xd0\xb3|\xb5\xd0\xb4\xd1\x8c|\xbf\xd1\x80\xd0\xbe\xd1\x87\xd0\xb5\xd0\xbc)|\xd1\x81\xd0\xb5(?:\xd0\xb3\xd0(?:\xb4\xd0\xb0|\xbe)|\xd1\x85))|\xb4(?:\xd0\xb0\xd0\xb6\xd0\xb5|\xd1\x80\xd1\x83\xd0\xb3\xd0\xbe\xd0\xb9)|\xb5\xd1\x81(?:\xd0\xbb\xd0\xb8|\xd1\x82\xd1\x8c)|\xb7\xd0(?:\xb0\xd1\x87\xd0\xb5\xd0\xbc|\xb4\xd0\xb5\xd1\x81\xd1\x8c)|\xb8\xd0\xbd\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0|\xba(?:\xd0(?:\xb0\xd0\xba\xd0(?:\xb0\xd1\x8f|\xbe\xd0\xb9)|\xbe\xd0(?:\xb3\xd0\xb4\xd0\xb0|\xbd\xd0\xb5\xd1\x87\xd0\xbd\xd0\xbe))|\xd1\x83\xd0\xb4\xd0\xb0)|\xbb\xd1\x83\xd1\x87\xd1\x88\xd0\xb5|\xbc\xd0(?:\xb5\xd0(?:\xb6\xd0\xb4\xd1\x83|\xbd\xd1\x8f)|\xbd\xd0\xbe\xd0\xb3\xd0\xbe|\xbe\xd0\xb6\xd0(?:\xb5\xd1\x82|\xbd\xd0\xbe))|\xbd\xd0(?:\xb0\xd0(?:\xb4\xd0\xbe|\xba\xd0\xbe\xd0\xbd\xd0\xb5\xd1\x86)|\xb5\xd0(?:\xb3\xd0\xbe|\xbb\xd1\x8c\xd0\xb7\xd1\x8f)|\xb8(?:\xd0(?:\xb1\xd1\x83\xd0\xb4\xd1\x8c|\xba\xd0\xbe\xd0\xb3\xd0\xb4\xd0\xb0)|\xd1\x87\xd0\xb5\xd0\xb3\xd0\xbe))|\xbe\xd0(?:\xb4\xd0\xb8\xd0\xbd|\xbf\xd1\x8f\xd1\x82\xd1\x8c)|\xbf\xd0(?:\xb5\xd1\x80\xd0\xb5\xd0\xb4|\xbe\xd1(?:\x81\xd0\xbb\xd0\xb5|\x82\xd0\xbe\xd0\xbc(?:\xd1\x83)?|\x87\xd1\x82\xd0\xb8)))|\xd1(?:\x80\xd0\xb0\xd0\xb7\xd0\xb2\xd0\xb5|\x81\xd0(?:\xb2\xd0\xbe\xd1\x8e|\xb5\xd0(?:\xb1(?:\xd0\xb5|\xd1\x8f)|\xb9\xd1\x87\xd0\xb0\xd1\x81)|\xbe\xd0\xb2\xd1\x81\xd0\xb5\xd0\xbc)|\x82\xd0(?:\xb0\xd0\xba\xd0\xbe\xd0\xb9|\xb5\xd0(?:\xb1\xd1\x8f|\xbf\xd0\xb5\xd1\x80\xd1\x8c)|\xbe\xd0(?:\xb3\xd0(?:\xb4\xd0\xb0|\xbe)|\xb6\xd0\xb5|\xbb\xd1\x8c\xd0\xba\xd0\xbe))|\x85\xd0\xbe\xd1(?:\x80\xd0\xbe\xd1\x88\xd0\xbe|\x82\xd1\x8c)|\x87(?:\xd0\xb5(?:\xd0\xb3\xd0\xbe|\xd1\x80\xd0\xb5\xd0\xb7)|\xd1(?:\x82\xd0\xbe\xd0\xb1(?:\xd1\x8b)?|\x83\xd1\x82\xd1\x8c))|\x8d\xd1\x82\xd0\xbe(?:\xd0(?:\xb3\xd0\xbe|[\xb9\xbc])|\xd1\x82))))
+
+ # Swedish
+ bayes_stopword_se (?^:(?:all[at]|bl(?:ev|i(?:vit|r))|d(?:e(?:nna|ras|ssa?|tta)|i(?:na|tt))|e(?:fter|ller)|fr\xc3\xa5n|h(?:a(?:de|ns)|ennes?|onom)|i(?:cke|n(?:gen|om|te))|kunde|m(?:ellan|i(?:na|tt)|ycket)|n\xc3\xa5g(?:o[nt]|ra)|s(?:amma|edan|i(?:na|tta)|j\xc3\xa4lv|kulle|\xc3\xa5dan[at]?)|till|u(?:nder|tan)|v(?:ar(?:f\xc3\xb6r|it|je|[ast])|ilk(?:as?|e[nt])|\xc3\xa5r[at])|\xc3\xb6ver))
+
+ # Turkish
+ bayes_stopword_tr (?^:(?:a(?:caba|sl\xc4\xb1nda)|b(?:az\xc4\xb1|elki|ir(?:ka\xc3\xa7|\xc5\x9fey|i))|d(?:aha|efa|iye)|e\xc4\x9fer|gibi|hepsi|i\xc3\xa7in|n(?:as\xc4\xb1l|e(?:den|r(?:de|e(?:de|ye)))|i(?:ye|\xc3\xa7in))|sanki|veya|yani|\xc3\xa7\xc3\xbcnk\xc3\xbc))
+
+ endif
+endif
diff --git a/sa-updates/60_shortcircuit.cf b/sa-updates/60_shortcircuit.cf
new file mode 100644 (file)
index 0000000..fb855a8
--- /dev/null
@@ -0,0 +1,55 @@
+# SpamAssassin rules file: spam and ham shortcircuiting using priorities
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+# SpamAssassin tries hard not to launch DNS queries before priority -100. 
+# If you want to shortcircuit without launching unneeded queries, make sure
+# such rule priority is below -100.
+
+###########################################################################
+
+priority USER_IN_WHITELIST     -1000
+priority USER_IN_DEF_WHITELIST -1000
+priority USER_IN_ALL_SPAM_TO   -1000
+priority SUBJECT_IN_WHITELIST  -1000
+
+priority ALL_TRUSTED            -950
+
+priority SUBJECT_IN_BLACKLIST   -900
+priority USER_IN_BLACKLIST_TO   -900
+priority USER_IN_BLACKLIST      -900
+
+###########################################################################
+
+ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
+
+# override the default X-Spam-Status line from 10_basic.cf to
+# include shortcircuit info.  (TODO: do we need a better way
+# to extend the default templates like this?)
+add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ shortcircuit=_SCTYPE_ autolearn=_AUTOLEARN_ version=_VERSION_"
+
+header SHORTCIRCUIT             eval:check_shortcircuit()
+describe SHORTCIRCUIT           Not all rules were run, due to a shortcircuited rule
+tflags SHORTCIRCUIT             userconf noautolearn
+
+endif # Mail::SpamAssassin::Plugin::Shortcircuit
+
diff --git a/sa-updates/60_txrep.cf b/sa-updates/60_txrep.cf
new file mode 100644 (file)
index 0000000..4a77838
--- /dev/null
@@ -0,0 +1,31 @@
+# SpamAssassin rules file: TxRep reputation system
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+ifplugin Mail::SpamAssassin::Plugin::TxRep
+
+header         TXREP   eval:check_senders_reputation()
+describe       TXREP   Score normalizing based on sender's reputation
+tflags         TXREP   userconf noautolearn
+priority       TXREP   1000
+
+endif # Mail::SpamAssassin::Plugin::TxRep
diff --git a/sa-updates/60_whitelist.cf b/sa-updates/60_whitelist.cf
new file mode 100644 (file)
index 0000000..3fb629e
--- /dev/null
@@ -0,0 +1,234 @@
+# SpamAssassin rules file: default welcomelists
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+###########################################################################
+# Welcomelist rules
+#
+# Note that most of these get 'noautolearn'.  They should not be
+# considered when deciding whether to auto-learn a message, as a
+# user slip-up could result in scribbling side-effects in the bayes
+# db as a result -- which is hard to remedy.
+
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+    #bz7826 renames blacklist to blocklist
+    header USER_IN_BLOCKLIST           eval:check_from_in_blocklist()
+    describe USER_IN_BLOCKLIST         From: address is in the user's block-list
+    tflags USER_IN_BLOCKLIST           userconf nice noautolearn
+    score USER_IN_BLOCKLIST             100.0
+  
+    ifplugin Mail::SpamAssassin::Plugin::RaciallyCharged
+      meta USER_IN_BLACKLIST            (USER_IN_BLOCKLIST)
+      describe USER_IN_BLACKLIST        DEPRECATED: See USER_IN_BLOCKLIST
+      tflags USER_IN_BLACKLIST          userconf nice noautolearn
+      score USER_IN_BLOCKLIST           0.01
+      score USER_IN_BLACKLIST           100.0
+    endif
+  endif
+else
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    header USER_IN_BLOCKLIST           eval:check_from_in_blacklist()
+    describe USER_IN_BLOCKLIST         From: address is in the user's block-list
+    tflags USER_IN_BLOCKLIST           userconf nice noautolearn
+    score USER_IN_BLOCKLIST            0.01
+  
+    meta USER_IN_BLACKLIST             (USER_IN_BLOCKLIST)
+    describe USER_IN_BLACKLIST         DEPRECATED: See USER_IN_BLOCKLIST 
+    tflags USER_IN_BLACKLIST           userconf nice noautolearn
+    score USER_IN_BLACKLIST            100.0
+  endif
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    #bz7826 renames whitelist to welcomelist
+    header USER_IN_WELCOMELIST         eval:check_from_in_welcomelist()
+    describe USER_IN_WELCOMELIST       user is listed in 'welcomelist_from'
+    tflags USER_IN_WELCOMELIST         userconf nice noautolearn
+    score USER_IN_WELCOMELIST           -100.0
+    
+    ifplugin Mail::SpamAssassin::Plugin::RaciallyCharged
+      meta USER_IN_WHITELIST            (USER_IN_WELCOMELIST)
+      describe USER_IN_WHITELIST        DEPRECATED: See USER_IN_WELCOMELIST
+      tflags USER_IN_WHITELIST          userconf nice noautolearn
+      score USER_IN_WELCOMELIST         -0.01
+      score USER_IN_WHITELIST           -100.0
+    endif
+  endif 
+else
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    header USER_IN_WELCOMELIST         eval:check_from_in_whitelist()
+    describe USER_IN_WELCOMELIST       user is listed in 'welcomelist_from'
+    tflags USER_IN_WELCOMELIST         userconf nice noautolearn
+    score USER_IN_WELCOMELIST          -0.01
+  
+    meta USER_IN_WHITELIST             (USER_IN_WELCOMELIST)
+    describe USER_IN_WHITELIST         DEPRECATED: See USER_IN_WELCOMELIST 
+    tflags USER_IN_WHITELIST           userconf nice noautolearn
+    score USER_IN_WHITELIST            -100.0
+  endif
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    #bz7826 renames whitelist to welcomelist
+    header USER_IN_DEF_WELCOMELIST     eval:check_from_in_default_welcomelist()
+    describe USER_IN_DEF_WELCOMELIST   From: address is in the default welcome-list
+    tflags USER_IN_DEF_WELCOMELIST     userconf nice noautolearn
+    score USER_IN_DEF_WELCOMELIST       -15.0
+  
+    ifplugin Mail::SpamAssassin::Plugin::RaciallyCharged
+      meta USER_IN_DEF_WHITELIST       (USER_IN_DEF_WELCOMELIST)
+      describe USER_IN_DEF_WHITELIST   DEPRECATED: See USER_IN_WELCOMELIST 
+      tflags USER_IN_DEF_WHITELIST     userconf nice noautolearn
+      score USER_IN_DEF_WELCOMELIST     -0.01
+      score USER_IN_DEF_WHITELIST       -15.0
+    endif
+  endif
+else
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    header USER_IN_DEF_WELCOMELIST     eval:check_from_in_default_whitelist()
+    describe USER_IN_DEF_WELCOMELIST   From: address is in the default welcome-list
+    tflags USER_IN_DEF_WELCOMELIST     userconf nice noautolearn
+    score USER_IN_DEF_WELCOMELIST       -0.01
+  
+    meta USER_IN_DEF_WHITELIST         (USER_IN_DEF_WELCOMELIST)
+    describe USER_IN_DEF_WHITELIST             DEPRECATED: See USER_IN_DEF_WELCOMELIST 
+    tflags USER_IN_DEF_WHITELIST               userconf nice noautolearn
+    score USER_IN_DEF_WHITELIST                -15.0
+  endif
+endif
+  
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    #bz7826 renames blacklist to blocklist
+    header USER_IN_BLOCKLIST_TO                eval:check_to_in_blocklist()
+    describe USER_IN_BLOCKLIST_TO       User is listed in 'blocklist_to'
+    tflags USER_IN_BLOCKLIST_TO                userconf nice noautolearn
+    score USER_IN_BLOCKLIST             10.0
+    
+    ifplugin Mail::SpamAssassin::Plugin::RaciallyCharged
+      meta USER_IN_BLACKLIST_TO                (USER_IN_BLOCKLIST_TO)
+      describe USER_IN_BLACKLIST_TO    DEPRECATED: See USER_IN_BLOCKLIST_TO
+      tflags USER_IN_BLACKLIST_TO      userconf nice noautolearn
+      score USER_IN_BLOCKLIST_TO        0.01
+      score USER_IN_BLACKLIST_TO        10.0
+    endif
+  endif
+else
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    header USER_IN_BLOCKLIST_TO                eval:check_to_in_blacklist()
+    describe USER_IN_BLOCKLIST_TO      User is listed in 'blocklist_to'
+    tflags USER_IN_BLOCKLIST_TO                userconf nice noautolearn
+    score USER_IN_BLOCKLIST_TO         0.01
+  
+    meta USER_IN_BLACKLIST_TO          (USER_IN_BLOCKLIST_TO)
+    describe USER_IN_BLACKLIST_TO      DEPRECATED: See USER_IN_BLOCKLIST_TO
+    tflags USER_IN_BLACKLIST_TO        userconf nice noautolearn
+    score USER_IN_BLACKLIST_TO         10.0
+  endif
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    #bz7826 renames whitelist to welcomelist
+    header USER_IN_WELCOMELIST_TO      eval:check_to_in_welcomelist()
+    describe USER_IN_WELCOMELIST_TO    User is listed in 'welcomelist_to'
+    tflags USER_IN_WELCOMELIST_TO      userconf nice noautolearn
+    score USER_IN_WELCOMELIST_TO        -6.0
+  
+    ifplugin Mail::SpamAssassin::Plugin::RaciallyCharged
+      meta USER_IN_WHITELIST_TO         (USER_IN_WELCOMELIST_TO)
+      describe USER_IN_WHITELIST_TO     DEPRECATED: See USER_IN_WELCOMELIST_TO
+      tflags USER_IN_WHITELIST_TO       userconf nice noautolearn
+      score USER_IN_WELCOMELIST_TO     -0.01
+      score USER_IN_WHITELIST_TO        -6.0
+    endif
+  endif
+else
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    header USER_IN_WELCOMELIST_TO      eval:check_to_in_whitelist()
+    describe USER_IN_WELCOMELIST_TO    User is listed in 'welcomelist_to'
+    tflags USER_IN_WELCOMELIST_TO      userconf nice noautolearn
+    score USER_IN_WELCOMELIST_TO       -0.01
+  
+    meta USER_IN_WHITELIST_TO          (USER_IN_WELCOMELIST_TO)
+    describe USER_IN_WHITELIST_TO      DEPRECATED: See USER_IN_WELCOMELIST_TO
+    tflags USER_IN_WHITELIST_TO                userconf nice noautolearn
+    score USER_IN_WHITELIST_TO         -6.0
+  endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+  header USER_IN_MORE_SPAM_TO     eval:check_to_in_more_spam()
+  describe USER_IN_MORE_SPAM_TO   User is listed in 'more_spam_to'
+  tflags USER_IN_MORE_SPAM_TO     userconf nice noautolearn
+
+  header USER_IN_ALL_SPAM_TO      eval:check_to_in_all_spam()
+  describe USER_IN_ALL_SPAM_TO    User is listed in 'all_spam_to'
+  tflags USER_IN_ALL_SPAM_TO      userconf nice noautolearn
+endif
+
+if (version >= 3.004000)
+  ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+    body      URI_HOST_IN_BLACKLIST eval:check_uri_host_in_blacklist()
+    describe  URI_HOST_IN_BLACKLIST Host or Domain is listed in the user's URI black-list
+    tflags    URI_HOST_IN_BLACKLIST userconf noautolearn
+    
+    body      URI_HOST_IN_WHITELIST eval:check_uri_host_in_whitelist()
+    describe  URI_HOST_IN_WHITELIST Host or Domain is listed in the user's URI white-list
+    tflags    URI_HOST_IN_WHITELIST userconf nice noautolearn
+    
+    # Bug 7256, using a header rule with an eval() function does not work the way
+    # this was intended.
+    
+    # header    HEADER_HOST_IN_BLACKLIST eval:check_uri_host_listed('BLACK')
+    # describe  HEADER_HOST_IN_BLACKLIST Host or Domain in header is listed in the user's URI black-list
+    # tflags    HEADER_HOST_IN_BLACKLIST userconf noautolearn
+    
+    # header    HEADER_HOST_IN_WHITELIST eval:check_uri_host_listed('WHITE')
+    # describe  HEADER_HOST_IN_WHITELIST Host or Domain in header is listed in the user's URI white-list
+    # tflags    HEADER_HOST_IN_WHITELIST userconf nice noautolearn
+  endif
+endif
+
+###########################################################################
+# Default welcomelists.  These should be addresses which send mail that is often
+# tagged (incorrectly) as spam; it also helps that they be addresses of big
+# companies with lots of lawyers, so if spammers impersonate them, they'll get
+# into big trouble, so it doesn't provide a shortcut around SpamAssassin.
+#
+# Welcomelist and blocklist addresses are now file-glob-style patterns, so
+# "friend@somewhere.com", "*@isp.com", or "*.domain.net" will all work.
+#
+# Please do not add unmoderated public mailing lists here.  They are
+# too easily abused by spammers.
+
+# Should really not be used these days, use def_welcomelist_auth if possible.
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+  # def_welcomelist_from_rcvd  *@foo.com  foo.com
+
+endif
diff --git a/sa-updates/60_whitelist_auth.cf b/sa-updates/60_whitelist_auth.cf
new file mode 100644 (file)
index 0000000..a0020d3
--- /dev/null
@@ -0,0 +1,2003 @@
+# SpamAssassin rules file: default SPF and DKIM whitelists
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+###########################################################################
+# SPF and DKIM whitelist rules
+
+if (version >= 3.003000)
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+
+###########################################################################
+# These should be primarily envelope-from addresses which send mail that is
+# often tagged (incorrectly) as spam or high-profile domains that are common
+# targets of spoofing.
+# These senders should be considered trusted following proper opt-in and
+# opt-out practices, publish abuse reporting procedures, and handle reports
+# of abuse promptly.
+#
+# Welcomelist and blocklist addresses are now file-glob-style patterns, so
+# "friend@somewhere.com", "*@isp.com", or "*.domain.net" will all work.
+#
+#
+# IMPORTANT: Changes are needed in two places to support older versions of 
+# SA.  Change the def_welcomelist_auth entry and search "older" and change 
+# the previous config entries in unison.
+
+def_welcomelist_auth *@apache.org
+def_welcomelist_auth *@*.apache.org
+
+# Lists with good SPF
+def_welcomelist_auth *@lists.in.gov
+def_welcomelist_auth *@listserv.syr.edu
+def_welcomelist_auth *@list.indiana.edu
+def_welcomelist_auth *@lists.asu.edu
+def_welcomelist_auth *@lists.mailscanner.info
+def_welcomelist_auth *@lists.wisc.edu
+
+# High profile targets for spoofing
+def_welcomelist_auth *@facebookmail.com
+def_welcomelist_auth *@*.facebookmail.com
+def_welcomelist_auth *@google.com
+def_welcomelist_auth *@accounts.google.com
+def_welcomelist_auth *@walmart.com
+def_welcomelist_auth *@*.walmart.com
+def_welcomelist_auth *@*.usaa.com
+def_welcomelist_auth *@citi.com
+def_welcomelist_auth *@*.citi.com
+def_welcomelist_auth *@chase.com
+def_welcomelist_auth *@*.chase.com
+def_welcomelist_auth *@*.dropboxmail.com
+def_welcomelist_auth *@wellsfargo.com
+def_welcomelist_auth *@*.wellsfargo.com
+def_welcomelist_auth *@bankofamerica.com
+def_welcomelist_auth *@*.bankofamerica.com
+def_welcomelist_auth *@ally.com
+def_welcomelist_auth *@*.ally.com
+def_welcomelist_auth *@postmaster.aol.com
+def_welcomelist_auth *@usbank.com
+def_welcomelist_auth *@*.usbank.com
+def_welcomelist_auth *@firsttennessee.com
+def_welcomelist_auth *@usps.gov
+def_welcomelist_auth *@*.usda.gov
+def_welcomelist_auth *@instagram.com
+def_welcomelist_auth *@*.instagram.com
+def_welcomelist_auth *@indeedemail.com
+def_welcomelist_auth *=pkginfo@ups.com
+def_welcomelist_auth mcinfo@ups.com
+def_welcomelist_auth *@fedex.com
+def_welcomelist_auth *@*.fedex.com
+def_welcomelist_auth americanexpress@aexpfeedback.com
+def_welcomelist_auth *@capitalone.com
+def_welcomelist_auth *@*.capitalone.com
+def_welcomelist_auth *@*.capitaloneemail.com
+def_welcomelist_auth *@*.khanacademy.org
+def_welcomelist_auth *@*.wordpress.com
+def_welcomelist_auth *@statefarm.com
+def_welcomelist_auth *@*.statefarminfo.com
+def_welcomelist_auth *@*.visa.com
+def_welcomelist_auth *@visapayablesautomation.com
+def_welcomelist_auth *@visadpsmessage.com
+def_welcomelist_auth *@*.pinterest.com
+def_welcomelist_auth *@indeed.com
+def_welcomelist_auth *@docusign.net
+def_welcomelist_auth *@*.docusign.com
+
+# Senders consistently scoring low with advanced tuned SA to help default SA configurations.
+#
+# Criteria to be listed below:
+# - minimum of 100 emails over a week and
+# - use a subdomain or specific left-half address and
+# - not be a human mailbox that can be compromised and
+# - average score for the week is low and
+# - hit SPF_PASS and/or DKIM_VALID_AU and
+# - not hit DMARC_FAIL or DMARC_REJECT (from OpenDMARC milter)
+#
+# These listings are intended to:
+# - promote mass mailer sending from a subdomain
+# - encourage system-generated to be sent from a subdomain
+# - reward senders that send with good SPF, DKIM, and DMARC
+# - allow for phishing/spoofed/fake emails to stand out more
+#   so local rules can be setup to add points without blocking
+#   authentic emails
+#
+def_welcomelist_auth *@*.indeed.com
+def_welcomelist_auth *@*.hyatt.com
+def_welcomelist_auth *@*.sears.com
+def_welcomelist_auth *@*.jcpenney.com
+def_welcomelist_auth *@*.landsend.com
+def_welcomelist_auth *@squaretrade.com
+def_welcomelist_auth *@bn.com
+def_welcomelist_auth *@emailbedbathandbeyond.com
+def_welcomelist_auth *@*.joann.com
+def_welcomelist_auth *@*.dollargeneral.com
+def_welcomelist_auth *@*.talbots.com
+def_welcomelist_auth *@*.wayfair.com
+def_welcomelist_auth *@*.nordstrom.com
+def_welcomelist_auth *@*.zillow.com
+def_welcomelist_auth dillards@dillards.com
+def_welcomelist_auth *@mktgdillards.com
+def_welcomelist_auth *@*.hollisterco.com
+def_welcomelist_auth *@*.us-cert.gov
+def_welcomelist_auth *@*.rei.com
+def_welcomelist_auth *@duluthtradingemail.com
+def_welcomelist_auth *@hilton.com
+def_welcomelist_auth *@*.hilton.com
+def_welcomelist_auth *@*.starwoodhotels.com
+def_welcomelist_auth *@craigslist.org
+def_welcomelist_auth *@*.macys.com
+def_welcomelist_auth *@*.staples.com
+def_welcomelist_auth *@*.fandango.com
+def_welcomelist_auth *@*.fandangonow.com
+def_welcomelist_auth *@*.eddiebauer.com
+def_welcomelist_auth *@*.eastbay.com
+def_welcomelist_auth *@*.samsclub.com
+def_welcomelist_auth *@*.potterybarn.com
+def_welcomelist_auth *@*.travelocity.com
+def_welcomelist_auth *@*.oriental-trading.com
+def_welcomelist_auth *@*.efax.com
+def_welcomelist_auth *@*.spamcop.net
+def_welcomelist_auth noreply@apple.com
+def_welcomelist_auth do_not_reply@apple.com
+def_welcomelist_auth *@*.apple.com
+def_welcomelist_auth *@*.insideapple.com
+def_welcomelist_auth *@*.itunes.com
+def_welcomelist_auth *@*.att-mail.com
+def_welcomelist_auth *@*.vzw.com
+def_welcomelist_auth *@*.vzwshop.com
+def_welcomelist_auth *@*.fandango.com
+def_welcomelist_auth *@*.aa.com
+def_welcomelist_auth *@*.delta.com
+def_welcomelist_auth *@*.southwest.com
+def_welcomelist_auth *@*.southwestvacations.com
+def_welcomelist_auth *@*.spirit-airlines.com
+def_welcomelist_auth *@*.youversion.com
+def_welcomelist_auth *@*.ashleystewart.com
+def_welcomelist_auth *@*.creditkarma.com
+def_welcomelist_auth *@*.creditsesame.com
+def_welcomelist_auth *@*.amazon.com
+def_welcomelist_auth *@*.livingsocial.com
+def_welcomelist_auth *@*.yelp.com
+def_welcomelist_auth *@*.opentable.com
+def_welcomelist_auth *@*.pier1.com
+def_welcomelist_auth *@*.nationalgeographic.com
+def_welcomelist_auth *@*.lessonplanet.com
+def_welcomelist_auth *@*.teacherspayteachers.com
+def_welcomelist_auth *@*.childrensplace.com
+def_welcomelist_auth *@*.uber.com
+def_welcomelist_auth *@*.foxnews.com
+def_welcomelist_auth *@*.cnn.com
+def_welcomelist_auth *@*.walgreens.com
+def_welcomelist_auth *@*.cvs.com
+def_welcomelist_auth *@*.hgtv.com
+def_welcomelist_auth *@*.starz.com
+def_welcomelist_auth *@*.golfballs.com
+def_welcomelist_auth *@*.zales.com
+def_welcomelist_auth *@*.partycity.com
+def_welcomelist_auth *@*.petco.com
+def_welcomelist_auth *@*.nyandcompany.com
+def_welcomelist_auth *@*.govdelivery.com
+def_welcomelist_auth *@*.us-cert.gov
+def_welcomelist_auth *@*.senate.gov
+def_welcomelist_auth *@*.priceline.com
+def_welcomelist_auth *@*.travelzoo.com
+def_welcomelist_auth *@*.uso.org
+def_welcomelist_auth *@*.checksunlimited.com
+def_welcomelist_auth *@*.nytimes.com
+def_welcomelist_auth *@slickdeals.net
+def_welcomelist_auth *@*.cancer.org
+def_welcomelist_auth *@*.pinterest.com
+def_welcomelist_auth *@*.hotwire.com
+def_welcomelist_auth *@*.dominos.com
+def_welcomelist_auth *@*.potterybarn.com
+def_welcomelist_auth *@*.shopstyle.com
+def_welcomelist_auth *@*.mealtrain.com
+def_welcomelist_auth *@*.zazzle.com
+def_welcomelist_auth *@*.finishline.com
+def_welcomelist_auth *@*.rover.com
+def_welcomelist_auth *@*.pandora.com
+def_welcomelist_auth *@*.jcrew.com
+def_welcomelist_auth *@*.lifeway.com
+def_welcomelist_auth *@*.jossandmain.com
+def_welcomelist_auth *@*.maurices.com
+def_welcomelist_auth *@*.flipboard.com
+def_welcomelist_auth *@*.nhl.com
+def_welcomelist_auth *@*.nfl.com
+def_welcomelist_auth *@*.nflshop.com
+def_welcomelist_auth *@*.nba.com
+def_welcomelist_auth *@*.mlb.com
+def_welcomelist_auth *@*.mlblists.com
+def_welcomelist_auth *@*.containerstore.com
+def_welcomelist_auth *@*.fitbit.com
+def_welcomelist_auth *@*.justfab.com
+def_welcomelist_auth *@*.tripadvisor.com
+def_welcomelist_auth *@*.care.com
+def_welcomelist_auth *@*.tommiecopper.com
+def_welcomelist_auth *@*.education.com
+def_welcomelist_auth *@*.target.com
+def_welcomelist_auth *@*.fanatics.com
+def_welcomelist_auth *@*.loft.com
+def_welcomelist_auth *@*.gymboree.com
+def_welcomelist_auth *@*.craylola.com
+def_welcomelist_auth *@*.bathandbodyworks.com
+def_welcomelist_auth *@*.carters.com
+def_welcomelist_auth *@*.fansedge.com
+def_welcomelist_auth *@*.gap.com
+def_welcomelist_auth *@*.gapfactory.com
+def_welcomelist_auth *@*.carnivalcruiselineemail.com
+def_welcomelist_auth *@*.carhartt-email.com
+def_welcomelist_auth *@*.journeys.com
+def_welcomelist_auth *@*.ashleystewart.com
+def_welcomelist_auth *@*.grandhomefurnishings.com
+def_welcomelist_auth *@*.americangreetings.com
+def_welcomelist_auth *@*.ralphlauren.com
+def_welcomelist_auth *@*.catofashions.com
+def_welcomelist_auth *@*.tjmaxx.tjx.com
+def_welcomelist_auth *@*.uso.org
+def_welcomelist_auth *@*.sallybeauty.com
+def_welcomelist_auth *@*.oshkosh.com
+def_welcomelist_auth *@*.dealnews.com
+def_welcomelist_auth *@*.victoriassecret.com
+def_welcomelist_auth *@*.northerntoolemail.com
+def_welcomelist_auth *@*.golfnow.com
+def_welcomelist_auth *@*.keurig.com
+def_welcomelist_auth *@*.bannanarepublicfactory.com
+def_welcomelist_auth *@*.girlscouts.org
+def_welcomelist_auth *@*.zumiez.com
+def_welcomelist_auth *@*.cabelas.com
+def_welcomelist_auth *@*.hbonow.com
+def_welcomelist_auth *@*.menswearhouse.com
+def_welcomelist_auth *@*.brecks.com
+def_welcomelist_auth *@*.jostens.com
+def_welcomelist_auth *@*.josabank.com
+def_welcomelist_auth *@*.charteremails.com
+def_welcomelist_auth *@*.golfdigest.com
+def_welcomelist_auth *@*.neimanmarcusemail.com
+def_welcomelist_auth *@*.bucklemail.com
+def_welcomelist_auth *@*.baskinrobbins.com
+def_welcomelist_auth *@*.draftkings.com
+def_welcomelist_auth *@*.krogeremail.com
+def_welcomelist_auth *@*.lowesforpros.com
+def_welcomelist_auth *@*.campingworld.com
+def_welcomelist_auth *@accountprotection.microsoft.com
+def_welcomelist_auth *@*.dickies.com
+def_welcomelist_auth *@*.stewardship.com
+def_welcomelist_auth *@*.military.com
+def_welcomelist_auth *@*.basecamp.com
+def_welcomelist_auth *@*.savethechildren.org
+def_welcomelist_auth *@*.anthem.com
+def_welcomelist_auth *@*.nyandcompany.com
+def_welcomelist_auth *@*.chicagotribune.com
+def_welcomelist_auth *@*.underarmour.com
+def_welcomelist_auth *@*.discounttire-email.com
+def_welcomelist_auth *@*.mozilla.org
+def_welcomelist_auth *@*.experian.com
+def_welcomelist_auth *@*.wrangler.com
+def_welcomelist_auth *@*.callofduty.com
+def_welcomelist_auth *@*.davidsbridal.com
+def_welcomelist_auth *@*.email-carmax.com
+def_welcomelist_auth *@*.dunkindonuts.com
+def_welcomelist_auth *@*.seaworld.com
+def_welcomelist_auth *@*.lordandtaylor.com
+def_welcomelist_auth *@*.wyndhamrewards.com
+def_welcomelist_auth *@*.hallmark.com
+def_welcomelist_auth *@*.thisoldhouse.com
+def_welcomelist_auth *@*.grubhub.com
+def_welcomelist_auth *@*.saks.com
+def_welcomelist_auth *@*.saksoff5th.com
+def_welcomelist_auth *@*.adidas.com
+def_welcomelist_auth *@*.crocs-email.com
+def_welcomelist_auth *@*.siriusxm.com
+def_welcomelist_auth *@*.officedepot.com
+def_welcomelist_auth *@*.thepamperedchef.com
+def_welcomelist_auth *@*.kirklands.com
+def_welcomelist_auth *@*.biglots.com
+def_welcomelist_auth *@*.hulumail.com
+def_welcomelist_auth *@*.homedepotemail.com
+def_welcomelist_auth *@*.cisco.com
+def_welcomelist_auth *@*.angieslist.com
+def_welcomelist_auth *@*.livingsocial.com
+def_welcomelist_auth *@*.channing-bete.com
+def_welcomelist_auth *@*.accor-mail.com
+def_welcomelist_auth *@*.highlights.com
+def_welcomelist_auth *@*.scholastic.com
+def_welcomelist_auth *@*.olivegarden.com
+def_welcomelist_auth *@*.themailbox.com
+def_welcomelist_auth *@*.steinmart.com
+def_welcomelist_auth *@*.quill.com
+def_welcomelist_auth *@*.netflix.com
+def_welcomelist_auth *@*.expediamail.com
+def_welcomelist_auth *@*.generalmills.com
+def_welcomelist_auth *@*.overstock.com
+def_welcomelist_auth *@*.grammarly.com
+def_welcomelist_auth *@*.tractorsupply.com
+def_welcomelist_auth *@*.hcahealthcare.com
+def_welcomelist_auth *@*.foodservicedirector.com
+def_welcomelist_auth *@*.suntrust.com
+def_welcomelist_auth *@*.doverpublishing.com
+def_welcomelist_auth *@*.thelimited.com
+def_welcomelist_auth *@*.meetup.com
+def_welcomelist_auth *@*.columbia.com
+def_welcomelist_auth *@*.ocharleys.com
+def_welcomelist_auth *@*.ancestry.com
+def_welcomelist_auth *@*.shoecarnival.com
+def_welcomelist_auth *@*.mattel.com
+def_welcomelist_auth *@*.smilereminder.com
+def_welcomelist_auth *@*.newyorktimes.com
+def_welcomelist_auth *@*.booking.com
+def_welcomelist_auth *@*.lids.com
+def_welcomelist_auth *@*.macmillan.com
+def_welcomelist_auth *@*.costco.com
+def_welcomelist_auth *@*.nike.com
+def_welcomelist_auth *@*.xbox.com
+def_welcomelist_auth *@*.politicoemail.com
+def_welcomelist_auth *@*.gamestop.com
+def_welcomelist_auth *@*.dropbox.com
+def_welcomelist_auth *@*.dcsg.com
+#def_welcomelist_auth *@*.robly.com
+def_welcomelist_auth *@*.ncaa.com
+def_welcomelist_auth *@*.lendingclub.com
+def_welcomelist_auth *@*.hotels.com
+def_welcomelist_auth *@*.michaels.com
+def_welcomelist_auth *@*.vistaprint.com
+def_welcomelist_auth *@*.regions.com
+def_welcomelist_auth *@*.dollywood.com
+def_welcomelist_auth *@*.sears-optical.com
+def_welcomelist_auth *@*.e-lenscrafters.com
+def_welcomelist_auth *@*.email-advanceautoparts.com
+def_welcomelist_auth *@*.evernote.com
+def_welcomelist_auth *@*.ebates.com
+def_welcomelist_auth *@*.sylvanlearning.com
+def_welcomelist_auth *@*.ebay.com
+def_welcomelist_auth *@*.officesupply.com
+def_welcomelist_auth *@*.dsw.com
+def_welcomelist_auth *@*.quicken.com
+def_welcomelist_auth *@*.quickenloans.com
+def_welcomelist_auth *@*.harpercollins.com
+def_welcomelist_auth *@*.gofundme.com
+def_welcomelist_auth *@*.peachjar.com
+def_welcomelist_auth *@*.mystubhub.com
+def_welcomelist_auth *@*.hertz.com
+def_welcomelist_auth *@theupsstore.com
+def_welcomelist_auth *@vocabulary.com
+def_welcomelist_auth *@*.spotify.com
+def_welcomelist_auth *@*.musiciansfriend.com
+def_welcomelist_auth *@*.longhornsteakhouse.com
+def_welcomelist_auth *@*.abercrombie.com
+def_welcomelist_auth *@*.lakeside.com
+def_welcomelist_auth *@*.dccc.org
+def_welcomelist_auth *@*.remind.com
+def_welcomelist_auth *@*.swimoutlet.com
+def_welcomelist_auth *@*.visionworks.com
+def_welcomelist_auth *@*.kraftrecipes.com
+def_welcomelist_auth *@*.ebth.com
+def_welcomelist_auth *@*.baker-taylor.com
+def_welcomelist_auth *@*.usafootball.com
+def_welcomelist_auth *@*.ikea-usa.com
+def_welcomelist_auth *@*.jet.com
+def_welcomelist_auth *@*.ezchildtrack.com
+def_welcomelist_auth *@*.twinkl.co.uk
+def_welcomelist_auth *@*.tgw.com
+def_welcomelist_auth *@*.airbnb.com
+def_welcomelist_auth *@*.nea.org
+def_welcomelist_auth *@*.bhg.com
+def_welcomelist_auth *@*.nest.com
+def_welcomelist_auth *@*.colehaan.com
+def_welcomelist_auth *@*.microsoft.com
+def_welcomelist_auth *@*.vanheusen.com
+def_welcomelist_auth *@*.shoppbs.org
+def_welcomelist_auth *@*.roku.com
+def_welcomelist_auth *@*.hearstmags.com
+def_welcomelist_auth *@*.carlsonhotels.com
+def_welcomelist_auth *@*.marykay.com
+def_welcomelist_auth *@*.publix.com
+def_welcomelist_auth *@*.eharmony.com
+def_welcomelist_auth *@*.powerschool.com
+def_welcomelist_auth *@*.dell.com
+def_welcomelist_auth *@*.hp.com
+def_welcomelist_auth *@*.microsoftrewards.com
+def_welcomelist_auth *@*.untuckit.com
+def_welcomelist_auth *@*.adobesystems.com
+def_welcomelist_auth *@*.pumpitupfun.com
+def_welcomelist_auth *@*.payless.com
+def_welcomelist_auth *@*.consumerreports.org
+def_welcomelist_auth *@*.blueapron.com
+def_welcomelist_auth *@*.email-libertymutual.com
+def_welcomelist_auth *@*.marthastewart.com
+def_welcomelist_auth *@*.nm.com
+def_welcomelist_auth *@*.nissanusa.com
+def_welcomelist_auth *@*.discountschoolsupply.com
+def_welcomelist_auth *@*.destinationmaternity.com
+def_welcomelist_auth *@*.calendly.com
+def_welcomelist_auth *@*.healthequity.com
+def_welcomelist_auth *@investordelivery.com
+def_welcomelist_auth *@*.topgolf.com
+def_welcomelist_auth *@logmein.com
+def_welcomelist_auth *@lastpass.com
+def_welcomelist_auth *@*.seabourn.com
+def_welcomelist_auth *@*.execucar.com
+def_welcomelist_auth *@*.intuit.com
+def_welcomelist_auth *@*.build.com
+def_welcomelist_auth *@*.trulia.com
+def_welcomelist_auth *@*.rentalcars.com
+def_welcomelist_auth *@recommendedjobs.com
+def_welcomelist_auth *@*.zendesk.com
+def_welcomelist_auth *@*.advocareemail.com
+def_welcomelist_auth *@*.plenti.com
+def_welcomelist_auth *@*.amolatina.com
+def_welcomelist_auth *@*.accutrain.com
+def_welcomelist_auth *@*.barnesandnoble.com
+def_welcomelist_auth *@*.bookbub.com
+def_welcomelist_auth *@*.gnc.com
+def_welcomelist_auth *@*.avon.com
+def_welcomelist_auth *@*.mymapcorewards.com
+def_welcomelist_auth *@*.teespring.com
+def_welcomelist_auth *@*.bpdriverrewards.com
+def_welcomelist_auth *@*.aenetworks.com
+def_welcomelist_auth *@*.wellsfargoemail.com
+def_welcomelist_auth *@*.ixl.com
+def_welcomelist_auth *@*.digitalocean.com
+def_welcomelist_auth *@*.mohela.com
+def_welcomelist_auth *@*.wish.com
+def_welcomelist_auth *@*.frontrowed.com
+def_welcomelist_auth *@*.goodreads.com
+def_welcomelist_auth *@*.myschoolcast.com
+def_welcomelist_auth *@*.airfarewatchdog.com
+def_welcomelist_auth *@*.express.com
+def_welcomelist_auth *@*.ulta.com
+def_welcomelist_auth *@*.bradsdeals.com
+def_welcomelist_auth *@*.edlio.com
+def_welcomelist_auth *@*.soma.com
+def_welcomelist_auth *@*.mycollegeoptions.org
+def_welcomelist_auth *@*.pch.com
+def_welcomelist_auth *@*.lormanonlinelearning.com
+def_welcomelist_auth *@*.jetsetter.com
+def_welcomelist_auth *@*.ebags.com
+def_welcomelist_auth *@*.titanlamco.com
+def_welcomelist_auth *@*.understood.org
+def_welcomelist_auth *@cvent-planner.com
+def_welcomelist_auth *@remindmemd.com
+def_welcomelist_auth *@*.wizehive.com
+def_welcomelist_auth *@*.potterybarnkids.com
+def_welcomelist_auth *@*.zoosk.com
+def_welcomelist_auth *@*.whitehouseblackmarket.com
+def_welcomelist_auth *@*.iheart.com
+def_welcomelist_auth *@*.testout.com
+def_welcomelist_auth *@*.surveymonkeyuser.com
+def_welcomelist_auth *@*.lumosity.com
+def_welcomelist_auth *@kayak.com
+def_welcomelist_auth *@*.kayak.com
+def_welcomelist_auth *@*.smartertravel.com
+def_welcomelist_auth *@*.discover.com
+def_welcomelist_auth *@*.neamemberbenefits.com
+def_welcomelist_auth *@*.enterprise.com
+def_welcomelist_auth *@*.jessicalondon.com
+def_welcomelist_auth *@*.geico.com
+def_welcomelist_auth *@*.tommy.com
+def_welcomelist_auth *@cignasecure.com
+def_welcomelist_auth *@*.aarp.org
+def_welcomelist_auth *@*.aeropostale.com
+def_welcomelist_auth *@*.zappos.com
+def_welcomelist_auth *@*.redhat.com
+def_welcomelist_auth *@*.freshdesk.com
+def_welcomelist_auth *@*.planningcenteronline.com
+def_welcomelist_auth *@*.ihg.com
+def_welcomelist_auth *@*.opendns.com
+def_welcomelist_auth *@*.loftoutlet.com
+def_welcomelist_auth *@*.hrblock.com
+def_welcomelist_auth *@secureworks.com
+def_welcomelist_auth *@*.secureworks.com
+def_welcomelist_auth *@*.crateandbarrel.com
+def_welcomelist_auth *@*.redbox.com
+def_welcomelist_auth *@*.lowfares.com
+def_welcomelist_auth *@*.rocketloans.com
+def_welcomelist_auth *@*.ganderoutdoors.com
+def_welcomelist_auth *@*.mandarinoriental.com
+def_welcomelist_auth *@*.retailmenot.com
+def_welcomelist_auth *@*.overdrive.com
+def_welcomelist_auth *@*.snapchat.com
+def_welcomelist_auth *@*.cheaptickets.com
+def_welcomelist_auth *@*.1800flowers.com
+def_welcomelist_auth *@*.guitarcenter.com
+def_welcomelist_auth *@*.vmware.com
+def_welcomelist_auth *@*.katespade.com
+def_welcomelist_auth *@*.gerber.com
+def_welcomelist_auth *@*.pandora.net
+def_welcomelist_auth *@*.alibaba.com
+def_welcomelist_auth *@*.kahoot.com
+def_welcomelist_auth *@email-od.com
+def_welcomelist_auth *@gallupmail.com
+def_welcomelist_auth *@*.stenhouse.com
+def_welcomelist_auth *@*.horacemann.com
+def_welcomelist_auth *@bmwusa.com
+def_welcomelist_auth *@*.thumbtack.com
+def_welcomelist_auth *@*.brylanehome.com
+def_welcomelist_auth *@*.bradfordexchange.com
+def_welcomelist_auth *@*.touchofmodern.com
+def_welcomelist_auth *@*.berries.com
+def_welcomelist_auth *@*.reddressboutique.com
+def_welcomelist_auth *@*.progressive.com
+def_welcomelist_auth *@*.forever21.com
+def_welcomelist_auth *@*.consumercrafts.com
+def_welcomelist_auth *@*.epriority.com
+def_welcomelist_auth *@*.schwab.com
+def_welcomelist_auth *@*.wwe.com
+def_welcomelist_auth *@*.coldwatercreek.com
+def_welcomelist_auth *@*.homechef.com
+def_welcomelist_auth *@*.flyfrontier.com
+def_welcomelist_auth *@*.charbroil.com
+def_welcomelist_auth *@*.bludot.com
+def_welcomelist_auth *@*.directgeneral.com
+def_welcomelist_auth *@*.subaru.com
+def_welcomelist_auth *@*.aexp.com
+def_welcomelist_auth *@*.usssa.com
+def_welcomelist_auth *@*.bestwesternrewards.com
+def_welcomelist_auth *@*.email-weightwatchers.com
+def_welcomelist_auth *@*.email-allstate.com
+def_welcomelist_auth *@*.dove.com
+def_welcomelist_auth *@*.teamusa.org
+def_welcomelist_auth *@*.mylife.com
+def_welcomelist_auth *@*.cbssports.com
+def_welcomelist_auth *@*.fingerhut.com
+def_welcomelist_auth *@*.fossil.com
+def_welcomelist_auth *@*.adt.com
+def_welcomelist_auth *@*.23andme.com
+def_welcomelist_auth *@*.fashionnova.com
+def_welcomelist_auth *@*.myfitnesspal.com
+def_welcomelist_auth *@*.zayconfoods.com
+def_welcomelist_auth *@*.housershoes.com
+def_welcomelist_auth *@*.prepsportswear.com
+def_welcomelist_auth *@*.freebiesfrenzy.com
+def_welcomelist_auth *@*.minted.com
+def_welcomelist_auth *@*.kickstarter.com
+def_welcomelist_auth *@*.bluebellwholesale.com
+def_welcomelist_auth tickets@amtrak.com
+def_welcomelist_auth *@*.tyndale.com
+def_welcomelist_auth reservations@druryhotels.com
+def_welcomelist_auth *@*.autopartswarehouse.com
+def_welcomelist_auth *@*.levi.com
+def_welcomelist_auth *@*.echosign.com
+def_welcomelist_auth *@*.carparts.com
+def_welcomelist_auth *@*.jared.com
+def_welcomelist_auth *@*.superjeweler.com
+def_welcomelist_auth *@*.ticketnetwork.com
+def_welcomelist_auth *@*.kay.com
+def_welcomelist_auth *@*.grainger.com
+def_welcomelist_auth *@*.fivebelow.com
+def_welcomelist_auth *@*.destinationxl.com
+def_welcomelist_auth *@*.perfectdeliver.com
+def_welcomelist_auth *@*.buffalowildwings.com
+def_welcomelist_auth *@*.macaronikid.com
+def_welcomelist_auth *@*.marshallsonline.com
+def_welcomelist_auth *@*.nordstromrack.com
+def_welcomelist_auth *@*.kyliecosmetics.com
+def_welcomelist_auth *@*.midwestsports.com
+def_welcomelist_auth *@*.deluxe.com
+def_welcomelist_auth *@*.fidelity.com
+def_welcomelist_auth *@ticketmaster.com
+def_welcomelist_auth *@mozillafoundation.org
+def_welcomelist_auth *@*.uhc.com
+def_welcomelist_auth *@*.sprint.com
+def_welcomelist_auth *@*.rxhealthalerts.com
+def_welcomelist_auth *@*.eventtracker.com
+def_welcomelist_auth *@*.horoscope.com
+def_welcomelist_auth *@*.email-lifetouch.com
+def_welcomelist_auth *@*.evine.com
+def_welcomelist_auth *@*.donorschoose.org
+def_welcomelist_auth noreply@adt.com
+def_welcomelist_auth *@tmomail.net
+def_welcomelist_auth donotreply@dhl.com
+def_welcomelist_auth *@travelodge.co.uk
+def_welcomelist_auth bounce@ryanairemail.com
+def_welcomelist_auth *@*.tpr.gov.uk
+def_welcomelist_auth homedepotreceipt@homedepot.com
+def_welcomelist_auth *@*.lifewaystores.com
+def_welcomelist_auth *@*.paypalcredit.com
+def_welcomelist_auth *@paypal-customerfeedback.com
+def_welcomelist_auth no-reply@flyfrontier.com
+def_welcomelist_auth *@*.canon.com
+def_welcomelist_auth *@*.techtrnds.com
+def_welcomelist_auth *@*.realsimple.com
+def_welcomelist_auth *@espnmail.com
+def_welcomelist_auth *@*.nickjr.com
+def_welcomelist_auth *@*.eschoolnews.com
+def_welcomelist_auth *@*.motosnap.com
+def_welcomelist_auth *@*.gsnutsandmags.com
+def_welcomelist_auth *@*.shutterfly.com
+def_welcomelist_auth *@*.edgenuity.com
+def_welcomelist_auth *@*.goodreads.com
+def_welcomelist_auth *@*.shrm.org
+def_welcomelist_auth *@*.mtshrm.org
+def_welcomelist_auth *@*.gynzy.com
+def_welcomelist_auth *@*.actionnetwork.org
+def_welcomelist_auth *@*.teacherfindr.com
+def_welcomelist_auth *@*.tladoonline.com
+def_welcomelist_auth *@*.aaa.com
+def_welcomelist_auth *@*.woot.com
+def_welcomelist_auth *@*.nsba.org
+def_welcomelist_auth *@*.teamapp.com
+def_welcomelist_auth *@*.act.org
+def_welcomelist_auth *@*.vetsandfamily.com
+def_welcomelist_auth *@*.jeansforvets.org
+def_welcomelist_auth *@*.welcomehomevet.org
+def_welcomelist_auth *@*.readingeggs.com
+def_welcomelist_auth *@*.myschoolcast.com
+def_welcomelist_auth *@*.takethemameal.com
+def_welcomelist_auth *@*.shape.com
+def_welcomelist_auth *@*.videoblocks.com
+def_welcomelist_auth *@*.wifeteachermommy.com
+def_welcomelist_auth *@*.darice.com
+def_welcomelist_auth *@*.everfi.net
+def_welcomelist_auth *@godvinemail.com
+def_welcomelist_auth *@*.doheny.com
+def_welcomelist_auth *@*.nyansa.com
+def_welcomelist_auth *@*.submittable.com
+def_welcomelist_auth *@*.slideshare.net
+def_welcomelist_auth *@*.ocm.com
+def_welcomelist_auth *@*.dji.com
+def_welcomelist_auth *@*.zyngamail.com
+def_welcomelist_auth *@*.costasunglasses.com
+def_welcomelist_auth *@*.baseballexpress.com
+def_welcomelist_auth *@dishemail.com
+def_welcomelist_auth *@*.promgirl.com
+def_welcomelist_auth *@*.ed.gov
+def_welcomelist_auth *@*.carecredit.com
+def_welcomelist_auth *@*.trello.com
+def_welcomelist_auth *@*.shopify.com
+def_welcomelist_auth *@*.iclasspro.com
+def_welcomelist_auth *@mail-fellowesbrands.com
+def_welcomelist_auth *@*.planetfitness.com
+def_welcomelist_auth *@*.shoppinkblush.com
+def_welcomelist_auth *@*.webmdprofessional.com
+def_welcomelist_auth *@*.omadahealth.com
+def_welcomelist_auth *@*.vividseats.com
+def_welcomelist_auth *@*.avis.com
+def_welcomelist_auth *@*.square.com
+def_welcomelist_auth *@*.ruthschris-email.com
+def_welcomelist_auth *@*.zearn.org
+def_welcomelist_auth *@*.careerbuilder.com
+def_welcomelist_auth *@*.kelloggs.com
+def_welcomelist_auth *@*.wunderground.com
+def_welcomelist_auth *@*.silpada.com
+def_welcomelist_auth *@*.toofaced.com
+def_welcomelist_auth *@*.sonicwall.com
+def_welcomelist_auth *@*.bebe.com
+def_welcomelist_auth *@*.discoveryeducation.com
+def_welcomelist_auth *@*.alison.com
+def_welcomelist_auth *@*.livestream.com
+def_welcomelist_auth *@*.rockauto.com
+def_welcomelist_auth *@*.elfcosmetics.com
+def_welcomelist_auth *@*.cars.com
+def_welcomelist_auth *@*.puritan.com
+def_welcomelist_auth *@*.cheddars.com
+def_welcomelist_auth *@*.schoolmessenger.com
+def_welcomelist_auth *@*.pinchme.com
+def_welcomelist_auth *@*.clarksusa.com
+def_welcomelist_auth *@*.smore.com
+def_welcomelist_auth *@*.softball.com
+def_welcomelist_auth *@*.commonsense-email.org
+def_welcomelist_auth *@*.onekingslane.com
+def_welcomelist_auth *@*.elfcosmetics.com
+def_welcomelist_auth *@*.aclj.org
+def_welcomelist_auth *@*.darice.com
+def_welcomelist_auth *@*.shopify.com
+def_welcomelist_auth *@*.doheny.com
+def_welcomelist_auth *@*.improvementscatalog-email.com
+def_welcomelist_auth *@*.promgirl.com
+def_welcomelist_auth *@*.webmdprofessional.com
+def_welcomelist_auth *@*.thrivecausemetics.com
+def_welcomelist_auth *@*.toofaced.com
+def_welcomelist_auth *@*.evanmoor-alerts.com
+def_welcomelist_auth *@*.livestream.com
+def_welcomelist_auth *@*.customerville.com
+def_welcomelist_auth *@*.lmscheckout.com
+def_welcomelist_auth *@*.shop-explorers.com
+def_welcomelist_auth *@*.helpavet.co
+def_welcomelist_auth *@*.aidtroops.com
+def_welcomelist_auth *@*.denindays.org
+def_welcomelist_auth *@*.helpourvets.us
+def_welcomelist_auth *@*.denim-day.com
+def_welcomelist_auth *@*.eldarion.com
+def_welcomelist_auth *@*.wunderground.com
+def_welcomelist_auth *@*.kelloggs.com
+def_welcomelist_auth *@*.portfolium.com
+def_welcomelist_auth *@*.iclasspro.com
+def_welcomelist_auth *@*.socrative.com
+def_welcomelist_auth *@*.vnnsports.net
+def_welcomelist_auth *@*.americauncensored.com
+def_welcomelist_auth *@*.email-allstate.com
+def_welcomelist_auth *@*.omadahealth.com
+def_welcomelist_auth *@*.rei.com
+def_welcomelist_auth *@*.research.net
+def_welcomelist_auth *@*.allinlearning.com
+def_welcomelist_auth *@*.energage.com
+def_welcomelist_auth *@*.aasa.org
+def_welcomelist_auth *@*.constructionclaims.com
+def_welcomelist_auth *@*.nsba.org
+def_welcomelist_auth *@*.jeansdays.com
+def_welcomelist_auth *@*.servicemansupport.org
+def_welcomelist_auth *@*.learningally.org
+def_welcomelist_auth *@*.quill.org
+def_welcomelist_auth *@*.funrewardsforyou.com
+def_welcomelist_auth *@*.digicert.com
+def_welcomelist_auth *@*.venmo.com
+def_welcomelist_auth *@*.bestbuddies.org
+def_welcomelist_auth *@*.ashleydsg.com
+def_welcomelist_auth *@*.homechef.com
+def_welcomelist_auth *@*.morningconsult.com
+def_welcomelist_auth *@*.stewardship.com
+def_welcomelist_auth *@*.salsalabs.org
+def_welcomelist_auth *@*.shop-backinthesaddle.com
+def_welcomelist_auth *@*.bounceexchange.com
+def_welcomelist_auth *@*.tobi.com
+def_welcomelist_auth *@*.makermedia.com
+def_welcomelist_auth *@*.adoptapet.com
+def_welcomelist_auth *@*.wested.org
+def_welcomelist_auth *@*.sfsdata.com
+def_welcomelist_auth *@*.sonicdrivein.com
+def_welcomelist_auth *@*.justflyemail.com
+def_welcomelist_auth *@*.sling.com
+def_welcomelist_auth *@*.zagg.com
+def_welcomelist_auth *@*.turnoutpac.org
+def_welcomelist_auth *@*.whirlpool.com
+def_welcomelist_auth *@*.legendsoflearning.com
+def_welcomelist_auth *@*.gallup.com
+def_welcomelist_auth *@*.ereflect.com
+def_welcomelist_auth *@*.asumag.com
+def_welcomelist_auth *@*.commonblackcollegeapp.com
+def_welcomelist_auth *@*.broadridge.com
+def_welcomelist_auth *@*.greenrope.com
+def_welcomelist_auth *@*.trackwrestling.com
+def_welcomelist_auth *@*.blackboard.com
+def_welcomelist_auth *@*.govdeals.com
+def_welcomelist_auth *@*.shipstation.com
+def_welcomelist_auth *@*.nyansa.com
+def_welcomelist_auth *@*.sciencepubs.org
+def_welcomelist_auth *@*.betabrand.com
+def_welcomelist_auth *@*.hhs.gov
+def_welcomelist_auth *@*.discover.com
+def_welcomelist_auth *@*.bebe.com
+def_welcomelist_auth *@*.homeadvisor.com
+def_welcomelist_auth *@*.handsonaswegrow.com
+def_welcomelist_auth *@*.in.gov
+def_welcomelist_auth *@*.oldchicago.com
+def_welcomelist_auth *@*.globalfitnesschallenge.com
+def_welcomelist_auth *@*.virtualvocations.com
+def_welcomelist_auth *@*.aopa.org
+def_welcomelist_auth *@*.mail-zr.com
+def_welcomelist_auth *@*.trovit.com
+def_welcomelist_auth *@*.hscloudsuite.com
+def_welcomelist_auth *@*.rothys.com
+def_welcomelist_auth *@*.sgml3.com
+def_welcomelist_auth *@*.fox13memphis.com
+def_welcomelist_auth *@*.sprouts.com
+def_welcomelist_auth *@*.ruthschris-email.com
+def_welcomelist_auth *@*.softball.com
+def_welcomelist_auth *@*.yankeecandle.com
+def_welcomelist_auth *@*.candidcolorhosting.com
+def_welcomelist_auth *@*.endcitizensunited.org
+def_welcomelist_auth *@*.redditgifts.com
+def_welcomelist_auth *@*.tdworld.com
+def_welcomelist_auth *@*.thenorthface.com
+def_welcomelist_auth *@*.bark.com
+def_welcomelist_auth *@*.center.io
+def_welcomelist_auth *@*.movethisworld.com
+def_welcomelist_auth *@*.pgsurveying.com
+def_welcomelist_auth *@*.mealtrain.com
+def_welcomelist_auth *@*.acemsd1.com
+def_welcomelist_auth *@*.jobhat.com
+def_welcomelist_auth *@*.earthfare.com
+def_welcomelist_auth *@*.nassp.org
+def_welcomelist_auth *@*.rasa.io
+def_welcomelist_auth *@*.surveydirectlive.com
+def_welcomelist_auth *@*.frontgate-email.com
+def_welcomelist_auth *@*.job-tree.com
+def_welcomelist_auth *@*.slideshare.net
+def_welcomelist_auth *@*.cambridge.org
+def_welcomelist_auth *@*.everytown.org
+def_welcomelist_auth *@*.bitesquad.com
+def_welcomelist_auth *@*.fit2fat2fit.com
+def_welcomelist_auth *@*.nationsend18.com
+def_welcomelist_auth *@*.livingwelldaily.com
+def_welcomelist_auth *@*.robotevents.com
+def_welcomelist_auth *@*.livetext.com
+def_welcomelist_auth *@*.lightreading.com
+def_welcomelist_auth *@*.uscourts.gov
+def_welcomelist_auth *@*.fabfitfun.com
+def_welcomelist_auth *@*.edlistservs.org
+def_welcomelist_auth *@*.csid.com
+def_welcomelist_auth *@*.spiceworks.com
+def_welcomelist_auth *@*.dctemail.com
+def_welcomelist_auth *@*.thetileapp.com
+def_welcomelist_auth *@*.wendys.com
+def_welcomelist_auth *@*.ylginc.com
+def_welcomelist_auth *@*.servicenow.com
+def_welcomelist_auth *@*.charmsmusic.com
+def_welcomelist_auth *@*.opendns.com
+def_welcomelist_auth *@*.gracegentry.com
+def_welcomelist_auth *@*.digitalsports.com
+def_welcomelist_auth *@*.dailymemphian.com
+def_welcomelist_auth *@*.hobsonsradius.com
+def_welcomelist_auth *@*.diversifiedemail.com
+def_welcomelist_auth *@*.harlemglobetrotters.com
+def_welcomelist_auth *@*.nationsend12.com
+def_welcomelist_auth *@*.sf-notifications.com
+def_welcomelist_auth *@*.noredink.com
+def_welcomelist_auth *@*.amtrak.com
+def_welcomelist_auth *@*.homegoods.com
+def_welcomelist_auth *@*.bigteams.com
+def_welcomelist_auth *@*.stansberryresearch.com
+def_welcomelist_auth *@*.fafsa.gov
+def_welcomelist_auth *@*.solarwinds.com
+def_welcomelist_auth *@*.petsgeek.com
+def_welcomelist_auth *@*.consumerservicesdirect.com
+def_welcomelist_auth *@*.carfax.com
+def_welcomelist_auth *@*.ismg-campaigns.com
+def_welcomelist_auth *@*.passports.com
+def_welcomelist_auth *@*.dailykos.com
+def_welcomelist_auth *@*.loftoutlet.com
+def_welcomelist_auth *@*.brit.co
+def_welcomelist_auth *@*.cappex.com
+def_welcomelist_auth *@*.neopost.com
+def_welcomelist_auth *@*.adidas.com
+def_welcomelist_auth *@*.verizonenterprise.com
+def_welcomelist_auth *@*.zohodesk.com
+def_welcomelist_auth *@*.renzullilearning.com
+def_welcomelist_auth *@*.lumoslearning.com
+def_welcomelist_auth *@*.sesamereminders.com
+def_welcomelist_auth *@*.ninewest.com
+def_welcomelist_auth *@*.agorafinancial.com
+def_welcomelist_auth *@*.collegenet.com
+def_welcomelist_auth *@*.greenrope.net
+def_welcomelist_auth *@*.skyzone.com
+def_welcomelist_auth *@*.adlmail.org
+def_welcomelist_auth *@*.clarksusa.com
+def_welcomelist_auth *@*.granicus.com
+def_welcomelist_auth *@*.theblaze.com
+def_welcomelist_auth *@*.lormanonlinecourses.com
+def_welcomelist_auth *@*.chatbooks.com
+def_welcomelist_auth *@*.tangocard.com
+def_welcomelist_auth *@*.signup.com
+def_welcomelist_auth *@*.aisleahead.com
+def_welcomelist_auth *@*.pinkcoconutboutique.com
+def_welcomelist_auth *@*.hallmark.com
+def_welcomelist_auth *@*.emailpackers.com
+def_welcomelist_auth *@*.windows.com
+def_welcomelist_auth *@*.hartvillegroup.com
+def_welcomelist_auth *@*.getresponse-mail.com
+def_welcomelist_auth *@*.scholarships.com
+def_welcomelist_auth *@*.wifeteachermommy.com
+def_welcomelist_auth *@*.cheddars.com
+def_welcomelist_auth *@*.berrylook.com
+def_welcomelist_auth *@*.westernunion.com
+def_welcomelist_auth *@*.aerialschoolimages.com
+def_welcomelist_auth *@*.bitglass.com
+def_welcomelist_auth *@*.purefitnessinnovations.com
+def_welcomelist_auth *@*.coach.com
+def_welcomelist_auth *@*.rockauto.com
+def_welcomelist_auth *@*.americanbookcompany.com
+def_welcomelist_auth *@*.rockbottomgolf.com
+def_welcomelist_auth *@*.doordash.com
+def_welcomelist_auth *@*.cainc.com
+def_welcomelist_auth *@*.email-nationwide.com
+def_welcomelist_auth *@*.honorsociety.org
+def_welcomelist_auth *@*.dailysale.com
+def_welcomelist_auth *@*.emsmtp.us
+def_welcomelist_auth *@*.calm.com
+def_welcomelist_auth *@*.snapsurveys.com
+def_welcomelist_auth *@*.dropbox-mktg.com
+def_welcomelist_auth *@*.striderite.com
+def_welcomelist_auth *@*.stackcommerce.com
+def_welcomelist_auth *@*.norton.com
+def_welcomelist_auth *@*.aeds.com
+def_welcomelist_auth *@*.dia.co
+def_welcomelist_auth *@*.blackfriday.com
+def_welcomelist_auth *@*.olay.com
+def_welcomelist_auth confirmation@aircanada.ca
+def_welcomelist_auth no-reply@enterprise.com
+def_welcomelist_auth *@*.hubspotstarter.net
+def_welcomelist_auth *@*.serverchamber.com
+def_welcomelist_auth *@*.msbrooksclass.com
+def_welcomelist_auth *@*.hickoryfarms.com
+def_welcomelist_auth *@*.evesaddiction.com
+def_welcomelist_auth *@*.sowntogrow.com
+def_welcomelist_auth *@*.shopthemint.com
+def_welcomelist_auth *@*.charlotterusse.com
+def_welcomelist_auth *@*.moviepass.com
+def_welcomelist_auth *@*.revrocket.us
+def_welcomelist_auth *@*.nintendo.com
+def_welcomelist_auth *@*.btr.com
+def_welcomelist_auth *@*.gothamsteelstore.com
+def_welcomelist_auth *@*.naturalizer.com
+def_welcomelist_auth *@*.jerrysartarama.com
+def_welcomelist_auth *@*.iconicgroup.com
+def_welcomelist_auth *@*.spanx.com
+def_welcomelist_auth *@*.haggar.com
+def_welcomelist_auth *@*.change.org
+def_welcomelist_auth *@*.headspace.com
+def_welcomelist_auth *@*.firstsouth.com
+def_welcomelist_auth *@*.instacart.com
+def_welcomelist_auth *@*.kodakmoments.com
+def_welcomelist_auth *@*.penzeys.com
+def_welcomelist_auth *@*.rescueme.org
+def_welcomelist_auth *@*.icr.org
+def_welcomelist_auth *@*.joinhandshake.com
+def_welcomelist_auth *@*.colourpop.com
+def_welcomelist_auth *@*.actsend.com
+def_welcomelist_auth *@*.audubon.org
+def_welcomelist_auth *@*.noom.com
+def_welcomelist_auth *@*.conexionamericas.org
+def_welcomelist_auth *@*.hollywoodfeed.com
+def_welcomelist_auth *@*.cio.com
+def_welcomelist_auth *@*.55mulberry.com
+def_welcomelist_auth *@*.knowatom.com
+def_welcomelist_auth *@*.maxsamples.com
+def_welcomelist_auth *@*.thekeyrewards.com
+def_welcomelist_auth *@*.rakuten.com
+def_welcomelist_auth *@*.tastycookerymailings.com
+def_welcomelist_auth *@*.myenotice.com
+def_welcomelist_auth *@*.sportclips.com
+def_welcomelist_auth *@*.senzajobalerts.com
+def_welcomelist_auth *@*.genghisgrill.com
+def_welcomelist_auth *@*.fider.io
+def_welcomelist_auth *@*.mchdata.com
+def_welcomelist_auth *@*.fivestarlinemen.com
+def_welcomelist_auth *@*.dunhamssports-email.com
+def_welcomelist_auth *@*.vitals.com
+def_welcomelist_auth *@*.thrivistlms.com
+def_welcomelist_auth *@*.build.com
+def_welcomelist_auth *@*.vacationmyrtlebeach.com
+def_welcomelist_auth *@*.kidreports.com
+def_welcomelist_auth *@*.jobframe.net
+def_welcomelist_auth *@*.aegpresents.com
+def_welcomelist_auth *@*.shmoop.com
+def_welcomelist_auth *@*.brahminusa.com
+def_welcomelist_auth *@*.stamats.com
+def_welcomelist_auth *@*.wufoo.com
+def_welcomelist_auth *@*.pre-kpages.com
+def_welcomelist_auth *@*.listen360.com
+def_welcomelist_auth *@*.silversingles.com
+def_welcomelist_auth *@*.ruralking.com
+def_welcomelist_auth *@*.yourhobbylobby.com
+def_welcomelist_auth *@*.educationworld.com
+def_welcomelist_auth *@*.theeducatorsnetwork.com
+def_welcomelist_auth *@*.csoonline.com
+def_welcomelist_auth *@*.youscience.com
+def_welcomelist_auth *@*.konnectnow.com
+def_welcomelist_auth *@*.esa.org
+def_welcomelist_auth *@*.modcloth.com
+def_welcomelist_auth *@*.harborfreight.com
+def_welcomelist_auth *@*.eshakti.com
+def_welcomelist_auth *@*.fda.gov
+def_welcomelist_auth *@*.shermanstravel.com
+def_welcomelist_auth *@*.naturalhealthresponse.com
+def_welcomelist_auth *@*.epicgames.com
+def_welcomelist_auth *@*.paisleygraceboutique.com
+def_welcomelist_auth *@*.dhccare.com
+def_welcomelist_auth *@*.spectrumemails.com
+def_welcomelist_auth *@*.worldatwork.org
+def_welcomelist_auth *@*.usatestprep.com
+def_welcomelist_auth *@*.twinkl.com
+def_welcomelist_auth *@*.opticsplanet.com
+def_welcomelist_auth *@*.troxmail.com
+def_welcomelist_auth *@*.carolina.com
+def_welcomelist_auth *@*.teamviewer.com
+def_welcomelist_auth *@*.bodybuilding.com
+def_welcomelist_auth *@*.adobespark.com
+def_welcomelist_auth *@*.entercom.com
+def_welcomelist_auth *@*.hbonow.com
+def_welcomelist_auth *@*.grandinroad-email.com
+def_welcomelist_auth *@*.livongo.com
+def_welcomelist_auth *@*.daxkoengage.com
+def_welcomelist_auth *@*.lemonlimeadventures.com
+def_welcomelist_auth *@*.lumosity.com
+def_welcomelist_auth *@*.ihop-communications.com
+def_welcomelist_auth *@*.dailysteals.com
+def_welcomelist_auth *@*.testingmom.com
+def_welcomelist_auth *@*.ceramicartsnetwork.org
+def_welcomelist_auth *@*.verintefm.com
+
+else
+
+#For older versions of SA, these old entries remain for SA before version 4.0
+
+def_whitelist_auth *@apache.org
+def_whitelist_auth *@*.apache.org
+
+# Lists with good SPF
+def_whitelist_auth *@lists.in.gov
+def_whitelist_auth *@listserv.syr.edu
+def_whitelist_auth *@list.indiana.edu
+def_whitelist_auth *@lists.asu.edu
+def_whitelist_auth *@lists.mailscanner.info
+def_whitelist_auth *@lists.wisc.edu
+
+# High profile targets for spoofing
+def_whitelist_auth *@facebookmail.com
+def_whitelist_auth *@*.facebookmail.com
+def_whitelist_auth *@google.com
+def_whitelist_auth *@accounts.google.com
+def_whitelist_auth *@walmart.com
+def_whitelist_auth *@*.walmart.com
+def_whitelist_auth *@*.usaa.com
+def_whitelist_auth *@citi.com
+def_whitelist_auth *@*.citi.com
+def_whitelist_auth *@chase.com
+def_whitelist_auth *@*.chase.com
+def_whitelist_auth *@*.dropboxmail.com
+def_whitelist_auth *@wellsfargo.com
+def_whitelist_auth *@*.wellsfargo.com
+def_whitelist_auth *@bankofamerica.com
+def_whitelist_auth *@*.bankofamerica.com
+def_whitelist_auth *@ally.com
+def_whitelist_auth *@*.ally.com
+def_whitelist_auth *@postmaster.aol.com
+def_whitelist_auth *@usbank.com
+def_whitelist_auth *@*.usbank.com
+def_whitelist_auth *@firsttennessee.com
+def_whitelist_auth *@usps.gov
+def_whitelist_auth *@*.usda.gov
+def_whitelist_auth *@instagram.com
+def_whitelist_auth *@*.instagram.com
+def_whitelist_auth *@indeedemail.com
+def_whitelist_auth *=pkginfo@ups.com
+def_whitelist_auth mcinfo@ups.com
+def_whitelist_auth *@fedex.com
+def_whitelist_auth *@*.fedex.com
+def_whitelist_auth americanexpress@aexpfeedback.com
+def_whitelist_auth *@capitalone.com
+def_whitelist_auth *@*.capitalone.com
+def_whitelist_auth *@*.capitaloneemail.com
+def_whitelist_auth *@*.khanacademy.org
+def_whitelist_auth *@*.wordpress.com
+def_whitelist_auth *@statefarm.com
+def_whitelist_auth *@*.statefarminfo.com
+def_whitelist_auth *@*.visa.com
+def_whitelist_auth *@visapayablesautomation.com
+def_whitelist_auth *@visadpsmessage.com
+def_whitelist_auth *@*.pinterest.com
+def_whitelist_auth *@indeed.com
+def_whitelist_auth *@docusign.net
+def_whitelist_auth *@*.docusign.com
+
+# Senders consistently scoring low with advanced tuned SA to help default SA configurations.
+#
+# Criteria to be listed below:
+# - minimum of 100 emails over a week and
+# - use a subdomain or specific left-half address and
+# - not be a human mailbox that can be compromised and
+# - average score for the week is low and
+# - hit SPF_PASS and/or DKIM_VALID_AU and
+# - not hit DMARC_FAIL or DMARC_REJECT (from OpenDMARC milter)
+#
+# These listings are intended to:
+# - promote mass mailer sending from a subdomain
+# - encourage system-generated to be sent from a subdomain
+# - reward senders that send with good SPF, DKIM, and DMARC
+# - allow for phishing/spoofed/fake emails to stand out more
+#   so local rules can be setup to add points without blocking
+#   authentic emails
+#
+def_whitelist_auth *@*.indeed.com
+def_whitelist_auth *@*.hyatt.com
+def_whitelist_auth *@*.sears.com
+def_whitelist_auth *@*.jcpenney.com
+def_whitelist_auth *@*.landsend.com
+def_whitelist_auth *@squaretrade.com
+def_whitelist_auth *@bn.com
+def_whitelist_auth *@emailbedbathandbeyond.com
+def_whitelist_auth *@*.joann.com
+def_whitelist_auth *@*.dollargeneral.com
+def_whitelist_auth *@*.talbots.com
+def_whitelist_auth *@*.wayfair.com
+def_whitelist_auth *@*.nordstrom.com
+def_whitelist_auth *@*.zillow.com
+def_whitelist_auth dillards@dillards.com
+def_whitelist_auth *@mktgdillards.com
+def_whitelist_auth *@*.hollisterco.com
+def_whitelist_auth *@*.us-cert.gov
+def_whitelist_auth *@*.rei.com
+def_whitelist_auth *@duluthtradingemail.com
+def_whitelist_auth *@hilton.com
+def_whitelist_auth *@*.hilton.com
+def_whitelist_auth *@*.starwoodhotels.com
+def_whitelist_auth *@craigslist.org
+def_whitelist_auth *@*.macys.com
+def_whitelist_auth *@*.staples.com
+def_whitelist_auth *@*.fandango.com
+def_whitelist_auth *@*.fandangonow.com
+def_whitelist_auth *@*.eddiebauer.com
+def_whitelist_auth *@*.eastbay.com
+def_whitelist_auth *@*.samsclub.com
+def_whitelist_auth *@*.potterybarn.com
+def_whitelist_auth *@*.travelocity.com
+def_whitelist_auth *@*.oriental-trading.com
+def_whitelist_auth *@*.efax.com
+def_whitelist_auth *@*.spamcop.net
+def_whitelist_auth noreply@apple.com
+def_whitelist_auth do_not_reply@apple.com
+def_whitelist_auth *@*.apple.com
+def_whitelist_auth *@*.insideapple.com
+def_whitelist_auth *@*.itunes.com
+def_whitelist_auth *@*.att-mail.com
+def_whitelist_auth *@*.vzw.com
+def_whitelist_auth *@*.vzwshop.com
+def_whitelist_auth *@*.fandango.com
+def_whitelist_auth *@*.aa.com
+def_whitelist_auth *@*.delta.com
+def_whitelist_auth *@*.southwest.com
+def_whitelist_auth *@*.southwestvacations.com
+def_whitelist_auth *@*.spirit-airlines.com
+def_whitelist_auth *@*.youversion.com
+def_whitelist_auth *@*.ashleystewart.com
+def_whitelist_auth *@*.creditkarma.com
+def_whitelist_auth *@*.creditsesame.com
+def_whitelist_auth *@*.amazon.com
+def_whitelist_auth *@*.livingsocial.com
+def_whitelist_auth *@*.yelp.com
+def_whitelist_auth *@*.opentable.com
+def_whitelist_auth *@*.pier1.com
+def_whitelist_auth *@*.nationalgeographic.com
+def_whitelist_auth *@*.lessonplanet.com
+def_whitelist_auth *@*.teacherspayteachers.com
+def_whitelist_auth *@*.childrensplace.com
+def_whitelist_auth *@*.uber.com
+def_whitelist_auth *@*.foxnews.com
+def_whitelist_auth *@*.cnn.com
+def_whitelist_auth *@*.walgreens.com
+def_whitelist_auth *@*.cvs.com
+def_whitelist_auth *@*.hgtv.com
+def_whitelist_auth *@*.starz.com
+def_whitelist_auth *@*.golfballs.com
+def_whitelist_auth *@*.zales.com
+def_whitelist_auth *@*.partycity.com
+def_whitelist_auth *@*.petco.com
+def_whitelist_auth *@*.nyandcompany.com
+def_whitelist_auth *@*.govdelivery.com
+def_whitelist_auth *@*.us-cert.gov
+def_whitelist_auth *@*.senate.gov
+def_whitelist_auth *@*.priceline.com
+def_whitelist_auth *@*.travelzoo.com
+def_whitelist_auth *@*.uso.org
+def_whitelist_auth *@*.checksunlimited.com
+def_whitelist_auth *@*.nytimes.com
+def_whitelist_auth *@slickdeals.net
+def_whitelist_auth *@*.cancer.org
+def_whitelist_auth *@*.pinterest.com
+def_whitelist_auth *@*.hotwire.com
+def_whitelist_auth *@*.dominos.com
+def_whitelist_auth *@*.potterybarn.com
+def_whitelist_auth *@*.shopstyle.com
+def_whitelist_auth *@*.mealtrain.com
+def_whitelist_auth *@*.zazzle.com
+def_whitelist_auth *@*.finishline.com
+def_whitelist_auth *@*.rover.com
+def_whitelist_auth *@*.pandora.com
+def_whitelist_auth *@*.jcrew.com
+def_whitelist_auth *@*.lifeway.com
+def_whitelist_auth *@*.jossandmain.com
+def_whitelist_auth *@*.maurices.com
+def_whitelist_auth *@*.flipboard.com
+def_whitelist_auth *@*.nhl.com
+def_whitelist_auth *@*.nfl.com
+def_whitelist_auth *@*.nflshop.com
+def_whitelist_auth *@*.nba.com
+def_whitelist_auth *@*.mlb.com
+def_whitelist_auth *@*.mlblists.com
+def_whitelist_auth *@*.containerstore.com
+def_whitelist_auth *@*.fitbit.com
+def_whitelist_auth *@*.justfab.com
+def_whitelist_auth *@*.tripadvisor.com
+def_whitelist_auth *@*.care.com
+def_whitelist_auth *@*.tommiecopper.com
+def_whitelist_auth *@*.education.com
+def_whitelist_auth *@*.target.com
+def_whitelist_auth *@*.fanatics.com
+def_whitelist_auth *@*.loft.com
+def_whitelist_auth *@*.gymboree.com
+def_whitelist_auth *@*.craylola.com
+def_whitelist_auth *@*.bathandbodyworks.com
+def_whitelist_auth *@*.carters.com
+def_whitelist_auth *@*.fansedge.com
+def_whitelist_auth *@*.gap.com
+def_whitelist_auth *@*.gapfactory.com
+def_whitelist_auth *@*.carnivalcruiselineemail.com
+def_whitelist_auth *@*.carhartt-email.com
+def_whitelist_auth *@*.journeys.com
+def_whitelist_auth *@*.ashleystewart.com
+def_whitelist_auth *@*.grandhomefurnishings.com
+def_whitelist_auth *@*.americangreetings.com
+def_whitelist_auth *@*.ralphlauren.com
+def_whitelist_auth *@*.catofashions.com
+def_whitelist_auth *@*.tjmaxx.tjx.com
+def_whitelist_auth *@*.uso.org
+def_whitelist_auth *@*.sallybeauty.com
+def_whitelist_auth *@*.oshkosh.com
+def_whitelist_auth *@*.dealnews.com
+def_whitelist_auth *@*.victoriassecret.com
+def_whitelist_auth *@*.northerntoolemail.com
+def_whitelist_auth *@*.golfnow.com
+def_whitelist_auth *@*.keurig.com
+def_whitelist_auth *@*.bannanarepublicfactory.com
+def_whitelist_auth *@*.girlscouts.org
+def_whitelist_auth *@*.zumiez.com
+def_whitelist_auth *@*.cabelas.com
+def_whitelist_auth *@*.hbonow.com
+def_whitelist_auth *@*.menswearhouse.com
+def_whitelist_auth *@*.brecks.com
+def_whitelist_auth *@*.jostens.com
+def_whitelist_auth *@*.josabank.com
+def_whitelist_auth *@*.charteremails.com
+def_whitelist_auth *@*.golfdigest.com
+def_whitelist_auth *@*.neimanmarcusemail.com
+def_whitelist_auth *@*.bucklemail.com
+def_whitelist_auth *@*.baskinrobbins.com
+def_whitelist_auth *@*.draftkings.com
+def_whitelist_auth *@*.krogeremail.com
+def_whitelist_auth *@*.lowesforpros.com
+def_whitelist_auth *@*.campingworld.com
+def_whitelist_auth *@accountprotection.microsoft.com
+def_whitelist_auth *@*.dickies.com
+def_whitelist_auth *@*.stewardship.com
+def_whitelist_auth *@*.military.com
+def_whitelist_auth *@*.basecamp.com
+def_whitelist_auth *@*.savethechildren.org
+def_whitelist_auth *@*.anthem.com
+def_whitelist_auth *@*.nyandcompany.com
+def_whitelist_auth *@*.chicagotribune.com
+def_whitelist_auth *@*.underarmour.com
+def_whitelist_auth *@*.discounttire-email.com
+def_whitelist_auth *@*.mozilla.org
+def_whitelist_auth *@*.experian.com
+def_whitelist_auth *@*.wrangler.com
+def_whitelist_auth *@*.callofduty.com
+def_whitelist_auth *@*.davidsbridal.com
+def_whitelist_auth *@*.email-carmax.com
+def_whitelist_auth *@*.dunkindonuts.com
+def_whitelist_auth *@*.seaworld.com
+def_whitelist_auth *@*.lordandtaylor.com
+def_whitelist_auth *@*.wyndhamrewards.com
+def_whitelist_auth *@*.hallmark.com
+def_whitelist_auth *@*.thisoldhouse.com
+def_whitelist_auth *@*.grubhub.com
+def_whitelist_auth *@*.saks.com
+def_whitelist_auth *@*.saksoff5th.com
+def_whitelist_auth *@*.adidas.com
+def_whitelist_auth *@*.crocs-email.com
+def_whitelist_auth *@*.siriusxm.com
+def_whitelist_auth *@*.officedepot.com
+def_whitelist_auth *@*.thepamperedchef.com
+def_whitelist_auth *@*.kirklands.com
+def_whitelist_auth *@*.biglots.com
+def_whitelist_auth *@*.hulumail.com
+def_whitelist_auth *@*.homedepotemail.com
+def_whitelist_auth *@*.cisco.com
+def_whitelist_auth *@*.angieslist.com
+def_whitelist_auth *@*.livingsocial.com
+def_whitelist_auth *@*.channing-bete.com
+def_whitelist_auth *@*.accor-mail.com
+def_whitelist_auth *@*.highlights.com
+def_whitelist_auth *@*.scholastic.com
+def_whitelist_auth *@*.olivegarden.com
+def_whitelist_auth *@*.themailbox.com
+def_whitelist_auth *@*.steinmart.com
+def_whitelist_auth *@*.quill.com
+def_whitelist_auth *@*.netflix.com
+def_whitelist_auth *@*.expediamail.com
+def_whitelist_auth *@*.generalmills.com
+def_whitelist_auth *@*.overstock.com
+def_whitelist_auth *@*.grammarly.com
+def_whitelist_auth *@*.tractorsupply.com
+def_whitelist_auth *@*.hcahealthcare.com
+def_whitelist_auth *@*.foodservicedirector.com
+def_whitelist_auth *@*.suntrust.com
+def_whitelist_auth *@*.doverpublishing.com
+def_whitelist_auth *@*.thelimited.com
+def_whitelist_auth *@*.meetup.com
+def_whitelist_auth *@*.columbia.com
+def_whitelist_auth *@*.ocharleys.com
+def_whitelist_auth *@*.ancestry.com
+def_whitelist_auth *@*.shoecarnival.com
+def_whitelist_auth *@*.mattel.com
+def_whitelist_auth *@*.smilereminder.com
+def_whitelist_auth *@*.newyorktimes.com
+def_whitelist_auth *@*.booking.com
+def_whitelist_auth *@*.lids.com
+def_whitelist_auth *@*.macmillan.com
+def_whitelist_auth *@*.costco.com
+def_whitelist_auth *@*.nike.com
+def_whitelist_auth *@*.xbox.com
+def_whitelist_auth *@*.politicoemail.com
+def_whitelist_auth *@*.gamestop.com
+def_whitelist_auth *@*.dropbox.com
+def_whitelist_auth *@*.dcsg.com
+#def_whitelist_auth *@*.robly.com
+def_whitelist_auth *@*.ncaa.com
+def_whitelist_auth *@*.lendingclub.com
+def_whitelist_auth *@*.hotels.com
+def_whitelist_auth *@*.michaels.com
+def_whitelist_auth *@*.vistaprint.com
+def_whitelist_auth *@*.regions.com
+def_whitelist_auth *@*.dollywood.com
+def_whitelist_auth *@*.sears-optical.com
+def_whitelist_auth *@*.e-lenscrafters.com
+def_whitelist_auth *@*.email-advanceautoparts.com
+def_whitelist_auth *@*.evernote.com
+def_whitelist_auth *@*.ebates.com
+def_whitelist_auth *@*.sylvanlearning.com
+def_whitelist_auth *@*.ebay.com
+def_whitelist_auth *@*.officesupply.com
+def_whitelist_auth *@*.dsw.com
+def_whitelist_auth *@*.quicken.com
+def_whitelist_auth *@*.quickenloans.com
+def_whitelist_auth *@*.harpercollins.com
+def_whitelist_auth *@*.gofundme.com
+def_whitelist_auth *@*.peachjar.com
+def_whitelist_auth *@*.mystubhub.com
+def_whitelist_auth *@*.hertz.com
+def_whitelist_auth *@theupsstore.com
+def_whitelist_auth *@vocabulary.com
+def_whitelist_auth *@*.spotify.com
+def_whitelist_auth *@*.musiciansfriend.com
+def_whitelist_auth *@*.longhornsteakhouse.com
+def_whitelist_auth *@*.abercrombie.com
+def_whitelist_auth *@*.lakeside.com
+def_whitelist_auth *@*.dccc.org
+def_whitelist_auth *@*.remind.com
+def_whitelist_auth *@*.swimoutlet.com
+def_whitelist_auth *@*.visionworks.com
+def_whitelist_auth *@*.kraftrecipes.com
+def_whitelist_auth *@*.ebth.com
+def_whitelist_auth *@*.baker-taylor.com
+def_whitelist_auth *@*.usafootball.com
+def_whitelist_auth *@*.ikea-usa.com
+def_whitelist_auth *@*.jet.com
+def_whitelist_auth *@*.ezchildtrack.com
+def_whitelist_auth *@*.twinkl.co.uk
+def_whitelist_auth *@*.tgw.com
+def_whitelist_auth *@*.airbnb.com
+def_whitelist_auth *@*.nea.org
+def_whitelist_auth *@*.bhg.com
+def_whitelist_auth *@*.nest.com
+def_whitelist_auth *@*.colehaan.com
+def_whitelist_auth *@*.microsoft.com
+def_whitelist_auth *@*.vanheusen.com
+def_whitelist_auth *@*.shoppbs.org
+def_whitelist_auth *@*.roku.com
+def_whitelist_auth *@*.hearstmags.com
+def_whitelist_auth *@*.carlsonhotels.com
+def_whitelist_auth *@*.marykay.com
+def_whitelist_auth *@*.publix.com
+def_whitelist_auth *@*.eharmony.com
+def_whitelist_auth *@*.powerschool.com
+def_whitelist_auth *@*.dell.com
+def_whitelist_auth *@*.hp.com
+def_whitelist_auth *@*.microsoftrewards.com
+def_whitelist_auth *@*.untuckit.com
+def_whitelist_auth *@*.adobesystems.com
+def_whitelist_auth *@*.pumpitupfun.com
+def_whitelist_auth *@*.payless.com
+def_whitelist_auth *@*.consumerreports.org
+def_whitelist_auth *@*.blueapron.com
+def_whitelist_auth *@*.email-libertymutual.com
+def_whitelist_auth *@*.marthastewart.com
+def_whitelist_auth *@*.nm.com
+def_whitelist_auth *@*.nissanusa.com
+def_whitelist_auth *@*.discountschoolsupply.com
+def_whitelist_auth *@*.destinationmaternity.com
+def_whitelist_auth *@*.calendly.com
+def_whitelist_auth *@*.healthequity.com
+def_whitelist_auth *@investordelivery.com
+def_whitelist_auth *@*.topgolf.com
+def_whitelist_auth *@logmein.com
+def_whitelist_auth *@lastpass.com
+def_whitelist_auth *@*.seabourn.com
+def_whitelist_auth *@*.execucar.com
+def_whitelist_auth *@*.intuit.com
+def_whitelist_auth *@*.build.com
+def_whitelist_auth *@*.trulia.com
+def_whitelist_auth *@*.rentalcars.com
+def_whitelist_auth *@recommendedjobs.com
+def_whitelist_auth *@*.zendesk.com
+def_whitelist_auth *@*.advocareemail.com
+def_whitelist_auth *@*.plenti.com
+def_whitelist_auth *@*.amolatina.com
+def_whitelist_auth *@*.accutrain.com
+def_whitelist_auth *@*.barnesandnoble.com
+def_whitelist_auth *@*.bookbub.com
+def_whitelist_auth *@*.gnc.com
+def_whitelist_auth *@*.avon.com
+def_whitelist_auth *@*.mymapcorewards.com
+def_whitelist_auth *@*.teespring.com
+def_whitelist_auth *@*.bpdriverrewards.com
+def_whitelist_auth *@*.aenetworks.com
+def_whitelist_auth *@*.wellsfargoemail.com
+def_whitelist_auth *@*.ixl.com
+def_whitelist_auth *@*.digitalocean.com
+def_whitelist_auth *@*.mohela.com
+def_whitelist_auth *@*.wish.com
+def_whitelist_auth *@*.frontrowed.com
+def_whitelist_auth *@*.goodreads.com
+def_whitelist_auth *@*.myschoolcast.com
+def_whitelist_auth *@*.airfarewatchdog.com
+def_whitelist_auth *@*.express.com
+def_whitelist_auth *@*.ulta.com
+def_whitelist_auth *@*.bradsdeals.com
+def_whitelist_auth *@*.edlio.com
+def_whitelist_auth *@*.soma.com
+def_whitelist_auth *@*.mycollegeoptions.org
+def_whitelist_auth *@*.pch.com
+def_whitelist_auth *@*.lormanonlinelearning.com
+def_whitelist_auth *@*.jetsetter.com
+def_whitelist_auth *@*.ebags.com
+def_whitelist_auth *@*.titanlamco.com
+def_whitelist_auth *@*.understood.org
+def_whitelist_auth *@cvent-planner.com
+def_whitelist_auth *@remindmemd.com
+def_whitelist_auth *@*.wizehive.com
+def_whitelist_auth *@*.potterybarnkids.com
+def_whitelist_auth *@*.zoosk.com
+def_whitelist_auth *@*.whitehouseblackmarket.com
+def_whitelist_auth *@*.iheart.com
+def_whitelist_auth *@*.testout.com
+def_whitelist_auth *@*.surveymonkeyuser.com
+def_whitelist_auth *@*.lumosity.com
+def_whitelist_auth *@kayak.com
+def_whitelist_auth *@*.kayak.com
+def_whitelist_auth *@*.smartertravel.com
+def_whitelist_auth *@*.discover.com
+def_whitelist_auth *@*.neamemberbenefits.com
+def_whitelist_auth *@*.enterprise.com
+def_whitelist_auth *@*.jessicalondon.com
+def_whitelist_auth *@*.geico.com
+def_whitelist_auth *@*.tommy.com
+def_whitelist_auth *@cignasecure.com
+def_whitelist_auth *@*.aarp.org
+def_whitelist_auth *@*.aeropostale.com
+def_whitelist_auth *@*.zappos.com
+def_whitelist_auth *@*.redhat.com
+def_whitelist_auth *@*.freshdesk.com
+def_whitelist_auth *@*.planningcenteronline.com
+def_whitelist_auth *@*.ihg.com
+def_whitelist_auth *@*.opendns.com
+def_whitelist_auth *@*.loftoutlet.com
+def_whitelist_auth *@*.hrblock.com
+def_whitelist_auth *@secureworks.com
+def_whitelist_auth *@*.secureworks.com
+def_whitelist_auth *@*.crateandbarrel.com
+def_whitelist_auth *@*.redbox.com
+def_whitelist_auth *@*.lowfares.com
+def_whitelist_auth *@*.rocketloans.com
+def_whitelist_auth *@*.ganderoutdoors.com
+def_whitelist_auth *@*.mandarinoriental.com
+def_whitelist_auth *@*.retailmenot.com
+def_whitelist_auth *@*.overdrive.com
+def_whitelist_auth *@*.snapchat.com
+def_whitelist_auth *@*.cheaptickets.com
+def_whitelist_auth *@*.1800flowers.com
+def_whitelist_auth *@*.guitarcenter.com
+def_whitelist_auth *@*.vmware.com
+def_whitelist_auth *@*.katespade.com
+def_whitelist_auth *@*.gerber.com
+def_whitelist_auth *@*.pandora.net
+def_whitelist_auth *@*.alibaba.com
+def_whitelist_auth *@*.kahoot.com
+def_whitelist_auth *@email-od.com
+def_whitelist_auth *@gallupmail.com
+def_whitelist_auth *@*.stenhouse.com
+def_whitelist_auth *@*.horacemann.com
+def_whitelist_auth *@bmwusa.com
+def_whitelist_auth *@*.thumbtack.com
+def_whitelist_auth *@*.brylanehome.com
+def_whitelist_auth *@*.bradfordexchange.com
+def_whitelist_auth *@*.touchofmodern.com
+def_whitelist_auth *@*.berries.com
+def_whitelist_auth *@*.reddressboutique.com
+def_whitelist_auth *@*.progressive.com
+def_whitelist_auth *@*.forever21.com
+def_whitelist_auth *@*.consumercrafts.com
+def_whitelist_auth *@*.epriority.com
+def_whitelist_auth *@*.schwab.com
+def_whitelist_auth *@*.wwe.com
+def_whitelist_auth *@*.coldwatercreek.com
+def_whitelist_auth *@*.homechef.com
+def_whitelist_auth *@*.flyfrontier.com
+def_whitelist_auth *@*.charbroil.com
+def_whitelist_auth *@*.bludot.com
+def_whitelist_auth *@*.directgeneral.com
+def_whitelist_auth *@*.subaru.com
+def_whitelist_auth *@*.aexp.com
+def_whitelist_auth *@*.usssa.com
+def_whitelist_auth *@*.bestwesternrewards.com
+def_whitelist_auth *@*.email-weightwatchers.com
+def_whitelist_auth *@*.email-allstate.com
+def_whitelist_auth *@*.dove.com
+def_whitelist_auth *@*.teamusa.org
+def_whitelist_auth *@*.mylife.com
+def_whitelist_auth *@*.cbssports.com
+def_whitelist_auth *@*.fingerhut.com
+def_whitelist_auth *@*.fossil.com
+def_whitelist_auth *@*.adt.com
+def_whitelist_auth *@*.23andme.com
+def_whitelist_auth *@*.fashionnova.com
+def_whitelist_auth *@*.myfitnesspal.com
+def_whitelist_auth *@*.zayconfoods.com
+def_whitelist_auth *@*.housershoes.com
+def_whitelist_auth *@*.prepsportswear.com
+def_whitelist_auth *@*.freebiesfrenzy.com
+def_whitelist_auth *@*.minted.com
+def_whitelist_auth *@*.kickstarter.com
+def_whitelist_auth *@*.bluebellwholesale.com
+def_whitelist_auth tickets@amtrak.com
+def_whitelist_auth *@*.tyndale.com
+def_whitelist_auth reservations@druryhotels.com
+def_whitelist_auth *@*.autopartswarehouse.com
+def_whitelist_auth *@*.levi.com
+def_whitelist_auth *@*.echosign.com
+def_whitelist_auth *@*.carparts.com
+def_whitelist_auth *@*.jared.com
+def_whitelist_auth *@*.superjeweler.com
+def_whitelist_auth *@*.ticketnetwork.com
+def_whitelist_auth *@*.kay.com
+def_whitelist_auth *@*.grainger.com
+def_whitelist_auth *@*.fivebelow.com
+def_whitelist_auth *@*.destinationxl.com
+def_whitelist_auth *@*.perfectdeliver.com
+def_whitelist_auth *@*.buffalowildwings.com
+def_whitelist_auth *@*.macaronikid.com
+def_whitelist_auth *@*.marshallsonline.com
+def_whitelist_auth *@*.nordstromrack.com
+def_whitelist_auth *@*.kyliecosmetics.com
+def_whitelist_auth *@*.midwestsports.com
+def_whitelist_auth *@*.deluxe.com
+def_whitelist_auth *@*.fidelity.com
+def_whitelist_auth *@ticketmaster.com
+def_whitelist_auth *@mozillafoundation.org
+def_whitelist_auth *@*.uhc.com
+def_whitelist_auth *@*.sprint.com
+def_whitelist_auth *@*.rxhealthalerts.com
+def_whitelist_auth *@*.eventtracker.com
+def_whitelist_auth *@*.horoscope.com
+def_whitelist_auth *@*.email-lifetouch.com
+def_whitelist_auth *@*.evine.com
+def_whitelist_auth *@*.donorschoose.org
+def_whitelist_auth noreply@adt.com
+def_whitelist_auth *@tmomail.net
+def_whitelist_auth donotreply@dhl.com
+def_whitelist_auth *@travelodge.co.uk
+def_whitelist_auth bounce@ryanairemail.com
+def_whitelist_auth *@*.tpr.gov.uk
+def_whitelist_auth homedepotreceipt@homedepot.com
+def_whitelist_auth *@*.lifewaystores.com
+def_whitelist_auth *@*.paypalcredit.com
+def_whitelist_auth *@paypal-customerfeedback.com
+def_whitelist_auth no-reply@flyfrontier.com
+def_whitelist_auth *@*.canon.com
+def_whitelist_auth *@*.techtrnds.com
+def_whitelist_auth *@*.realsimple.com
+def_whitelist_auth *@espnmail.com
+def_whitelist_auth *@*.nickjr.com
+def_whitelist_auth *@*.eschoolnews.com
+def_whitelist_auth *@*.motosnap.com
+def_whitelist_auth *@*.gsnutsandmags.com
+def_whitelist_auth *@*.shutterfly.com
+def_whitelist_auth *@*.edgenuity.com
+def_whitelist_auth *@*.goodreads.com
+def_whitelist_auth *@*.shrm.org
+def_whitelist_auth *@*.mtshrm.org
+def_whitelist_auth *@*.gynzy.com
+def_whitelist_auth *@*.actionnetwork.org
+def_whitelist_auth *@*.teacherfindr.com
+def_whitelist_auth *@*.tladoonline.com
+def_whitelist_auth *@*.aaa.com
+def_whitelist_auth *@*.woot.com
+def_whitelist_auth *@*.nsba.org
+def_whitelist_auth *@*.teamapp.com
+def_whitelist_auth *@*.act.org
+def_whitelist_auth *@*.vetsandfamily.com
+def_whitelist_auth *@*.jeansforvets.org
+def_whitelist_auth *@*.welcomehomevet.org
+def_whitelist_auth *@*.readingeggs.com
+def_whitelist_auth *@*.myschoolcast.com
+def_whitelist_auth *@*.takethemameal.com
+def_whitelist_auth *@*.shape.com
+def_whitelist_auth *@*.videoblocks.com
+def_whitelist_auth *@*.wifeteachermommy.com
+def_whitelist_auth *@*.darice.com
+def_whitelist_auth *@*.everfi.net
+def_whitelist_auth *@godvinemail.com
+def_whitelist_auth *@*.doheny.com
+def_whitelist_auth *@*.nyansa.com
+def_whitelist_auth *@*.submittable.com
+def_whitelist_auth *@*.slideshare.net
+def_whitelist_auth *@*.ocm.com
+def_whitelist_auth *@*.dji.com
+def_whitelist_auth *@*.zyngamail.com
+def_whitelist_auth *@*.costasunglasses.com
+def_whitelist_auth *@*.baseballexpress.com
+def_whitelist_auth *@dishemail.com
+def_whitelist_auth *@*.promgirl.com
+def_whitelist_auth *@*.ed.gov
+def_whitelist_auth *@*.carecredit.com
+def_whitelist_auth *@*.trello.com
+def_whitelist_auth *@*.shopify.com
+def_whitelist_auth *@*.iclasspro.com
+def_whitelist_auth *@mail-fellowesbrands.com
+def_whitelist_auth *@*.planetfitness.com
+def_whitelist_auth *@*.shoppinkblush.com
+def_whitelist_auth *@*.webmdprofessional.com
+def_whitelist_auth *@*.omadahealth.com
+def_whitelist_auth *@*.vividseats.com
+def_whitelist_auth *@*.avis.com
+def_whitelist_auth *@*.square.com
+def_whitelist_auth *@*.ruthschris-email.com
+def_whitelist_auth *@*.zearn.org
+def_whitelist_auth *@*.careerbuilder.com
+def_whitelist_auth *@*.kelloggs.com
+def_whitelist_auth *@*.wunderground.com
+def_whitelist_auth *@*.silpada.com
+def_whitelist_auth *@*.toofaced.com
+def_whitelist_auth *@*.sonicwall.com
+def_whitelist_auth *@*.bebe.com
+def_whitelist_auth *@*.discoveryeducation.com
+def_whitelist_auth *@*.alison.com
+def_whitelist_auth *@*.livestream.com
+def_whitelist_auth *@*.rockauto.com
+def_whitelist_auth *@*.elfcosmetics.com
+def_whitelist_auth *@*.cars.com
+def_whitelist_auth *@*.puritan.com
+def_whitelist_auth *@*.cheddars.com
+def_whitelist_auth *@*.schoolmessenger.com
+def_whitelist_auth *@*.pinchme.com
+def_whitelist_auth *@*.clarksusa.com
+def_whitelist_auth *@*.smore.com
+def_whitelist_auth *@*.softball.com
+def_whitelist_auth *@*.commonsense-email.org
+def_whitelist_auth *@*.onekingslane.com
+def_whitelist_auth *@*.elfcosmetics.com
+def_whitelist_auth *@*.aclj.org
+def_whitelist_auth *@*.darice.com
+def_whitelist_auth *@*.shopify.com
+def_whitelist_auth *@*.doheny.com
+def_whitelist_auth *@*.improvementscatalog-email.com
+def_whitelist_auth *@*.promgirl.com
+def_whitelist_auth *@*.webmdprofessional.com
+def_whitelist_auth *@*.thrivecausemetics.com
+def_whitelist_auth *@*.toofaced.com
+def_whitelist_auth *@*.evanmoor-alerts.com
+def_whitelist_auth *@*.livestream.com
+def_whitelist_auth *@*.customerville.com
+def_whitelist_auth *@*.lmscheckout.com
+def_whitelist_auth *@*.shop-explorers.com
+def_whitelist_auth *@*.helpavet.co
+def_whitelist_auth *@*.aidtroops.com
+def_whitelist_auth *@*.denindays.org
+def_whitelist_auth *@*.helpourvets.us
+def_whitelist_auth *@*.denim-day.com
+def_whitelist_auth *@*.eldarion.com
+def_whitelist_auth *@*.wunderground.com
+def_whitelist_auth *@*.kelloggs.com
+def_whitelist_auth *@*.portfolium.com
+def_whitelist_auth *@*.iclasspro.com
+def_whitelist_auth *@*.socrative.com
+def_whitelist_auth *@*.vnnsports.net
+def_whitelist_auth *@*.americauncensored.com
+def_whitelist_auth *@*.email-allstate.com
+def_whitelist_auth *@*.omadahealth.com
+def_whitelist_auth *@*.rei.com
+def_whitelist_auth *@*.research.net
+def_whitelist_auth *@*.allinlearning.com
+def_whitelist_auth *@*.energage.com
+def_whitelist_auth *@*.aasa.org
+def_whitelist_auth *@*.constructionclaims.com
+def_whitelist_auth *@*.nsba.org
+def_whitelist_auth *@*.jeansdays.com
+def_whitelist_auth *@*.servicemansupport.org
+def_whitelist_auth *@*.learningally.org
+def_whitelist_auth *@*.quill.org
+def_whitelist_auth *@*.funrewardsforyou.com
+def_whitelist_auth *@*.digicert.com
+def_whitelist_auth *@*.venmo.com
+def_whitelist_auth *@*.bestbuddies.org
+def_whitelist_auth *@*.ashleydsg.com
+def_whitelist_auth *@*.homechef.com
+def_whitelist_auth *@*.morningconsult.com
+def_whitelist_auth *@*.stewardship.com
+def_whitelist_auth *@*.salsalabs.org
+def_whitelist_auth *@*.shop-backinthesaddle.com
+def_whitelist_auth *@*.bounceexchange.com
+def_whitelist_auth *@*.tobi.com
+def_whitelist_auth *@*.makermedia.com
+def_whitelist_auth *@*.adoptapet.com
+def_whitelist_auth *@*.wested.org
+def_whitelist_auth *@*.sfsdata.com
+def_whitelist_auth *@*.sonicdrivein.com
+def_whitelist_auth *@*.justflyemail.com
+def_whitelist_auth *@*.sling.com
+def_whitelist_auth *@*.zagg.com
+def_whitelist_auth *@*.turnoutpac.org
+def_whitelist_auth *@*.whirlpool.com
+def_whitelist_auth *@*.legendsoflearning.com
+def_whitelist_auth *@*.gallup.com
+def_whitelist_auth *@*.ereflect.com
+def_whitelist_auth *@*.asumag.com
+def_whitelist_auth *@*.commonblackcollegeapp.com
+def_whitelist_auth *@*.broadridge.com
+def_whitelist_auth *@*.greenrope.com
+def_whitelist_auth *@*.trackwrestling.com
+def_whitelist_auth *@*.blackboard.com
+def_whitelist_auth *@*.govdeals.com
+def_whitelist_auth *@*.shipstation.com
+def_whitelist_auth *@*.nyansa.com
+def_whitelist_auth *@*.sciencepubs.org
+def_whitelist_auth *@*.betabrand.com
+def_whitelist_auth *@*.hhs.gov
+def_whitelist_auth *@*.discover.com
+def_whitelist_auth *@*.bebe.com
+def_whitelist_auth *@*.homeadvisor.com
+def_whitelist_auth *@*.handsonaswegrow.com
+def_whitelist_auth *@*.in.gov
+def_whitelist_auth *@*.oldchicago.com
+def_whitelist_auth *@*.globalfitnesschallenge.com
+def_whitelist_auth *@*.virtualvocations.com
+def_whitelist_auth *@*.aopa.org
+def_whitelist_auth *@*.mail-zr.com
+def_whitelist_auth *@*.trovit.com
+def_whitelist_auth *@*.hscloudsuite.com
+def_whitelist_auth *@*.rothys.com
+def_whitelist_auth *@*.sgml3.com
+def_whitelist_auth *@*.fox13memphis.com
+def_whitelist_auth *@*.sprouts.com
+def_whitelist_auth *@*.ruthschris-email.com
+def_whitelist_auth *@*.softball.com
+def_whitelist_auth *@*.yankeecandle.com
+def_whitelist_auth *@*.candidcolorhosting.com
+def_whitelist_auth *@*.endcitizensunited.org
+def_whitelist_auth *@*.redditgifts.com
+def_whitelist_auth *@*.tdworld.com
+def_whitelist_auth *@*.thenorthface.com
+def_whitelist_auth *@*.bark.com
+def_whitelist_auth *@*.center.io
+def_whitelist_auth *@*.movethisworld.com
+def_whitelist_auth *@*.pgsurveying.com
+def_whitelist_auth *@*.mealtrain.com
+def_whitelist_auth *@*.acemsd1.com
+def_whitelist_auth *@*.jobhat.com
+def_whitelist_auth *@*.earthfare.com
+def_whitelist_auth *@*.nassp.org
+def_whitelist_auth *@*.rasa.io
+def_whitelist_auth *@*.surveydirectlive.com
+def_whitelist_auth *@*.frontgate-email.com
+def_whitelist_auth *@*.job-tree.com
+def_whitelist_auth *@*.slideshare.net
+def_whitelist_auth *@*.cambridge.org
+def_whitelist_auth *@*.everytown.org
+def_whitelist_auth *@*.bitesquad.com
+def_whitelist_auth *@*.fit2fat2fit.com
+def_whitelist_auth *@*.nationsend18.com
+def_whitelist_auth *@*.livingwelldaily.com
+def_whitelist_auth *@*.robotevents.com
+def_whitelist_auth *@*.livetext.com
+def_whitelist_auth *@*.lightreading.com
+def_whitelist_auth *@*.uscourts.gov
+def_whitelist_auth *@*.fabfitfun.com
+def_whitelist_auth *@*.edlistservs.org
+def_whitelist_auth *@*.csid.com
+def_whitelist_auth *@*.spiceworks.com
+def_whitelist_auth *@*.dctemail.com
+def_whitelist_auth *@*.thetileapp.com
+def_whitelist_auth *@*.wendys.com
+def_whitelist_auth *@*.ylginc.com
+def_whitelist_auth *@*.servicenow.com
+def_whitelist_auth *@*.charmsmusic.com
+def_whitelist_auth *@*.opendns.com
+def_whitelist_auth *@*.gracegentry.com
+def_whitelist_auth *@*.digitalsports.com
+def_whitelist_auth *@*.dailymemphian.com
+def_whitelist_auth *@*.hobsonsradius.com
+def_whitelist_auth *@*.diversifiedemail.com
+def_whitelist_auth *@*.harlemglobetrotters.com
+def_whitelist_auth *@*.nationsend12.com
+def_whitelist_auth *@*.sf-notifications.com
+def_whitelist_auth *@*.noredink.com
+def_whitelist_auth *@*.amtrak.com
+def_whitelist_auth *@*.homegoods.com
+def_whitelist_auth *@*.bigteams.com
+def_whitelist_auth *@*.stansberryresearch.com
+def_whitelist_auth *@*.fafsa.gov
+def_whitelist_auth *@*.solarwinds.com
+def_whitelist_auth *@*.petsgeek.com
+def_whitelist_auth *@*.consumerservicesdirect.com
+def_whitelist_auth *@*.carfax.com
+def_whitelist_auth *@*.ismg-campaigns.com
+def_whitelist_auth *@*.passports.com
+def_whitelist_auth *@*.dailykos.com
+def_whitelist_auth *@*.loftoutlet.com
+def_whitelist_auth *@*.brit.co
+def_whitelist_auth *@*.cappex.com
+def_whitelist_auth *@*.neopost.com
+def_whitelist_auth *@*.adidas.com
+def_whitelist_auth *@*.verizonenterprise.com
+def_whitelist_auth *@*.zohodesk.com
+def_whitelist_auth *@*.renzullilearning.com
+def_whitelist_auth *@*.lumoslearning.com
+def_whitelist_auth *@*.sesamereminders.com
+def_whitelist_auth *@*.ninewest.com
+def_whitelist_auth *@*.agorafinancial.com
+def_whitelist_auth *@*.collegenet.com
+def_whitelist_auth *@*.greenrope.net
+def_whitelist_auth *@*.skyzone.com
+def_whitelist_auth *@*.adlmail.org
+def_whitelist_auth *@*.clarksusa.com
+def_whitelist_auth *@*.granicus.com
+def_whitelist_auth *@*.theblaze.com
+def_whitelist_auth *@*.lormanonlinecourses.com
+def_whitelist_auth *@*.chatbooks.com
+def_whitelist_auth *@*.tangocard.com
+def_whitelist_auth *@*.signup.com
+def_whitelist_auth *@*.aisleahead.com
+def_whitelist_auth *@*.pinkcoconutboutique.com
+def_whitelist_auth *@*.hallmark.com
+def_whitelist_auth *@*.emailpackers.com
+def_whitelist_auth *@*.windows.com
+def_whitelist_auth *@*.hartvillegroup.com
+def_whitelist_auth *@*.getresponse-mail.com
+def_whitelist_auth *@*.scholarships.com
+def_whitelist_auth *@*.wifeteachermommy.com
+def_whitelist_auth *@*.cheddars.com
+def_whitelist_auth *@*.berrylook.com
+def_whitelist_auth *@*.westernunion.com
+def_whitelist_auth *@*.aerialschoolimages.com
+def_whitelist_auth *@*.bitglass.com
+def_whitelist_auth *@*.purefitnessinnovations.com
+def_whitelist_auth *@*.coach.com
+def_whitelist_auth *@*.rockauto.com
+def_whitelist_auth *@*.americanbookcompany.com
+def_whitelist_auth *@*.rockbottomgolf.com
+def_whitelist_auth *@*.doordash.com
+def_whitelist_auth *@*.cainc.com
+def_whitelist_auth *@*.email-nationwide.com
+def_whitelist_auth *@*.honorsociety.org
+def_whitelist_auth *@*.dailysale.com
+def_whitelist_auth *@*.emsmtp.us
+def_whitelist_auth *@*.calm.com
+def_whitelist_auth *@*.snapsurveys.com
+def_whitelist_auth *@*.dropbox-mktg.com
+def_whitelist_auth *@*.striderite.com
+def_whitelist_auth *@*.stackcommerce.com
+def_whitelist_auth *@*.norton.com
+def_whitelist_auth *@*.aeds.com
+def_whitelist_auth *@*.dia.co
+def_whitelist_auth *@*.blackfriday.com
+def_whitelist_auth *@*.olay.com
+def_whitelist_auth confirmation@aircanada.ca
+def_whitelist_auth no-reply@enterprise.com
+def_whitelist_auth *@*.hubspotstarter.net
+def_whitelist_auth *@*.serverchamber.com
+def_whitelist_auth *@*.msbrooksclass.com
+def_whitelist_auth *@*.hickoryfarms.com
+def_whitelist_auth *@*.evesaddiction.com
+def_whitelist_auth *@*.sowntogrow.com
+def_whitelist_auth *@*.shopthemint.com
+def_whitelist_auth *@*.charlotterusse.com
+def_whitelist_auth *@*.moviepass.com
+def_whitelist_auth *@*.revrocket.us
+def_whitelist_auth *@*.nintendo.com
+def_whitelist_auth *@*.btr.com
+def_whitelist_auth *@*.gothamsteelstore.com
+def_whitelist_auth *@*.naturalizer.com
+def_whitelist_auth *@*.jerrysartarama.com
+def_whitelist_auth *@*.iconicgroup.com
+def_whitelist_auth *@*.spanx.com
+def_whitelist_auth *@*.haggar.com
+def_whitelist_auth *@*.change.org
+def_whitelist_auth *@*.headspace.com
+def_whitelist_auth *@*.firstsouth.com
+def_whitelist_auth *@*.instacart.com
+def_whitelist_auth *@*.kodakmoments.com
+def_whitelist_auth *@*.penzeys.com
+def_whitelist_auth *@*.rescueme.org
+def_whitelist_auth *@*.icr.org
+def_whitelist_auth *@*.joinhandshake.com
+def_whitelist_auth *@*.colourpop.com
+def_whitelist_auth *@*.actsend.com
+def_whitelist_auth *@*.audubon.org
+def_whitelist_auth *@*.noom.com
+def_whitelist_auth *@*.conexionamericas.org
+def_whitelist_auth *@*.hollywoodfeed.com
+def_whitelist_auth *@*.cio.com
+def_whitelist_auth *@*.55mulberry.com
+def_whitelist_auth *@*.knowatom.com
+def_whitelist_auth *@*.maxsamples.com
+def_whitelist_auth *@*.thekeyrewards.com
+def_whitelist_auth *@*.rakuten.com
+def_whitelist_auth *@*.tastycookerymailings.com
+def_whitelist_auth *@*.myenotice.com
+def_whitelist_auth *@*.sportclips.com
+def_whitelist_auth *@*.senzajobalerts.com
+def_whitelist_auth *@*.genghisgrill.com
+def_whitelist_auth *@*.fider.io
+def_whitelist_auth *@*.mchdata.com
+def_whitelist_auth *@*.fivestarlinemen.com
+def_whitelist_auth *@*.dunhamssports-email.com
+def_whitelist_auth *@*.vitals.com
+def_whitelist_auth *@*.thrivistlms.com
+def_whitelist_auth *@*.build.com
+def_whitelist_auth *@*.vacationmyrtlebeach.com
+def_whitelist_auth *@*.kidreports.com
+def_whitelist_auth *@*.jobframe.net
+def_whitelist_auth *@*.aegpresents.com
+def_whitelist_auth *@*.shmoop.com
+def_whitelist_auth *@*.brahminusa.com
+def_whitelist_auth *@*.stamats.com
+def_whitelist_auth *@*.wufoo.com
+def_whitelist_auth *@*.pre-kpages.com
+def_whitelist_auth *@*.listen360.com
+def_whitelist_auth *@*.silversingles.com
+def_whitelist_auth *@*.ruralking.com
+def_whitelist_auth *@*.yourhobbylobby.com
+def_whitelist_auth *@*.educationworld.com
+def_whitelist_auth *@*.theeducatorsnetwork.com
+def_whitelist_auth *@*.csoonline.com
+def_whitelist_auth *@*.youscience.com
+def_whitelist_auth *@*.konnectnow.com
+def_whitelist_auth *@*.esa.org
+def_whitelist_auth *@*.modcloth.com
+def_whitelist_auth *@*.harborfreight.com
+def_whitelist_auth *@*.eshakti.com
+def_whitelist_auth *@*.fda.gov
+def_whitelist_auth *@*.shermanstravel.com
+def_whitelist_auth *@*.naturalhealthresponse.com
+def_whitelist_auth *@*.epicgames.com
+def_whitelist_auth *@*.paisleygraceboutique.com
+def_whitelist_auth *@*.dhccare.com
+def_whitelist_auth *@*.spectrumemails.com
+def_whitelist_auth *@*.worldatwork.org
+def_whitelist_auth *@*.usatestprep.com
+def_whitelist_auth *@*.twinkl.com
+def_whitelist_auth *@*.opticsplanet.com
+def_whitelist_auth *@*.troxmail.com
+def_whitelist_auth *@*.carolina.com
+def_whitelist_auth *@*.teamviewer.com
+def_whitelist_auth *@*.bodybuilding.com
+def_whitelist_auth *@*.adobespark.com
+def_whitelist_auth *@*.entercom.com
+def_whitelist_auth *@*.hbonow.com
+def_whitelist_auth *@*.grandinroad-email.com
+def_whitelist_auth *@*.livongo.com
+def_whitelist_auth *@*.daxkoengage.com
+def_whitelist_auth *@*.lemonlimeadventures.com
+def_whitelist_auth *@*.lumosity.com
+def_whitelist_auth *@*.ihop-communications.com
+def_whitelist_auth *@*.dailysteals.com
+def_whitelist_auth *@*.testingmom.com
+def_whitelist_auth *@*.ceramicartsnetwork.org
+def_whitelist_auth *@*.verintefm.com
+
+endif # if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+
+endif # Mail::SpamAssassin::Plugin::SPF
+
+endif # version >= 3.3.0
diff --git a/sa-updates/60_whitelist_dkim.cf b/sa-updates/60_whitelist_dkim.cf
new file mode 100644 (file)
index 0000000..9c7533e
--- /dev/null
@@ -0,0 +1,158 @@
+# SpamAssassin rules file: default DKIM whitelists
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+###########################################################################
+# DKIM whitelist rules
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+header USER_IN_DKIM_WHITELIST  eval:check_for_dkim_whitelist_from()
+describe USER_IN_DKIM_WHITELIST        From: address is in the user's DKIM whitelist
+tflags USER_IN_DKIM_WHITELIST  nice noautolearn net userconf
+reuse USER_IN_DKIM_WHITELIST
+
+header USER_IN_DEF_DKIM_WL     eval:check_for_def_dkim_whitelist_from()
+describe USER_IN_DEF_DKIM_WL   From: address is in the default DKIM white-list
+tflags USER_IN_DEF_DKIM_WL     nice noautolearn net
+reuse USER_IN_DEF_DKIM_WL
+
+###########################################################################
+# Default whitelists.  These should be e-mail addresses of authors (i.e.
+# addresses in the From header field) which send mail that is often
+# tagged (incorrectly) as spam.  DKIM whitelisting only applies to mail
+# with a valid DKIM (or older DK) signature.  An optional second parameter
+# can specify a signing domain (the 'd' tag), if different from author's
+# domain. Please see Mail::SpamAssassin::Plugin::DKIM man page for details.
+#
+# Whitelist and blacklist addresses are file-glob-style patterns, so
+# "friend@somewhere.com", "*@isp.com", or "*.domain.net" will all work.
+
+def_whitelist_from_dkim  *@*.ebay.com          ebay.com
+def_whitelist_from_dkim  *@ebay.com
+def_whitelist_from_dkim  *@ebay.co.uk
+def_whitelist_from_dkim  *@*.ebay.co.uk
+def_whitelist_from_dkim  *@ebay.at
+def_whitelist_from_dkim  *@*.ebay.at
+def_whitelist_from_dkim  *@ebay.be
+def_whitelist_from_dkim  *@*.ebay.be
+def_whitelist_from_dkim  *@ebay.de
+def_whitelist_from_dkim  *@*.ebay.de
+def_whitelist_from_dkim  *@ebay.es
+def_whitelist_from_dkim  *@*.ebay.es
+def_whitelist_from_dkim  *@ebay.fr
+def_whitelist_from_dkim  *@*.ebay.fr
+def_whitelist_from_dkim  *@ebay.ie
+def_whitelist_from_dkim  *@*.ebay.ie
+def_whitelist_from_dkim  *@ebay.it
+def_whitelist_from_dkim  *@*.ebay.it
+def_whitelist_from_dkim  *@ebay.nl
+def_whitelist_from_dkim  *@*.ebay.nl
+def_whitelist_from_dkim  *@ebay.pt
+def_whitelist_from_dkim  *@*.ebay.pt
+def_whitelist_from_dkim  *@ebay.ca
+def_whitelist_from_dkim  *@*.ebay.ca
+
+def_whitelist_from_dkim  *@*                   paypal.com
+def_whitelist_from_dkim  *@paypal.com
+def_whitelist_from_dkim  *@*.paypal.com
+def_whitelist_from_dkim  *@paypal.co.uk
+def_whitelist_from_dkim  *@*.paypal.co.uk
+def_whitelist_from_dkim  *@paypal.at
+def_whitelist_from_dkim  *@*.paypal.at
+def_whitelist_from_dkim  *@paypal.be
+def_whitelist_from_dkim  *@*.paypal.be
+def_whitelist_from_dkim  *@paypal.de
+def_whitelist_from_dkim  *@*.paypal.de
+def_whitelist_from_dkim  *@paypal.es
+def_whitelist_from_dkim  *@*.paypal.es
+def_whitelist_from_dkim  *@paypal.fr
+def_whitelist_from_dkim  *@*.paypal.fr
+def_whitelist_from_dkim  *@paypal.ie
+def_whitelist_from_dkim  *@*.paypal.ie
+def_whitelist_from_dkim  *@paypal.it
+def_whitelist_from_dkim  *@*.paypal.it
+def_whitelist_from_dkim  *@paypal.nl
+def_whitelist_from_dkim  *@*.paypal.nl
+def_whitelist_from_dkim  *@paypal.pt
+def_whitelist_from_dkim  *@*.paypal.pt
+def_whitelist_from_dkim  *@paypal.ca
+def_whitelist_from_dkim  *@*.paypal.ca
+
+def_whitelist_from_dkim  *@cisco.com
+def_whitelist_from_dkim  *@lh.lufthansa.com
+def_whitelist_from_dkim  *@*.milesandmore.com
+def_whitelist_from_dkim  *@mail.hotels.com
+def_whitelist_from_dkim  *@email.hotels.com
+def_whitelist_from_dkim  *@alert.bankofamerica.com
+def_whitelist_from_dkim  *@ealerts.bankofamerica.com
+def_whitelist_from_dkim  *@cc.yahoo-inc.com    yahoo-inc.com
+def_whitelist_from_dkim  *@cc.yahoo-inc.com
+def_whitelist_from_dkim  googlealerts-noreply@google.com
+def_whitelist_from_dkim  *@*.google.com
+
+def_whitelist_from_dkim  *@springer.delivery.net
+def_whitelist_from_dkim  *@sci.scientific-direct.net
+def_whitelist_from_dkim  *@strongmail.the-scientist.com
+def_whitelist_from_dkim  *@ealert.nature.com
+def_whitelist_from_dkim  *@gateways.nature.com
+def_whitelist_from_dkim  *@information.nature.com
+def_whitelist_from_dkim  *@newsdesk.world-nuclear-news.org
+def_whitelist_from_dkim  *@biocompare.com
+def_whitelist_from_dkim  *@dentalcompare.com
+def_whitelist_from_dkim  *@medcompare.com
+def_whitelist_from_dkim  *@itbusinessedge.com
+def_whitelist_from_dkim  *@nl.reuters.com
+def_whitelist_from_dkim  *@email.washingtonpost.com
+def_whitelist_from_dkim  *@washingtontimesmail.com
+def_whitelist_from_dkim  *@info-aaas.org
+def_whitelist_from_dkim  *@*.newsmax.com
+def_whitelist_from_dkim  *@zdnet.online.com
+def_whitelist_from_dkim  *@m-w.com
+
+def_whitelist_from_dkim  *@skype.net
+def_whitelist_from_dkim  *@*.skype.net
+def_whitelist_from_dkim  *@*.skype.net         skype.net
+def_whitelist_from_dkim  *@*.skype.com
+def_whitelist_from_dkim  *@*.skype.com         skype.com
+
+#consider also:
+# def_whitelist_from_dkim  *@avaaz.org
+# def_whitelist_from_dkim  *@techrepublic.online.com
+# def_whitelist_from_dkim  ezines@arcamax.com
+# def_whitelist_from_dkim  *@yousendit.com
+# def_whitelist_from_dkim  *@meetup.com
+# def_whitelist_from_dkim  *@astrology.com
+# def_whitelist_from_dkim  *@google.com
+# def_whitelist_from_dkim  *@amazon.com
+# def_whitelist_from_dkim  *@amazon.co.uk
+# def_whitelist_from_dkim  *@amazon.de
+# def_whitelist_from_dkim  *@amazon.fr
+
+def_whitelist_from_dkim *@imdb.com amazonses.com
+def_whitelist_from_dkim *@dhl.com
+def_whitelist_from_dkim *@tumblr.com
+def_whitelist_from_dkim *@fisglobal.com
+def_whitelist_from_dkim *@*.msgfocus.com
+def_whitelist_from_dkim *@boredpanda.com mailersend.com
+
+endif # Mail::SpamAssassin::Plugin::DKIM
diff --git a/sa-updates/60_whitelist_spf.cf b/sa-updates/60_whitelist_spf.cf
new file mode 100644 (file)
index 0000000..d845f46
--- /dev/null
@@ -0,0 +1,87 @@
+# SpamAssassin rules file: default SPF whitelists
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+###########################################################################
+# SPF whitelist rules
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+
+header USER_IN_SPF_WHITELIST   eval:check_for_spf_whitelist_from()
+describe USER_IN_SPF_WHITELIST From: address is in the user's SPF whitelist
+tflags USER_IN_SPF_WHITELIST   userconf nice noautolearn net
+reuse USER_IN_SPF_WHITELIST
+
+header USER_IN_DEF_SPF_WL      eval:check_for_def_spf_whitelist_from()
+describe USER_IN_DEF_SPF_WL    From: address is in the default SPF white-list
+tflags USER_IN_DEF_SPF_WL      userconf nice noautolearn net
+reuse USER_IN_DEF_SPF_WL
+
+meta ENV_AND_HDR_SPF_MATCH     (USER_IN_DEF_SPF_WL && __ENV_AND_HDR_FROM_MATCH)
+describe ENV_AND_HDR_SPF_MATCH Env and Hdr From used in default SPF WL Match
+tflags ENV_AND_HDR_SPF_MATCH   userconf nice noautolearn net
+
+###########################################################################
+# Default whitelists.  These should be addresses which send mail that is often
+# tagged (incorrectly) as spam; it also helps that they be addresses of big
+# companies with lots of lawyers, so if spammers impersonate them, they'll get
+# into big trouble, so it doesn't provide a shortcut around SpamAssassin.
+#
+# Whitelist and blacklist addresses are now file-glob-style patterns, so
+# "friend@somewhere.com", "*@isp.com", or "*.domain.net" will all work.
+#
+# Please do not add unmoderated public mailing lists here.  They are
+# too easily abused by spammers.
+
+def_whitelist_from_spf   *@nytimes.com
+def_whitelist_from_spf   *@amazon.com
+def_whitelist_from_spf   *@amazon.co.uk
+def_whitelist_from_spf   *@*.amazon.co.uk
+def_whitelist_from_spf   *@ora.com
+def_whitelist_from_spf   *@*.ora.com
+def_whitelist_from_spf   *@mypoints.com
+def_whitelist_from_spf   *@*.mypoints.com
+def_whitelist_from_spf   *@paypal.com
+def_whitelist_from_spf   *@ebay.com
+def_whitelist_from_spf   *@foolsubs.com
+def_whitelist_from_spf   *@match.com
+
+# bugtraq: can contain malicious Javascript etc.
+def_whitelist_from_spf   *@securityfocus.com
+
+def_whitelist_from_spf   *@mediaunspun.imakenews.net
+
+# sender of Cringley newsletter
+def_whitelist_from_spf   *@bdcimail.com
+
+# Silicon.com newslettters - we see thousands of these
+def_whitelist_from_spf   *@silicon.com
+
+# C|Net news.com newsletters
+def_whitelist_from_spf   *@newsletter.online.com
+
+# bug 1348
+def_whitelist_from_spf   *@enews.buy.com
+def_whitelist_from_spf   *@palm.m0.net
+def_whitelist_from_spf   *@handspring.4at1.com
+
+endif # Mail::SpamAssassin::Plugin::SPF
diff --git a/sa-updates/60_whitelist_subject.cf b/sa-updates/60_whitelist_subject.cf
new file mode 100644 (file)
index 0000000..970c808
--- /dev/null
@@ -0,0 +1,42 @@
+# SpamAssassin rules file: default whitelist/blacklist subject
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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>
+
+###########################################################################
+# Whitelist/Blacklist rules
+#
+# Note that most of these get 'noautolearn'.  They should not be
+# considered when deciding whether to auto-learn a message, as a
+# user slip-up could result in scribbling side-effects in the bayes
+# db as a result -- which is hard to remedy.
+
+ifplugin Mail::SpamAssassin::Plugin::WhiteListSubject
+
+header SUBJECT_IN_WHITELIST    eval:check_subject_in_whitelist()
+describe SUBJECT_IN_WHITELIST  Subject: contains string in the user's white-list
+tflags SUBJECT_IN_WHITELIST    userconf nice noautolearn
+
+header SUBJECT_IN_BLACKLIST    eval:check_subject_in_blacklist()
+describe SUBJECT_IN_BLACKLIST  Subject: contains string in the user's black-list
+tflags SUBJECT_IN_BLACKLIST    userconf noautolearn
+
+endif # Mail::SpamAssassin::Plugin::WhiteListSubject
diff --git a/sa-updates/72_active.cf b/sa-updates/72_active.cf
new file mode 100644 (file)
index 0000000..424d05a
--- /dev/null
@@ -0,0 +1,10327 @@
+# SpamAssassin rules file
+#
+# Please don't modify this file as your changes will be overwritten with
+# the next update. Use /etc/mail/spamassassin/local.cf instead.
+# See 'perldoc Mail::SpamAssassin::Conf' for details.
+#
+# <@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 3.004005
+
+##{ ACCT_PHISHING_MANY
+
+meta        ACCT_PHISHING_MANY   (__ACCT_PHISH_MANY || __EMAIL_PHISH_MANY) && !GOOGLE_DOCS_PHISH_MANY && !GOOG_STO_HTML_PHISH_MANY
+describe    ACCT_PHISHING_MANY   Phishing for account information
+#score       ACCT_PHISHING_MANY   3.000  # limit
+##} ACCT_PHISHING_MANY
+
+##{ AC_BR_BONANZA
+
+rawbody AC_BR_BONANZA   /(?:<br>\s*){30}/i
+describe AC_BR_BONANZA  Too many newlines in a row... spammy template
+#score AC_BR_BONANZA     0.001
+tflags AC_BR_BONANZA   publish
+##} AC_BR_BONANZA
+
+##{ AC_DIV_BONANZA
+
+rawbody AC_DIV_BONANZA  /(?:<div>(?:\s*<\/div>)?\s*){10}/i
+describe AC_DIV_BONANZA Too many divs in a row... spammy template
+#score AC_DIV_BONANZA    0.001
+tflags AC_DIV_BONANZA  publish
+##} AC_DIV_BONANZA
+
+##{ AC_FROM_MANY_DOTS
+
+meta       AC_FROM_MANY_DOTS           __AC_FROM_MANY_DOTS_MINFP
+#score      AC_FROM_MANY_DOTS           3.000  # limit
+describe   AC_FROM_MANY_DOTS           Multiple periods in From user name
+tflags     AC_FROM_MANY_DOTS           publish
+##} AC_FROM_MANY_DOTS
+
+##{ AC_HTML_NONSENSE_TAGS
+
+rawbody        AC_HTML_NONSENSE_TAGS   /(?:<[A-Za-z0-9]{4,}>\s*){10}/
+describe       AC_HTML_NONSENSE_TAGS   Many consecutive multi-letter HTML tags, likely nonsense/spam
+#score                 AC_HTML_NONSENSE_TAGS   2.0
+tflags         AC_HTML_NONSENSE_TAGS   publish
+##} AC_HTML_NONSENSE_TAGS
+
+##{ AC_POST_EXTRAS
+
+meta       AC_POST_EXTRAS              __AC_POST_EXTRAS && !__URI_MAILTO && !__HAS_LIST_ID 
+describe   AC_POST_EXTRAS              Suspicious URL
+#score      AC_POST_EXTRAS              2.500  # limit
+tflags     AC_POST_EXTRAS              publish
+##} AC_POST_EXTRAS
+
+##{ AC_SPAMMY_URI_PATTERNS1
+
+meta           AC_SPAMMY_URI_PATTERNS1 (__AC_OUTL_URI && __AC_OUTI_URI)
+describe       AC_SPAMMY_URI_PATTERNS1 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS1 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS1 publish
+##} AC_SPAMMY_URI_PATTERNS1
+
+##{ AC_SPAMMY_URI_PATTERNS10
+
+meta           AC_SPAMMY_URI_PATTERNS10 __AC_PUNCTNUMS_URI
+describe       AC_SPAMMY_URI_PATTERNS10 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS10 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS10 publish
+##} AC_SPAMMY_URI_PATTERNS10
+
+##{ AC_SPAMMY_URI_PATTERNS11
+
+meta           AC_SPAMMY_URI_PATTERNS11 __AC_NDOMLONGNASPX_URI
+describe       AC_SPAMMY_URI_PATTERNS11 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS11 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS11 publish
+##} AC_SPAMMY_URI_PATTERNS11
+
+##{ AC_SPAMMY_URI_PATTERNS12
+
+meta           AC_SPAMMY_URI_PATTERNS12 (__AC_CHDSEQ_URI && __AC_MHDSEQ_URI && __AC_UHDSEQ_URI)
+describe       AC_SPAMMY_URI_PATTERNS12 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS12 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS12 publish
+##} AC_SPAMMY_URI_PATTERNS12
+
+##{ AC_SPAMMY_URI_PATTERNS2
+
+meta           AC_SPAMMY_URI_PATTERNS2 (__AC_LAND_URI && __AC_UNSUB_URI && __AC_REPORT_URI)
+describe       AC_SPAMMY_URI_PATTERNS2 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS2 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS2 publish
+##} AC_SPAMMY_URI_PATTERNS2
+
+##{ AC_SPAMMY_URI_PATTERNS3
+
+meta           AC_SPAMMY_URI_PATTERNS3 (__AC_PHPOFFTOP_URI && __AC_PHPOFFSUB_URI)
+describe       AC_SPAMMY_URI_PATTERNS3 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS3 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS3 publish
+##} AC_SPAMMY_URI_PATTERNS3
+
+##{ AC_SPAMMY_URI_PATTERNS4
+
+meta           AC_SPAMMY_URI_PATTERNS4 __AC_NUMS_URI
+describe       AC_SPAMMY_URI_PATTERNS4 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS4 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS4 publish
+##} AC_SPAMMY_URI_PATTERNS4
+
+##{ AC_SPAMMY_URI_PATTERNS8
+
+meta           AC_SPAMMY_URI_PATTERNS8 __AC_LONGSEQ_URI
+describe       AC_SPAMMY_URI_PATTERNS8 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS8 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS8 publish
+##} AC_SPAMMY_URI_PATTERNS8
+
+##{ AC_SPAMMY_URI_PATTERNS9
+
+meta           AC_SPAMMY_URI_PATTERNS9 (__AC_1SEQC_URI && (__AC_1SEQV_URI || __AC_RMOVE_URI))
+describe       AC_SPAMMY_URI_PATTERNS9 link combos match highly spammy template
+#score                 AC_SPAMMY_URI_PATTERNS9 4.0
+tflags                 AC_SPAMMY_URI_PATTERNS9 publish
+##} AC_SPAMMY_URI_PATTERNS9
+
+##{ ADMAIL
+
+meta        ADMAIL            __ADMAIL && !__DKIM_EXISTS && !__COMMENT_EXISTS 
+describe    ADMAIL            "admail" and variants
+tflags      ADMAIL            publish
+##} ADMAIL
+
+##{ ADMITS_SPAM
+
+meta        ADMITS_SPAM       __ADMITS_SPAM && !__FROM_LOWER && !__MSGID_JAVAMAIL && !__HAS_CAMPAIGNID && !__STY_INVIS_2 && !__LYRIS_EZLM_REMAILER && !__RCD_RDNS_OB 
+describe    ADMITS_SPAM       Admits this is an ad
+tflags      ADMITS_SPAM       publish
+##} ADMITS_SPAM
+
+##{ ADVANCE_FEE_2_NEW_FORM
+
+meta      ADVANCE_FEE_2_NEW_FORM    (__ADVANCE_FEE_2_NEW_FORM && !__ADVANCE_FEE_3_NEW_FORM && !__ADVANCE_FEE_4_NEW_FORM && !__ADVANCE_FEE_5_NEW_FORM) && !__FROM_LOWER && !__HAS_X_LOOP
+describe  ADVANCE_FEE_2_NEW_FORM    Advance Fee fraud and a form
+#score     ADVANCE_FEE_2_NEW_FORM    2.000  # limit
+tflags    ADVANCE_FEE_2_NEW_FORM     publish
+##} ADVANCE_FEE_2_NEW_FORM
+
+##{ ADVANCE_FEE_2_NEW_FRM_MNY
+
+meta      ADVANCE_FEE_2_NEW_FRM_MNY    (__ADVANCE_FEE_2_NEW_FRM_MNY && !__ADVANCE_FEE_3_NEW_FRM_MNY && !__ADVANCE_FEE_4_NEW_FRM_MNY && !__ADVANCE_FEE_5_NEW_FRM_MNY) && !__HAS_X_LOOP
+describe  ADVANCE_FEE_2_NEW_FRM_MNY    Advance Fee fraud form and lots of money
+#score     ADVANCE_FEE_2_NEW_FRM_MNY    2.500
+tflags    ADVANCE_FEE_2_NEW_FRM_MNY  publish
+##} ADVANCE_FEE_2_NEW_FRM_MNY
+
+##{ ADVANCE_FEE_2_NEW_MONEY
+
+meta      ADVANCE_FEE_2_NEW_MONEY    (__ADVANCE_FEE_2_NEW_MONEY && !__ADVANCE_FEE_3_NEW_MONEY && !__ADVANCE_FEE_4_NEW_MONEY && !__ADVANCE_FEE_5_NEW_MONEY) && !__BOTH_INR_AND_REF && !__LYRIS_EZLM_REMAILER && !__COMMENT_EXISTS && !__VIA_ML && !__THREADED && !__HAS_SENDER && !__HAS_X_LOOP && !__BUGGED_IMG
+describe  ADVANCE_FEE_2_NEW_MONEY    Advance Fee fraud and lots of money
+#score     ADVANCE_FEE_2_NEW_MONEY    2.000  # limit
+tflags    ADVANCE_FEE_2_NEW_MONEY    publish
+##} ADVANCE_FEE_2_NEW_MONEY
+
+##{ ADVANCE_FEE_3_NEW
+
+meta      ADVANCE_FEE_3_NEW    (__ADVANCE_FEE_3_NEW && !__FILL_THIS_FORM && !LOTS_OF_MONEY && !__ADVANCE_FEE_4_NEW && !__ADVANCE_FEE_5_NEW) && !__HTML_LINK_IMAGE && !__COMMENT_EXISTS && !__HAS_SENDER && !__HAS_X_LOOP && !__TO_YOUR_ORG && !__BUGGED_IMG 
+describe  ADVANCE_FEE_3_NEW    Appears to be advance fee fraud (Nigerian 419)
+#score     ADVANCE_FEE_3_NEW    3.5            # limit
+tflags    ADVANCE_FEE_3_NEW          publish
+##} ADVANCE_FEE_3_NEW
+
+##{ ADVANCE_FEE_3_NEW_FORM
+
+meta      ADVANCE_FEE_3_NEW_FORM    (__ADVANCE_FEE_3_NEW_FORM && !__ADVANCE_FEE_4_NEW_FORM && !__ADVANCE_FEE_5_NEW_FORM) && !__THREADED && !__HAS_SENDER && !__FROM_LOWER && !__HAS_X_LOOP
+describe  ADVANCE_FEE_3_NEW_FORM    Advance Fee fraud and a form
+tflags    ADVANCE_FEE_3_NEW_FORM     publish
+##} ADVANCE_FEE_3_NEW_FORM
+
+##{ ADVANCE_FEE_3_NEW_FRM_MNY
+
+meta      ADVANCE_FEE_3_NEW_FRM_MNY    (__ADVANCE_FEE_3_NEW_FRM_MNY && !__ADVANCE_FEE_4_NEW_FRM_MNY && !__ADVANCE_FEE_5_NEW_FRM_MNY) && !__HAS_X_LOOP
+describe  ADVANCE_FEE_3_NEW_FRM_MNY    Advance Fee fraud form and lots of money
+tflags    ADVANCE_FEE_3_NEW_FRM_MNY  publish
+##} ADVANCE_FEE_3_NEW_FRM_MNY
+
+##{ ADVANCE_FEE_3_NEW_MONEY
+
+meta      ADVANCE_FEE_3_NEW_MONEY    (__ADVANCE_FEE_3_NEW_MONEY && !__ADVANCE_FEE_4_NEW_MONEY && !__ADVANCE_FEE_5_NEW_MONEY) && !__BOTH_INR_AND_REF && !__VIA_ML && !__THREADED && !__HAS_SENDER && !__HAS_X_LOOP && !__BUGGED_IMG
+describe  ADVANCE_FEE_3_NEW_MONEY    Advance Fee fraud and lots of money
+tflags    ADVANCE_FEE_3_NEW_MONEY    publish
+##} ADVANCE_FEE_3_NEW_MONEY
+
+##{ ADVANCE_FEE_4_NEW
+
+meta      ADVANCE_FEE_4_NEW    (__ADVANCE_FEE_4_NEW && !__FILL_THIS_FORM && !LOTS_OF_MONEY && !__ADVANCE_FEE_5_NEW) && !__HTML_LINK_IMAGE && !__COMMENT_EXISTS && !__TAG_EXISTS_CENTER && !__HAS_ERRORS_TO && !__HAS_X_LOOP && !__BUGGED_IMG
+describe  ADVANCE_FEE_4_NEW    Appears to be advance fee fraud (Nigerian 419)
+tflags    ADVANCE_FEE_4_NEW          publish
+##} ADVANCE_FEE_4_NEW
+
+##{ ADVANCE_FEE_4_NEW_FORM
+
+meta      ADVANCE_FEE_4_NEW_FORM    (__ADVANCE_FEE_4_NEW_FORM && !__ADVANCE_FEE_5_NEW_FORM)
+describe  ADVANCE_FEE_4_NEW_FORM    Advance Fee fraud and a form
+tflags    ADVANCE_FEE_4_NEW_FORM     publish
+##} ADVANCE_FEE_4_NEW_FORM
+
+##{ ADVANCE_FEE_4_NEW_FRM_MNY
+
+meta      ADVANCE_FEE_4_NEW_FRM_MNY    (__ADVANCE_FEE_4_NEW_FRM_MNY && !__ADVANCE_FEE_5_NEW_FRM_MNY)
+describe  ADVANCE_FEE_4_NEW_FRM_MNY    Advance Fee fraud form and lots of money
+tflags    ADVANCE_FEE_4_NEW_FRM_MNY  publish
+##} ADVANCE_FEE_4_NEW_FRM_MNY
+
+##{ ADVANCE_FEE_4_NEW_MONEY
+
+meta      ADVANCE_FEE_4_NEW_MONEY    (__ADVANCE_FEE_4_NEW_MONEY && !__ADVANCE_FEE_5_NEW_MONEY) && !__BOTH_INR_AND_REF && !__HAS_SENDER && !__HAS_X_LOOP && !__BUGGED_IMG
+describe  ADVANCE_FEE_4_NEW_MONEY    Advance Fee fraud and lots of money
+tflags    ADVANCE_FEE_4_NEW_MONEY    publish
+##} ADVANCE_FEE_4_NEW_MONEY
+
+##{ ADVANCE_FEE_5_NEW
+
+meta      ADVANCE_FEE_5_NEW    (__ADVANCE_FEE_5_NEW && !__FILL_THIS_FORM && !LOTS_OF_MONEY) && !__BUGGED_IMG
+describe  ADVANCE_FEE_5_NEW    Appears to be advance fee fraud (Nigerian 419)
+tflags    ADVANCE_FEE_5_NEW          publish
+##} ADVANCE_FEE_5_NEW
+
+##{ ADVANCE_FEE_5_NEW_FORM
+
+meta      ADVANCE_FEE_5_NEW_FORM    __ADVANCE_FEE_5_NEW_FORM
+describe  ADVANCE_FEE_5_NEW_FORM    Advance Fee fraud and a form
+tflags    ADVANCE_FEE_5_NEW_FORM     publish
+##} ADVANCE_FEE_5_NEW_FORM
+
+##{ ADVANCE_FEE_5_NEW_FRM_MNY
+
+meta      ADVANCE_FEE_5_NEW_FRM_MNY    __ADVANCE_FEE_5_NEW_FRM_MNY
+describe  ADVANCE_FEE_5_NEW_FRM_MNY    Advance Fee fraud form and lots of money
+tflags    ADVANCE_FEE_5_NEW_FRM_MNY  publish
+##} ADVANCE_FEE_5_NEW_FRM_MNY
+
+##{ ADVANCE_FEE_5_NEW_MONEY
+
+meta      ADVANCE_FEE_5_NEW_MONEY    __ADVANCE_FEE_5_NEW_MONEY && !__BOUNCE_CTYPE && !__BUGGED_IMG
+describe  ADVANCE_FEE_5_NEW_MONEY    Advance Fee fraud and lots of money
+tflags    ADVANCE_FEE_5_NEW_MONEY    publish
+##} ADVANCE_FEE_5_NEW_MONEY
+
+##{ AD_PREFS
+
+body        AD_PREFS          /(?:\b|_)(?:ad(?:vert[i1l]s[i1l]ng)?|promo(?:tion)?|marketing)[- _](?:pref(?:s|erences)|settings)(?:\b|_)/i
+describe    AD_PREFS          Advertising preferences
+#score       AD_PREFS          0.500   # limit
+tflags      AD_PREFS          publish
+##} AD_PREFS
+
+##{ ALIBABA_IMG_NOT_RCVD_ALI
+
+meta       ALIBABA_IMG_NOT_RCVD_ALI    __ALIBABA_IMG_NOT_RCVD_ALI && !__YOUR_PASSWORD && !__UNSUB_LINK && !__MSGID_BEFORE_RECEIVED && !__HAS_HREF_ONECASE 
+#score      ALIBABA_IMG_NOT_RCVD_ALI    2.500  # limit
+describe   ALIBABA_IMG_NOT_RCVD_ALI    Alibaba hosted image but message not from Alibaba
+tflags     ALIBABA_IMG_NOT_RCVD_ALI    publish
+##} ALIBABA_IMG_NOT_RCVD_ALI
+
+##{ AMAZON_IMG_NOT_RCVD_AMZN
+
+meta       AMAZON_IMG_NOT_RCVD_AMZN    __AMAZON_IMG_NOT_RCVD_AMZN && !__HDR_RCVD_KEEPA && !__URI_DBL_DOM && !__RCD_RDNS_SMTP && !__RCD_RDNS_MTA && !__DATE_LOWER && !__MSGID_LIST
+#score      AMAZON_IMG_NOT_RCVD_AMZN    2.500  # limit
+describe   AMAZON_IMG_NOT_RCVD_AMZN    Amazon hosted image but message not from Amazon
+tflags     AMAZON_IMG_NOT_RCVD_AMZN    publish
+##} AMAZON_IMG_NOT_RCVD_AMZN
+
+##{ APOSTROPHE_FROM
+
+header         APOSTROPHE_FROM From:addr =~ /'/
+describe       APOSTROPHE_FROM From address contains an apostrophe
+##} APOSTROPHE_FROM
+
+##{ APP_DEVELOPMENT_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       APP_DEVELOPMENT_FREEM       __APP_DEVELOPMENT_MANY && (__REPTO_CHN_FREEM || __freemail_hdr_replyto)
+  describe   APP_DEVELOPMENT_FREEM       App development pitch, freemail or CHN replyto
+#  score      APP_DEVELOPMENT_FREEM       3.500        # limit
+  tflags     APP_DEVELOPMENT_FREEM       publish
+endif
+##} APP_DEVELOPMENT_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ APP_DEVELOPMENT_NORDNS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       APP_DEVELOPMENT_NORDNS      __APP_DEVELOPMENT && __RDNS_NONE 
+  describe   APP_DEVELOPMENT_NORDNS      App development pitch, no rDNS
+#  score      APP_DEVELOPMENT_NORDNS      2.000        # limit
+  tflags     APP_DEVELOPMENT_NORDNS      publish
+endif
+##} APP_DEVELOPMENT_NORDNS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ AXB_XMAILER_MIMEOLE_OL_024C2
+
+meta   AXB_XMAILER_MIMEOLE_OL_024C2  (__AXB_XM_OL_024C2 && __AXB_MO_OL_024C2)
+describe AXB_XMAILER_MIMEOLE_OL_024C2 Yet another X header trait
+##} AXB_XMAILER_MIMEOLE_OL_024C2
+
+##{ AXB_XMAILER_MIMEOLE_OL_1ECD5
+
+meta   AXB_XMAILER_MIMEOLE_OL_1ECD5  (__AXB_XM_OL_1ECD5 && __AXB_MO_OL_1ECD5)
+describe AXB_XMAILER_MIMEOLE_OL_1ECD5   Yet another X header trait##} AXB_XMAILER_MIMEOLE_OL_1ECD5
+
+##{ BANKING_LAWS
+
+body           BANKING_LAWS    /banking laws/i
+describe       BANKING_LAWS    Talks about banking laws
+##} BANKING_LAWS
+
+##{ BASE64_LENGTH_78_79 ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+body BASE64_LENGTH_78_79        eval:check_base64_length('78','79')
+endif
+##} BASE64_LENGTH_78_79 ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+##{ BASE64_LENGTH_79_INF ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+describe BASE64_LENGTH_79_INF   base64 encoded email part uses line length of 78 or 79 characters
+body BASE64_LENGTH_79_INF       eval:check_base64_length('79')
+describe BASE64_LENGTH_79_INF   base64 encoded email part uses line length greater than 79 characters
+endif
+##} BASE64_LENGTH_79_INF ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+##{ BIGNUM_EMAILS_FREEM
+
+meta           BIGNUM_EMAILS_FREEM        __BIGNUM_EMAILS_FREEM
+describe       BIGNUM_EMAILS_FREEM        Lots of email addresses/leads, free email account
+#score          BIGNUM_EMAILS_FREEM        3.00                # limit
+tflags         BIGNUM_EMAILS_FREEM        publish
+##} BIGNUM_EMAILS_FREEM
+
+##{ BIGNUM_EMAILS_MANY
+
+meta           BIGNUM_EMAILS_MANY         __BIGNUM_EMAILS_3 && !__HAS_ERRORS_TO && !__HAS_CAMPAIGNID && !__DATE_LOWER 
+describe       BIGNUM_EMAILS_MANY         Lots of email addresses/leads, over and over
+#score          BIGNUM_EMAILS_MANY         3.00                # limit
+tflags         BIGNUM_EMAILS_MANY         publish
+##} BIGNUM_EMAILS_MANY
+
+##{ BITCOIN_BOMB
+
+meta           BITCOIN_BOMB           __BITCOIN_ID && __EXPLOSIVE_DEVICE && !BITCOIN_EXTORT_01
+describe       BITCOIN_BOMB           BitCoin + bomb
+#score          BITCOIN_BOMB           3.000   # limit
+tflags         BITCOIN_BOMB           publish
+##} BITCOIN_BOMB
+
+##{ BITCOIN_DEADLINE
+
+meta           BITCOIN_DEADLINE       __BITCOIN_ID && __HOURS_DEADLINE && !BITCOIN_EXTORT_01
+describe       BITCOIN_DEADLINE       BitCoin with a deadline
+#score          BITCOIN_DEADLINE       3.000   # limit
+tflags         BITCOIN_DEADLINE       publish
+##} BITCOIN_DEADLINE
+
+##{ BITCOIN_EXTORT_01
+
+meta           BITCOIN_EXTORT_01      (__BITCOIN_ID && __EXTORT_MANY) && !( __FROM_FULL_NAME && __SENDER_BOT && __SINGLE_WORD_LINE && __MIME_HTML && __PHPMAILER_MUA )
+describe       BITCOIN_EXTORT_01      Extortion spam, pay via BitCoin
+#score          BITCOIN_EXTORT_01      5.000   # limit
+tflags         BITCOIN_EXTORT_01      publish
+##} BITCOIN_EXTORT_01
+
+##{ BITCOIN_EXTORT_02
+
+meta           BITCOIN_EXTORT_02      __OBFU_BITCOIN_NOID && __EXTORT_MANY
+describe       BITCOIN_EXTORT_02      Extortion spam, pay via BitCoin
+#score          BITCOIN_EXTORT_02      5.000   # limit
+tflags         BITCOIN_EXTORT_02      publish
+##} BITCOIN_EXTORT_02
+
+##{ BITCOIN_IMGUR
+
+meta       BITCOIN_IMGUR               __BITCOIN_IMGUR
+describe   BITCOIN_IMGUR               Bitcoin + hosted image
+#score      BITCOIN_IMGUR               3.500  # limit
+tflags     BITCOIN_IMGUR               publish
+##} BITCOIN_IMGUR
+
+##{ BITCOIN_MALF_HTML
+
+meta           BITCOIN_MALF_HTML    HTML_EXTRA_CLOSE && (__BITCOIN || __BITCOIN_ID)
+describe       BITCOIN_MALF_HTML    Bitcoin + malformed HTML
+#score          BITCOIN_MALF_HTML    3.500     # limit
+##} BITCOIN_MALF_HTML
+
+##{ BITCOIN_MALWARE
+
+meta           BITCOIN_MALWARE        __BITCOIN_ID && __MY_MALWARE && !BITCOIN_EXTORT_01 && !__NOT_SPOOFED
+describe       BITCOIN_MALWARE        BitCoin + malware bragging
+#score          BITCOIN_MALWARE        3.500   # limit
+tflags         BITCOIN_MALWARE        publish
+##} BITCOIN_MALWARE
+
+##{ BITCOIN_OBFU_SUBJ
+
+meta           BITCOIN_OBFU_SUBJ    __BITCOIN_OBFU_SUBJ && !__128_ALNUM_URI 
+describe       BITCOIN_OBFU_SUBJ    Bitcoin + obfuscated subject
+#score          BITCOIN_OBFU_SUBJ    3.500     # limit
+tflags         BITCOIN_OBFU_SUBJ    publish
+##} BITCOIN_OBFU_SUBJ
+
+##{ BITCOIN_ONAN
+
+meta           BITCOIN_ONAN           __BITCOIN_ID && __YOUR_ONAN && __KHOP_NO_FULL_NAME && !BITCOIN_EXTORT_01
+describe       BITCOIN_ONAN           BitCoin + [censored]
+#score          BITCOIN_ONAN           3.000   # limit
+tflags         BITCOIN_ONAN           publish
+##} BITCOIN_ONAN
+
+##{ BITCOIN_PAY_ME
+
+meta           BITCOIN_PAY_ME         __BITCOIN_ID && __PAY_ME && !BITCOIN_EXTORT_01
+describe       BITCOIN_PAY_ME         Pay me via BitCoin
+#score          BITCOIN_PAY_ME         3.000   # limit
+tflags         BITCOIN_PAY_ME         publish
+##} BITCOIN_PAY_ME
+
+##{ BITCOIN_SPAM_01
+
+meta           BITCOIN_SPAM_01  __BITCOIN_ID && HTML_MIME_NO_HTML_TAG
+describe       BITCOIN_SPAM_01  BitCoin spam pattern 01
+#score          BITCOIN_SPAM_01  2.500 # limit
+tflags         BITCOIN_SPAM_01  publish
+##} BITCOIN_SPAM_01
+
+##{ BITCOIN_SPAM_02
+
+meta           BITCOIN_SPAM_02    __BITCOIN_SPAM_02 && !__URL_BTC_ID 
+describe       BITCOIN_SPAM_02    BitCoin spam pattern 02
+#score          BITCOIN_SPAM_02    2.500       # limit
+tflags         BITCOIN_SPAM_02    publish
+##} BITCOIN_SPAM_02
+
+##{ BITCOIN_SPAM_03
+
+meta           BITCOIN_SPAM_03  __BITCOIN_ID && __SINGLE_WORD_SUBJ
+describe       BITCOIN_SPAM_03  BitCoin spam pattern 03
+#score          BITCOIN_SPAM_03  2.500 # limit
+tflags         BITCOIN_SPAM_03  publish
+##} BITCOIN_SPAM_03
+
+##{ BITCOIN_SPAM_04
+
+meta           BITCOIN_SPAM_04  __BITCOIN_ID && __freemail_hdr_replyto
+describe       BITCOIN_SPAM_04  BitCoin spam pattern 04
+#score          BITCOIN_SPAM_04  1.500 # limit
+tflags         BITCOIN_SPAM_04  publish
+##} BITCOIN_SPAM_04
+
+##{ BITCOIN_SPAM_05
+
+meta           BITCOIN_SPAM_05    __BITCOIN_SPAM_05 && !__HAS_IN_REPLY_TO 
+describe       BITCOIN_SPAM_05    BitCoin spam pattern 05
+#score          BITCOIN_SPAM_05    2.500       # limit
+tflags         BITCOIN_SPAM_05    net publish
+##} BITCOIN_SPAM_05
+
+##{ BITCOIN_SPAM_06
+
+meta           BITCOIN_SPAM_06  __BITCOIN_ID && TVD_RCVD_SPACE_BRACKET
+describe       BITCOIN_SPAM_06  BitCoin spam pattern 06
+#score          BITCOIN_SPAM_06  1.500 # limit
+tflags         BITCOIN_SPAM_06  publish
+##} BITCOIN_SPAM_06
+
+##{ BITCOIN_SPAM_07
+
+meta           BITCOIN_SPAM_07    __BITCOIN_SPAM_07 && !__DKIM_EXISTS 
+describe       BITCOIN_SPAM_07    BitCoin spam pattern 07
+#score          BITCOIN_SPAM_07    3.500       # limit
+tflags         BITCOIN_SPAM_07    publish
+##} BITCOIN_SPAM_07
+
+##{ BITCOIN_SPAM_08
+
+meta           BITCOIN_SPAM_08  __BITCOIN_ID && __TO_IN_SUBJ 
+describe       BITCOIN_SPAM_08  BitCoin spam pattern 08
+#score          BITCOIN_SPAM_08  2.500 # limit
+tflags         BITCOIN_SPAM_08  publish
+##} BITCOIN_SPAM_08
+
+##{ BITCOIN_SPAM_09
+
+meta           BITCOIN_SPAM_09  __BITCOIN_ID && ( __DESTROY_ME || __DESTROY_YOU )
+describe       BITCOIN_SPAM_09  BitCoin spam pattern 09
+#score          BITCOIN_SPAM_09  1.500 # limit
+tflags         BITCOIN_SPAM_09  publish
+##} BITCOIN_SPAM_09
+
+##{ BITCOIN_SPAM_10
+
+meta           BITCOIN_SPAM_10  __BITCOIN_ID && ( HTML_IMAGE_ONLY_04 || HTML_IMAGE_ONLY_08 )
+describe       BITCOIN_SPAM_10  BitCoin spam pattern 10
+#score          BITCOIN_SPAM_10  2.500 # limit
+tflags         BITCOIN_SPAM_10  publish
+##} BITCOIN_SPAM_10
+
+##{ BITCOIN_SPAM_11
+
+meta           BITCOIN_SPAM_11  __BITCOIN_ID && HTML_MESSAGE && __HTML_SHRT_CMNT_OBFU
+describe       BITCOIN_SPAM_11  BitCoin spam pattern 11
+#score          BITCOIN_SPAM_11  2.500 # limit
+tflags         BITCOIN_SPAM_11  publish
+##} BITCOIN_SPAM_11
+
+##{ BITCOIN_SPAM_12
+
+meta           BITCOIN_SPAM_12  __BITCOIN_ID && __BOGUS_MIME_HDR_MANY
+describe       BITCOIN_SPAM_12  BitCoin spam pattern 12
+#score          BITCOIN_SPAM_12  2.500 # limit
+tflags         BITCOIN_SPAM_12  publish
+##} BITCOIN_SPAM_12
+
+##{ BITCOIN_SPF_ONLYALL if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta     BITCOIN_SPF_ONLYALL __PDS_SPF_ONLYALL && __BITCOIN_ID
+tflags   BITCOIN_SPF_ONLYALL net publish
+describe BITCOIN_SPF_ONLYALL Bitcoin from a domain specifically set to pass +all SPF
+#score    BITCOIN_SPF_ONLYALL 2.0 # limit
+endif
+endif
+##} BITCOIN_SPF_ONLYALL if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ BITCOIN_WFH_01
+
+meta       BITCOIN_WFH_01              __BITCOIN_WFH_01
+describe   BITCOIN_WFH_01              Work-from-Home + bitcoin
+tflags     BITCOIN_WFH_01              publish
+##} BITCOIN_WFH_01
+
+##{ BITCOIN_XPRIO
+
+meta           BITCOIN_XPRIO        __BITCOIN_XPRIO && !__ML1 && !__HAS_SENDER && !__DKIM_EXISTS && !__RCD_RDNS_MAIL_MESSY 
+describe       BITCOIN_XPRIO        Bitcoin + priority
+#score          BITCOIN_XPRIO        2.500     # limit
+##} BITCOIN_XPRIO
+
+##{ BITCOIN_YOUR_INFO
+
+meta           BITCOIN_YOUR_INFO      __BITCOIN_ID && __YOUR_PERSONAL && !BITCOIN_EXTORT_01
+describe       BITCOIN_YOUR_INFO      BitCoin with your personal info
+#score          BITCOIN_YOUR_INFO      3.000   # limit
+tflags         BITCOIN_YOUR_INFO      publish
+##} BITCOIN_YOUR_INFO
+
+##{ BODY_EMPTY
+
+meta        BODY_EMPTY           __EMPTY_BODY && !ALL_TRUSTED && !__MIME_ATTACHMENT && !__HAS_THREAD_INDEX && !__TO_EQ_FROM_DOM && !NO_RELAYS && !__PDF_ATTACH && !__HDR_RCVD_GOOGLE && !__MSGID_APPLEMAIL && !__XM_IPHONEMAIL 
+describe    BODY_EMPTY           No body text in message
+#score       BODY_EMPTY           2.00 # limit
+##} BODY_EMPTY
+
+##{ BODY_SINGLE_URI
+
+meta        BODY_SINGLE_URI     __BODY_SINGLE_URI && !ALL_TRUSTED && !__HDRS_LCASE_KNOWN && !__FROM_ALL_NUMS && !__RCD_RDNS_SMTP && !__VIA_ML 
+describe    BODY_SINGLE_URI     Message body is only a URI
+#score       BODY_SINGLE_URI     2.500 # limit
+##} BODY_SINGLE_URI
+
+##{ BODY_SINGLE_WORD
+
+meta        BODY_SINGLE_WORD    __BODY_SINGLE_WORD && !ALL_TRUSTED && !__HDRS_LCASE_KNOWN && !__FROM_ALL_NUMS && !__RCD_RDNS_SMTP
+describe    BODY_SINGLE_WORD    Message body is only one word (no spaces)
+#score       BODY_SINGLE_WORD    2.500 # limit
+##} BODY_SINGLE_WORD
+
+##{ BODY_URI_ONLY
+
+meta        BODY_URI_ONLY        __BODY_URI_ONLY && !__NOT_SPOOFED && !__TO_EQ_FROM_DOM && !__X_CRON_ENV && !__DKIM_EXISTS && !__VIA_ML && !__HAS_X_REF && !__RCD_RDNS_MX_MESSY && !__RCD_RDNS_MAIL_MESSY && !__RCD_RDNS_SMTP_MESSY && !__MSGID_JAVAMAIL && !__RP_MATCHES_RCVD && !__URI_GOOGLE_DRV 
+describe    BODY_URI_ONLY        Message body is only a URI in one line of text or for an image
+#score       BODY_URI_ONLY        3.000   # limit
+tflags      BODY_URI_ONLY        publish
+##} BODY_URI_ONLY
+
+##{ BOGUS_MIME_VERSION
+
+meta       BOGUS_MIME_VERSION          __BOGUS_MIME_VER_02 || __MALF_MIME_VER
+#score      BOGUS_MIME_VERSION          3.500  # limit
+describe   BOGUS_MIME_VERSION          Mime version header is bogus
+tflags     BOGUS_MIME_VERSION          publish
+##} BOGUS_MIME_VERSION
+
+##{ BOGUS_MSM_HDRS
+
+meta       BOGUS_MSM_HDRS               __BOGUS_MSM_HDRS
+describe   BOGUS_MSM_HDRS               Apparently bogus Microsoft email headers
+#score      BOGUS_MSM_HDRS               3.000 # limit
+tflags     BOGUS_MSM_HDRS               publish
+##} BOGUS_MSM_HDRS
+
+##{ BOMB_FREEM
+
+meta           BOMB_FREEM             __EXPLOSIVE_DEVICE && __freemail_hdr_replyto 
+describe       BOMB_FREEM             Bomb + freemail
+#score          BOMB_FREEM             2.000   # limit
+tflags         BOMB_FREEM             publish
+##} BOMB_FREEM
+
+##{ BOMB_MONEY
+
+meta           BOMB_MONEY             __EXPLOSIVE_DEVICE && ( __ADVANCE_FEE_3_NEW || __ADVANCE_FEE_4_NEW || __ADVANCE_FEE_5_NEW )
+describe       BOMB_MONEY             Bomb + money: bomb threat?
+#score          BOMB_MONEY             2.500   # limit
+tflags         BOMB_MONEY             publish
+##} BOMB_MONEY
+
+##{ BTC_ORG
+
+describe       BTC_ORG          Bitcoin wallet ID + unusual header
+#score          BTC_ORG          2.500 # limit
+##} BTC_ORG
+
+##{ BTC_ORG if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+  meta           BTC_ORG          (__BITCOIN_ID && __HAS_ORGANIZATION) && !ALL_TRUSTED && __DOS_HAS_MAILING_LIST 
+endif
+##} BTC_ORG if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+##{ BTC_ORG ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  meta           BTC_ORG          (__BITCOIN_ID && __HAS_ORGANIZATION) && !ALL_TRUSTED && __DOS_HAS_MAILING_LIST && !DKIM_SIGNED
+endif
+##} BTC_ORG ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+##{ BUG6152_INVALID_DATE_TZ_ABSURD
+
+header BUG6152_INVALID_DATE_TZ_ABSURD   Date =~ /[-+](?!(?:0\d|1[0-4])(?:[03]0|[14]5))\d{4}/
+##} BUG6152_INVALID_DATE_TZ_ABSURD
+
+##{ BULK_RE_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     BULK_RE_SUSP_NTLD __SUBJ_RE && __ML1 && __FROM_ADDRLIST_SUSPNTLD
+tflags   BULK_RE_SUSP_NTLD publish
+describe BULK_RE_SUSP_NTLD Precedence bulk and RE: from a suspicious TLD
+#score    BULK_RE_SUSP_NTLD 1.0 # limit
+endif
+endif
+##} BULK_RE_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ CANT_SEE_AD
+
+meta        CANT_SEE_AD       (__CANT_SEE_AD_1 || __CANT_SEE_AD_2) && !__DOS_HAS_LIST_UNSUB
+describe    CANT_SEE_AD       You really want to see our spam.
+#score       CANT_SEE_AD       2.500   # limit
+tflags      CANT_SEE_AD       publish
+##} CANT_SEE_AD
+
+##{ CK_HELO_GENERIC
+
+header                 CK_HELO_GENERIC         X-Spam-Relays-Untrusted =~ /^[^\]]+helo=(?=\S*(?:pool|dyna|lease|dial|dip|static))\S*\d+[^\d\s]+\d+[^\]]+ auth= /i
+describe       CK_HELO_GENERIC         Relay used name indicative of a Dynamic Pool or Generic rPTR
+#score         CK_HELO_GENERIC         0.25
+##} CK_HELO_GENERIC
+
+##{ CN_B2B_SPAMMER
+
+body        CN_B2B_SPAMMER         /\bWe are (?:(?:a )?(?:China|Taiwan)[-\s]based|(?:one of (?:the )?best|(?:a )?leading) (?:international|[^\.]{10,90} (?:in|from) (?:\w+, )?(?:China|Taiwan)))\b/i
+describe    CN_B2B_SPAMMER         Chinese company introducing itself
+tflags      CN_B2B_SPAMMER         publish
+##} CN_B2B_SPAMMER
+
+##{ COMMENT_GIBBERISH
+
+meta           COMMENT_GIBBERISH        __COMMENT_GIBBERISH && !__JM_REACTOR_DATE && !__RCD_RDNS_MTA_MESSY && !__SENDER_BOT
+describe       COMMENT_GIBBERISH        Nonsense in long HTML comment
+#score          COMMENT_GIBBERISH        1.50  # limit
+tflags         COMMENT_GIBBERISH        publish
+##} COMMENT_GIBBERISH
+
+##{ COMPENSATION
+
+describe COMPENSATION     "Compensation"
+#score    COMPENSATION     1.50        # limit
+##} COMPENSATION
+
+##{ COMPENSATION if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+  meta   COMPENSATION     __COMPENSATION && !__DOS_HAS_LIST_UNSUB && !__HAS_X_LOOP && !__HAS_ERRORS_TO && !__UNSUB_LINK && !__OPERA_MID_NON_OP && !__FB_S_STOCK && !__COMMENT_EXISTS && !__NOT_SPOOFED && !__LOCAL_PP_NONPPURL && !__NOT_A_PERSON && !__SUBSCRIPTION_INFO && !__DKIM_EXISTS && !__HAS_SENDER && !__RP_MATCHES_RCVD
+endif
+##} COMPENSATION if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+##{ COMPENSATION ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  meta   COMPENSATION     __COMPENSATION && !__DOS_HAS_LIST_UNSUB && !__HAS_X_LOOP && !__HAS_ERRORS_TO && !__UNSUB_LINK && !__OPERA_MID_NON_OP && !__FB_S_STOCK && !__COMMENT_EXISTS && !__NOT_SPOOFED && !__LOCAL_PP_NONPPURL && !__NOT_A_PERSON && !__SUBSCRIPTION_INFO && !__DKIM_EXISTS && !__HAS_SENDER && !__RP_MATCHES_RCVD && !__DKIM_DEPENDABLE
+endif
+##} COMPENSATION ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+##{ CONTENT_AFTER_HTML
+
+meta       CONTENT_AFTER_HTML          __CONTENT_AFTER_HTML && !__HAS_SENDER && !__LYRIS_EZLM_REMAILER && !__HAS_CID && !__RCD_RDNS_MTA_MESSY && !__URI_DOTGOV 
+describe   CONTENT_AFTER_HTML          More content after HTML close tag
+#score      CONTENT_AFTER_HTML          2.500  # limit
+tflags     CONTENT_AFTER_HTML          publish
+##} CONTENT_AFTER_HTML
+
+##{ CORRUPT_FROM_LINE_IN_HDRS
+
+meta CORRUPT_FROM_LINE_IN_HDRS (MISSING_HEADERS && __BODY_STARTS_WITH_FROM_LINE && MISSING_DATE && NO_RELAYS)
+describe CORRUPT_FROM_LINE_IN_HDRS Informational: message is corrupt, with a From line in its headers
+tflags CORRUPT_FROM_LINE_IN_HDRS userconf publish
+#score CORRUPT_FROM_LINE_IN_HDRS 0.001
+##} CORRUPT_FROM_LINE_IN_HDRS
+
+##{ CTE_8BIT_MISMATCH
+
+meta CTE_8BIT_MISMATCH            (__CT_TEXT_PLAIN && (!__CTE || __L_CTE_7BIT) && __L_BODY_8BITS)
+describe CTE_8BIT_MISMATCH        Header says 7bits but body disagrees
+#score CTE_8BIT_MISMATCH           1
+tflags CTE_8BIT_MISMATCH          publish
+##} CTE_8BIT_MISMATCH
+
+##{ CTYPE_001C_A
+
+meta CTYPE_001C_A  (0)      # obsolete
+##} CTYPE_001C_A
+
+##{ CTYPE_001C_B
+
+header CTYPE_001C_B Content-Type =~ /multipart.{0,200}boundary=\"----=_NextPart_000_0000_01C[0-9A-F]{5}\.[0-9A-F]{7}0\"/
+##} CTYPE_001C_B
+
+##{ CTYPE_8SPACE_GIF ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader CTYPE_8SPACE_GIF Content-Type:raw =~ /^image\/gif;\n {8}name=\".+?\"$/s
+describe CTYPE_8SPACE_GIF   Stock spam image part 'Content-Type' found (8 spc)
+endif
+##} CTYPE_8SPACE_GIF ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ CTYPE_NULL ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         CTYPE_NULL          __CTYPE_NULL
+  describe     CTYPE_NULL          Malformed Content-Type header
+endif
+##} CTYPE_NULL ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ CURR_PRICE
+
+body CURR_PRICE         /\bCurrent Price:/
+##} CURR_PRICE
+
+##{ DAY_I_EARNED if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       DAY_I_EARNED              __DAY_I_EARNED >= 3
+#  score      DAY_I_EARNED              3.000  # limit
+  describe   DAY_I_EARNED              Work-at-home spam
+  tflags     DAY_I_EARNED              publish
+endif
+##} DAY_I_EARNED if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ DEAR_BENEFICIARY
+
+body     DEAR_BENEFICIARY         /\b(?:De[ae]r\s|At+(?:ention|n):?\s?)(?:\S+\s)?Ben[ei]ficiary\b/i
+describe DEAR_BENEFICIARY         Dear Beneficiary:
+##} DEAR_BENEFICIARY
+
+##{ DEAR_WINNER
+
+body DEAR_WINNER /\bdear.{1,20}winner/i
+describe DEAR_WINNER   Spam with generic salutation of "dear winner"
+##} DEAR_WINNER
+
+##{ DKIMWL_BL ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta      DKIMWL_BL  __DKIMWL_WL_BL
+tflags    DKIMWL_BL  net publish
+describe  DKIMWL_BL  DKIMwl.org - Blocked sender
+#score     DKIMWL_BL  3.0 # limit
+endif
+##} DKIMWL_BL ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ DKIMWL_BLOCKED ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta      DKIMWL_BLOCKED  __DKIMWL_BLOCKED
+tflags    DKIMWL_BLOCKED  net publish
+describe  DKIMWL_BLOCKED  ADMINISTRATOR NOTICE: The query to DKIMWL.org was blocked.  See http://wiki.apache.org/spamassassin/DnsBlocklists\#dnsbl-block for more information.
+#score     DKIMWL_BLOCKED  0.001 # limit
+endif
+##} DKIMWL_BLOCKED ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ DKIMWL_WL_HIGH ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta      DKIMWL_WL_HIGH  __DKIMWL_WL_HI && !(FREEMAIL_FROM || FREEMAIL_REPLYTO || FREEMAIL_FORGED_REPLYTO || __DKIMWL_FREEMAIL || __DKIMWL_BULKMAIL)
+tflags    DKIMWL_WL_HIGH  net nice publish
+describe  DKIMWL_WL_HIGH  DKIMwl.org - High trust sender
+#score     DKIMWL_WL_HIGH  -3.0 # limit
+endif
+##} DKIMWL_WL_HIGH ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ DKIMWL_WL_MED ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta      DKIMWL_WL_MED    __DKIMWL_WL_MED && !(FREEMAIL_FROM || FREEMAIL_REPLYTO || FREEMAIL_FORGED_REPLYTO || __DKIMWL_FREEMAIL)
+tflags    DKIMWL_WL_MED    net nice publish
+describe  DKIMWL_WL_MED    DKIMwl.org - Medium trust sender
+#score     DKIMWL_WL_MED    -0.5 # limit
+endif
+##} DKIMWL_WL_MED ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ DKIMWL_WL_MEDHI ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta      DKIMWL_WL_MEDHI    __DKIMWL_WL_MEDHI && !(FREEMAIL_FROM || FREEMAIL_REPLYTO || FREEMAIL_FORGED_REPLYTO || __DKIMWL_FREEMAIL)
+tflags    DKIMWL_WL_MEDHI    net nice publish
+describe  DKIMWL_WL_MEDHI    DKIMwl.org - Medium-high trust sender
+#score     DKIMWL_WL_MEDHI    -1.0 # limit
+endif
+##} DKIMWL_WL_MEDHI ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ DOS_ANAL_SPAM_MAILER
+
+header DOS_ANAL_SPAM_MAILER    X-mailer =~ /^[A-Z][a-z]{6}e \d\.\d{2}$/
+describe DOS_ANAL_SPAM_MAILER  X-mailer pattern common to anal porn site spam
+tflags DOS_ANAL_SPAM_MAILER    publish
+##} DOS_ANAL_SPAM_MAILER
+
+##{ DOS_DEREK_AUG08
+
+meta DOS_DEREK_AUG08    __DOS_SINGLE_EXT_RELAY && __DOS_HAS_ANY_URI && __NAKED_TO && __LAST_UNTRUSTED_RELAY_NO_AUTH && SPF_PASS && __TVD_MIME_ATT_TP && __CT_TEXT_PLAIN && (__DOS_MSGID_DIGITS9 || __DOS_MSGID_DIGITS10)
+##} DOS_DEREK_AUG08
+
+##{ DOS_FIX_MY_URI
+
+meta DOS_FIX_MY_URI             __MIMEOLE_1106 && __DOS_HAS_ANY_URI && __DOS_SINGLE_EXT_RELAY && __DOS_HI && __DOS_LINK
+describe DOS_FIX_MY_URI         Looks like a "fix my obfu'd URI please" spam
+##} DOS_FIX_MY_URI
+
+##{ DOS_HIGH_BAT_TO_MX
+
+meta DOS_HIGH_BAT_TO_MX                __DOS_DIRECT_TO_MX && __HIGHBITS && __LAST_UNTRUSTED_RELAY_NO_AUTH && __THEBAT_MUA
+describe DOS_HIGH_BAT_TO_MX    The Bat! Direct to MX with High Bits
+##} DOS_HIGH_BAT_TO_MX
+
+##{ DOS_LET_GO_JOB
+
+meta DOS_LET_GO_JOB    __DOS_LET_GO_JOB && __DOS_MY_OLD_JOB && __DOS_I_DRIVE_A && __DOS_TAKING_HOME
+describe DOS_LET_GO_JOB        Let go from their job and now makes lots of dough!
+##} DOS_LET_GO_JOB
+
+##{ DOS_OE_TO_MX
+
+meta DOS_OE_TO_MX              __OE_MUA && __DOS_DIRECT_TO_MX && !DOS_OE_TO_MX_IMAGE
+describe DOS_OE_TO_MX          Delivered direct to MX with OE headers
+##} DOS_OE_TO_MX
+
+##{ DOS_OE_TO_MX_IMAGE
+
+meta DOS_OE_TO_MX_IMAGE                __OE_MUA && __DOS_DIRECT_TO_MX && __ANY_IMAGE_ATTACH
+describe DOS_OE_TO_MX_IMAGE    Direct to MX with OE headers and an image
+##} DOS_OE_TO_MX_IMAGE
+
+##{ DOS_OUTLOOK_TO_MX
+
+meta DOS_OUTLOOK_TO_MX         __ANY_OUTLOOK_MUA && !__OE_MUA && __DOS_DIRECT_TO_MX && !T_DOS_OUTLOOK_TO_MX_IMAGE
+describe DOS_OUTLOOK_TO_MX     Delivered direct to MX with Outlook headers
+##} DOS_OUTLOOK_TO_MX
+
+##{ DOS_RCVD_IP_TWICE_C
+
+header DOS_RCVD_IP_TWICE_C     X-Spam-Relays-External =~ /^\s*\[ ip=(?!127)([\d.]+) [^\[]*\bhelo=(?:![\d.]{7,15}!)? [^\[]*\[ ip=\1 [^\]]*\]\s*$/
+describe DOS_RCVD_IP_TWICE_C   Received from the same IP twice in a row (only one external relay; empty or IP helo)
+##} DOS_RCVD_IP_TWICE_C
+
+##{ DOS_STOCK_BAT
+
+meta           DOS_STOCK_BAT           __THEBAT_MUA && (__DOS_BODY_STOCK || __DOS_BODY_TICKER) && (__DOS_REF_TODAY || __DOS_REF_NEXT_WK_DAY || __DOS_REF_2_WK_DAYS)
+describe       DOS_STOCK_BAT           Probable pump and dump stock spam
+##} DOS_STOCK_BAT
+
+##{ DOS_STOCK_BAT2
+
+meta           DOS_STOCK_BAT2          DOS_STOCK_BAT && (__DOS_FIN_ADVANTAGE + __DOS_STRONG_CF + __DOS_STEADY_COURSE > 2)
+##} DOS_STOCK_BAT2
+
+##{ DOS_URI_ASTERISK
+
+uri DOS_URI_ASTERISK    m{^[Hh][Tt]{2}[Pp][Ss]?://[^/:]+(?:\*[A-Za-z0-9-]*\.|\*)[A-Za-z]{2,3}(?:\.[A-Za-z]{2})?(?:$|:|/)}
+describe DOS_URI_ASTERISK       Found an asterisk in a URI
+##} DOS_URI_ASTERISK
+
+##{ DOS_YOUR_PLACE
+
+meta   DOS_YOUR_PLACE  (__DOS_COMING_TO_YOUR_PLACE && __DOS_MEET_EACH_OTHER && (__DOS_DROP_ME_A_LINE || __DOS_CORRESPOND_EMAIL || __DOS_EMAIL_DIRECTLY || __DOS_I_AM_25 || __DOS_WRITE_ME_AT || __DOS_PERSONAL_EMAIL))
+describe       DOS_YOUR_PLACE          Russian dating spam
+##} DOS_YOUR_PLACE
+
+##{ DOTGOV_IMAGE
+
+meta       DOTGOV_IMAGE                __DOTGOV_IMAGE && !__HAVE_BOUNCE_RELAYS 
+describe   DOTGOV_IMAGE                .gov URI + hosted image
+#score      DOTGOV_IMAGE                3.000  # limit
+tflags     DOTGOV_IMAGE                publish
+##} DOTGOV_IMAGE
+
+##{ DRUGS_HDIA
+
+header DRUGS_HDIA       Subject =~ /\bhoodia\b/i
+describe DRUGS_HDIA     Subject mentions "hoodia"
+##} DRUGS_HDIA
+
+##{ DSN_NO_MIMEVERSION
+
+meta DSN_NO_MIMEVERSION (__BOUNCE_RPATH_NULL && !__MIME_VERSION)
+describe DSN_NO_MIMEVERSION Return-Path <> and no MIME-Version: header
+#score DSN_NO_MIMEVERSION 2
+##} DSN_NO_MIMEVERSION
+
+##{ DX_TEXT_02
+
+body       DX_TEXT_02       /\b(?:change|modif(?:y|ications?)) (?:of|to|(?:yo)?ur) (?:message|sub|comm) stat/i
+describe   DX_TEXT_02       "change your message stat"
+tflags     DX_TEXT_02       publish
+##} DX_TEXT_02
+
+##{ DX_TEXT_03
+
+body       DX_TEXT_03       /\b[A-Z]{3} Media (?:Group|Relations)\b/
+describe   DX_TEXT_03       "XXX Media Group"
+tflags     DX_TEXT_03       publish
+##} DX_TEXT_03
+
+##{ DYNAMIC_IMGUR
+
+meta       DYNAMIC_IMGUR               __DYNAMIC_IMGUR
+describe   DYNAMIC_IMGUR               dynamic IP + hosted image
+#score      DYNAMIC_IMGUR               4.000  # limit
+tflags     DYNAMIC_IMGUR               publish
+##} DYNAMIC_IMGUR
+
+##{ DYN_RDNS_AND_INLINE_IMAGE
+
+meta DYN_RDNS_AND_INLINE_IMAGE     (RDNS_DYNAMIC && __ANY_IMAGE_ATTACH)
+describe DYN_RDNS_AND_INLINE_IMAGE Contains image, and was sent by dynamic rDNS
+##} DYN_RDNS_AND_INLINE_IMAGE
+
+##{ DYN_RDNS_SHORT_HELO_HTML
+
+meta DYN_RDNS_SHORT_HELO_HTML      (__HELO_NO_DOMAIN && RDNS_DYNAMIC && HTML_MESSAGE)
+describe DYN_RDNS_SHORT_HELO_HTML  Sent by dynamic rDNS, short HELO, and HTML
+##} DYN_RDNS_SHORT_HELO_HTML
+
+##{ DYN_RDNS_SHORT_HELO_IMAGE
+
+meta DYN_RDNS_SHORT_HELO_IMAGE       (__HELO_NO_DOMAIN && RDNS_DYNAMIC && __ANY_IMAGE_ATTACH)
+describe DYN_RDNS_SHORT_HELO_IMAGE    Short HELO string, dynamic rDNS, inline image
+##} DYN_RDNS_SHORT_HELO_IMAGE
+
+##{ EBAY_IMG_NOT_RCVD_EBAY
+
+meta       EBAY_IMG_NOT_RCVD_EBAY      __EBAY_IMG_NOT_RCVD_EBAY && !__URI_MAILTO && !__RCD_RDNS_MAIL && !__DKIM_EXISTS
+#score      EBAY_IMG_NOT_RCVD_EBAY      3.000  # limit
+describe   EBAY_IMG_NOT_RCVD_EBAY      E-bay hosted image but message not from E-bay
+tflags     EBAY_IMG_NOT_RCVD_EBAY      publish
+##} EBAY_IMG_NOT_RCVD_EBAY
+
+##{ EMRCP
+
+body     EMRCP            /\bExcess (?:Maximum )?Return Capital (?:Profits?|Funds?)\b/i
+describe EMRCP            "Excess Maximum Return Capital Profit" scam
+tflags   EMRCP            publish
+##} EMRCP
+
+##{ ENCRYPTED_MESSAGE
+
+meta       ENCRYPTED_MESSAGE           __CT_ENCRYPTED
+describe   ENCRYPTED_MESSAGE           Message is encrypted, not likely to be spam
+#score      ENCRYPTED_MESSAGE           -1.000
+tflags     ENCRYPTED_MESSAGE           nice publish
+##} ENCRYPTED_MESSAGE
+
+##{ END_FUTURE_EMAILS
+
+describe       END_FUTURE_EMAILS   Spammy unsubscribe
+#score          END_FUTURE_EMAILS   2.500      # limit
+##} END_FUTURE_EMAILS
+
+##{ END_FUTURE_EMAILS if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+  meta         END_FUTURE_EMAILS   __END_FUTURE_EMAILS && !__SUBJECT_ENCODED_B64 && !__HDRS_LCASE && !__HDRS_LCASE_KNOWN && !__TO___LOWER
+endif
+##} END_FUTURE_EMAILS if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+##{ END_FUTURE_EMAILS ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  meta         END_FUTURE_EMAILS   __END_FUTURE_EMAILS && !__SUBJECT_ENCODED_B64 && !__HDRS_LCASE && !__HDRS_LCASE_KNOWN && !__TO___LOWER && !__DKIM_DEPENDABLE && !DKIM_SIGNED
+endif
+##} END_FUTURE_EMAILS ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+##{ ENVFROM_GOOG_TRIX
+
+meta       ENVFROM_GOOG_TRIX           __ENVFROM_GOOG_TRIX_SPAMMY
+describe   ENVFROM_GOOG_TRIX           From suspicious Google subdomain
+#score      ENVFROM_GOOG_TRIX           3.000  # limit
+tflags     ENVFROM_GOOG_TRIX           publish
+##} ENVFROM_GOOG_TRIX
+
+##{ EXCUSE_24
+
+body EXCUSE_24                  /you(?:'ve|'re| have| are)? receiv(?:e|ed|ing) this (?:advertisement|offer|special|recurring|paid).{0,16}\b(?:by either|because)/i
+describe EXCUSE_24              Claims you wanted this ad
+##} EXCUSE_24
+
+##{ FAKE_REPLY_A1
+
+meta     FAKE_REPLY_A1         (__SUBJ_RE && __MISSING_REPLY && __MISSING_REF && __BOTH_INR_AND_REF)
+##} FAKE_REPLY_A1
+
+##{ FAKE_REPLY_C
+
+meta     FAKE_REPLY_C          (__SUBJ_RE && __MISSING_REF && __NO_INR_YES_REF)
+##} FAKE_REPLY_C
+
+##{ FBI_MONEY
+
+meta        FBI_MONEY            __FBI_SPOOF && LOTS_OF_MONEY
+describe    FBI_MONEY            The FBI wants to give you lots of money?
+#score       FBI_MONEY            2.00 # limit
+tflags      FBI_MONEY            publish
+##} FBI_MONEY
+
+##{ FBI_SPOOF
+
+meta        FBI_SPOOF            __FBI_SPOOF
+describe    FBI_SPOOF            Claims to be FBI, but not from FBI domain
+#score       FBI_SPOOF            2.00 # limit
+tflags      FBI_SPOOF            publish
+##} FBI_SPOOF
+
+##{ FILL_THIS_FORM ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     FILL_THIS_FORM                 __FILL_THIS_FORM && !__THREADED && !__FB_TOUR && !__VIA_ML
+  describe FILL_THIS_FORM                 Fill in a form with personal information
+  tflags   FILL_THIS_FORM                 publish
+endif
+##} FILL_THIS_FORM ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FILL_THIS_FORM_LONG ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     FILL_THIS_FORM_LONG            __FILL_THIS_FORM_LONG && !__VIA_ML && !__DOS_HAS_LIST_UNSUB && !__THREADED && !__TRAVEL_MANY
+  describe FILL_THIS_FORM_LONG            Fill in a form with personal information
+#  score    FILL_THIS_FORM_LONG            2.00        # limit
+endif
+##} FILL_THIS_FORM_LONG ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FONT_INVIS_DIRECT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_DIRECT             __FONT_INVIS_DIRECT && !__UNSUB_LINK && !__HAS_ERRORS_TO && !__MOZILLA_MSGID && !__RCD_RDNS_MAIL_MESSY && !__URI_DOTGOV && !__NAKED_TO && !__MSGID_OK_HEX 
+  describe  FONT_INVIS_DIRECT             Invisible text + direct-to-MX
+#  score     FONT_INVIS_DIRECT             3.500       # limit
+  tflags    FONT_INVIS_DIRECT             publish
+endif
+##} FONT_INVIS_DIRECT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FONT_INVIS_DOTGOV if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_DOTGOV             __FONT_INVIS_DOTGOV && !__MOZILLA_MSGID && !__RCD_RDNS_MAIL_MESSY && !__HAS_ERRORS_TO && !__HAS_LIST_ID 
+  describe  FONT_INVIS_DOTGOV             Invisible text + .gov URI
+#  score     FONT_INVIS_DOTGOV             3.500       # limit
+  tflags    FONT_INVIS_DOTGOV             publish
+endif
+##} FONT_INVIS_DOTGOV if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FONT_INVIS_HTML_NOHTML if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_HTML_NOHTML        __FONT_INVIS_HTML_NOHTML && !__RDNS_LONG 
+  describe  FONT_INVIS_HTML_NOHTML        Invisible text + malformed HTML
+#  score     FONT_INVIS_HTML_NOHTML        3.000       # limit
+  tflags    FONT_INVIS_HTML_NOHTML        publish
+endif
+##} FONT_INVIS_HTML_NOHTML if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FONT_INVIS_LONG_LINE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_LONG_LINE          __FONT_INVIS_LONG_LINE && !__HTML_SINGLET 
+  describe  FONT_INVIS_LONG_LINE          Invisible text + long lines
+#  score     FONT_INVIS_LONG_LINE          3.000       # limit
+  tflags    FONT_INVIS_LONG_LINE          publish
+endif
+##} FONT_INVIS_LONG_LINE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FONT_INVIS_MSGID if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_MSGID              __FONT_INVIS_MSGID && !__RCD_RDNS_MX_MESSY && !__RCD_RDNS_MX && !__HAS_ERRORS_TO && !__RCD_RDNS_MAIL && !__MAIL_LINK && !__HDR_RCVD_AMAZON && !__MIME_QP && !__HAS_CAMPAIGNID && !__HAS_THREAD_INDEX 
+  describe  FONT_INVIS_MSGID              Invisible text + suspicious message ID
+#  score     FONT_INVIS_MSGID              2.500       # limit
+  tflags    FONT_INVIS_MSGID              publish
+endif
+##} FONT_INVIS_MSGID if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FONT_INVIS_NORDNS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_NORDNS             __FONT_INVIS_NORDNS && !__HTML_SINGLET && !__LYRIS_EZLM_REMAILER && !__YOUR_PERSONAL && !__HAS_X_MAILER 
+  describe  FONT_INVIS_NORDNS             Invisible text + no rDNS
+#  score     FONT_INVIS_NORDNS             2.500       # limit
+  tflags    FONT_INVIS_NORDNS             publish
+endif
+##} FONT_INVIS_NORDNS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FONT_INVIS_POSTEXTRAS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      FONT_INVIS_POSTEXTRAS         (__FONT_INVIS || __STY_INVIS) && __AC_POST_EXTRAS
+  describe  FONT_INVIS_POSTEXTRAS         Invisible text + suspicious URI
+#  score     FONT_INVIS_POSTEXTRAS         3.500       # limit
+  tflags    FONT_INVIS_POSTEXTRAS         publish
+endif
+##} FONT_INVIS_POSTEXTRAS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ FORGED_SPF_HELO
+
+meta    FORGED_SPF_HELO        __HELO_NOT_RDNS && SPF_HELO_PASS && !SPF_PASS
+##} FORGED_SPF_HELO
+
+##{ FORM_FRAUD
+
+meta     FORM_FRAUD       (__FORM_FRAUD && !__FORM_FRAUD_3 && !__FORM_FRAUD_5) && !__DOS_HAS_LIST_UNSUB && !__THREADED && !__HAS_THREAD_INDEX && !__VIA_ML && !__HTML_LINK_IMAGE && !__COMMENT_EXISTS && !__NOT_SPOOFED && !__UPPERCASE_URI && !__UNSUB_LINK
+describe FORM_FRAUD       Fill a form and a fraud phrase
+#score    FORM_FRAUD       1.000   # limit
+tflags   FORM_FRAUD       publish
+##} FORM_FRAUD
+
+##{ FORM_FRAUD_3
+
+meta     FORM_FRAUD_3    (__FORM_FRAUD_3 && !__FORM_FRAUD_5 && !__ADVANCE_FEE_3_NEW_FORM && !__ADVANCE_FEE_3_NEW_FRM_MNY) && !__DOS_HAS_LIST_UNSUB && !__THREADED && !__HAS_THREAD_INDEX && !__VIA_ML && !__HTML_LINK_IMAGE && !__MIME_QP && !__DOS_BODY_FRI && !__UNSUB_LINK && !__BUGGED_IMG && !__NOT_SPOOFED
+describe FORM_FRAUD_3    Fill a form and several fraud phrases
+tflags   FORM_FRAUD_3    publish
+##} FORM_FRAUD_3
+
+##{ FORM_FRAUD_5
+
+meta     FORM_FRAUD_5    (__FORM_FRAUD_5 && !__ADVANCE_FEE_5_NEW_FORM && !__ADVANCE_FEE_5_NEW_FRM_MNY) && !__DOS_HAS_LIST_UNSUB && !__THREADED && !__HAS_THREAD_INDEX && !__VIA_ML && !__BOUNCE_CTYPE 
+describe FORM_FRAUD_5    Fill a form and many fraud phrases
+tflags   FORM_FRAUD_5    publish
+##} FORM_FRAUD_5
+
+##{ FORM_LOW_CONTRAST
+
+meta        FORM_LOW_CONTRAST     __FORM_LOW_CONTRAST && !__BUGGED_IMG && !__HAS_REPLY_TO && !__DKIM_EXISTS && !__DOS_HAS_LIST_UNSUB && !__MSGID_JAVAMAIL
+describe    FORM_LOW_CONTRAST     Fill in a form with hidden text
+#score       FORM_LOW_CONTRAST     2.500       # Limit
+tflags      FORM_LOW_CONTRAST     publish
+##} FORM_LOW_CONTRAST
+
+##{ FOUND_YOU
+
+meta        FOUND_YOU          __FOUND_YOU && !__DKIM_EXISTS && !__SUBJ_RE && !__HAS_X_REF && !__RP_MATCHES_RCVD && !__COMMENT_EXISTS && !__HAS_ERRORS_TO && !__HAS_IN_REPLY_TO
+#score       FOUND_YOU          3.25   # limit
+describe    FOUND_YOU          I found you...
+tflags      FOUND_YOU          publish
+##} FOUND_YOU
+
+##{ FREEMAIL_FORGED_FROMDOMAIN ifplugin Mail::SpamAssassin::Plugin::FreeMail ifplugin Mail::SpamAssassin::Plugin::HeaderEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  ifplugin Mail::SpamAssassin::Plugin::HeaderEval 
+    if (version >= 3.004000)
+      meta     FREEMAIL_FORGED_FROMDOMAIN FREEMAIL_FROM && HEADER_FROM_DIFFERENT_DOMAINS
+      describe FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and EnvelopeFrom freemail headers are different
+#      score    FREEMAIL_FORGED_FROMDOMAIN 0.25
+      tflags   FREEMAIL_FORGED_FROMDOMAIN publish
+endif
+endif
+endif
+##} FREEMAIL_FORGED_FROMDOMAIN ifplugin Mail::SpamAssassin::Plugin::FreeMail ifplugin Mail::SpamAssassin::Plugin::HeaderEval if (version >= 3.004000)
+
+##{ FREEMAIL_WFH_01
+
+meta       FREEMAIL_WFH_01             __FREEMAIL_WFH_01
+describe   FREEMAIL_WFH_01             Work-from-Home + freemail
+tflags     FREEMAIL_WFH_01             publish
+##} FREEMAIL_WFH_01
+
+##{ FREEM_FRNUM_UNICD_EMPTY
+
+meta       FREEM_FRNUM_UNICD_EMPTY    __FREEM_FRNUM_UNICD_EMPTY
+describe   FREEM_FRNUM_UNICD_EMPTY    Numeric freemail From address, unicode From name and Subject, empty body
+#score      FREEM_FRNUM_UNICD_EMPTY    3.750   # limit
+tflags     FREEM_FRNUM_UNICD_EMPTY    publish
+##} FREEM_FRNUM_UNICD_EMPTY
+
+##{ FRNAME_IN_MSG_XPRIO_NO_SUB
+
+meta       FRNAME_IN_MSG_XPRIO_NO_SUB (__FROM_NAME_IN_MSG && __XPRIO && (__SUBJECT_EMPTY || __SUBJ_SHORT)) && !__DKIM_EXISTS  && !__SUBJ_NOT_SHORT && !ALL_TRUSTED
+describe   FRNAME_IN_MSG_XPRIO_NO_SUB From name in message + X-Priority + short or no subject
+#score      FRNAME_IN_MSG_XPRIO_NO_SUB 2.500   # limit
+tflags     FRNAME_IN_MSG_XPRIO_NO_SUB publish
+##} FRNAME_IN_MSG_XPRIO_NO_SUB
+
+##{ FROM_2_EMAILS_SHORT
+
+meta     FROM_2_EMAILS_SHORT __KAM_BODY_LENGTH_LT_512 && (__PDS_FROM_2_EMAILS || __NAME_EMAIL_DIFF)
+describe FROM_2_EMAILS_SHORT Short body and From looks like 2 different emails
+#score    FROM_2_EMAILS_SHORT 3.0 # limit
+##} FROM_2_EMAILS_SHORT
+
+##{ FROM_ADDR_WS
+
+meta       FROM_ADDR_WS                __FROM_ADDR_WS && !__RCD_RDNS_MTA_MESSY && !ANY_BOUNCE_MESSAGE && !__FROM_ENCODED_QP && !__RCD_RDNS_MAIL 
+describe   FROM_ADDR_WS                Malformed From address
+#score      FROM_ADDR_WS                3.000  # limit
+tflags     FROM_ADDR_WS                publish
+##} FROM_ADDR_WS
+
+##{ FROM_BANK_NOAUTH if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_BANK_NOAUTH  __FROM_ADDRLIST_BANKS && (! NO_RELAYS && ! ALL_TRUSTED) && (! SPF_PASS && ! DKIM_VALID_AU)
+tflags   FROM_BANK_NOAUTH  publish net
+describe FROM_BANK_NOAUTH  From Bank domain but no SPF or DKIM
+#score    FROM_BANK_NOAUTH  1.0 # limit
+endif
+endif
+##} FROM_BANK_NOAUTH if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_FMBLA_NDBLOCKED if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta       FROM_FMBLA_NDBLOCKED __FROM_FMBLA_NDBLOCKED
+describe   FROM_FMBLA_NDBLOCKED ADMINISTRATOR NOTICE: The query to fresh.fmb.la was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists\#dnsbl-block for more information.
+tflags     FROM_FMBLA_NDBLOCKED net publish
+#score      FROM_FMBLA_NDBLOCKED 0.001 # limit
+endif
+endif
+##} FROM_FMBLA_NDBLOCKED if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ FROM_FMBLA_NEWDOM if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta       FROM_FMBLA_NEWDOM    __FROM_FMBLA_NEWDOM
+describe   FROM_FMBLA_NEWDOM    From domain was registered in last 7 days
+tflags     FROM_FMBLA_NEWDOM    net
+#score      FROM_FMBLA_NEWDOM    1.5 # limit
+endif
+endif
+##} FROM_FMBLA_NEWDOM if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ FROM_FMBLA_NEWDOM14 if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta       FROM_FMBLA_NEWDOM14  __FROM_FMBLA_NEWDOM14
+describe   FROM_FMBLA_NEWDOM14  From domain was registered in last 7-14 days
+tflags     FROM_FMBLA_NEWDOM14  publish net
+#score      FROM_FMBLA_NEWDOM14  1.0 # limit
+endif
+endif
+##} FROM_FMBLA_NEWDOM14 if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ FROM_FMBLA_NEWDOM28 if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta       FROM_FMBLA_NEWDOM28  __FROM_FMBLA_NEWDOM28
+describe   FROM_FMBLA_NEWDOM28  From domain was registered in last 14-28 days
+tflags     FROM_FMBLA_NEWDOM28  net publish
+#score      FROM_FMBLA_NEWDOM28  0.8 # limit
+endif
+endif
+##} FROM_FMBLA_NEWDOM28 if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ FROM_GOV_DKIM_AU if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_GOV_DKIM_AU  DKIM_VALID_AU && __FROM_ADDRLIST_GOV
+tflags   FROM_GOV_DKIM_AU  net nice publish
+describe FROM_GOV_DKIM_AU  From Government address and DKIM signed
+#score    FROM_GOV_DKIM_AU  -1.0 # limit
+endif
+endif
+##} FROM_GOV_DKIM_AU if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_GOV_REPLYTO_FREEMAIL if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_GOV_REPLYTO_FREEMAIL FREEMAIL_FORGED_REPLYTO && __FROM_ADDRLIST_GOV && !DKIM_VALID_AU
+tflags   FROM_GOV_REPLYTO_FREEMAIL net publish
+describe FROM_GOV_REPLYTO_FREEMAIL From Government domain but ReplyTo is FREEMAIL
+#score    FROM_GOV_REPLYTO_FREEMAIL 2.0
+endif
+endif
+##} FROM_GOV_REPLYTO_FREEMAIL if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_GOV_SPOOF if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_GOV_SPOOF  !__NOT_SPOOFED && __FROM_ADDRLIST_GOV && (! NO_RELAYS && ! ALL_TRUSTED)
+tflags   FROM_GOV_SPOOF  net publish
+describe FROM_GOV_SPOOF  From Government domain but matches SPOOFED
+#score    FROM_GOV_SPOOF  1.0 # limit
+endif
+endif
+##} FROM_GOV_SPOOF if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_IN_TO_AND_SUBJ
+
+meta           FROM_IN_TO_AND_SUBJ  (__TO_EQ_FROM && __SUBJ_HAS_FROM_1) && !__HAS_LIST_ID 
+describe       FROM_IN_TO_AND_SUBJ  From address is in To and Subject
+tflags         FROM_IN_TO_AND_SUBJ  publish
+##} FROM_IN_TO_AND_SUBJ
+
+##{ FROM_MISSPACED
+
+meta           FROM_MISSPACED        __FROM_MISSPACED && !__RCD_RDNS_MTA_MESSY && !__CTYPE_MULTIPART_ALT && !__REPTO_QUOTE && !__MIME_QP && !__UNSUB_LINK && !__TO___LOWER && !__BUGGED_IMG && !__DOS_HAS_LIST_UNSUB && !__TO_EQ_FROM_DOM && !__MAIL_LINK && !__MTLANDROID_MUA && !__XEROXWORKCTR_MUA && !__PHP_MUA && !__AMADEUSMS_MUA && !__FLASHMAIL_MUA
+describe       FROM_MISSPACED        From: missing whitespace
+#score          FROM_MISSPACED        2.00
+##} FROM_MISSPACED
+
+##{ FROM_MISSP_DYNIP
+
+meta           FROM_MISSP_DYNIP      __FROM_RUNON && RDNS_DYNAMIC
+describe       FROM_MISSP_DYNIP      From misspaced + dynamic rDNS
+##} FROM_MISSP_DYNIP
+
+##{ FROM_MISSP_EH_MATCH
+
+meta           FROM_MISSP_EH_MATCH   __FROM_MISSP_EH_MATCH && !__RCD_RDNS_MTA_MESSY && !__UNSUB_LINK && !__COMMENT_EXISTS && !__TO___LOWER && !__MIME_QP && !__TO_EQ_FROM_DOM && !__BUGGED_IMG && !__DKIM_EXISTS && !__RCVD_ZIXMAIL && !__MTLANDROID_MUA && !__XEROXWORKCTR_MUA && !__PHP_MUA && !__AMADEUSMS_MUA && !__FLASHMAIL_MUA
+describe       FROM_MISSP_EH_MATCH   From misspaced, matches envelope
+#score          FROM_MISSP_EH_MATCH   2.00     # max
+##} FROM_MISSP_EH_MATCH
+
+##{ FROM_MISSP_FREEMAIL ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         FROM_MISSP_FREEMAIL   __FROM_MISSP_FREEMAIL && !__TO_EQ_FROM_DOM && !__MTLANDROID_MUA
+  describe     FROM_MISSP_FREEMAIL   From misspaced + freemail provider
+endif
+##} FROM_MISSP_FREEMAIL ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ FROM_MISSP_MSFT
+
+meta           FROM_MISSP_MSFT       __FROM_RUNON && (__ANY_OUTLOOK_MUA || __MIMEOLE_MS)
+describe       FROM_MISSP_MSFT       From misspaced + supposed Microsoft tool
+##} FROM_MISSP_MSFT
+
+##{ FROM_MISSP_REPLYTO
+
+meta           FROM_MISSP_REPLYTO    __FROM_MISSP_REPLYTO && !__NOT_SPOOFED && !__RCD_RDNS_MTA_MESSY && !__TO___LOWER && !__COMMENT_EXISTS && !__UNSUB_LINK && !__MIME_QP && !__CTYPE_MULTIPART_ALT && !__JM_REACTOR_DATE && !__PLING_QUERY && !__DOS_HAS_LIST_UNSUB 
+describe       FROM_MISSP_REPLYTO    From misspaced, has Reply-To
+#score          FROM_MISSP_REPLYTO    2.500    # limit
+##} FROM_MISSP_REPLYTO
+
+##{ FROM_MISSP_SPF_FAIL ifplugin Mail::SpamAssassin::Plugin::SPF
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta           FROM_MISSP_SPF_FAIL  (__FROM_RUNON && SPF_FAIL)
+  tflags         FROM_MISSP_SPF_FAIL  net
+#  score          FROM_MISSP_SPF_FAIL  2.00    # limit
+endif
+##} FROM_MISSP_SPF_FAIL ifplugin Mail::SpamAssassin::Plugin::SPF
+
+##{ FROM_MISSP_TO_UNDISC
+
+meta           FROM_MISSP_TO_UNDISC  (__FROM_RUNON && __TO_UNDISCLOSED)
+describe       FROM_MISSP_TO_UNDISC  From misspaced, To undisclosed
+##} FROM_MISSP_TO_UNDISC
+
+##{ FROM_MISSP_USER
+
+meta           FROM_MISSP_USER       (__FROM_RUNON && NSL_RCVD_FROM_USER)
+describe       FROM_MISSP_USER       From misspaced, from "User"
+##} FROM_MISSP_USER
+
+##{ FROM_MULTI_NORDNS if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  meta       FROM_MULTI_NORDNS        __FROM_MULTI_NORDNS
+  describe   FROM_MULTI_NORDNS        Multiple From addresses + no rDNS
+endif
+##} FROM_MULTI_NORDNS if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+##{ FROM_NEWDOM_BTC if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta     FROM_NEWDOM_BTC __PDS_BTC_ID && __PDS_NEWDOMAIN
+describe FROM_NEWDOM_BTC Newdomain with Bitcoin ID
+#score    FROM_NEWDOM_BTC 2.0 # limit
+tflags   FROM_NEWDOM_BTC net
+endif
+endif
+##} FROM_NEWDOM_BTC if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ FROM_NTLD_LINKBAIT if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_NTLD_LINKBAIT __LCL__KAM_BODY_LENGTH_LT_512 && __FROM_ADDRLIST_SUSPNTLD && __BODY_URI_ONLY
+tflags   FROM_NTLD_LINKBAIT publish
+describe FROM_NTLD_LINKBAIT From abused NTLD with little more than a URI
+#score    FROM_NTLD_LINKBAIT 2.0 # limit
+endif
+endif
+##} FROM_NTLD_LINKBAIT if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_NTLD_REPLY_FREEMAIL if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_NTLD_REPLY_FREEMAIL FREEMAIL_FORGED_REPLYTO && __FROM_ADDRLIST_SUSPNTLD
+tflags   FROM_NTLD_REPLY_FREEMAIL publish
+describe FROM_NTLD_REPLY_FREEMAIL From abused NTLD and Reply-To is FREEMAIL
+#score    FROM_NTLD_REPLY_FREEMAIL 2.0 # limit
+endif
+endif
+##} FROM_NTLD_REPLY_FREEMAIL if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_NUMBERO_NEWDOMAIN if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta     FROM_NUMBERO_NEWDOMAIN __NUMBERONLY_TLD && __PDS_NEWDOMAIN
+describe FROM_NUMBERO_NEWDOMAIN Fingerprint and new domain
+#score    FROM_NUMBERO_NEWDOMAIN 2.0 # limit
+tflags   FROM_NUMBERO_NEWDOMAIN net publish
+endif
+endif
+##} FROM_NUMBERO_NEWDOMAIN if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS
+
+##{ FROM_NUMERIC_TLD
+
+header     FROM_NUMERIC_TLD            From:addr =~ /\.\d+$/
+describe   FROM_NUMERIC_TLD            From: address has numeric TLD
+#score      FROM_NUMERIC_TLD            3.000  # limit
+##} FROM_NUMERIC_TLD
+
+##{ FROM_PAYPAL_SPOOF if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_PAYPAL_SPOOF  !__NOT_SPOOFED && __FROM_ADDRLIST_PAYPAL && (! NO_RELAYS && ! ALL_TRUSTED)
+tflags   FROM_PAYPAL_SPOOF  publish net
+describe FROM_PAYPAL_SPOOF  From PayPal domain but matches SPOOFED
+#score    FROM_PAYPAL_SPOOF  1.6 # limit
+endif
+endif
+##} FROM_PAYPAL_SPOOF if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_SUSPICIOUS_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_SUSPICIOUS_NTLD __FROM_ADDRLIST_SUSPNTLD
+tflags   FROM_SUSPICIOUS_NTLD publish
+describe FROM_SUSPICIOUS_NTLD From abused NTLD
+#score    FROM_SUSPICIOUS_NTLD 0.5 # limit
+endif
+endif
+##} FROM_SUSPICIOUS_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_SUSPICIOUS_NTLD_FP if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     FROM_SUSPICIOUS_NTLD_FP __FROM_ADDRLIST_SUSPNTLD && !__HAS_SENDER && !__HAS_IN_REPLY_TO && !__HAS_X_MAILING_LIST
+tflags   FROM_SUSPICIOUS_NTLD_FP publish
+describe FROM_SUSPICIOUS_NTLD_FP From abused NTLD
+#score    FROM_SUSPICIOUS_NTLD_FP 2.0 # limit
+endif
+endif
+##} FROM_SUSPICIOUS_NTLD_FP if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ FROM_WEBSITE
+
+header  FROM_WEBSITE   From:raw =~ m'\b(?:f|ht)tps?://[^\s"</\@]{3,60}\.\w\w'i
+describe FROM_WEBSITE  Sender name appears to be a link
+##} FROM_WEBSITE
+
+##{ FROM_WSP_TRAIL
+
+header   FROM_WSP_TRAIL        From:raw =~ /< [^>]* \s > [^<>]* \z/xm
+describe FROM_WSP_TRAIL        Trailing whitespace before '>' in From header field
+##} FROM_WSP_TRAIL
+
+##{ FSL_BULK_SIG
+
+meta     FSL_BULK_SIG          (DCC_CHECK || RAZOR2_CHECK || PYZOR_CHECK) && !__FSL_HAS_LIST_UNSUB && !__UNSUB_LINK && !__RCVD_IN_DNSWL && !__JM_REACTOR_DATE && !__RCD_RDNS_SMTP_MESSY
+describe FSL_BULK_SIG          Bulk signature with no Unsubscribe
+#score    FSL_BULK_SIG          3.000  # limit
+tflags   FSL_BULK_SIG          net publish
+##} FSL_BULK_SIG
+
+##{ FSL_CTYPE_WIN1251
+
+header   FSL_CTYPE_WIN1251   Content-Type =~ /charset="Windows-1251"/
+describe FSL_CTYPE_WIN1251   Content-Type only seen in 419 spam
+##} FSL_CTYPE_WIN1251
+
+##{ FSL_FAKE_HOTMAIL_RVCD
+
+header  FSL_FAKE_HOTMAIL_RVCD   X-Spam-Relays-External =~ /mx[1234]\.hotmail\.com/
+##} FSL_FAKE_HOTMAIL_RVCD
+
+##{ FSL_HELO_BARE_IP_1
+
+meta    FSL_HELO_BARE_IP_1        __FSL_HELO_BARE_IP_1 && !ALL_TRUSTED
+##} FSL_HELO_BARE_IP_1
+
+##{ FSL_HELO_DEVICE
+
+header  FSL_HELO_DEVICE         X-Spam-Relays-External =~ /\bhelo=(?:(?:dsl)?device|speedtouch)\.lan\b/i
+##} FSL_HELO_DEVICE
+
+##{ FSL_HELO_NON_FQDN_1
+
+header  FSL_HELO_NON_FQDN_1     X-Spam-Relays-External =~ /^[^\]]+ helo=[a-zA-Z0-9-_]+ /i
+##} FSL_HELO_NON_FQDN_1
+
+##{ FSL_HELO_SETUP
+
+header  FSL_HELO_SETUP          X-Spam-Relays-External =~ /\bhelo=\S+\.setup\b/i
+##} FSL_HELO_SETUP
+
+##{ FSL_INTERIA_ABUSE
+
+uri FSL_INTERIA_ABUSE /\/\S+\.(?:w|eu|fm)\.interia\.pl/
+##} FSL_INTERIA_ABUSE
+
+##{ FSL_NEW_HELO_USER
+
+meta    FSL_NEW_HELO_USER   (__FSL_HELO_USER_1 || __FSL_HELO_USER_2 || __FSL_HELO_USER_3)
+describe  FSL_NEW_HELO_USER Spam's using Helo and User
+#score   FSL_NEW_HELO_USER   2.0
+tflags  FSL_NEW_HELO_USER   publish
+##} FSL_NEW_HELO_USER
+
+##{ FUZZY_AMAZON ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_AMAZON        /(?:^|\W)(?=<A>)(?!amazon)<A><M><A><Z><O><N>(?:$|\W)/i
+  describe      FUZZY_AMAZON        Obfuscated "amazon"
+  tflags        FUZZY_AMAZON        publish
+endif
+##} FUZZY_AMAZON ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_ANDROID ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_ANDROID       /(?=<A>)(?!android)<A><N><D><R><O><I><D>/i
+  describe      FUZZY_ANDROID       Obfuscated "android"
+  tflags        FUZZY_ANDROID       publish
+endif
+##} FUZZY_ANDROID ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_APPLE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_APPLE         /(?:^|\W)(?=<A>)(?!appl[ey])<A><P><P><L><E>(?:$|\W)/i
+  describe      FUZZY_APPLE         Obfuscated "apple"
+  tflags        FUZZY_APPLE         publish
+endif
+##} FUZZY_APPLE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_BITCOIN ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_BITCOIN       /(?=<B>)(?!bit[-\s]?coin)<B>[-\s]?<I>[-\s]?<T>[-\s]?<C>[-\s]?<O>[-\s]?<I>[-\s]?<N>/i
+  describe      FUZZY_BITCOIN       Obfuscated "Bitcoin"
+  tflags        FUZZY_BITCOIN       publish
+endif
+##} FUZZY_BITCOIN ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_BROWSER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_BROWSER       /(?=<B>)(?!browser)<B><R><O><W><S><E><R>/i
+  describe      FUZZY_BROWSER       Obfuscated "browser"
+  tflags        FUZZY_BROWSER       publish
+endif
+##} FUZZY_BROWSER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_BTC_WALLET ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta          FUZZY_BTC_WALLET    FUZZY_BITCOIN && FUZZY_WALLET
+  describe      FUZZY_BTC_WALLET    Heavily obfuscated "bitcoin wallet"
+  tflags        FUZZY_BTC_WALLET    publish
+endif
+##} FUZZY_BTC_WALLET ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_CLICK_HERE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_CLICK_HERE    /(?=<C>)(?!click(?:\s|&nbsp;)here)<C><WS>*<L><WS>*<I><WS>*<C><WS>*<K><WS>+<H><WS>*<E><WS>*<R><WS>*<E>/i
+  describe      FUZZY_CLICK_HERE    Obfuscated "click here"
+  tflags        FUZZY_CLICK_HERE    publish
+endif
+##} FUZZY_CLICK_HERE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_DR_OZ ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta          FUZZY_DR_OZ         __FUZZY_DR_OZ && !__VIA_ML
+  describe      FUZZY_DR_OZ         Obfuscated Doctor Oz
+  tflags        FUZZY_DR_OZ         publish
+endif
+##} FUZZY_DR_OZ ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_FACEBOOK ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_FACEBOOK      /(?=<F>)(?!fa[ck]ebook)<F><A><C><E><B><O><O><K>/i
+  describe      FUZZY_FACEBOOK      Obfuscated "facebook"
+  tflags        FUZZY_FACEBOOK      publish
+endif
+##} FUZZY_FACEBOOK ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_IMPORTANT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_IMPORTANT     /(?=<I>)(?!important)<I>(?:<M>|<N>)<P><O><R><T><A><N><T>/i
+  describe      FUZZY_IMPORTANT     Obfuscated "important"
+  tflags        FUZZY_IMPORTANT     publish
+endif
+##} FUZZY_IMPORTANT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_MERIDIA ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body FUZZY_MERIDIA      /<inter W3><post P2>\b(?!meridia)<M><E><R><I><D><I><A>\b/i
+describe FUZZY_MERIDIA  Obfuscation of the word "meridia"
+endif
+##} FUZZY_MERIDIA ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_MICROSOFT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_MICROSOFT     /(?=<M>)(?!microsoft)<M><I><C><R><O><S><O><F><T>/i
+  describe      FUZZY_MICROSOFT     Obfuscated "microsoft"
+  tflags        FUZZY_MICROSOFT     publish
+endif
+##} FUZZY_MICROSOFT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_MONERO
+
+meta          FUZZY_MONERO        __FUZZY_MONERO
+describe      FUZZY_MONERO        Obfuscated "Monero"
+tflags        FUZZY_MONERO        publish
+##} FUZZY_MONERO
+
+##{ FUZZY_NORTON ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_NORTON        /(?:^|\W)(?=<N>)(?!norton)<N><O><R><T><O><N>(?:$|\W)/i
+  describe      FUZZY_NORTON        Obfuscated "norton"
+  tflags        FUZZY_NORTON        publish
+endif
+##} FUZZY_NORTON ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_OVERSTOCK ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_OVERSTOCK     /(?:^|\W)(?=<O>)(?!over[-\s]?stock)<O><V><E><R>[-\s]?<S><T><O><C><K>(?:$|\W)/i
+  describe      FUZZY_OVERSTOCK     Obfuscated "overstock"
+  tflags        FUZZY_OVERSTOCK     publish
+endif
+##} FUZZY_OVERSTOCK ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_PAYPAL ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_PAYPAL        /(?:^|\W)(?=<P>)(?!pay[-\s]?pal)<P><A><Y>[-\s]?<P><A><L>(?:$|\W)/i
+  describe      FUZZY_PAYPAL        Obfuscated "paypal"
+  tflags        FUZZY_PAYPAL        publish
+endif
+##} FUZZY_PAYPAL ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_PORN ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta          FUZZY_PORN          __FUZZY_PORN && !( __ENV_AND_HDR_FROM_MATCH && __SENDER_BOT )
+  describe      FUZZY_PORN          Obfuscated "Pornography" or "Pornographic"
+  tflags        FUZZY_PORN          publish
+endif
+##} FUZZY_PORN ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_PRIVACY ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_PRIVACY       /(?=<P>)(?!privacy)<P><R><I><V><A><C><Y>/i
+  describe      FUZZY_PRIVACY       Obfuscated "privacy"
+  tflags        FUZZY_PRIVACY       publish
+endif
+##} FUZZY_PRIVACY ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_PROMOTION ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_PROMOTION     /(?=<P>)(?!promotion)<P><R><O><M><O><T><I><O><N>/i
+  describe      FUZZY_PROMOTION     Obfuscated "promotion"
+  tflags        FUZZY_PROMOTION     publish
+endif
+##} FUZZY_PROMOTION ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_SAVINGS ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_SAVINGS       /(?=<S>)(?!savings)<S><A><V><I><N><G><S>/i
+  describe      FUZZY_SAVINGS       Obfuscated "savings"
+  tflags        FUZZY_SAVINGS       publish
+endif
+##} FUZZY_SAVINGS ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_SECURITY ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_SECURITY      /(?=<S>)(?!security)(?!seguridad)(?!s\xc3\xa9curit\xc3\xa9)<S><E>(?:<C>|<G>)<U><R><I>(?:<T><Y>|<D><A><D>)/i
+  describe      FUZZY_SECURITY      Obfuscated "security"
+  tflags        FUZZY_SECURITY      publish
+endif
+##} FUZZY_SECURITY ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_UNSUBSCRIBE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_UNSUBSCRIBE   /(?=<U>)(?!unsubscribe)<U><N><S><U><B><S><C><R><I><B><E>/i
+  describe      FUZZY_UNSUBSCRIBE   Obfuscated "unsubscribe"
+  tflags        FUZZY_UNSUBSCRIBE   publish
+endif
+##} FUZZY_UNSUBSCRIBE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ FUZZY_WALLET ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          FUZZY_WALLET        /(?=<W>)(?!wallet)<W><A><L><L><E><T>/i
+  describe      FUZZY_WALLET        Obfuscated "Wallet"
+  tflags        FUZZY_WALLET        publish
+endif
+##} FUZZY_WALLET ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ GAPPY_SALES_LEADS_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       GAPPY_SALES_LEADS_FREEM     __GAPPY_SALES_LEADS_MANY && (__REPTO_CHN_FREEM || __freemail_hdr_replyto)
+  describe   GAPPY_SALES_LEADS_FREEM     Obfuscated marketing text, freemail or CHN replyto
+#  score      GAPPY_SALES_LEADS_FREEM     3.500        # limit
+  tflags     GAPPY_SALES_LEADS_FREEM     publish
+endif
+##} GAPPY_SALES_LEADS_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ GB_FAKE_RF_SHORT
+
+meta       GB_FAKE_RF_SHORT              ( ! __THREADED && __GB_FAKE_RF && __PDS_URISHORTENER )
+describe   GB_FAKE_RF_SHORT              Fake reply or forward with url shortener
+#score      GB_FAKE_RF_SHORT              2.000 # limit
+tflags     GB_FAKE_RF_SHORT              publish
+##} GB_FAKE_RF_SHORT
+
+##{ GB_FORGED_MUA_POSTFIX
+
+meta        GB_FORGED_MUA_POSTFIX      ( __FORGED_MUA_POSTFIX0 || __FORGED_MUA_POSTFIX1 )
+describe     GB_FORGED_MUA_POSTFIX     Forged Postfix mua headers
+tflags       GB_FORGED_MUA_POSTFIX      publish
+#score      GB_FORGED_MUA_POSTFIX      2.0 # limit
+##} GB_FORGED_MUA_POSTFIX
+
+##{ GB_FREEMAIL_DISPTO ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta     GB_FREEMAIL_DISPTO  ( __FREEMAIL_DISPTO && !__freemail_safe )
+  describe GB_FREEMAIL_DISPTO  Disposition-Notification-To/From or Disposition-Notification-To/body contain different freemails
+#  score    GB_FREEMAIL_DISPTO  0.50 # limit
+  tflags   GB_FREEMAIL_DISPTO  publish
+endif
+##} GB_FREEMAIL_DISPTO ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ GB_FREEMAIL_DISPTO_NOTFREEM ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta     GB_FREEMAIL_DISPTO_NOTFREEM  ( __FREEMAIL_DISPTO && !__freemail_safe && !FREEMAIL_FROM )
+  describe GB_FREEMAIL_DISPTO_NOTFREEM  Disposition-Notification-To/From contain different freemails but mailfrom is not a freemail
+#  score    GB_FREEMAIL_DISPTO_NOTFREEM  0.50 # limit
+  tflags   GB_FREEMAIL_DISPTO_NOTFREEM  publish
+endif
+##} GB_FREEMAIL_DISPTO_NOTFREEM ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ GB_GOOGLE_OBFUR
+
+uri         GB_GOOGLE_OBFUR    /^https:\/\/www\.google\.([a-z]{2,3})\/url\?sa=t\&rct=j\&q=\&esrc=s\&source=web\&cd=([0-9])*\&(cad=rja\&uact=([0-9]+)\&ved=.{1,50}\&)?url=https?:\/\/.{1,50}(&usg=.{1,50})?/
+describe    GB_GOOGLE_OBFUR    Obfuscate url through Google redirect
+#score       GB_GOOGLE_OBFUR     0.75 # limit
+tflags      GB_GOOGLE_OBFUR     publish
+##} GB_GOOGLE_OBFUR
+
+##{ GB_GOOGLE_OBFUS
+
+uri         GB_GOOGLE_OBFUS    /^https:\/\/www\.google\.([a-z]{2,3})\/search\?ei=.{1,50}\&gs_l=.{1,20}/
+describe    GB_GOOGLE_OBFUS    Obfuscate url through Google search
+#score       GB_GOOGLE_OBFUS     0.75 # limit
+##} GB_GOOGLE_OBFUS
+
+##{ GEO_QUERY_STRING
+
+uri    GEO_QUERY_STRING        /^http:\/\/(?:\w{2,4}\.)?geocities\.com(?::\d*)?\/.+?\/\?/i
+##} GEO_QUERY_STRING
+
+##{ GOOGLE_DOCS_PHISH
+
+meta        GOOGLE_DOCS_PHISH    (__GOOGLE_DOCS_PHISH_1 || __GOOGLE_DOCS_PHISH_2)
+describe    GOOGLE_DOCS_PHISH    Possible phishing via a Google Docs form
+#score       GOOGLE_DOCS_PHISH    3.00 # limit
+tflags      GOOGLE_DOCS_PHISH    publish
+##} GOOGLE_DOCS_PHISH
+
+##{ GOOGLE_DOCS_PHISH_MANY
+
+meta        GOOGLE_DOCS_PHISH_MANY  __URI_GOOGLE_DOC && (__EMAIL_PHISH_MANY || __ACCT_PHISH_MANY)
+describe    GOOGLE_DOCS_PHISH_MANY  Phishing via a Google Docs form
+#score       GOOGLE_DOCS_PHISH_MANY  4.00      # limit
+tflags      GOOGLE_DOCS_PHISH_MANY  publish
+##} GOOGLE_DOCS_PHISH_MANY
+
+##{ GOOGLE_DOC_SUSP
+
+meta        GOOGLE_DOC_SUSP      __GOOGLE_DOC_SUSP && !GOOGLE_DOCS_PHISH_MANY && !__HAS_SENDER && !__RCD_RDNS_MTA_MESSY && !__LYRIS_EZLM_REMAILER && !__USING_VERP1 && !__RCD_RDNS_SMTP && !__HAS_THREAD_INDEX && !__RCD_RDNS_SMTP && ! __HAS_LIST_ID && !__SURVEY && !__BUGGED_IMG 
+describe    GOOGLE_DOC_SUSP      Suspicious use of Google Docs
+#score       GOOGLE_DOC_SUSP      3.000        # limit
+tflags      GOOGLE_DOC_SUSP      publish
+##} GOOGLE_DOC_SUSP
+
+##{ GOOGLE_DRIVE_REPLY_BAD_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     GOOGLE_DRIVE_REPLY_BAD_NTLD __PDS_GOOGLE_DRIVE_SHARE && __REPLYTO_ADDRLIST_SUSPNTLD
+tflags   GOOGLE_DRIVE_REPLY_BAD_NTLD publish
+describe GOOGLE_DRIVE_REPLY_BAD_NTLD From Google Drive and Reply-To is from a suspicious TLD
+#score    GOOGLE_DRIVE_REPLY_BAD_NTLD 1.0 # limit
+endif
+endif
+##} GOOGLE_DRIVE_REPLY_BAD_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ GOOG_MALWARE_DNLD
+
+meta      GOOG_MALWARE_DNLD             __GOOG_MALWARE_DNLD
+describe  GOOG_MALWARE_DNLD             File download via Google - Malware?
+#score     GOOG_MALWARE_DNLD             5.000   # limit
+tflags    GOOG_MALWARE_DNLD             publish
+##} GOOG_MALWARE_DNLD
+
+##{ GOOG_REDIR_DOCUSIGN
+
+uri        GOOG_REDIR_DOCUSIGN         m;://www\.google\.com/url\?.*q=https?://www\.docusign\.com/;i
+describe   GOOG_REDIR_DOCUSIGN         Indirect docusign link, probable phishing
+tflags     GOOG_REDIR_DOCUSIGN         publish
+##} GOOG_REDIR_DOCUSIGN
+
+##{ GOOG_REDIR_NORDNS
+
+meta      GOOG_REDIR_NORDNS             __GOOG_REDIR && RDNS_NONE
+describe  GOOG_REDIR_NORDNS             Google redirect to obscure spamvertised website + no rDNS
+##} GOOG_REDIR_NORDNS
+
+##{ GOOG_REDIR_SHORT
+
+meta      GOOG_REDIR_SHORT              __GOOG_REDIR && __LCL__KAM_BODY_LENGTH_LT_512 
+describe  GOOG_REDIR_SHORT              Google redirect to obscure spamvertised website + short message
+tflags    GOOG_REDIR_SHORT              publish
+##} GOOG_REDIR_SHORT
+
+##{ GOOG_STO_HTML_PHISH
+
+meta        GOOG_STO_HTML_PHISH       __GOOG_STO_HTML_PHISH
+describe    GOOG_STO_HTML_PHISH       Possible phishing with google content hosting to avoid URIBL
+#score       GOOG_STO_HTML_PHISH       3.00    # limit
+tflags      GOOG_STO_HTML_PHISH       publish
+##} GOOG_STO_HTML_PHISH
+
+##{ GOOG_STO_HTML_PHISH_MANY
+
+meta        GOOG_STO_HTML_PHISH_MANY  __URI_GOOG_STO_HTML && (__EMAIL_PHISH_MANY || __ACCT_PHISH_MANY)
+describe    GOOG_STO_HTML_PHISH_MANY  Phishing with google content hosting to avoid URIBL
+#score       GOOG_STO_HTML_PHISH_MANY  4.00    # limit
+tflags      GOOG_STO_HTML_PHISH_MANY  publish
+##} GOOG_STO_HTML_PHISH_MANY
+
+##{ GOOG_STO_IMG_HTML
+
+meta       GOOG_STO_IMG_HTML          __GOOG_STO_IMG_HTML_1 && !URI_GOOG_STO_SPAMMY
+describe   GOOG_STO_IMG_HTML          Apparently using google content hosting to avoid URIBL
+#score      GOOG_STO_IMG_HTML          3.000   # limit
+tflags     GOOG_STO_IMG_HTML          publish
+##} GOOG_STO_IMG_HTML
+
+##{ GOOG_STO_IMG_NOHTML
+
+meta       GOOG_STO_IMG_NOHTML        __GOOG_STO_IMG_NOHTML && (__RDNS_NONE || HTML_TEXT_INVISIBLE_STYLE || THIS_AD || __SUBJECT_ENCODED_B64 || __LOTTO_ADMITS || __REPTO_QUOTE) && !__USING_VERP1 && !__HAS_ERRORS_TO && !__RCD_RDNS_MTA_MESSY && !__LYRIS_EZLM_REMAILER && !__HAS_CID && !URI_GOOG_STO_SPAMMY
+describe   GOOG_STO_IMG_NOHTML        Apparently using google content hosting to avoid URIBL
+#score      GOOG_STO_IMG_NOHTML        2.500   # limit
+tflags     GOOG_STO_IMG_NOHTML        publish
+##} GOOG_STO_IMG_NOHTML
+
+##{ GOOG_STO_NOIMG_HTML
+
+meta       GOOG_STO_NOIMG_HTML        __GOOG_STO_NOIMG_HTML && !URI_GOOG_STO_SPAMMY
+describe   GOOG_STO_NOIMG_HTML        Apparently using google content hosting to avoid URIBL
+#score      GOOG_STO_NOIMG_HTML        3.000   # limit
+tflags     GOOG_STO_NOIMG_HTML        publish
+##} GOOG_STO_NOIMG_HTML
+
+##{ HAS_X_NO_RELAY
+
+meta      HAS_X_NO_RELAY                __HAS_X_NO_RELAY && !__TO_EQ_FROM_1 
+describe  HAS_X_NO_RELAY                Has spammy header
+#score     HAS_X_NO_RELAY                2.500 # limit
+tflags    HAS_X_NO_RELAY                publish
+##} HAS_X_NO_RELAY
+
+##{ HAS_X_OUTGOING_SPAM_STAT
+
+meta       HAS_X_OUTGOING_SPAM_STAT    __HAS_X_OUTGOING_SPAM_STAT && !MAILING_LIST_MULTI && !__HAS_X_MAILMAN_VERSION && !__AUTOREPLY_ASU && !__THREAD_INDEX_GOOD 
+describe   HAS_X_OUTGOING_SPAM_STAT    Has header claiming outbound spam scan - why trust the results?
+#score      HAS_X_OUTGOING_SPAM_STAT    3.000  # limit
+tflags     HAS_X_OUTGOING_SPAM_STAT    publish
+##} HAS_X_OUTGOING_SPAM_STAT
+
+##{ HDRS_LCASE
+
+describe       HDRS_LCASE            Odd capitalization of message header
+#score          HDRS_LCASE            0.10     # limit
+##} HDRS_LCASE
+
+##{ HDRS_LCASE if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+
+if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+  meta         HDRS_LCASE            __HDRS_LCASE && !__HDRS_LCASE_KNOWN && !__VIA_ML && !__THREADED && !__UNUSABLE_MSGID && !__DOS_SINGLE_EXT_RELAY && !__DKIM_EXISTS && !__BUGGED_IMG && !__SUBSCRIPTION_INFO && !NO_RELAYS && !__RDNS_NONE && !__MIME_BASE64 && !__SUBJECT_ENCODED_B64 && !__RCD_RDNS_MX_MESSY && !__HTML_LINK_IMAGE && !__RDNS_SHORT && !__TAG_EXISTS_STYLE && !ALL_TRUSTED && !__NOT_SPOOFED && !__RCD_RDNS_SMTP_MESSY && !__NAKED_TO
+endif
+##} HDRS_LCASE if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+
+##{ HDRS_LCASE ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         HDRS_LCASE            __HDRS_LCASE && !__HDRS_LCASE_KNOWN && !__VIA_ML && !__freemail_safe && !__THREADED && !__UNUSABLE_MSGID && !__DOS_SINGLE_EXT_RELAY && !__DKIM_EXISTS && !__BUGGED_IMG && !__SUBSCRIPTION_INFO && !NO_RELAYS && !__RDNS_NONE && !__MIME_BASE64 && !__SUBJECT_ENCODED_B64 && !__RCD_RDNS_MX_MESSY && !__HTML_LINK_IMAGE && !__RDNS_SHORT && !__TAG_EXISTS_STYLE && !ALL_TRUSTED && !__NOT_SPOOFED && !__RCD_RDNS_SMTP_MESSY && !__NAKED_TO
+endif
+##} HDRS_LCASE ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ HDRS_LCASE_IMGONLY
+
+meta           HDRS_LCASE_IMGONLY    __HDRS_LCASE && __HTML_IMG_ONLY && !__HDRS_LCASE_KNOWN
+describe       HDRS_LCASE_IMGONLY    Odd capitalization of message headers + image-only HTML
+#score          HDRS_LCASE_IMGONLY    0.10     # limit
+##} HDRS_LCASE_IMGONLY
+
+##{ HDRS_MISSP
+
+meta           HDRS_MISSP            __HDRS_MISSP && !ALL_TRUSTED && !(__FROM_ALL_HEX && __SUBJECT_PRESENT_EMPTY)
+describe       HDRS_MISSP            Misspaced headers
+#score          HDRS_MISSP            2.500    # limit
+tflags         HDRS_MISSP            publish
+##} HDRS_MISSP
+
+##{ HDR_ORDER_FTSDMCXX_001C
+
+meta HDR_ORDER_FTSDMCXX_001C  (__HDR_ORDER_FTSDMCXXXX && __MID_START_001C)
+describe HDR_ORDER_FTSDMCXX_001C  Header order similar to spam (FTSDMCXX/MID variant)
+##} HDR_ORDER_FTSDMCXX_001C
+
+##{ HDR_ORDER_FTSDMCXX_BAT
+
+meta HDR_ORDER_FTSDMCXX_BAT   (__HDR_ORDER_FTSDMCXXXX && __BAT_BOUNDARY)
+describe HDR_ORDER_FTSDMCXX_BAT   Header order similar to spam (FTSDMCXX/boundary variant)
+##} HDR_ORDER_FTSDMCXX_BAT
+
+##{ HDR_ORDER_FTSDMCXX_DIRECT
+
+meta       HDR_ORDER_FTSDMCXX_DIRECT  (__HDR_ORDER_FTSDMCXXXX && __DOS_SINGLE_EXT_RELAY) && !ALL_TRUSTED && !__VIA_ML
+describe   HDR_ORDER_FTSDMCXX_DIRECT  Header order similar to spam (FTSDMCXX/boundary variant) + direct-to-MX
+#score      HDR_ORDER_FTSDMCXX_DIRECT  2.000   # limit
+tflags     HDR_ORDER_FTSDMCXX_DIRECT  publish
+##} HDR_ORDER_FTSDMCXX_DIRECT
+
+##{ HDR_ORDER_FTSDMCXX_NORDNS
+
+meta       HDR_ORDER_FTSDMCXX_NORDNS  (__HDR_ORDER_FTSDMCXXXX && __RDNS_NONE) && !ALL_TRUSTED
+describe   HDR_ORDER_FTSDMCXX_NORDNS  Header order similar to spam (FTSDMCXX/boundary variant) + no rDNS
+#score      HDR_ORDER_FTSDMCXX_NORDNS  3.500   # limit
+tflags     HDR_ORDER_FTSDMCXX_NORDNS  publish
+##} HDR_ORDER_FTSDMCXX_NORDNS
+
+##{ HEADER_COUNT_SUBJECT ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+header HEADER_COUNT_SUBJECT     eval:check_header_count_range('Subject','2','999')
+describe HEADER_COUNT_SUBJECT   Multiple Subject headers found
+endif
+##} HEADER_COUNT_SUBJECT ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+##{ HEADER_FROM_DIFFERENT_DOMAINS ifplugin Mail::SpamAssassin::Plugin::FreeMail ifplugin Mail::SpamAssassin::Plugin::HeaderEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  ifplugin Mail::SpamAssassin::Plugin::HeaderEval 
+    if (version >= 3.004000)
+      header   HEADER_FROM_DIFFERENT_DOMAINS eval:check_equal_from_domains()
+      describe HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different
+#      score    HEADER_FROM_DIFFERENT_DOMAINS 0.25
+      tflags   HEADER_FROM_DIFFERENT_DOMAINS publish
+endif
+endif
+endif
+##} HEADER_FROM_DIFFERENT_DOMAINS ifplugin Mail::SpamAssassin::Plugin::FreeMail ifplugin Mail::SpamAssassin::Plugin::HeaderEval if (version >= 3.004000)
+
+##{ HELO_FRIEND
+
+header HELO_FRIEND  X-Spam-Relays-External =~ /^[^\]]+ helo=friend /i
+##} HELO_FRIEND
+
+##{ HELO_LH_HOME
+
+header HELO_LH_HOME X-Spam-Relays-External =~ /^[^\]]+ helo=\S+\.(?:home|lan) /i
+##} HELO_LH_HOME
+
+##{ HELO_LH_LD
+
+header HELO_LH_LD   X-Spam-Relays-External =~ /^[^\]]+ helo=localhost\.localdomain /i
+##} HELO_LH_LD
+
+##{ HELO_LOCALHOST
+
+header HELO_LOCALHOST   X-Spam-Relays-External =~ /^[^\]]+ helo=localhost /i
+##} HELO_LOCALHOST
+
+##{ HELO_MISC_IP
+
+meta           HELO_MISC_IP            (__HELO_MISC_IP && !HELO_DYNAMIC_IPADDR && !HELO_DYNAMIC_IPADDR2 && !HELO_DYNAMIC_SPLIT_IP && !HELO_DYNAMIC_HCC && !HELO_DYNAMIC_DIALIN && ((TVD_RCVD_IP4 + TVD_RCVD_IP + __FSL_HELO_BARE_IP_2) <2))
+describe       HELO_MISC_IP            Looking for more Dynamic IP Relays
+#score         HELO_MISC_IP            0.25
+##} HELO_MISC_IP
+
+##{ HELO_NO_DOMAIN
+
+meta     HELO_NO_DOMAIN        __HELO_NO_DOMAIN && !HELO_LOCALHOST
+describe HELO_NO_DOMAIN        Relay reports its domain incorrectly
+tflags   HELO_NO_DOMAIN        publish
+##} HELO_NO_DOMAIN
+
+##{ HELO_OEM
+
+header HELO_OEM  X-Spam-Relays-External =~ /^[^\]]+ helo=(?:pc|oem\S*) /i
+##} HELO_OEM
+
+##{ HEXHASH_WORD
+
+meta        HEXHASH_WORD       (__HEXHASHWORD_S2EU > 1) && !ALL_TRUSTED && !__LYRIS_EZLM_REMAILER && !__MSGID_HEXISH && !__RDNS_SHORT && !__CTYPE_MULTIPART_MIXED && !__HAS_X_REF && !__HAS_IMG_SRC_ONECASE && !__RCD_RDNS_MAIL_MESSY && !__VIA_ML && !__HAS_SENDER 
+describe    HEXHASH_WORD       Multiple instances of word + hexadecimal hash
+#score       HEXHASH_WORD       3.000  # limit
+tflags      HEXHASH_WORD       publish
+##} HEXHASH_WORD
+
+##{ HK_CTE_RAW ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader     HK_CTE_RAW              Content-Transfer-Encoding =~ /^raw$/
+#score         HK_CTE_RAW              2
+tflags         HK_CTE_RAW              publish
+endif
+##} HK_CTE_RAW ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ HK_LOTTO
+
+meta           HK_LOTTO                __HK_LOTTO_2 || __HK_LOTTO_STAATS || __HK_LOTTO_BALLOT
+#score         HK_LOTTO                1
+##} HK_LOTTO
+
+##{ HK_NAME_DRUGS
+
+header         HK_NAME_DRUGS           From:name =~ /(viagra|\bcialis|cialis\b)/mi
+describe       HK_NAME_DRUGS           From name contains drugs
+#score         HK_NAME_DRUGS           2
+##} HK_NAME_DRUGS
+
+##{ HK_NAME_FM_MR_MRS ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+if (version >= 3.004000)
+  meta         HK_NAME_FM_MR_MRS       __HK_NAME_MR_MRS && FREEMAIL_FROM
+#  score               HK_NAME_FM_MR_MRS       1.5
+endif
+endif
+##} HK_NAME_FM_MR_MRS ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+##{ HK_NAME_MR_MRS ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+if (version >= 3.004000)
+  meta         HK_NAME_MR_MRS          __HK_NAME_MR_MRS && !FREEMAIL_FROM
+#  score               HK_NAME_MR_MRS          1.0
+endif
+endif
+##} HK_NAME_MR_MRS ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+##{ HK_RANDOM_ENVFROM
+
+header         HK_RANDOM_ENVFROM        EnvelopeFrom =~ /^(?!(?:mail|bounce)[_.-]|[^@]*(?:[+=^~\#-]|mcgr|kpmg|nlpbr|ndqv|lcgc|cplpr)|[^@]{26}|.*?@.{0,20}\b(?:cmp-info|cmpgnr|cnn|tori|jysk|amadeus)\.[a-z]{2,3}$)[^@]*(?:[bcdfgjklmnpqrtvwxz]{5}|[aeiouy]{5}|([a-z]{1,2})(?:\1){3})/mi
+describe       HK_RANDOM_ENVFROM       Envelope sender username looks random
+#score         HK_RANDOM_ENVFROM       1
+tflags         HK_RANDOM_ENVFROM       publish
+##} HK_RANDOM_ENVFROM
+
+##{ HK_RANDOM_FROM
+
+header         HK_RANDOM_FROM              From:addr =~ /^(?!(?:mail|bounce)[_.-]|[^@]*(?:[+=^~\#-]|mcgr|kpmg|nlpbr|ndqv|lcgc|cplpr)|[^@]{26}|.*?@.{0,20}\b(?:cmp-info|cmpgnr|cnn|tori|jysk|amadeus)\.[a-z]{2,3}$)[^@]*(?:[bcdfgjklmnpqrtvwxz]{5}|[aeiouy]{5}|([a-z]{1,2})(?:\1){3})/mi
+describe       HK_RANDOM_FROM          From username looks random
+#score         HK_RANDOM_FROM          1
+tflags         HK_RANDOM_FROM          publish
+##} HK_RANDOM_FROM
+
+##{ HK_RANDOM_REPLYTO
+
+header         HK_RANDOM_REPLYTO       Reply-To:addr =~ /^(?!(?:mail|bounce)[_.-]|[^@]*(?:[+=^~\#-]|mcgr|kpmg|nlpbr|ndqv|lcgc|cplpr)|[^@]{26}|.*?@.{0,20}\b(?:cmp-info|cmpgnr|cnn|tori|jysk|amadeus)\.[a-z]{2,3}$)[^@]*(?:[bcdfgjklmnpqrtvwxz]{5}|[aeiouy]{5}|([a-z]{1,2})(?:\1){3})/mi
+describe       HK_RANDOM_REPLYTO       Reply-To username looks random
+#score         HK_RANDOM_REPLYTO       1
+tflags         HK_RANDOM_REPLYTO       publish
+##} HK_RANDOM_REPLYTO
+
+##{ HK_RCVD_IP_MULTICAST
+
+header         HK_RCVD_IP_MULTICAST    X-Spam-Relays-External =~ / ip=(?:22[4-9]|23[0-9])\./
+#score         HK_RCVD_IP_MULTICAST    2
+tflags         HK_RCVD_IP_MULTICAST    publish
+##} HK_RCVD_IP_MULTICAST
+
+##{ HK_SCAM
+
+meta           HK_SCAM                 __HK_SCAM_N2 || __HK_SCAM_N3 || __HK_SCAM_N8 || __HK_SCAM_N15 || __HK_SCAM_N16 || __HK_SCAM_S1 || __HK_SCAM_S15 || __HK_SCAM_S25
+#score         HK_SCAM                 2
+tflags         HK_SCAM                 publish
+##} HK_SCAM
+
+##{ HK_WIN
+
+meta           HK_WIN                  ((__hk_win_2 + __hk_win_3 + __hk_win_4 + __hk_win_5 + __hk_win_7 + __hk_win_8 + __hk_win_9 + __hk_win_0 + __hk_win_a + __hk_win_b + __hk_win_c + __hk_win_d + __hk_win_i + __hk_win_j + __hk_win_l + __hk_win_m + __hk_win_n + __hk_win_o) >= 2)
+#score         HK_WIN                  1
+##} HK_WIN
+
+##{ HOSTED_IMG_DIRECT_MX
+
+meta       HOSTED_IMG_DIRECT_MX        __HOSTED_IMG_DIRECT_MX && !__DKIM_EXISTS 
+#score      HOSTED_IMG_DIRECT_MX        3.500  # limit
+describe   HOSTED_IMG_DIRECT_MX        Image hosted at large ecomm site, message direct-to-mx
+tflags     HOSTED_IMG_DIRECT_MX        publish
+##} HOSTED_IMG_DIRECT_MX
+
+##{ HOSTED_IMG_DQ_UNSUB
+
+meta       HOSTED_IMG_DQ_UNSUB         __HOSTED_IMG_DQ_UNSUB
+#score      HOSTED_IMG_DQ_UNSUB         3.500  # limit
+describe   HOSTED_IMG_DQ_UNSUB         Image hosted at large ecomm site, IP addr unsub link
+tflags     HOSTED_IMG_DQ_UNSUB         publish
+##} HOSTED_IMG_DQ_UNSUB
+
+##{ HOSTED_IMG_FREEM
+
+meta       HOSTED_IMG_FREEM            __HOSTED_IMG_FREEM && !__THREADED 
+#score      HOSTED_IMG_FREEM            3.500  # limit
+describe   HOSTED_IMG_FREEM            Image hosted at large ecomm site or redirected, freemail from or reply-to
+tflags     HOSTED_IMG_FREEM            publish
+##} HOSTED_IMG_FREEM
+
+##{ HOSTED_IMG_MULTI
+
+meta       HOSTED_IMG_MULTI            __HOSTED_IMG_MULTI && !__DKIM_EXISTS 
+#score      HOSTED_IMG_MULTI            3.000  # limit
+describe   HOSTED_IMG_MULTI            Multiple images hosted at different large ecomm sites or redirected
+tflags     HOSTED_IMG_MULTI            publish
+##} HOSTED_IMG_MULTI
+
+##{ HOSTED_IMG_MULTI_PUB_01
+
+meta       HOSTED_IMG_MULTI_PUB_01     (__IMGUR_IMG_2 || __IMGUR_IMG_3) && !__DATE_LOWER && !__BOTH_INR_AND_REF 
+describe   HOSTED_IMG_MULTI_PUB_01     Multiple hosted images at public site
+#score      HOSTED_IMG_MULTI_PUB_01     3.000  # limit
+tflags     HOSTED_IMG_MULTI_PUB_01     publish
+##} HOSTED_IMG_MULTI_PUB_01
+
+##{ HTML_ENTITY_ASCII
+
+meta       HTML_ENTITY_ASCII           __HTML_ENTITY_ASCII_MINFP
+describe   HTML_ENTITY_ASCII           Obfuscated ASCII
+#score      HTML_ENTITY_ASCII           3.000  # limit
+tflags     HTML_ENTITY_ASCII           publish
+##} HTML_ENTITY_ASCII
+
+##{ HTML_ENTITY_ASCII_TINY
+
+meta       HTML_ENTITY_ASCII_TINY      __HTML_ENTITY_ASCII_MINFP && __HTML_FONT_TINY_01 
+describe   HTML_ENTITY_ASCII_TINY      Obfuscated ASCII + tiny fonts
+#score      HTML_ENTITY_ASCII_TINY      3.000  # limit
+tflags     HTML_ENTITY_ASCII_TINY      publish
+##} HTML_ENTITY_ASCII_TINY
+
+##{ HTML_OFF_PAGE
+
+meta        HTML_OFF_PAGE     __HTML_OFF_PAGE && !__RP_MATCHES_RCVD && !__LONGLINE && !__DKIM_EXISTS
+describe    HTML_OFF_PAGE     HTML element rendered well off the displayed page
+#score       HTML_OFF_PAGE     3.000   # limit
+tflags      HTML_OFF_PAGE     publish
+##} HTML_OFF_PAGE
+
+##{ HTML_SHRT_CMNT_OBFU_MANY if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       HTML_SHRT_CMNT_OBFU_MANY    __HTML_SHRT_CMNT_OBFU_MANY
+  describe   HTML_SHRT_CMNT_OBFU_MANY    Obfuscation with many short HTML comments
+#  score      HTML_SHRT_CMNT_OBFU_MANY    2.500        # limit
+  tflags     HTML_SHRT_CMNT_OBFU_MANY    publish
+endif
+##} HTML_SHRT_CMNT_OBFU_MANY if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ HTML_SINGLET_MANY
+
+meta      HTML_SINGLET_MANY             __HTML_SINGLET_MANY && !__RCD_RDNS_MTA_MESSY && !__NOT_SPOOFED && !ALL_TRUSTED && !__USING_VERP1 && !__MIME_QP 
+describe  HTML_SINGLET_MANY             Many single-letter HTML format blocks
+#score     HTML_SINGLET_MANY             2.500   # limit
+tflags    HTML_SINGLET_MANY             publish
+##} HTML_SINGLET_MANY
+
+##{ HTML_TEXT_INVISIBLE_FONT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      HTML_TEXT_INVISIBLE_FONT      __FONT_INVIS_MANY && !__HAS_ERRORS_TO && !__URI_DOTGOV && !__LYRIS_EZLM_REMAILER && !__ML3 && !__THREADED && !__DKIMWL_WL_HI && !USER_IN_DEF_DKIM_WL && !__MOZILLA_MSGID 
+  describe  HTML_TEXT_INVISIBLE_FONT      HTML hidden text - word obfuscation?
+#  score     HTML_TEXT_INVISIBLE_FONT      2.000   # limit
+  tflags    HTML_TEXT_INVISIBLE_FONT      publish
+endif
+##} HTML_TEXT_INVISIBLE_FONT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ HTML_TEXT_INVISIBLE_STYLE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      HTML_TEXT_INVISIBLE_STYLE     __STY_INVIS_MANY && (__RDNS_NONE || __HDRS_LCASE || __UNSUB_EMAIL ||  __ADMITS_SPAM || __FROM_DOM_INFO || __HTML_TAG_BALANCE_CENTER || __MSGID_RANDY ) && !__RDNS_LONG && !__FROM_ENCODED_QP && !__HAS_THREAD_INDEX 
+  describe  HTML_TEXT_INVISIBLE_STYLE     HTML hidden text + other spam signs
+#  score     HTML_TEXT_INVISIBLE_STYLE     3.500   # limit
+  tflags    HTML_TEXT_INVISIBLE_STYLE     publish
+endif
+##} HTML_TEXT_INVISIBLE_STYLE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ HTTPS_HTTP_MISMATCH ifplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+
+ifplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+body  HTTPS_HTTP_MISMATCH eval:check_https_http_mismatch('1','10')
+endif
+##} HTTPS_HTTP_MISMATCH ifplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+
+##{ IMG_ONLY_FM_DOM_INFO
+
+meta       IMG_ONLY_FM_DOM_INFO       __HTML_IMG_ONLY && __FROM_DOM_INFO
+describe   IMG_ONLY_FM_DOM_INFO       HTML image-only message from .info domain
+#score      IMG_ONLY_FM_DOM_INFO       2.500   # limit
+tflags     IMG_ONLY_FM_DOM_INFO       publish
+##} IMG_ONLY_FM_DOM_INFO
+
+##{ JH_SPAMMY_HEADERS
+
+meta       JH_SPAMMY_HEADERS           __HAS_COMPLAINT_TO || __HAS_TRACKING_CODE || __HAS_LOGID || __HAS_X_LETTER || __HAS_X_EBSERVER || __HAS_LIST_OPEN
+describe   JH_SPAMMY_HEADERS           Has unusual message header(s) seen primarily in spam
+#score      JH_SPAMMY_HEADERS           3.500  # limit
+tflags     JH_SPAMMY_HEADERS           publish
+##} JH_SPAMMY_HEADERS
+
+##{ JH_SPAMMY_PATTERN01
+
+rawbody    JH_SPAMMY_PATTERN01         m;<img src=['"](https?://[^'"]{1,80}/)C([^/.]{1,30}\.jpg)['"]>.{0,200}<img src="\1U\2";ism
+describe   JH_SPAMMY_PATTERN01         Unusual pattern seen in spam campaign
+#score      JH_SPAMMY_PATTERN01         3.000  # limit
+tflags     JH_SPAMMY_PATTERN01         publish
+##} JH_SPAMMY_PATTERN01
+
+##{ JH_SPAMMY_PATTERN02
+
+rawbody    JH_SPAMMY_PATTERN02         m;<img [^>]{0,50}src=['"](https?://[^"'\s]{1,80}\.php\?)t=o(\&[^"'\s]{1,50})["'][>\s].{0,200}<a href="\1t=c\2".{0,200}<a href="\1t=u\2";ism
+describe   JH_SPAMMY_PATTERN02         Unusual pattern seen in spam campaign
+#score      JH_SPAMMY_PATTERN02         3.000  # limit
+tflags     JH_SPAMMY_PATTERN02         publish
+##} JH_SPAMMY_PATTERN02
+
+##{ JM_I_FEEL_LUCKY
+
+uri JM_I_FEEL_LUCKY         /(?:\&|\?)btnI=ec(?:$|\&)/
+tflags JM_I_FEEL_LUCKY  publish     # low hitrate, but always a good sign
+##} JM_I_FEEL_LUCKY
+
+##{ JM_RCVD_QMAILV1
+
+header JM_RCVD_QMAILV1     Received =~ /by \S+ \(Qmailv1\) with ESMTP/
+##} JM_RCVD_QMAILV1
+
+##{ JM_TORA_XM
+
+meta JM_TORA_XM     (__MAILER_OL_6626 && __MOLE_2962 && __NAKED_TO)
+##} JM_TORA_XM
+
+##{ KB_DATE_CONTAINS_TAB
+
+meta     KB_DATE_CONTAINS_TAB  __KB_DATE_CONTAINS_TAB && !__ML_TURNS_SP_TO_TAB 
+#score  KB_DATE_CONTAINS_TAB  0.5
+##} KB_DATE_CONTAINS_TAB
+
+##{ KB_FAKED_THE_BAT
+
+meta     KB_FAKED_THE_BAT      (__THEBAT_MUA && KB_DATE_CONTAINS_TAB)
+##} KB_FAKED_THE_BAT
+
+##{ KB_RATWARE_BOUNDARY
+
+meta   KB_RATWARE_BOUNDARY   __RATWARE_BOUND_A || __RATWARE_BOUND_B
+##} KB_RATWARE_BOUNDARY
+
+##{ KB_RATWARE_MSGID
+
+meta   KB_RATWARE_MSGID        (__KB_MSGID_OUTLOOK_888 && __ANY_OUTLOOK_MUA)
+##} KB_RATWARE_MSGID
+
+##{ KB_RATWARE_OUTLOOK_08
+
+header  KB_RATWARE_OUTLOOK_08  ALL =~ /^Message-Id: <....([0-9a-f]{8})\$[0-9a-f]{8}\$.{100,400}boundary="----=_NextPart_000_...._\1\./msi  # "
+##} KB_RATWARE_OUTLOOK_08
+
+##{ KB_RATWARE_OUTLOOK_12
+
+header  KB_RATWARE_OUTLOOK_12  ALL =~ /^Message-Id: <....([0-9a-f]{8})\$([0-9a-f]{4})[0-9a-f]{4}\$.{100,400}boundary="----=_NextPart_000_...._\1\.\2/msi  # "
+##} KB_RATWARE_OUTLOOK_12
+
+##{ KB_RATWARE_OUTLOOK_16
+
+header  KB_RATWARE_OUTLOOK_16  ALL =~ /^Message-Id: <....([0-9a-f]{8})\$([0-9a-f]{8})\$.{100,400}boundary="----=_NextPart_000_...._\1\.\2/msi  # "
+##} KB_RATWARE_OUTLOOK_16
+
+##{ KB_RATWARE_OUTLOOK_MID
+
+header  KB_RATWARE_OUTLOOK_MID  ALL =~ /^Message-Id: <....([0-9a-f]{8})\$([0-9a-f]{8})\$[0-9a-f]{8}\@.{100,400}boundary="----=_NextPart_000_...._\1\.\2"/msi
+##} KB_RATWARE_OUTLOOK_MID
+
+##{ KHOP_FAKE_EBAY
+
+meta    KHOP_FAKE_EBAY         __EBAY_ADDRESS && !__NOT_SPOOFED
+describe KHOP_FAKE_EBAY        Sender falsely claims to be from eBay
+##} KHOP_FAKE_EBAY
+
+##{ KHOP_HELO_FCRDNS
+
+meta    KHOP_HELO_FCRDNS       __HELO_NOT_RDNS && !(__VIA_ML || __freemail_safe || __RCVD_IN_DNSWL || __NOT_SPOOFED || __RDNS_SHORT)
+describe KHOP_HELO_FCRDNS      Relay HELO differs from its IP's reverse DNS
+#score  KHOP_HELO_FCRDNS       0.4 # 20090603
+##} KHOP_HELO_FCRDNS
+
+##{ LIST_PRTL_PUMPDUMP
+
+meta        LIST_PRTL_PUMPDUMP     __LIST_PRTL_PUMPDUMP && !__DKIM_EXISTS 
+describe    LIST_PRTL_PUMPDUMP     Incomplete List-* headers and stock pump-and-dump
+#score       LIST_PRTL_PUMPDUMP     2.000   # limit
+tflags      LIST_PRTL_PUMPDUMP     publish
+##} LIST_PRTL_PUMPDUMP
+
+##{ LIST_PRTL_SAME_USER
+
+meta        LIST_PRTL_SAME_USER    __LIST_PRTL_SAME_USER && !__BUGGED_IMG && !__DKIM_EXISTS && !__RP_MATCHES_RCVD && !__HAS_ERRORS_TO 
+describe    LIST_PRTL_SAME_USER    Incomplete List-* headers and from+to user the same
+#score       LIST_PRTL_SAME_USER    3.000   # limit
+tflags      LIST_PRTL_SAME_USER    publish
+##} LIST_PRTL_SAME_USER
+
+##{ LIVEFILESTORE
+
+uri  LIVEFILESTORE       m~livefilestore.com/~
+##} LIVEFILESTORE
+
+##{ LONG_HEX_URI
+
+meta        LONG_HEX_URI      __128_HEX_URI && !__LCL__KAM_BODY_LENGTH_LT_1024
+describe    LONG_HEX_URI      Very long purely hexadecimal URI
+#score       LONG_HEX_URI      3.000   # limit
+tflags      LONG_HEX_URI      publish
+##} LONG_HEX_URI
+
+##{ LONG_IMG_URI
+
+meta        LONG_IMG_URI        __45_ALNUM_IMG && !ALL_TRUSTED && !__HAS_ERRORS_TO 
+describe    LONG_IMG_URI        Image URI with very long path component - web bug?
+#score       LONG_IMG_URI        3.000 # limit
+tflags      LONG_IMG_URI        publish
+##} LONG_IMG_URI
+
+##{ LONG_INVISIBLE_TEXT
+
+describe  LONG_INVISIBLE_TEXT           Long block of hidden text - bayes poison?
+#score     LONG_INVISIBLE_TEXT           3.000 # limit
+tflags    LONG_INVISIBLE_TEXT           publish
+##} LONG_INVISIBLE_TEXT
+
+##{ LONG_INVISIBLE_TEXT if !(can(Mail::SpamAssassin::Conf::feature_bug6558_free))
+
+if !(can(Mail::SpamAssassin::Conf::feature_bug6558_free))
+  meta      LONG_INVISIBLE_TEXT           __LONG_INVIS_DIV
+endif
+##} LONG_INVISIBLE_TEXT if !(can(Mail::SpamAssassin::Conf::feature_bug6558_free))
+
+##{ LONG_INVISIBLE_TEXT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      LONG_INVISIBLE_TEXT           __LONG_INVIS_DIV || (__LONG_STY_INVIS && !__UNSUB_LINK && !__RCD_RDNS_MTA_MESSY && !__USING_VERP1 && !__RCD_RDNS_MTA && !__RCD_RDNS_MTA_MESSY && !__MIME_QP && !__HAS_X_MAILER && !__REPTO_QUOTE && !__USING_VERP1 )
+endif
+##} LONG_INVISIBLE_TEXT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ LONG_TERM_PRICE
+
+body LONG_TERM_PRICE  /long\W+term\W+(target|projected)(\W+price)?/i
+##} LONG_TERM_PRICE
+
+##{ LOOPHOLE_1
+
+body           LOOPHOLE_1      /loop-?hole in the banking/i
+describe       LOOPHOLE_1      A loop hole in the banking laws?
+##} LOOPHOLE_1
+
+##{ LOTS_OF_MONEY if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     LOTS_OF_MONEY      0
+endif
+##} LOTS_OF_MONEY if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+
+##{ LOTS_OF_MONEY ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     LOTS_OF_MONEY    (__LOTSA_MONEY_00 || __LOTSA_MONEY_01 || __LOTSA_MONEY_02 || __LOTSA_MONEY_03 || __LOTSA_MONEY_04 || __LOTSA_MONEY_05) && !__TRAVEL_ITINERARY
+  describe LOTS_OF_MONEY    Huge... sums of money
+#  score    LOTS_OF_MONEY    0.01
+  tflags   LOTS_OF_MONEY    publish
+endif
+##} LOTS_OF_MONEY ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ LOTTERY_1
+
+meta LOTTERY_1      (__DBLCLAIM && __CASHPRZ)
+##} LOTTERY_1
+
+##{ LOTTERY_PH_004470
+
+meta LOTTERY_PH_004470  (__AFF_004470_NUMBER && __AFF_LOTTERY)
+##} LOTTERY_PH_004470
+
+##{ LOTTO_AGENT
+
+meta     LOTTO_AGENT      __LOTTO_AGENT && !__HAS_IN_REPLY_TO && !__THREADED && !__TO_YOUR_ORG && !__DKIM_EXISTS && !__TRAVEL_ITINERARY && !__AUTO_ACCIDENT && !__HAS_ERRORS_TO && !__RP_MATCHES_RCVD 
+describe LOTTO_AGENT      Claims Agent
+#score    LOTTO_AGENT      1.50                # limit
+##} LOTTO_AGENT
+
+##{ LUCRATIVE
+
+meta     LUCRATIVE        ( __LUCRATIVE && __HELO_NO_DOMAIN ) && !ALL_TRUSTED
+describe LUCRATIVE        Make lots of money!
+#score    LUCRATIVE        2.00        # limit
+tflags   LUCRATIVE        publish
+##} LUCRATIVE
+
+##{ L_SPAM_TOOL_13
+
+header L_SPAM_TOOL_13   Date =~ /\s[+-]\d(?![2358]45)\d[124-9]\d$/
+##} L_SPAM_TOOL_13
+
+##{ MALFORMED_FREEMAIL
+
+meta    MALFORMED_FREEMAIL     (MISSING_HEADERS||__HDRS_LCASE) && FREEMAIL_FROM
+describe MALFORMED_FREEMAIL    Bad headers on message from free email service
+##} MALFORMED_FREEMAIL
+
+##{ MALF_HTML_B64
+
+meta       MALF_HTML_B64               MIME_BASE64_TEXT && HTML_MIME_NO_HTML_TAG 
+describe   MALF_HTML_B64               Malformatted base64-encoded HTML content
+#score      MALF_HTML_B64               3.500  # limit
+tflags     MALF_HTML_B64               publish
+##} MALF_HTML_B64
+
+##{ MALWARE_NORDNS
+
+meta           MALWARE_NORDNS         __MALWARE_NORDNS && !BITCOIN_EXTORT_01 && !MONERO_EXTORT_01
+describe       MALWARE_NORDNS         Malware bragging + no rDNS
+#score          MALWARE_NORDNS         3.500   # limit
+tflags         MALWARE_NORDNS         publish
+##} MALWARE_NORDNS
+
+##{ MALWARE_PASSWORD
+
+meta           MALWARE_PASSWORD       __MALWARE_PASSWORD && !BITCOIN_EXTORT_01 && !MONERO_EXTORT_01
+describe       MALWARE_PASSWORD       Malware bragging + "password"
+#score          MALWARE_PASSWORD       3.500   # limit
+tflags         MALWARE_PASSWORD       publish
+##} MALWARE_PASSWORD
+
+##{ MALW_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         MALW_ATTACH         __MALW_ATTACH && !__HAS_THREAD_INDEX 
+  describe     MALW_ATTACH         Attachment filename suspicious, probable malware exploit
+  tflags       MALW_ATTACH         publish
+endif
+##} MALW_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ MANY_HDRS_LCASE
+
+describe       MANY_HDRS_LCASE       Odd capitalization of multiple message headers
+#score          MANY_HDRS_LCASE       0.10     # limit
+##} MANY_HDRS_LCASE
+
+##{ MANY_HDRS_LCASE if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+
+if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+  meta         MANY_HDRS_LCASE       __MANY_HDRS_LCASE && !__HDRS_LCASE_KNOWN && !__VIA_ML && !__THREADED && !__UNUSABLE_MSGID && !__DOS_SINGLE_EXT_RELAY && !__DKIM_EXISTS && !__NOT_SPOOFED && !__BUGGED_IMG && !__MIME_QP && !__RDNS_NONE
+endif
+##} MANY_HDRS_LCASE if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+
+##{ MANY_HDRS_LCASE ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         MANY_HDRS_LCASE       __MANY_HDRS_LCASE && !__HDRS_LCASE_KNOWN && !__VIA_ML && !__freemail_safe && !__THREADED && !__UNUSABLE_MSGID && !__DOS_SINGLE_EXT_RELAY && !__DKIM_EXISTS && !__NOT_SPOOFED && !__BUGGED_IMG && !__MIME_QP && !__RDNS_NONE
+endif
+##} MANY_HDRS_LCASE ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ MANY_SPAN_IN_TEXT
+
+meta           MANY_SPAN_IN_TEXT   __MANY_SPAN_IN_TEXT && !__VIA_ML
+describe       MANY_SPAN_IN_TEXT   Many <SPAN> tags embedded within text
+tflags         MANY_SPAN_IN_TEXT   publish
+##} MANY_SPAN_IN_TEXT
+
+##{ MAY_BE_FORGED
+
+meta    MAY_BE_FORGED  __MAY_BE_FORGED && !__NOT_SPOOFED && !__VIA_ML
+describe MAY_BE_FORGED Relay IP's reverse DNS does not resolve to IP
+##} MAY_BE_FORGED
+
+##{ MID_DEGREES
+
+header MID_DEGREES  Message-ID =~ /^<\d{14}\.[A-F0-9]{10}\@[A-Z0-9]+>$/
+##} MID_DEGREES
+
+##{ MILLION_HUNDRED
+
+body           MILLION_HUNDRED         /Million\s+\S+\s+Hundred/i
+describe       MILLION_HUNDRED         Million "One to Nine" Hundred
+tflags         MILLION_HUNDRED         publish
+##} MILLION_HUNDRED
+
+##{ MILLION_USD
+
+body MILLION_USD                /Million\b.{0,40}\b(?:United States? Dollars?|USD)/i
+describe MILLION_USD            Talks about millions of dollars
+#score MILLION_USD 2
+##} MILLION_USD
+
+##{ MIMEOLE_DIRECT_TO_MX
+
+meta       MIMEOLE_DIRECT_TO_MX        __MIMEOLE_DIRECT_TO_MX && !__ANY_IMAGE_ATTACH && !__DKIM_EXISTS 
+describe   MIMEOLE_DIRECT_TO_MX        MIMEOLE + direct-to-MX
+#score      MIMEOLE_DIRECT_TO_MX        2.000  # limit
+tflags     MIMEOLE_DIRECT_TO_MX        publish
+##} MIMEOLE_DIRECT_TO_MX
+
+##{ MIME_BOUND_EQ_REL
+
+header MIME_BOUND_EQ_REL    Content-Type =~ /boundary="=====================_\d+==\.REL"/s
+##} MIME_BOUND_EQ_REL
+
+##{ MIME_NO_TEXT ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta        MIME_NO_TEXT      __MIME_NO_TEXT && !__BOUNCE_CTYPE && !__CT_ENCRYPTED && !ALL_TRUSTED && !__MSGID_APPLEMAIL && !__USER_AGENT_APPLEMAIL && !__HAS_IN_REPLY_TO && !__HAS_X_REF && !__HS_SUBJ_RE_FW && !__PDF_ATTACH && !__LCL__KAM_BODY_LENGTH_LT_128 
+#  score       MIME_NO_TEXT      2.00  # limit
+  describe    MIME_NO_TEXT      No (properly identified) text body parts
+  tflags      MIME_NO_TEXT      publish
+endif
+##} MIME_NO_TEXT ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ MIME_PHP_NO_TEXT ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta        MIME_PHP_NO_TEXT  (MIME_NO_TEXT && __PHP_MUA)
+  describe    MIME_PHP_NO_TEXT  No text body parts, X-Mailer: PHP
+endif
+##} MIME_PHP_NO_TEXT ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ MIXED_AREA_CASE
+
+meta       MIXED_AREA_CASE             __MIXED_AREA_CASE
+describe   MIXED_AREA_CASE             Has area tag in mixed case
+#score      MIXED_AREA_CASE             2.500   # limit
+tflags     MIXED_AREA_CASE             publish
+##} MIXED_AREA_CASE
+
+##{ MIXED_CENTER_CASE
+
+meta       MIXED_CENTER_CASE           __MIXED_CENTER_CASE
+describe   MIXED_CENTER_CASE           Has center tag in mixed case
+#score      MIXED_CENTER_CASE           2.500   # limit
+tflags     MIXED_CENTER_CASE           publish
+##} MIXED_CENTER_CASE
+
+##{ MIXED_CTYPE_CASE
+
+header     MIXED_CTYPE_CASE            Content-Type =~ m;^(?i:text/)(?!html|HTML)[Hh][Tt][Mm][Ll];
+##} MIXED_CTYPE_CASE
+
+##{ MIXED_ES if can(Mail::SpamAssassin::Conf::feature_bug6558_free) ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+    meta            MIXED_ES        ( ! HTML_IMAGE_ONLY_16 ) && ( __LOWER_E > 20 ) && ( __E_LIKE_LETTER > ( (__LOWER_E * 14 ) / 10) ) && ( __E_LIKE_LETTER < ( 10 * __LOWER_E ) )
+    describe        MIXED_ES Too many es are not es
+    tflags          MIXED_ES publish
+#    lang pl  score MIXED_ES  0.01
+#    lang cz  score MIXED_ES  0.01
+#    lang sk  score MIXED_ES  0.01
+#    lang hr  score MIXED_ES  0.01
+#    lang el  score MIXED_ES  0.01
+endif
+endif
+##} MIXED_ES if can(Mail::SpamAssassin::Conf::feature_bug6558_free) ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ MIXED_FONT_CASE
+
+meta       MIXED_FONT_CASE             __MIXED_FONT_CASE
+describe   MIXED_FONT_CASE             Has font tag in mixed case
+#score      MIXED_FONT_CASE             2.500   # limit
+tflags     MIXED_FONT_CASE             publish
+##} MIXED_FONT_CASE
+
+##{ MIXED_HREF_CASE
+
+meta       MIXED_HREF_CASE             __MIXED_HREF_CASE_JH
+describe   MIXED_HREF_CASE             Has href in mixed case
+#score      MIXED_HREF_CASE             2.000   # limit
+tflags     MIXED_HREF_CASE             publish
+##} MIXED_HREF_CASE
+
+##{ MIXED_IMG_CASE
+
+meta       MIXED_IMG_CASE              __MIXED_IMG_CASE_JH && !__MSGID_JAVAMAIL 
+describe   MIXED_IMG_CASE              Has img tag in mixed case
+#score      MIXED_IMG_CASE              3.000   # limit
+tflags     MIXED_IMG_CASE              publish
+##} MIXED_IMG_CASE
+
+##{ MONERO_DEADLINE
+
+meta           MONERO_DEADLINE        __MONERO && __HOURS_DEADLINE && !MONERO_EXTORT_01
+describe       MONERO_DEADLINE        Monero cryptocurrency with a deadline
+#score          MONERO_DEADLINE        3.000   # limit
+tflags         MONERO_DEADLINE        publish
+##} MONERO_DEADLINE
+
+##{ MONERO_EXTORT_01
+
+meta           MONERO_EXTORT_01       __MONERO && __EXTORT_MANY
+describe       MONERO_EXTORT_01       Extortion spam, pay via Monero cryptocurrency
+#score          MONERO_EXTORT_01       5.000   # limit
+tflags         MONERO_EXTORT_01       publish
+##} MONERO_EXTORT_01
+
+##{ MONERO_MALWARE
+
+meta           MONERO_MALWARE         __MONERO && __MY_MALWARE && !MONERO_EXTORT_01
+describe       MONERO_MALWARE         Monero cryptocurrency + malware bragging
+#score          MONERO_MALWARE         3.500   # limit
+tflags         MONERO_MALWARE         publish
+##} MONERO_MALWARE
+
+##{ MONERO_PAY_ME
+
+meta           MONERO_PAY_ME          __MONERO && __PAY_ME && !MONERO_EXTORT_01
+describe       MONERO_PAY_ME          Pay me via Monero cryptocurrency
+#score          MONERO_PAY_ME          3.000   # limit
+tflags         MONERO_PAY_ME          publish
+##} MONERO_PAY_ME
+
+##{ MONEY_ATM_CARD
+
+meta     MONEY_ATM_CARD   __MONEY_ATM_CARD && !__COMMENT_EXISTS && !__TAG_EXISTS_STYLE
+describe MONEY_ATM_CARD   Lots of money on an ATM card
+##} MONEY_ATM_CARD
+
+##{ MONEY_FORM
+
+meta     MONEY_FORM          __MONEY_FORM && !__FB_TOUR && !__FM_MY_PRICE && !__FR_SPACING_8 && !__COMMENT_EXISTS && !__CAN_HELP
+describe MONEY_FORM          Lots of money if you fill out a form
+##} MONEY_FORM
+
+##{ MONEY_FORM_SHORT
+
+meta     MONEY_FORM_SHORT    __MONEY_FORM_SHORT && !__DOS_HAS_LIST_UNSUB && !__VIA_ML && !__HTML_LINK_IMAGE && !__UPPERCASE_URI && !__THREADED && !__COMMENT_EXISTS && !__TAG_EXISTS_CENTER && !__THREAD_INDEX_GOOD 
+describe MONEY_FORM_SHORT    Lots of money if you fill out a short form
+#score    MONEY_FORM_SHORT    2.500    # limit
+##} MONEY_FORM_SHORT
+
+##{ MONEY_FRAUD_3
+
+meta     MONEY_FRAUD_3    (__MONEY_FRAUD_3 && !__MONEY_FRAUD_5 && !__MONEY_FRAUD_8 && !__ADVANCE_FEE_3_NEW_MONEY) && !__COMMENT_EXISTS && !__TAG_EXISTS_CENTER && !__IS_EXCH && !__VIA_ML && !__HAS_THREAD_INDEX && !__UNSUB_LINK && !__DOS_HAS_LIST_UNSUB && !__HTML_LINK_IMAGE && !__THREADED && !__DOS_BODY_THU && !__URL_SHORTENER && !__TAG_EXISTS_STYLE
+describe MONEY_FRAUD_3    Lots of money and several fraud phrases
+tflags   MONEY_FRAUD_3    publish
+##} MONEY_FRAUD_3
+
+##{ MONEY_FRAUD_5
+
+meta     MONEY_FRAUD_5    (__MONEY_FRAUD_5 && !__MONEY_FRAUD_8 && !__ADVANCE_FEE_5_NEW_MONEY) && !__VIA_ML && !__HAS_THREAD_INDEX && !__COMMENT_EXISTS && !__UNSUB_LINK && !__TAG_EXISTS_CENTER && !__URL_SHORTENER && !__TAG_EXISTS_STYLE
+describe MONEY_FRAUD_5    Lots of money and many fraud phrases
+tflags   MONEY_FRAUD_5    publish
+##} MONEY_FRAUD_5
+
+##{ MONEY_FRAUD_8
+
+meta     MONEY_FRAUD_8    __MONEY_FRAUD_8 && !__VIA_ML && !__HAS_THREAD_INDEX && !__BUGGED_IMG 
+describe MONEY_FRAUD_8    Lots of money and very many fraud phrases
+tflags   MONEY_FRAUD_8    publish
+##} MONEY_FRAUD_8
+
+##{ MONEY_FREEMAIL_REPTO ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta     MONEY_FREEMAIL_REPTO     __MONEY_FREEMAIL_REPTO && !__HAS_CAMPAIGNID 
+  describe MONEY_FREEMAIL_REPTO     Lots of money from someone using free email?
+#  score    MONEY_FREEMAIL_REPTO     3.000     # limit
+  tflags   MONEY_FREEMAIL_REPTO     publish
+endif
+##} MONEY_FREEMAIL_REPTO ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ MONEY_FROM_41
+
+meta            MONEY_FROM_41             __MONEY_FROM_41
+describe        MONEY_FROM_41             Lots of money from Africa
+#score           MONEY_FROM_41             2.00        # limit
+##} MONEY_FROM_41
+
+##{ MONEY_FROM_MISSP
+
+meta     MONEY_FROM_MISSP   LOTS_OF_MONEY && __FROM_MISSPACED && !__MIME_QP
+describe MONEY_FROM_MISSP   Lots of money and misspaced From
+#score    MONEY_FROM_MISSP   2.000     # limit
+##} MONEY_FROM_MISSP
+
+##{ MONEY_NOHTML
+
+meta      MONEY_NOHTML        LOTS_OF_MONEY && __CT_TEXT_PLAIN 
+describe  MONEY_NOHTML        Lots of money in plain text
+#score     MONEY_NOHTML        2.500   # limit
+##} MONEY_NOHTML
+
+##{ MSGID_DOLLARS_URI_IMG
+
+meta       MSGID_DOLLARS_URI_IMG       __MSGID_DOLLARS_URI_IMG && !__THREADED && !__HS_SUBJ_RE_FW 
+describe   MSGID_DOLLARS_URI_IMG       Suspicious Message-ID and image
+#score      MSGID_DOLLARS_URI_IMG       3.000  # limit
+tflags     MSGID_DOLLARS_URI_IMG       publish
+##} MSGID_DOLLARS_URI_IMG
+
+##{ MSGID_HDR_MALF
+
+meta       MSGID_HDR_MALF              __HAS_MESSAGEID
+describe   MSGID_HDR_MALF              Has invalid message ID header
+#score      MSGID_HDR_MALF              3.500  # limit
+tflags     MSGID_HDR_MALF              publish
+##} MSGID_HDR_MALF
+
+##{ MSGID_MULTIPLE_AT
+
+header                 MSGID_MULTIPLE_AT       MESSAGEID =~ /<[^>]*\@[^>]*\@/
+describe       MSGID_MULTIPLE_AT       Message-ID contains multiple '@' characters
+#score                 MSGID_MULTIPLE_AT       0.001
+##} MSGID_MULTIPLE_AT
+
+##{ MSGID_NOFQDN1
+
+meta     MSGID_NOFQDN1    __MSGID_NOFQDN1
+describe MSGID_NOFQDN1    Message-ID with no domain name
+##} MSGID_NOFQDN1
+
+##{ MSMAIL_PRI_ABNORMAL
+
+meta        MSMAIL_PRI_ABNORMAL        __MSMAIL_PRI_ABNORMAL && !ALL_TRUSTED && !__ANY_OUTLOOK_MUA && !__HAS_THREAD_INDEX  && !__DKIM_EXISTS && !__MSOE_MID_WRONG_CASE && !__HAS_X_MAILER && !__HAS_UA && !__MSMAIL_PRI_HIGH 
+describe    MSMAIL_PRI_ABNORMAL        Email priority often abused
+#score       MSMAIL_PRI_ABNORMAL        1.500  # limit
+##} MSMAIL_PRI_ABNORMAL
+
+##{ MSM_PRIO_REPTO
+
+meta       MSM_PRIO_REPTO              __MSM_PRIO_REPTO && !__ENV_AND_HDR_FROM_MATCH 
+describe   MSM_PRIO_REPTO              MSMail priority header + Reply-to + short subject
+#score      MSM_PRIO_REPTO              2.500  # limit
+tflags     MSM_PRIO_REPTO              publish
+##} MSM_PRIO_REPTO
+
+##{ MSOE_MID_WRONG_CASE
+
+meta MSOE_MID_WRONG_CASE  (__XM_OUTLOOK_EXPRESS && __MSOE_MID_WRONG_CASE && !__MIMEOLE_1106)
+##} MSOE_MID_WRONG_CASE
+
+##{ NAME_EMAIL_DIFF
+
+meta    NAME_EMAIL_DIFF        __NAME_IS_EMAIL && ! __NAME_EQ_EMAIL
+describe NAME_EMAIL_DIFF       Sender NAME is an unrelated email address
+##} NAME_EMAIL_DIFF
+
+##{ NA_DOLLARS
+
+body NA_DOLLARS                        /\b(?:\d{1,3})?Million\b.{0,40}\b(?:Canadian Dollar?s?|US\$|U\.? ?S\.? Dollar)/i
+describe NA_DOLLARS            Talks about a million North American dollars
+#score NA_DOLLARS 1.5
+##} NA_DOLLARS
+
+##{ NEWEGG_IMG_NOT_RCVD_NEGG
+
+meta       NEWEGG_IMG_NOT_RCVD_NEGG    __NEWEGG_IMG_NOT_RCVD_NEGG
+#score      NEWEGG_IMG_NOT_RCVD_NEGG    2.500  # limit
+describe   NEWEGG_IMG_NOT_RCVD_NEGG    Newegg hosted image but message not from Newegg
+tflags     NEWEGG_IMG_NOT_RCVD_NEGG    publish
+##} NEWEGG_IMG_NOT_RCVD_NEGG
+
+##{ NICE_REPLY_A
+
+meta     NICE_REPLY_A          (__SUBJ_RE && !__MISSING_REPLY && !__MISSING_REF && __BOTH_INR_AND_REF)
+describe NICE_REPLY_A          Looks like a legit reply (A)
+tflags   NICE_REPLY_A          nice
+##} NICE_REPLY_A
+
+##{ NORDNS_LOW_CONTRAST
+
+meta        NORDNS_LOW_CONTRAST   (__HTML_FONT_LOW_CONTRAST_MINFP && __RDNS_NONE) && !ALL_TRUSTED && !__HAS_CID 
+describe    NORDNS_LOW_CONTRAST   No rDNS + hidden text
+#score       NORDNS_LOW_CONTRAST   2.500   # limit
+##} NORDNS_LOW_CONTRAST
+
+##{ NOT_SPAM
+
+body        NOT_SPAM           /\b(?:(?:this (?:e?-?mail|message)|we) (?:is not|are not|cannot be considered) Spam|ESTE CORREO NO PUEDE SER CONSIDERADO (?:INTRUSIVO|spam)|Diese Nachricht ist KEIN SPAM)/i
+describe    NOT_SPAM           I'm not spam! Really! I'm not, I'm not, I'm not!
+tflags      NOT_SPAM           publish
+##} NOT_SPAM
+
+##{ NO_FM_NAME_IP_HOSTN
+
+meta       NO_FM_NAME_IP_HOSTN        (__KHOP_NO_FULL_NAME && __IP_IN_RELAY) && !__DOS_RELAYED_EXT 
+describe   NO_FM_NAME_IP_HOSTN        No From name + hostname using IP address
+#score      NO_FM_NAME_IP_HOSTN        2.500   # limit
+tflags     NO_FM_NAME_IP_HOSTN        publish
+##} NO_FM_NAME_IP_HOSTN
+
+##{ NSL_RCVD_FROM_USER
+
+header         NSL_RCVD_FROM_USER       Received =~ /from User [\[\(]/
+describe       NSL_RCVD_FROM_USER       Received from User
+##} NSL_RCVD_FROM_USER
+
+##{ NSL_RCVD_HELO_USER
+
+header         NSL_RCVD_HELO_USER       Received =~ /helo[= ]user\)/i
+describe       NSL_RCVD_HELO_USER       Received from HELO User
+##} NSL_RCVD_HELO_USER
+
+##{ NULL_IN_BODY
+
+full NULL_IN_BODY       /\x00/
+describe NULL_IN_BODY   Message has NUL (ASCII 0) byte in message
+##} NULL_IN_BODY
+
+##{ NUMBEREND_LINKBAIT
+
+meta     NUMBEREND_LINKBAIT __NUMBEREND_TLD && __LCL__KAM_BODY_LENGTH_LT_1024 && __BODY_URI_ONLY
+describe NUMBEREND_LINKBAIT Domain ends in a large number and very short body with link
+#score    NUMBEREND_LINKBAIT 1.0 # limit
+##} NUMBEREND_LINKBAIT
+
+##{ OBFU_BITCOIN
+
+meta           OBFU_BITCOIN     __OBFU_BITCOIN
+describe       OBFU_BITCOIN     Obfuscated BitCoin references
+#score          OBFU_BITCOIN     3.000 # limit
+tflags         OBFU_BITCOIN     publish
+##} OBFU_BITCOIN
+
+##{ OBFU_JVSCR_ESC
+
+rawbody     OBFU_JVSCR_ESC         /document\.write\(unescape\(["'](?:%[0-9a-f]{2}){10}/i
+describe    OBFU_JVSCR_ESC         Injects content using obfuscated javascript
+tflags      OBFU_JVSCR_ESC         publish
+##} OBFU_JVSCR_ESC
+
+##{ OBFU_TEXT_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   OBFU_TEXT_ATTACH    Content-Type =~ m,\bapplication/octet-stream\b.+\.txt\b,i
+  describe     OBFU_TEXT_ATTACH    Text attachment with non-text MIME type
+  tflags       OBFU_TEXT_ATTACH    publish
+endif
+##} OBFU_TEXT_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ OBFU_UNSUB_UL
+
+meta       OBFU_UNSUB_UL               __OBFU_UNSUB_UL && !MAILING_LIST_MULTI 
+describe   OBFU_UNSUB_UL               Obfuscated unsubscribe text
+tflags     OBFU_UNSUB_UL               publish
+##} OBFU_UNSUB_UL
+
+##{ ODD_FREEM_REPTO ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta       ODD_FREEM_REPTO             __freemail_mailreplyto
+  describe   ODD_FREEM_REPTO             Has unusual reply-to header
+#  score      ODD_FREEM_REPTO             3.000        # limit
+  tflags     ODD_FREEM_REPTO             publish
+endif
+##} ODD_FREEM_REPTO ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ OFFER_ONLY_AMERICA if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     OFFER_ONLY_AMERICA __FROM_ADDRLIST_SUSPNTLD && __PDS_OFFER_ONLY_AMERICA
+describe OFFER_ONLY_AMERICA Offer only available to US
+#score    OFFER_ONLY_AMERICA 2.0 # limit
+endif
+endif
+##} OFFER_ONLY_AMERICA if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ ONLINE_MKTG_CNSLT
+
+body      ONLINE_MKTG_CNSLT             /\bonline marketing consultant\b/i
+##} ONLINE_MKTG_CNSLT
+
+##{ ORDER_TODAY
+
+meta        ORDER_TODAY                __ORDER_TODAY && (__HTML_IMG_ONLY || __ALIBABA_IMG_NOT_RCVD_ALI || __TO_NO_BRKTS_NORDNS_HTML)
+describe    ORDER_TODAY                Get your order in now!
+#score       ORDER_TODAY                2.500  # limit
+##} ORDER_TODAY
+
+##{ PART_CID_STOCK ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+meta PART_CID_STOCK      (__ANY_IMAGE_ATTACH&&__PART_STOCK_CID&&!__PART_STOCK_CL&&!__PART_STOCK_CD_F)
+describe PART_CID_STOCK  Has a spammy image attachment (by Content-ID)
+endif
+##} PART_CID_STOCK ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ PART_CID_STOCK_LESS ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+meta PART_CID_STOCK_LESS (__ANY_IMAGE_ATTACH&&__PART_CID_STOCK_LESS)
+describe PART_CID_STOCK_LESS Has a spammy image attachment (by Content-ID, more specific)
+endif
+##} PART_CID_STOCK_LESS ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ PDS_BAD_THREAD_QP_64
+
+meta     PDS_BAD_THREAD_QP_64 __PDS_QP_64 && __HAS_THREAD_INDEX && !__THREAD_INDEX_GOOD
+describe PDS_BAD_THREAD_QP_64 Bad thread header - short QP
+#score    PDS_BAD_THREAD_QP_64 1.0
+##} PDS_BAD_THREAD_QP_64
+
+##{ PDS_BTC_ID
+
+meta     PDS_BTC_ID __PDS_BTC_ID
+describe PDS_BTC_ID FP reduced Bitcoin ID
+#score    PDS_BTC_ID 0.5
+##} PDS_BTC_ID
+
+##{ PDS_BTC_MSGID
+
+meta     PDS_BTC_MSGID __PDS_BTC_ID && __MSGID_NOFQDN2
+describe PDS_BTC_MSGID Bitcoin ID with T_MSGID_NOFQDN2
+#score    PDS_BTC_MSGID 1.0
+##} PDS_BTC_MSGID
+
+##{ PDS_DBL_URL_TNB_RUNON
+
+meta     PDS_DBL_URL_TNB_RUNON __TO_NO_BRKTS_FROM_RUNON && __PDS_DOUBLE_URL
+describe PDS_DBL_URL_TNB_RUNON Double-url and To no arrows, from runon
+#score    PDS_DBL_URL_TNB_RUNON 2.0
+##} PDS_DBL_URL_TNB_RUNON
+
+##{ PDS_EMPTYSUBJ_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_EMPTYSUBJ_URISHRT (__PDS_URISHORTENER || __URL_SHORTENER) && __SUBJECT_EMPTY && __PDS_MSG_1024
+describe PDS_EMPTYSUBJ_URISHRT Empty subject with little more than URI shortener 
+#score    PDS_EMPTYSUBJ_URISHRT 1.5 # limit
+endif
+endif
+##} PDS_EMPTYSUBJ_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PDS_FRNOM_TODOM_DBL_URL
+
+meta     PDS_FRNOM_TODOM_DBL_URL PDS_FROM_NAME_TO_DOMAIN && __PDS_DOUBLE_URL
+describe PDS_FRNOM_TODOM_DBL_URL From Name to domain, double URL
+#score    PDS_FRNOM_TODOM_DBL_URL 1.5
+##} PDS_FRNOM_TODOM_DBL_URL
+
+##{ PDS_FRNOM_TODOM_NAKED_TO
+
+meta     PDS_FRNOM_TODOM_NAKED_TO __NAKED_TO && PDS_FROM_NAME_TO_DOMAIN
+describe PDS_FRNOM_TODOM_NAKED_TO Naked to From name equals to Domain
+#score    PDS_FRNOM_TODOM_NAKED_TO 1.5
+##} PDS_FRNOM_TODOM_NAKED_TO
+
+##{ PDS_FROM_2_EMAILS if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  meta       PDS_FROM_2_EMAILS        __PDS_FROM_2_EMAILS && !__VIA_ML && !__VIA_RESIGNER && !__MSGID_JAVAMAIL && !__RCD_RDNS_MAIL_MESSY && !__RCD_RDNS_SMTP_MESSY && !__DKIM_EXISTS 
+  describe   PDS_FROM_2_EMAILS        From header has multiple different addresses
+#  score      PDS_FROM_2_EMAILS        3.500   # limit
+endif
+##} PDS_FROM_2_EMAILS if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+##{ PDS_FROM_2_EMAILS_SHRTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_FROM_2_EMAILS_SHRTNER (__PDS_URISHORTENER || __URL_SHORTENER) && (__PDS_FROM_2_EMAILS || __NAME_EMAIL_DIFF) && __BODY_URI_ONLY
+describe PDS_FROM_2_EMAILS_SHRTNER From 2 emails short email with little more than a URI shortener
+#score    PDS_FROM_2_EMAILS_SHRTNER 1.5 # limit
+endif
+endif
+##} PDS_FROM_2_EMAILS_SHRTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PDS_FROM_NAME_TO_DOMAIN
+
+meta     PDS_FROM_NAME_TO_DOMAIN __PDS_FROM_NAME_TO_DOMAIN
+#score    PDS_FROM_NAME_TO_DOMAIN 2.0
+describe PDS_FROM_NAME_TO_DOMAIN From:name looks like To:domain
+##} PDS_FROM_NAME_TO_DOMAIN
+
+##{ PDS_HELO_SPF_FAIL
+
+meta     PDS_HELO_SPF_FAIL SPF_HELO_FAIL && __HELO_HIGHPROFILE
+describe PDS_HELO_SPF_FAIL High profile HELO that fails SPF
+#score    PDS_HELO_SPF_FAIL 2.0
+tflags   PDS_HELO_SPF_FAIL net
+##} PDS_HELO_SPF_FAIL
+
+##{ PDS_NO_FULL_NAME_SPOOFED_URL ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_NO_FULL_NAME_SPOOFED_URL __PDS_MSG_1024 && __KHOP_NO_FULL_NAME && __SPOOFED_URL && !(__VIA_ML || __SENDER_BOT || __YAHOO_BULK || __UNSUB_LINK || __THREADED || __URL_SHORTENER)
+describe PDS_NO_FULL_NAME_SPOOFED_URL HTML message short, T_SPOOFED_URL and T_KHOP_NO_FULL_NAME
+#score    PDS_NO_FULL_NAME_SPOOFED_URL 0.75 # limit
+endif
+endif
+##} PDS_NO_FULL_NAME_SPOOFED_URL ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PDS_OTHER_BAD_TLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   PDS_OTHER_BAD_TLD eval:check_uri_host_listed('SUSP_URI_NTLD')
+#score    PDS_OTHER_BAD_TLD 2.0
+describe PDS_OTHER_BAD_TLD Untrustworthy TLDs
+endif
+endif
+##} PDS_OTHER_BAD_TLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ PDS_SHORTFWD_URISHRT_QP ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_SHORTFWD_URISHRT_QP (__PDS_URISHORTENER || __URL_SHORTENER) && __HS_SUBJ_RE_FW && __T_PDS_MSG_512 && !T_PDS_SHORTFWD_URISHRT_FP
+describe PDS_SHORTFWD_URISHRT_QP Apparently a short fwd/re with URI shortener
+#score    PDS_SHORTFWD_URISHRT_QP 1.5 # limit
+endif
+endif
+##} PDS_SHORTFWD_URISHRT_QP ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PDS_SHORT_SPOOFED_URL ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_SHORT_SPOOFED_URL __PDS_MSG_1024 && __SPOOFED_URL && !(__VIA_ML || __SENDER_BOT || __YAHOO_BULK || __UNSUB_LINK || __THREADED || __URL_SHORTENER)
+describe PDS_SHORT_SPOOFED_URL HTML message short and T_SPOOFED_URL (S_U_FP)
+#score    PDS_SHORT_SPOOFED_URL 2.0
+endif
+endif
+##} PDS_SHORT_SPOOFED_URL ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PDS_TINYSUBJ_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_TINYSUBJ_URISHRT (__PDS_URISHORTENER || __URL_SHORTENER) && __SUBJ_SHORT && __PDS_MSG_1024
+describe PDS_TINYSUBJ_URISHRT Short subject with URL shortener
+#score    PDS_TINYSUBJ_URISHRT 1.5 # limit
+endif
+endif
+##} PDS_TINYSUBJ_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE
+
+meta     PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE FREEMAIL_FORGED_REPLYTO && __PDS_TONAME_EQ_TOLOCAL
+describe PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE Forged replyto and __PDS_TONAME_EQ_TOLOCAL
+#score    PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE 2.0 # limit
+##} PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE
+
+##{ PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE
+
+meta     PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE __PDS_TONAME_EQ_TOLOCAL && __HDRS_LCASE
+describe PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE To: name matches everything in local email - LCASE headers
+#score    PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE 2.0 # limit
+##} PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE
+
+##{ PDS_TONAME_EQ_TOLOCAL_SHORT
+
+meta     PDS_TONAME_EQ_TOLOCAL_SHORT __PDS_TONAME_EQ_TOLOCAL && __KAM_BODY_LENGTH_LT_512
+describe PDS_TONAME_EQ_TOLOCAL_SHORT Short body with To: name matches everything in local email
+#score    PDS_TONAME_EQ_TOLOCAL_SHORT 2.0 # limit
+##} PDS_TONAME_EQ_TOLOCAL_SHORT
+
+##{ PDS_TONAME_EQ_TOLOCAL_VSHORT
+
+meta     PDS_TONAME_EQ_TOLOCAL_VSHORT __KAM_BODY_LENGTH_LT_128 && __PDS_TONAME_EQ_TOLOCAL
+describe PDS_TONAME_EQ_TOLOCAL_VSHORT Very short body and From looks like 2 different emails
+#score    PDS_TONAME_EQ_TOLOCAL_VSHORT 1.0 # limit
+##} PDS_TONAME_EQ_TOLOCAL_VSHORT
+
+##{ PDS_TO_EQ_FROM_NAME if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  meta       PDS_TO_EQ_FROM_NAME      (__PDS_TO_EQ_FROM_NAME_1 || __PDS_TO_EQ_FROM_NAME_2) && !__HAS_SENDER 
+  describe   PDS_TO_EQ_FROM_NAME      From: name same as To: address
+endif
+##} PDS_TO_EQ_FROM_NAME if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+##{ PDS_URISHRT_LOCALPART_SUBJ ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     PDS_URISHRT_LOCALPART_SUBJ LOCALPART_IN_SUBJECT && (__PDS_URISHORTENER || __URL_SHORTENER) && __PDS_MSG_1024
+describe PDS_URISHRT_LOCALPART_SUBJ Localpart of To in subject
+#score    PDS_URISHRT_LOCALPART_SUBJ 1.0
+endif
+endif
+##} PDS_URISHRT_LOCALPART_SUBJ ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ PHISH_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         PHISH_ATTACH          (__PHISH_ATTACH_01_01 || __PHISH_ATTACH_01_02) && !__HAS_SENDER 
+  describe     PHISH_ATTACH          Attachment filename suspicious, probable phishing
+  tflags       PHISH_ATTACH          publish
+endif
+##} PHISH_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ PHISH_AZURE_CLOUDAPP
+
+uri PHISH_AZURE_CLOUDAPP m;^https?://(?=[^/]+\.cloudapp\.azure\.com)(?:(?:b(?:illetedecalle\.northeurope|urofaxnotificado\.eastus)|comprobante(?:digital\.southcentralus|fiscale\.eastus)|infracciondeestacionamiento(?:\.eastus|s\.ukwest)|multa(?:detrafico\.eastus|prev\.eastus|s\.(?:eastus|southcentralus))|notificadosburofax\.eastus|penadetransitomulta\.eastus))\.cloudapp\.azure\.com/;i
+describe PHISH_AZURE_CLOUDAPP Link to known phishing web application
+#score PHISH_AZURE_CLOUDAPP 3.500
+tflags PHISH_AZURE_CLOUDAPP publish
+##} PHISH_AZURE_CLOUDAPP
+
+##{ PHISH_FBASEAPP
+
+meta       PHISH_FBASEAPP              __PHISH_FBASE_01
+describe   PHISH_FBASEAPP              Probable phishing via hosted web app
+#score      PHISH_FBASEAPP              3.000  # limit
+tflags     PHISH_FBASEAPP              publish
+##} PHISH_FBASEAPP
+
+##{ PHOTO_EDITING_DIRECT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       PHOTO_EDITING_DIRECT       (__PHOTO_RETOUCHING && __DOS_DIRECT_TO_MX) && !ALL_TRUSTED && !__HAS_HREF
+  describe   PHOTO_EDITING_DIRECT       Image editing service, direct to MX
+#  score      PHOTO_EDITING_DIRECT       3.000 # limit
+endif
+##} PHOTO_EDITING_DIRECT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ PHOTO_EDITING_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       PHOTO_EDITING_FREEM        __PHOTO_RETOUCHING > 4 && (__REPTO_CHN_FREEM || __freemail_hdr_replyto)
+  describe   PHOTO_EDITING_FREEM        Image editing service, freemail or CHN replyto
+#  score      PHOTO_EDITING_FREEM        3.750 # limit
+endif
+##} PHOTO_EDITING_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ PHP_NOVER_MUA
+
+describe  PHP_NOVER_MUA       Mail from PHP with no version number
+#score     PHP_NOVER_MUA       3.000   # limit
+tflags    PHP_NOVER_MUA       publish
+##} PHP_NOVER_MUA
+
+##{ PHP_NOVER_MUA if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+  meta    PHP_NOVER_MUA       __PHP_NOVER_MUA && !__TO_NO_BRKTS_HTML_ONLY && !__MSGID_OK_DIGITS && !__UPPERCASE_25_50 && !__RP_MATCHES_RCVD && !__GIF_ATTACH
+endif
+##} PHP_NOVER_MUA if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+##{ PHP_NOVER_MUA ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  meta    PHP_NOVER_MUA       __PHP_NOVER_MUA && !__DKIM_DEPENDABLE && !__TO_NO_BRKTS_HTML_ONLY && !__MSGID_OK_DIGITS && !__UPPERCASE_25_50 && !__RP_MATCHES_RCVD && !__GIF_ATTACH
+endif
+##} PHP_NOVER_MUA ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+##{ PHP_ORIG_SCRIPT
+
+meta       PHP_ORIG_SCRIPT             __PHP_ORIG_SCRIPT_SONLY && !ALL_TRUSTED && !__SUBSCRIPTION_INFO && !__MSGID_BEFORE_RECEIVED && !MSGID_FROM_MTA_HEADER
+describe   PHP_ORIG_SCRIPT             Sent by bot & other signs
+#score      PHP_ORIG_SCRIPT             2.500  # limit
+tflags     PHP_ORIG_SCRIPT             publish
+##} PHP_ORIG_SCRIPT
+
+##{ PHP_SCRIPT
+
+meta       PHP_SCRIPT                  __HAS_PHP_SCRIPT && !ALL_TRUSTED && !__PHP_NOVER_MUA && !__TO___LOWER && !__MIME_BASE64 && !__HAS_ANY_EMAIL && !__L_CTE_7BIT 
+describe   PHP_SCRIPT                  Sent by PHP script
+#score      PHP_SCRIPT                  2.500  # limit
+tflags     PHP_SCRIPT                  publish
+##} PHP_SCRIPT
+
+##{ PHP_SCRIPT_MUA
+
+meta       PHP_SCRIPT_MUA              __HAS_PHP_SCRIPT && __PHP_NOVER_MUA 
+describe   PHP_SCRIPT_MUA              Sent by PHP script, no version number
+#score      PHP_SCRIPT_MUA              2.000  # limit
+tflags     PHP_SCRIPT_MUA              publish
+##} PHP_SCRIPT_MUA
+
+##{ PP_MIME_FAKE_ASCII_TEXT ifplugin Mail::SpamAssassin::Plugin::MIMEEval if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_for_ascii_text_illegal)
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_for_ascii_text_illegal)
+    body     PP_MIME_FAKE_ASCII_TEXT  eval:check_for_ascii_text_illegal()
+    describe PP_MIME_FAKE_ASCII_TEXT  MIME text/plain claims to be ASCII but isn't
+#    score    PP_MIME_FAKE_ASCII_TEXT  1.0
+    tflags   PP_MIME_FAKE_ASCII_TEXT  publish
+endif
+endif
+##} PP_MIME_FAKE_ASCII_TEXT ifplugin Mail::SpamAssassin::Plugin::MIMEEval if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_for_ascii_text_illegal)
+
+##{ PP_TOO_MUCH_UNICODE02 ifplugin Mail::SpamAssassin::Plugin::MIMEEval if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_abundant_unicode_ratio)
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_abundant_unicode_ratio)
+    body     PP_TOO_MUCH_UNICODE02      eval:check_abundant_unicode_ratio(0.02)
+    describe PP_TOO_MUCH_UNICODE02      Is text/plain but has many unicode escapes
+#    score    PP_TOO_MUCH_UNICODE02      0.5
+    tflags   PP_TOO_MUCH_UNICODE02      publish
+endif
+endif
+##} PP_TOO_MUCH_UNICODE02 ifplugin Mail::SpamAssassin::Plugin::MIMEEval if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_abundant_unicode_ratio)
+
+##{ PP_TOO_MUCH_UNICODE05 ifplugin Mail::SpamAssassin::Plugin::MIMEEval if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_abundant_unicode_ratio)
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_abundant_unicode_ratio)
+    body     PP_TOO_MUCH_UNICODE05     eval:check_abundant_unicode_ratio(0.05)
+    describe PP_TOO_MUCH_UNICODE05     Is text/plain but has many unicode escapes
+#    score    PP_TOO_MUCH_UNICODE05    1.0
+    tflags   PP_TOO_MUCH_UNICODE05     publish
+endif
+endif
+##} PP_TOO_MUCH_UNICODE05 ifplugin Mail::SpamAssassin::Plugin::MIMEEval if can(Mail::SpamAssassin::Plugin::MIMEEval::has_check_abundant_unicode_ratio)
+
+##{ PUMPDUMP
+
+meta        PUMPDUMP          (__PUMPDUMP_01 || __PUMPDUMP_02 || __PUMPDUMP_03 || __PUMPDUMP_04 || __PUMPDUMP_05 || __PUMPDUMP_06 || __PUMPDUMP_07 || __PUMPDUMP_08 || __PUMPDUMP_09 || __PUMPDUMP_10) && !PUMPDUMP_MULTI
+describe    PUMPDUMP          Pump-and-dump stock scam phrase
+#score       PUMPDUMP          1.000   # limit
+tflags      PUMPDUMP          publish
+##} PUMPDUMP
+
+##{ PUMPDUMP_MULTI
+
+meta        PUMPDUMP_MULTI    (__PUMPDUMP_01+__PUMPDUMP_02+__PUMPDUMP_03+__PUMPDUMP_04+__PUMPDUMP_05+__PUMPDUMP_06+__PUMPDUMP_07+__PUMPDUMP_08+__PUMPDUMP_09+__PUMPDUMP_10) > 1
+describe    PUMPDUMP_MULTI    Pump-and-dump stock scam phrases
+#score       PUMPDUMP_MULTI    3.500   # limit
+tflags      PUMPDUMP_MULTI    publish
+##} PUMPDUMP_MULTI
+
+##{ PUMPDUMP_TIP
+
+meta        PUMPDUMP_TIP      __PD_CNT_1 && __STOCK_TIP
+describe    PUMPDUMP_TIP      Pump-and-dump stock tip
+tflags      PUMPDUMP_TIP      publish
+##} PUMPDUMP_TIP
+
+##{ RAND_HEADER_LIST_SPOOF
+
+meta      RAND_HEADER_LIST_SPOOF       __RAND_HEADER && __LIST_PARTIAL 
+describe  RAND_HEADER_LIST_SPOOF       Random gibberish message header(s) + pretending to be a mailing list
+#score     RAND_HEADER_LIST_SPOOF       3.000   # limit
+tflags    RAND_HEADER_LIST_SPOOF       publish
+##} RAND_HEADER_LIST_SPOOF
+
+##{ RAND_HEADER_MANY
+
+meta      RAND_HEADER_MANY             __RAND_HEADER_2
+describe  RAND_HEADER_MANY             Multiple random gibberish message headers
+#score     RAND_HEADER_MANY             3.000   # limit
+tflags    RAND_HEADER_MANY             publish
+##} RAND_HEADER_MANY
+
+##{ RAND_MKTG_HEADER
+
+meta      RAND_MKTG_HEADER             __RAND_MKTG_HEADER && !__HAVE_BOUNCE_RELAYS && !__HAS_THREAD_INDEX && !__HAS_X_MAILING_LIST 
+describe  RAND_MKTG_HEADER             Has partially-randomized marketing/tracking header(s)
+#score     RAND_MKTG_HEADER             2.000  # limit
+tflags    RAND_MKTG_HEADER             publish
+##} RAND_MKTG_HEADER
+
+##{ RATWARE_NO_RDNS
+
+meta       RATWARE_NO_RDNS            __RATWARE_BOUND_A && __RDNS_NONE && __MIME_HTML && __MISSING_REF 
+describe   RATWARE_NO_RDNS            Suspicious MsgID and MIME boundary + no rDNS
+#score      RATWARE_NO_RDNS            3.000   # limit
+##} RATWARE_NO_RDNS
+
+##{ RCVD_BAD_ID
+
+header RCVD_BAD_ID      Received =~ /\bid\s+[a-zA-Z0-9_+\/\\,-]+(?:[!"\#\$\%&'()*<=>?\@\[\]^\`{|}~]|;\S)/
+describe RCVD_BAD_ID    Received header contains id field with bad characters
+##} RCVD_BAD_ID
+
+##{ RCVD_DBL_DQ
+
+header      RCVD_DBL_DQ                Received =~ /(?:\[\d+\.\d+\.\d+\.\d+\]){2}/
+describe    RCVD_DBL_DQ                Malformatted message header
+tflags      RCVD_DBL_DQ                publish
+##} RCVD_DBL_DQ
+
+##{ RCVD_DOTEDU_SHORT
+
+meta       RCVD_DOTEDU_SHORT           __RCVD_DOTEDU_SHORT && !__FS_SUBJ_RE && !__HAS_LIST_ID 
+describe   RCVD_DOTEDU_SHORT           Via .edu MTA + short message
+#score      RCVD_DOTEDU_SHORT           2.500  # limit
+tflags     RCVD_DOTEDU_SHORT           publish
+##} RCVD_DOTEDU_SHORT
+
+##{ RCVD_DOTEDU_SUSP_URI
+
+meta       RCVD_DOTEDU_SUSP_URI        __RCVD_DOTEDU_SUSP_URI
+describe   RCVD_DOTEDU_SUSP_URI        Via .edu MTA + suspicious URI
+#score      RCVD_DOTEDU_SUSP_URI        3.000  # limit
+tflags     RCVD_DOTEDU_SUSP_URI        publish
+##} RCVD_DOTEDU_SUSP_URI
+
+##{ RCVD_FORGED_WROTE
+
+header RCVD_FORGED_WROTE    Received =~ / by \S+ with esmtp \([^a-z ]{6,} [^a-z ]{3,}\) id/
+describe RCVD_FORGED_WROTE  Forged 'Received' header found ('wrote:' spam)
+##} RCVD_FORGED_WROTE
+
+##{ RCVD_FORGED_WROTE2
+
+header RCVD_FORGED_WROTE2 Received =~ /from [0-9.]+ \(HELO \S+[A-Za-z]+\) by (\S+) with esmtp \(\S+\s\S+\) id \S{6}-\S{6}-\S\S for \S+@\1;/s
+##} RCVD_FORGED_WROTE2
+
+##{ RCVD_IN_IADB_DK ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_DK                 eval:check_rbl_sub('iadb-firsttrusted', '127.2.255.3')
+describe RCVD_IN_IADB_DK               IADB: Sender publishes Domain Keys record
+tflags RCVD_IN_IADB_DK                 net nice
+endif
+##} RCVD_IN_IADB_DK ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_DOPTIN ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_DOPTIN             eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.10')
+describe RCVD_IN_IADB_DOPTIN           IADB: All mailing list mail is confirmed opt-in
+tflags RCVD_IN_IADB_DOPTIN             net nice
+endif
+##} RCVD_IN_IADB_DOPTIN ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_DOPTIN_GT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_DOPTIN_GT50                eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.9')
+describe RCVD_IN_IADB_DOPTIN_GT50      IADB: Confirmed opt-in used more than 50% of the time
+tflags RCVD_IN_IADB_DOPTIN_GT50                net nice
+endif
+##} RCVD_IN_IADB_DOPTIN_GT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_DOPTIN_LT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_DOPTIN_LT50                eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.8')
+describe RCVD_IN_IADB_DOPTIN_LT50      IADB: Confirmed opt-in used less than 50% of the time
+tflags RCVD_IN_IADB_DOPTIN_LT50                net nice
+endif
+##} RCVD_IN_IADB_DOPTIN_LT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_EDDB ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_EDDB               eval:check_rbl_sub('iadb-firsttrusted', '127.0.2.1')
+describe RCVD_IN_IADB_EDDB             IADB: Participates in Email Deliverability Database
+tflags RCVD_IN_IADB_EDDB               net nice
+endif
+##} RCVD_IN_IADB_EDDB ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_EPIA ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_EPIA               eval:check_rbl_sub('iadb-firsttrusted', '127.0.2.2')
+describe RCVD_IN_IADB_EPIA             IADB: Member of Email Processing Industry Alliance
+tflags RCVD_IN_IADB_EPIA               net nice
+endif
+##} RCVD_IN_IADB_EPIA ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_GOODMAIL ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_GOODMAIL           eval:check_rbl_sub('iadb-firsttrusted', '127.2.255.103')
+describe RCVD_IN_IADB_GOODMAIL         IADB: Sender has been certified by GoodMail
+tflags RCVD_IN_IADB_GOODMAIL           net nice
+endif
+##} RCVD_IN_IADB_GOODMAIL ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_LISTED ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_LISTED             eval:check_rbl_sub('iadb-firsttrusted', '^127\.0\.0\.[12]$')
+describe RCVD_IN_IADB_LISTED           Participates in the IADB system
+tflags RCVD_IN_IADB_LISTED             net nice
+endif
+##} RCVD_IN_IADB_LISTED ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_LOOSE ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_LOOSE              eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.4')
+describe RCVD_IN_IADB_LOOSE            IADB: Adds relationship addrs w/out opt-in
+tflags RCVD_IN_IADB_LOOSE              net nice
+endif
+##} RCVD_IN_IADB_LOOSE ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_MI_CPEAR ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_MI_CPEAR           eval:check_rbl_sub('iadb-firsttrusted', '127.101.1.10')
+describe RCVD_IN_IADB_MI_CPEAR         IADB: Complies with Michigan's CPEAR law
+tflags RCVD_IN_IADB_MI_CPEAR           net nice
+endif
+##} RCVD_IN_IADB_MI_CPEAR ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_MI_CPR_30 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_MI_CPR_30          eval:check_rbl_sub('iadb-firsttrusted', '127.101.101.10')
+describe RCVD_IN_IADB_MI_CPR_30                IADB: Checked lists against Michigan's CPR within 30 days
+tflags RCVD_IN_IADB_MI_CPR_30          net nice
+endif
+##} RCVD_IN_IADB_MI_CPR_30 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_MI_CPR_MAT ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_MI_CPR_MAT         eval:check_rbl_sub('iadb-firsttrusted', '127.101.201.10')
+describe RCVD_IN_IADB_MI_CPR_MAT       IADB: Sends no material under Michigan's CPR
+tflags RCVD_IN_IADB_MI_CPR_MAT         net nice
+endif
+##} RCVD_IN_IADB_MI_CPR_MAT ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_ML_DOPTIN ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_ML_DOPTIN          eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.100')
+describe RCVD_IN_IADB_ML_DOPTIN                IADB: Mailing list email only, confirmed opt-in
+tflags RCVD_IN_IADB_ML_DOPTIN          net nice
+endif
+##} RCVD_IN_IADB_ML_DOPTIN ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_NOCONTROL ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_NOCONTROL          eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.0')
+describe RCVD_IN_IADB_NOCONTROL                IADB: Has absolutely no mailing controls in place
+tflags RCVD_IN_IADB_NOCONTROL          net nice
+endif
+##} RCVD_IN_IADB_NOCONTROL ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_OOO ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_OOO                        eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.200')
+describe RCVD_IN_IADB_OOO              IADB: One-to-one/transactional email only
+tflags RCVD_IN_IADB_OOO                        net nice
+endif
+##} RCVD_IN_IADB_OOO ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_OPTIN ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_OPTIN              eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.7')
+describe RCVD_IN_IADB_OPTIN            IADB: All mailing list mail is opt-in
+tflags RCVD_IN_IADB_OPTIN              net nice
+endif
+##} RCVD_IN_IADB_OPTIN ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_OPTIN_GT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_OPTIN_GT50         eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.6')
+describe RCVD_IN_IADB_OPTIN_GT50       IADB: Opt-in used more than 50% of the time
+tflags RCVD_IN_IADB_OPTIN_GT50         net nice
+endif
+##} RCVD_IN_IADB_OPTIN_GT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_OPTIN_LT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_OPTIN_LT50         eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.5')
+describe RCVD_IN_IADB_OPTIN_LT50       IADB: Opt-in used less than 50% of the time
+tflags RCVD_IN_IADB_OPTIN_LT50         net nice
+endif
+##} RCVD_IN_IADB_OPTIN_LT50 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_OPTOUTONLY ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_OPTOUTONLY         eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.1')
+describe RCVD_IN_IADB_OPTOUTONLY       IADB: Scrapes addresses, pure opt-out only
+tflags RCVD_IN_IADB_OPTOUTONLY         net nice
+endif
+##} RCVD_IN_IADB_OPTOUTONLY ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_RDNS ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_RDNS               eval:check_rbl_sub('iadb-firsttrusted', '127.2.255.4')
+describe RCVD_IN_IADB_RDNS             IADB: Sender has reverse DNS record
+tflags RCVD_IN_IADB_RDNS               net nice
+endif
+##} RCVD_IN_IADB_RDNS ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_SENDERID ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_SENDERID           eval:check_rbl_sub('iadb-firsttrusted', '127.2.255.2')
+describe RCVD_IN_IADB_SENDERID         IADB: Sender publishes Sender ID record
+tflags RCVD_IN_IADB_SENDERID           net nice
+endif
+##} RCVD_IN_IADB_SENDERID ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_SPF ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_SPF                        eval:check_rbl_sub('iadb-firsttrusted', '127.2.255.1')
+describe RCVD_IN_IADB_SPF              IADB: Sender publishes SPF record
+tflags RCVD_IN_IADB_SPF                        net nice
+endif
+##} RCVD_IN_IADB_SPF ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_UNVERIFIED_1 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_UNVERIFIED_1       eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.2')
+describe RCVD_IN_IADB_UNVERIFIED_1     IADB: Accepts unverified sign-ups
+tflags RCVD_IN_IADB_UNVERIFIED_1       net nice
+endif
+##} RCVD_IN_IADB_UNVERIFIED_1 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_UNVERIFIED_2 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_UNVERIFIED_2       eval:check_rbl_sub('iadb-firsttrusted', '127.3.100.3')
+describe RCVD_IN_IADB_UNVERIFIED_2     IADB: Accepts unverified sign-ups, gives chance to opt out
+tflags RCVD_IN_IADB_UNVERIFIED_2       net nice
+endif
+##} RCVD_IN_IADB_UNVERIFIED_2 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_UT_CPEAR ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_UT_CPEAR           eval:check_rbl_sub('iadb-firsttrusted', '127.101.2.10')
+describe RCVD_IN_IADB_UT_CPEAR         IADB: Complies with Utah's CPEAR law
+tflags RCVD_IN_IADB_UT_CPEAR           net nice
+endif
+##} RCVD_IN_IADB_UT_CPEAR ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_UT_CPR_30 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_UT_CPR_30          eval:check_rbl_sub('iadb-firsttrusted', '127.101.102.10')
+describe RCVD_IN_IADB_UT_CPR_30                IADB: Checked lists against Utah's CPR within 30 days
+tflags RCVD_IN_IADB_UT_CPR_30          net nice
+endif
+##} RCVD_IN_IADB_UT_CPR_30 ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_IADB_UT_CPR_MAT ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+header RCVD_IN_IADB_UT_CPR_MAT         eval:check_rbl_sub('iadb-firsttrusted', '127.101.202.10')
+describe RCVD_IN_IADB_UT_CPR_MAT       IADB: Sends no material under Utah's CPR
+tflags RCVD_IN_IADB_UT_CPR_MAT         net nice
+endif
+##} RCVD_IN_IADB_UT_CPR_MAT ifplugin Mail::SpamAssassin::Plugin::DNSEval
+
+##{ RCVD_IN_PSBL ifplugin Mail::SpamAssassin::Plugin::DNSEval # {
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval # {
+header   RCVD_IN_PSBL  eval:check_rbl('psbl-lastexternal', 'psbl.surriel.com.')
+describe RCVD_IN_PSBL  Received via a relay in PSBL
+tflags   RCVD_IN_PSBL  net
+endif
+##} RCVD_IN_PSBL ifplugin Mail::SpamAssassin::Plugin::DNSEval # {
+
+##{ RCVD_MAIL_COM
+
+header RCVD_MAIL_COM        Received =~ /[\s\(\[](?:post|mail)\.com[\s\)\]]/is
+describe RCVD_MAIL_COM      Forged Received header (contains post.com or mail.com)
+##} RCVD_MAIL_COM
+
+##{ RDNS_LOCALHOST
+
+header         RDNS_LOCALHOST  X-Spam-Relays-External =~ /^\[ ip=(?!127)\d+\.\d+\.\d+\.\d+ rdns=localhost(?:\.localdomain)? /i
+describe       RDNS_LOCALHOST  Sender's public rDNS is "localhost"
+##} RDNS_LOCALHOST
+
+##{ RDNS_NUM_TLD_ATCHNX
+
+meta       RDNS_NUM_TLD_ATCHNX         __RDNS_NUMERIC_TLD && __ATTACH_NAME_NO_EXT
+describe   RDNS_NUM_TLD_ATCHNX         Relay rDNS has numeric TLD + suspicious attachment
+#score      RDNS_NUM_TLD_ATCHNX         3.000  # limit
+tflags     RDNS_NUM_TLD_ATCHNX         publish
+##} RDNS_NUM_TLD_ATCHNX
+
+##{ RDNS_NUM_TLD_XM
+
+meta       RDNS_NUM_TLD_XM             __RDNS_NUMERIC_TLD && (__HAS_XM_SID || __HAS_XM_LID || __HAS_XM_RECPTID || __HAS_XM_SENTBY)
+describe   RDNS_NUM_TLD_XM             Relay rDNS has numeric TLD + suspicious headers
+#score      RDNS_NUM_TLD_XM             3.000  # limit
+tflags     RDNS_NUM_TLD_XM             publish
+##} RDNS_NUM_TLD_XM
+
+##{ READY_TO_SHIP
+
+body       READY_TO_SHIP               /(?:in our (?:stock|warehouse)(?: today)?[.,] Ready (?:to (?:be )?|for )+ship|ready for shipping (?:in|from) our warehouse)/i
+#score      READY_TO_SHIP               1.500  # limit
+##} READY_TO_SHIP
+
+##{ REPLYTO_EMPTY
+
+header      REPLYTO_EMPTY          Reply-To =~ /<>/
+describe    REPLYTO_EMPTY          Reply-To undeliverable
+##} REPLYTO_EMPTY
+
+##{ REPLYTO_WITHOUT_TO_CC
+
+meta REPLYTO_WITHOUT_TO_CC     (__HAS_REPLY_TO && !__TOCC_EXISTS)
+##} REPLYTO_WITHOUT_TO_CC
+
+##{ REPTO_419_FRAUD
+
+header REPTO_419_FRAUD Reply-To:addr =~ /^(?![^\s<>@]+\@(?:(?:gmail|yahoo|outlook|hotmail|aol|yandex|protonmail|qq|consultant)\.com|yahoo\.co\.jp)(?:$|[>,\s]))(?:(?:speakers)\@012\.net\.il|(?:mail)\@101private\.com|(?:(?:alfredcheuk002|fbi_1234|longchii|mavis_wanczyk|qfdonation))\@126\.com|(?:(?:a(?:aronmichaels005|lfredcheuk_yuchow)|ehagler|google_promoaward0?|istarsolar|joeblp|microsoft(?:_office16|award01)|panyawein|wong(?:_shiu(?:09|2016)|shiu_ki)))\@163\.com|(?:(?:navas1|ray\-thomas7h))\@1email\.eu|(?:mathew\.yon2)\@abbsinvestment\.com|(?:wang)\@abconline\.hk|(?:(?:mr\.tonyelumelu|r(?:emittancedept001|ussia2018worldcuplotto5)))\@accountant\.com|(?:midwestern)\@adexec\.com|(?:joxford)\@adm-irs\.com|(?:office)\@admntline\.ml|(?:info)\@aidakj\.com|(?:(?:a\.aktr|c(?:arlos\.adan|entralbank_malaysia2)|infovsa|maria\.louge|sarahjiwooali|w(?:bfefft|n\.buffett)))\@aim\.com|(?:(?:adainis|jessikasingh|travisalex))\@aliyun\.com|(?:(?:director|info))\@anletco-jp\.com|(?:(?:deanie_ron|m(?:softgbcmanager|undo\.europe)|richwetton))\@aol\.co\.uk|(?:mrssabah_ibrahim7)\@aol\.fr|(?:institutionaldepartment)\@aol\.nl|(?:deajohn)\@arubacloub\.com|(?:djohns)\@arubacloud\.com|(?:jeromecgb12)\@asia\.com|(?:bllphillips)\@att\.net|(?:garry\.quinlan)\@australiamail\.com|(?:(?:traoreahmed|zetiaziz))\@barid\.com|(?:atendimento\-multiplus\-banco\-brasil)\@bb\.com|(?:(?:admin|info))\@bhleu\.com|(?:noreply\.fujvfes)\@bibliothequegaillard\.com|(?:costruire)\@bigmat\.it|(?:alerts\-noreply)\@bis\.org|(?:susan\.lampard)\@bk\.ru|(?:(?:office\.uk|renataapsilva))\@bol\.com\.br|(?:executivedirector)\@box\.az|(?:ochiaisatoruasistbank)\@brew-master\.com|(?:nicola)\@brighenti\.net|(?:drbenardsani\.nnpc)\@bsgcpk\.com|(?:mrshelen)\@btarneauds\.com|(?:inter01)\@c2\.hu|(?:rim43505)\@cantv\.net|(?:duncanttodd)\@centrum\.cz|(?:(?:contact\.roycockrumgrantoffice|fbipayment(?:50|600)|harunajim667|ralphwjohnson))\@citromail\.hu|(?:info)\@classicmail\.co\.za|(?:martin)\@claudiatrincado\.com|(?:irdi33)\@cock\.li|(?:federal_ministrayoffinance)\@comtube\.com|(?:(?:jones\-co|kellyzwo))\@cox\.net|(?:(?:dmalpasswb|re(?:covered\-tax|em(?:2018|alhashimi|hashimi2020))))\@daum\.net|(?:rex)\@departmentofsecretary\.com|(?:blythemasters)\@digitalassetholding\.org|(?:(?:diplomaticagent11|jentwistle90))\@diplomats\.com|(?:(?:abd\.aljassem|claimreview))\@dr\.com|(?:atmpaymentcentttt)\@e-mail\.ua|(?:(?:herrick01|rogersteare02))\@e1\.ru|(?:olga\.ingrif)\@ecb-securities\.com|(?:jesusgacia)\@eclipso\.email|(?:davison\.warwick)\@eclipso\.eu|(?:no\-reply)\@economizar-na-web\.com\.br|(?:(?:denbrink|kathy_gerald1965|megaclaimcenter))\@email\.com|(?:johnkadiri)\@englandmail\.com|(?:info)\@euro-pinnacle\.com|(?:(?:advancedsegurosespana|claimdpts|monitorunitbelgium))\@europe\.com|(?:us\.secretaryofstate)\@ex\.ua|(?:susanibrahim)\@exclusivemail\.co\.za|(?:jabufa)\@executivemail\.co\.za|(?:adam_moroney\.esq)\@fedco-usa\.com|(?:steven)\@federalreservebanks\.us|(?:(?:jeferrey|yakuyaya77))\@financier\.com|(?:harry\.jones)\@firstbondcapital\.com|(?:admindepart)\@firstinlandbnkplc\.com|(?:notice)\@fnb\.co\.za|(?:info)\@fnconsultant\.biz|(?:(?:atmofficeauthoriza|captain\.lucasadam|e(?:golan2|u_payment)|gella1|k(?:aith\-angel|ossihpilip202)|pchwinningoffice1953|qatardonations16|smadartsadik|tepnherve00|worldauthorization))\@foxmail\.com|(?:zen)\@fpg\.com\.co|(?:mmpaulsmith145)\@frontier\.com|(?:mrchau1)\@gala\.net|(?:info)\@gcbonline\.co\.ua|(?:(?:bn|jb))\@getmaworldwide\.org|(?:info)\@gezimarkt\.com|(?:o(?:ctaviancm|rlando\.bloom))\@gmx\.co\.uk|(?:(?:a(?:hmet\.broker|lliance\.consultant)|f(?:aridaomar|er3nrod1512)|johnson\.douglas|p\.hamedmoff|rosicboteruff|walter_anderson))\@gmx\.com|(?:(?:fernrodyup12|harrish|miraiminaki))\@gmx\.fr|(?:joxford)\@gmx\.us|(?:ben\.malbon)\@googlefps\.co\.uk|(?:m\.johnson10012)\@googlemail\.com|(?:larrypage)\@gpa-team\.com|(?:ceo)\@gpromo-team\.com|(?:sundarpichai)\@gpromoteam\.com|(?:sundarpichai)\@gpromoteamuk\.com|(?:garreth\.webb)\@grossfitconsultancy\.biz|(?:irenegeorgiadou)\@hellenicbankcy\.com|(?:raymondchanjp)\@hkmaltd\.org|(?:marketing)\@homebg\.in|(?:williamsdavid_3r)\@hotmail\.co\.uk|(?:christgoldwilliams)\@hotmail\.fr|(?:douglasflint)\@hsbcbank\.group|(?:gtakeshi)\@htisteel\.com|(?:alexgoodwill129)\@ibibo\.com|(?:victorwang67)\@imail\.com|(?:01)\@imf-org\.org|(?:chrisdodgshun)\@inbound\.plus|(?:imffunds)\@inbox\.lv|(?:info\.fidelity\.finance)\@inbox\.ru|(?:(?:janetyellenoffice|off(?:er2021|iceme)))\@indamail\.hu|(?:lizawong)\@infohsbc\.net|(?:sgt\.dave)\@inmano\.com|(?:baankston)\@instruction\.com|(?:sheikhwahab)\@islamicfb\.com|(?:mrsfatimahhassan[12])\@itbox\.ro|(?:info)\@johnhenryorg\.com|(?:john)\@johnpedroconsults\.com|(?:wbuk0[13])\@katamail\.com|(?:(?:ditmereduart|europsenderscouriers|lewiscarl))\@keemail\.me|(?:mikiwilliams)\@knol-power\.nl|(?:a015)\@laposte\.net|(?:johndavid)\@lawdistributionlimited\.com|(?:info)\@lbafltd\.com|(?:philiphampton)\@lec20\.com|(?:ecowascourt)\@legislator\.com|(?:olivia_simon)\@lihat\.dds-akaun\.com|(?:pb\-2pb012)\@live\.co\.uk|(?:(?:financiero172|helen_galloway|markjohnson650))\@live\.com|(?:mr\.williamrigule)\@live\.fr|(?:deqishanmedical1)\@localnet\.com|(?:miraminaki)\@lycos\.com|(?:drdanielmminele)\@magicmail\.co\.za|(?:andrewh1)\@mail2banker\.com|(?:lanxianjun)\@mail2hongkong\.com|(?:hwc2)\@mail2world\.com|(?:shillay)\@mail\.bg|(?:fanliangjen)\@mail\.china\.com|(?:(?:a(?:isha\-gaddafi0|yishagddafio|zimhashim2018)|eddy_haryono|ghazal\-a|info\.federalreserve\.org|kateclough1|mriamchombo1968|nancyvee80|ren\.deqi212))\@mail\.com|(?:williamsdawson)\@mail\.com\.tr|(?:(?:ayishagddafio|david\.onyeoma\.74|hmtreasyru\.ng|sambo_dasuki))\@mail\.ru|(?:(?:publishers_clearinghouse|rev\.williamschurch))\@mail\.uk|(?:mrcheongg2012)\@mailbox\.hu|(?:brantwbishop)\@mailbox\.org|(?:epowerball)\@mailbox\.sk|(?:johannreimann)\@memeware\.net|(?:miguel)\@miguel-sanchez\.com|(?:rbi\-e)\@mit\.tc|(?:info)\@morbicera\.com|(?:anjer\.keith)\@ms-fsp-europe\.com|(?:paul\.chang)\@msn\.com|(?:enquiry)\@multiplysearch\.com|(?:cadpayout01)\@my\.com|(?:(?:contactmee|ministersoffinance))\@mynet\.com|(?:me)\@myprivatemail\.website|(?:stephanfalzer)\@myself\.com|(?:(?:reem9999|wujames))\@naver\.com|(?:jessicahunt1960)\@net-c\.com|(?:zenith)\@nmk\.ugu\.pl|(?:maxedwards)\@octopusinvestment\.co\.uk|(?:lindsaytrembley)\@oimail\.com|(?:googleclaims111)\@one\.lt|(?:accountingdrg)\@onet\.eu|(?:(?:allanwoodmarko1|eco\.depo\.services|fred\.grenville))\@onet\.pl|(?:(?:castorock|infobiz2|jarramos|mrsalice09))\@ono\.com|(?:pablomancilla1)\@orange\.es|(?:servicio\.correo)\@orange\.fr|(?:turkish\-air)\@outlook\.com\.tr|(?:(?:ahmed3khan|dpt_transferunionwestern|mr\.onyeadams|rohitjain0))\@outlook\.fr|(?:m\.khan1)\@outlook\.sa|(?:info\-casino888\.com)\@ozu\.es|(?:info)\@peagent\.net|(?:andrew\.penning)\@penninglegalassociate\.com|(?:info)\@phillipsmorgan\.co\.za|(?:wood)\@poczta\.onet\.eu|(?:m(?:aryjosen|boyaeth))\@post\.com|(?:united\.globeawardoffice)\@post\.cz|(?:ffundsremitunits)\@premiumtbnk\.com|(?:santiagomachado)\@presidency\.com|(?:ecowaspayoffice)\@protonmail\.ch|(?:uni1)\@rayana\.ir|(?:(?:mrsrose\.hill|robert\.cota|unionbatmpaymentsection))\@rediffmail\.com|(?:nidiabustamante)\@registerednurses\.com|(?:info)\@rehapmed\.com|(?:info)\@repsol\.org\.uk|(?:jamesmr\.monday)\@rocketmail\.com|(?:(?:g(?:loriacmackenzie001|mackenzie001)|monicatorres001|wanczykmavis101))\@rogers\.com|(?:elena\.santos)\@rollageoup\.com|(?:info)\@roycockrum\.org|(?:mrs\.rachel2013)\@safe-mail\.net|(?:vera)\@safrica\.com|(?:enqraward)\@sbcglobal\.net|(?:fbotha2009)\@secsuremail\.com|(?:peterddeng)\@secsuremailer\.com|(?:francisbotha65)\@securesvsmail\.online|(?:smtpfox\-ys2n8)\@semillasdeamor\.com\.co|(?:wils)\@send\.com|(?:ibralsmma)\@seznam\.cz|(?:(?:jimyang77|kentpace))\@sina\.com|(?:swat)\@sltdchambers\.com|(?:(?:dycheseaan|sean(?:dyyches|sdychh)))\@sol\.dk|(?:info(?:04|1))\@sony\.com|(?:info\.jschneider)\@spainmail\.com|(?:barrister_hans)\@stationlibraryjhelum\.com|(?:contact\.hmrc\.gov\.uk)\@sudhisalooja\.com|(?:fbidirector(?:11|wadc))\@superposta\.com|(?:anders\.karlsson)\@swedbankabgroup\.com|(?:insurance_contl)\@swissmail\.com|(?:nnbank)\@szm\.sk|(?:xiankailu)\@taiyaubank-hk\.com|(?:mhua)\@tbochk\.com|(?:veronicabright)\@terra\.com\.pe|(?:billard\.thompson)\@thompsonlawassociates\.com|(?:fabio2016)\@tim\.it|(?:zimcargoservicehelpdesks)\@tlen\.pl|(?:drew)\@ton\.net\.ru|(?:itpark01)\@tpg\.com\.au|(?:bobby\.william)\@tradent\.net|(?:info)\@treasury-departmentdc\.twomini\.com|(?:info)\@treasury-usa\.3eeweb\.com|(?:info)\@un-grant\.info|(?:(?:b(?:lueskyanimatedfilm|rown\.monica_l)|info\.(?:clev\.frb|imfamerica)|policyaddmin\.file))\@usa\.com|(?:bmuczdh)\@virgilio\.it|(?:itgiix)\@visa\.com|(?:vankoning)\@volny\.cz|(?:holt1231)\@w\.cn|(?:infos)\@walmart\.com|(?:daydreamin)\@wanadoo\.fr|(?:(?:foreignoperationmanager|mr\.(?:ikokuoya|olicadams)))\@web\.cg|(?:weboffice05)\@web\.de|(?:b(?:\-calebfirm2007|oriscaleb121))\@webmail\.co\.za|(?:(?:frboffice|jw\.ny\.frb))\@webmail\.hu|(?:verificationsector)\@webname\.com|(?:grahamjoneschambers)\@wildblue\.net|(?:e\.shaw)\@wilmagroup\.com|(?:tbryant6)\@woh\.rr\.com|(?:henleywatkinss)\@y7mail\.com|(?:stephaniehans\.euromillionlottery)\@yahoo\.be|(?:johnkwanghooi101)\@yahoo\.c|(?:chapelliermadeleine)\@yahoo\.ca|(?:arroblutt\.paymentoffice)\@yahoo\.cn|(?:bencook5511)\@yahoo\.co\.nz|(?:gloriamoses02)\@yahoo\.co\.th|(?:(?:abigailbanga1975|bobwatson92|fundyawa2014|j(?:effwilliam207|oe_modisen)|lloydsbanksb|owengreen70|rebeccajoe98|samue95))\@yahoo\.co\.uk|(?:(?:changgordon(?:61|946)|lordsmartin|revlarrutycoker2015|thomaspeter227|zhu\.shumin))\@yahoo\.com\.hk|(?:imf_office_agent)\@yahoo\.com\.my|(?:(?:dr\.pauljames110|jessicp1))\@yahoo\.com\.sg|(?:boa2cb)\@yahoo\.com\.vn|(?:(?:contactus88\-00|jflangvm5nshyazyo7si6jfuqah6jsldw2kw6c2t|lmj82717|m(?:r\.angelabenjamin|srangelabne32)))\@yahoo\.es|(?:(?:charlinebebe22|fortinsandrine|rita_will001))\@yahoo\.fr|(?:maktoum\.shasher)\@yahoo\.pt|(?:ukdebtmanagement5)\@yahool\.com|(?:dr\.amelia\.george1)\@yandex\.ru|(?:jayanderson)\@yccaifuu\.com|(?:(?:alfred_cheuk_chow|friedrich_mayrh1|maviswanczyk01))\@yeah\.net|(?:(?:avaethan21|feliciamagi|westernunion817))\@ymail\.com|(?:goldfish20123)\@zing\.vn|(?:(?:asiafoundationorg\.hr|jefflindsay))\@zoho\.com|(?:laprimitivaes)\@zohomail\.eu)$/i
+describe REPTO_419_FRAUD Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD 3.000
+tflags REPTO_419_FRAUD publish
+##} REPTO_419_FRAUD
+
+##{ REPTO_419_FRAUD_AOL
+
+header REPTO_419_FRAUD_AOL Reply-To:addr =~ /^(?=[^\s<>@]+\@aol\.com)(?:(?:a(?:\.dordevicii|aromartins|f\.2[06]|ljaber111|meliageorge|n(?:d(?:_bley|rew_hans)|ttilimarim)|rthur\.alan)|b(?:aanidleewy|claimdept|rownchurchill2)|c(?:\.european|allumfoundation|h(?:anprivacy03|eungdavidd|ngeric|ristyruwalt)|ristinabruno38|ustom_service58)|d(?:avid(?:\.kms|opatry)|hodgkins001|ianwaynie|onald_anderson44)|e(?:ng(?:joej|r\.abdulla)|ricalbertdpm|velynjoshua44)|f(?:d\.29|ernandezfernandez3|oundation\.charity)|g(?:arang\.rebeca|eorge_clifford4|roupfacility)|hernandezrosemary632|jmesaud|k\.doreen00|l(?:\.b162k|erynnewest99|i(?:sarobinson5\.0|zcarroll101)|orrainewirangee)|m(?:_l\.wanczyk62|aviswanczyk[do]|rs(?:isabelladzsesszika|safiagaddafi))|no(?:rmapatto|tification\.notification)|p(?:a(?:tricia(?:\.hans|hans)|ulpollard2)|eterwong345|otfolio\.management)|r(?:achel_wat2|oyalpalace2018)|s(?:afiiagadafi|gt\.gillianj200|ovchan|pwalker721|taatsloterijnederlands)|usembassy330|w(?:attson\.renwick|ebank244|issam\.haddad|u\.xiabk)|zeti\.aziz))\@aol\.com$/i
+describe REPTO_419_FRAUD_AOL Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_AOL 3.000
+tflags REPTO_419_FRAUD_AOL publish
+##} REPTO_419_FRAUD_AOL
+
+##{ REPTO_419_FRAUD_AOL_LOOSE
+
+meta REPTO_419_FRAUD_AOL_LOOSE __REPTO_419_FRAUD_AOL_LOOSE && !REPTO_419_FRAUD_AOL
+describe REPTO_419_FRAUD_AOL_LOOSE Ends-in-digits Reply-To is similar to known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_AOL_LOOSE 1.000
+tflags REPTO_419_FRAUD_AOL_LOOSE publish
+##} REPTO_419_FRAUD_AOL_LOOSE
+
+##{ REPTO_419_FRAUD_CNS
+
+header REPTO_419_FRAUD_CNS Reply-To:addr =~ /^(?=[^\s<>@]+\@consultant\.com)(?:(?:anthonyalvarad|davidhenri|legacylawfirmdakar|m(?:iguel\-pinto|orrisherb)|owenschamber|santiagosegur|t(?:eo\.westin|he\.trustees1?)|westernunion1659))\@consultant\.com$/i
+describe REPTO_419_FRAUD_CNS Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_CNS 3.000
+tflags REPTO_419_FRAUD_CNS publish
+##} REPTO_419_FRAUD_CNS
+
+##{ REPTO_419_FRAUD_GM
+
+header REPTO_419_FRAUD_GM Reply-To:addr =~ /^(?=[^\s<>@]+\@gmail\.com)(?:(?:01marviswanczyk|41speedlinkdelivery|7912richardtony|a(?:bu(?:lkareem461|shadi0004)|c(?:aalzz11|count\.optionsmr\.jonasarmstrong|e(?:alss11|cere001))|d(?:esilgon77|iallo\.boa)|erofilxeport|gent\.laryedwad|isha(?:1976algaddafi|gaddafiaam)|jaminamo|l(?:\.jo60691737|a(?:n\.austin(?:041|223)|scramac)|ber\.yang222|ex(?:ander(?:daisy911|peterson4499)|hoffman3319|smithznn)|ghafrij13|hajarb|lenholden121|nizmaria|ure\.wawrenka1472)|m(?:b\.w\.stuart\.symington|ericadeliverycomapny1(?:300|800)|ina(?:ltwaijiri02|tasomda))|n(?:d(?:rewumehunitedbankforafrica|yfox0022)|itaminarnguessan|n(?:a(?:choihkkic|llee091|sigurlaug458)|jenijohnsonn)|t(?:honyalvaradollc|o(?:meuenio|niopaco20consultant)))|r(?:adka01|chibaldhamble|thur11alan)|s(?:h(?:0611jnag|westwood7)|ianbae1010|sistance7agent)|t(?:m(?:mastercard41|office929)|tohlawoffice\.tg)|w1614860|yevayawovi190|zi(?:m(?:\.h(?:ashim\.premj|premji13)|hashim(?:2018|donation2019))|z(?:dake0|george50)))|b(?:a(?:lla250abc|nk(?:centralasiahalobca34|ingcentralng)|ochang7a|r(?:bersmadar75|r(?:\.(?:charles(?:1954|office)|martinrichard)|ister(?:\.fidelisokafor|lordruben94)|ubenjames)|teld\.huisman01))|bongo593|c0996013|e(?:linekra1|n(?:ezero392|jaminsarah195))|i(?:anigercash|ll(?:\.lawrence0747|fhome))|laisevodoun|mw(?:automobile242|officeline)|o(?:arddept0|cchenyi)|r(?:a(?:ndy\.heavenscenttt|volpaul55)|endalaporte112|ianmoynih00)|uff(?:ettwarrene21|ookj))|c(?:a(?:ixaseguros9810001|mluba2017|r(?:eisu98|l(?:os\.s\.helux|thomos)|twrighttownhomesllc))|bnatm847|claimsa|e(?:li(?:cerez|neroullier(?:200|nm))|ntraltrustlltd)|h(?:a(?:ngching885|r(?:itylisajohnrobinson41|l(?:esluenga01|tonnewmanus1)))|e(?:mchung1011|nchung1011)|i(?:enkraymond|mwiakim))|iticonsultantjohncg0|kruger00017|l(?:a(?:im(?:adviser11|officeadm)|xtonpaul00)|s79408)|o(?:l(?:\.(?:ahmedmarani|fakhrialsalabi(?:01)?|hmedismari)|abdullahassi|edavid77032|husseinharmuchc(?:cj|j)|inchrisweir50|mohmanairf|o(?:mbasjuan53|nelsaad00))|mpensationcommitteboard|n(?:sult(?:ancy64|matthias|sto\.u)|tact(?:\.kolason|ad00[04]))|operation612)|pt\.eugenebarash|r(?:a(?:bbechambers|wfordgillies1)|ist(?:bru(?:05|n05)|i1537bru))|ustomerservicelacaixa2)|d(?:29laws|a(?:n(?:008629|iel(?:35508109|zulu11)|nydan24532)|v(?:i(?:d(?:\.loanfirm18|ibe718|larbi11|pere337|r(?:amirez\.luis9012|ikhen))|scarolyn334|yax98)|ychan1970))|c(?:layconsult|ole77032)|e(?:btm123|n(?:iwalts|nis(?:clark659|quaid888))|partmentofstate(?:123|321)|tlefeckhardd)|hill27676|i(?:ane\.s\.wojcicki|gitalassetholding|p(?:francis1|lomat(?:\.john\.clerke|sshenry)))|o(?:minicahkye|na(?:ldwilliam1988|tionhelpercare5))|r(?:\.(?:meirh|wilsonpaul02)|abodid|davidrhama221|j(?:amesdee|oesimon77)|kennedyuzo|meier\.heidi?|o(?:vieogor1|wenfrederick))|u(?:a1155a|nsilva58|stinmoskovitz\.2facebook)|v\.metus)|e(?:benezero392|christina937|d(?:runity|winfreeman22)|fcc\.financial\.dept|l(?:i(?:bethgomez(?:175|499)|sabethmaria600|zabethedw0)|otocashoffice1?)|m(?:2keld|ailpostlink09|efiele(?:328|g757)|ilyrichmond391)|renakgeorge123|ssexlss1|vgpatmow)|f(?:\.mikhail025|a(?:ithdesrie511|tme\.mehmed001)|blott47|e(?:deralreservebankdallasdst|lix88995)|g0067333|irstbank(?:49(?:666|966)|k49666)|j569282|l(?:556249|aurentdz40|uhmann\.dn)|mb\.agent|o(?:ropunionbank|undations\.west)|r(?:a(?:100dub132|n(?:c(?:espatrickconnolly(?:5050|4)|isca(?:mendoza960|samendoza))|k(?:jwangg|laurarivera)))|bbankny\.gov|e(?:derick\.colemanesq|elottosweepstake51))|u(?:lanlan28|ngg1w))|g(?:00gleggewinner19|a(?:b(?:albertoassociates|rielkalia1102)|r(?:ethbull112016|yakinson121))|bill4880|e(?:n(?:\.ahmedmsksi|eral(?:abdulrazak|williamstony990))|orgekwame481|r(?:aldjhjh11|tjanvlieghe787))|g780904|i(?:idp955|lbert12oook)|kwasiiwusu1\.persona|l(?:enmoore0011|oriachow5052)|o(?:glegewinnerteam|o(?:dnessxtra|golteam2019|oglegwiinner219)|vgodwinemefiele111)|r(?:ace(?:jackmanwoods|obia001)|e(?:ant311|energeoffrey776))|veraallen)|h(?:a(?:r(?:old\.dia1100|ryebert101|twellbdaniel)|s(?:h(?:imyreem78|mireem801)|sanalshujairy))|e(?:a(?:dofficecentre0210|therbrooeke101)|cto(?:alon|r(?:castillos653|scastillo6))|lpdesk47321)|gold8080|heba\.hhassan207|i(?:ldad837|toshurui)|klee\.mike|o(?:lsemeyerole6|nmackjohn518|rnbeckmajordennis63[478]|seoky(?:34|9))|sbchgm|trryt34|uichmh)|i(?:1955smael|amannjejosonn|bed627|n(?:fo(?:\.(?:abogadosmfontana|g00gleclaim|questiondesk|ulmusau)|64240|98cbnoffice7|aprl06|fdrserve)|gridrolle2|t(?:ernationallppp1|linvestorsfirm))|terryoffice)|j(?:35809121|a(?:888179|cobmaseon5995|m(?:alpriv8un|es(?:husmansdesk2240|okoh82))|nusensecureprivate|sonyeungchiwai|vierlesme001)|b5406424|c2222222rrr|e(?:ff(?:deandk2|erydean1960)|nniannjhsonn|ssikasingh4)|imyang977|k3311131|mpowellfr|o(?:e(?:dward023|kendal540|lmodisen)|hn(?:\.wilde\.oneplusfinance|a9577|griffn818|paton\.alphafmc|r(?:awlings956|oxfordjr1)|son(?:deba|wilson(?:389|490))|tanko214|uba234|walterlove2010)|monkzza|n(?:esandassociates68|monkssa)|s(?:ephacevedo024|ianeangenor)|y(?:ce00011|mrskone5))|rawlings007|s4fernado|uliet\.le(?:222|e2222)|w6935997)|k(?:a(?:lstromjames3|malnizar000|rabo\.ramala39|t(?:ebaronbarr|hilittman7|jamess043|rinaziako56))|e(?:lsawamelia55|n(?:mck(?:ay1980|enziejr)|nedy\.sawadogo19))|halidbuhazza99|js09376|kasbu790|o(?:ntakt\.claim|tokairportcargo|watsusho\.co\.ltd\.jp)|rnkl1109|un(?:gwei7777|ioue28)|wasiowusug)|l(?:a(?:r(?:ateambo|rytoms200)|ursent892|wrencefoundation30)|blackshirepm|e(?:ndfair\.co\.uk1|rynne(?:0west99|west2289))|i(?:amfinchus(?:11|3)|ezlnatashavanessa|li(?:ane\.bettencourt1945|ianchrstph)|n(?:elink008|glung104)|xiung(?:l48|9))|john6132|o(?:g(?:anntomas|eengen)|ttyoffice1|u(?:ghreymargaret67|isdreyfusmargarita5))|p319765|u(?:ckywinners2018|sba\.moored2019)|w94059|y(?:\.cheapiseth909|n(?:\.arthur011|cmba440|nmkl3332)))|m(?:a(?:bel\.manaku|ck(?:enzbezos|oliver324)|incare655|jor(?:dennishornbeck53|townsend01)|k(?:altschmidt|toumsheikhhasher)|nuelfranco(?:727|foundation0)|r(?:cusdembialomr|i(?:a(?:111dembele|27idemba|3(?:31lucas|51lucas)|hhills00)|nacoleman84|opabl26)|k(?:roth456|uses200)|y(?:franson56|jify00aaz01))|s(?:onmanny05|pencer5151)|t(?:hewriaanza|twilly3)|u(?:noveutileina|rhinck11?)|viswanczyk(?:1(?:19|987)|4(?:89|5)|775|foundation45|k112|zz)|xaajn|ydetratt)|c(?:\.cheadychang76|kenthando)|dredban775|e(?:044386|engeoffrey|l(?:lagolan|vidabullock5)|nnss01)|gfrederick80|husameddine|i(?:c(?:he(?:alwuu002|lintagro)|paulla|w954)|k(?:edawson1960s|h(?:\.fridman|ai(?:\.fridman261|lfridm32)))|nfin\.gv|ss(?:\.melisa\.mehmett|boteogottai|yaelronen))|jminabii|k(?:ent7117|untjoro52)|lbriggs08860|m(?:1086771|argaritalouisdreyfus)|nmalarge|o(?:ham(?:edabdul1717|madraqab00)|rienkal30)|r(?:\.(?:justinmaxwell09|lusee|wlsonkabore)|7672900|cjames001|d517341|ericfranck|fabianchukwu|hanimuhammad627|jamesmc6|martine80|paulfrank01|r(?:echardthomas|ichardanthony1)|s(?:\.(?:biyufungchi16|janetolsen?|olsenjanett|patarkatsishvili|susanread12)|a(?:ishaalqadafi1976|ngela454)|g(?:ezeria|racewoods70)|h(?:amima60|ristinemadeleine)|j(?:ackman123|lleach)|maureens847|nicolefr1marios|r(?:obinsanders185|uthsmith9900)|s(?:arahbenjamin103|ophiac)|veraaellen)|tomcrist\.ca)|s(?:agent02|golaan4|smadar44)|twvvv|u(?:ali000111|stadris22)|y(?:burghhugohendrik|racbally))|n(?:aomiiwasaki181|ckniem|eilt(?:9108|rotter(?:2017|968))|obuyuki\.hirano128|tawdglobal)|o(?:\.peace004|3344nb|ffice(?:\.012123|rricherd876|windowterms)|liviemorgan4|marinyandeng|nufoundationclaims|pcwkdw|swald\.l(?:\.lewis|ewwis)|vieogor1)|p(?:\.compton101|a(?:storfrancesco1|trick(?:\.efcc|andfrancessconnolly)|ul(?:eed1969|n8018)|ymentofficer14)|brookk0|e(?:130304|t(?:er(?:\.waddell204|guggi0|kenin73?|stephen4040)|ronasofficepromo))|h(?:\.cbnl|illip\.richead218)|ieterstevens511|o(?:lloke|wellmrwilliam)|r(?:esleybathini1|o(?:1nvstream|cessing2013general))|trsvermeulen|w178483)|q(?:iquanzhou7|nzeng1)|r(?:19772744|677gfd|a(?:johnfernn|kidy23|lhashimi78|ymond(?:aba200|damon15))|e(?:beccagarang11|em(?:has(?:himy(?:1978|mail)|m044)|n2214)|mittanceofficeasaba|neehii\.omb|plyback00|v(?:\.(?:jamesabel1|mikedadax)|ernestcebi|frankjackson91))|i(?:ch(?:ard(?:lustig4u|w(?:ahl511|illis815))|lawandds)|tawilliams4141)|josh200000|o(?:berthanandez6655|naldmorris786|s(?:a\.gomes0044|e(?:kipkalya934|tam00)))|svcdusan|t(?:\.rev\.ericmark05|honrichardshepherd)|u(?:ssiaworldcuppromo|thmporat1\"))|s(?:a(?:chingrams|l(?:ehhussienconsult1|imzaid7000)|nchoscozfifa|rfiafarfask7)|cottpeters7989|e(?:cretservicce[78]|rgeantrobertbrown1|ydouthiebaconsultant)|g\.offiice\.group|h(?:a(?:msiahmohamadyunusbnegara|nemissler2009)|e(?:ikhalmaktoum79|ry(?:\.gtl131|etr03))|inawatrathaksin93)|i(?:lverlakeconsultant|mlkheng5)|krause680|l5342743|o(?:fia\.adams201|u(?:rcingloggs|thwsltd))|peelman1972|rfredericodehernandez|sdt224|tephentam1(?:47|6)|u(?:iyang(?:\.boc|02)|leiman\.cbnn|n\.hor20|san(?:freeman112x|neklatten502)|zana111bah)|w(?:eeneyjohnson384|islottnl))|t(?:a(?:mmy21gill|y(?:ebsouami0|lorcathy362))|davalvse|erryparkins11|h(?:ailandbankoffice01|e(?:ara\.choy2|bigbiglottowinning77|odorosloannis9|resawilliams7661?|smithfm124))|imothymetheny01|lyerdonald613|mason9w4r|o(?:m(?:\.cristdonor|c(?:hrist1995|rist(?:52|donation12|foundation99|world)))|ny(?:\.chung760|zimpro11)|pchronodesk|shikazusendo101)|p2911220|ransfermoney21\.2|tkhan69s)|u(?:babankbjplc|dregwqr|kponguko|marukareem8|n(?:claimedfunds554|itednation(?:organization70|s(?:8182|councilrefunds)))|sdepartmentofjustice80)|v(?:a(?:mamakazlegalchambers|nderwesthuizen560)|e(?:enapatel883|neerchris20003|r(?:a(?:aellen7|hollinkvan0)|enichekaterinaekaterina4))|i(?:ctoriaabraham2310|dalpamela85|ngut170|pjeferrey)|owpovertyfoundation)|w(?:a(?:dp4726|hlr(?:5990|ichard18)|ldibeatesieberhagen|nczykm61)|b(?:271981|6159980)|d232633|i(?:ge122|ll(?:iamrobert3852|update123))|kfinancialservice|orldbankregionalmanageroffice|u(?:\.office212|mt722)|ww\.moneygram9054)|y(?:\.oguzhan011|anghoseok5|doo974)|z(?:enithbankplconline98|kiaslan1963|minhong65)))\@gmail\.com$/i
+describe REPTO_419_FRAUD_GM Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_GM 3.000
+tflags REPTO_419_FRAUD_GM publish
+##} REPTO_419_FRAUD_GM
+
+##{ REPTO_419_FRAUD_GM_LOOSE
+
+meta REPTO_419_FRAUD_GM_LOOSE __REPTO_419_FRAUD_GM_LOOSE && !REPTO_419_FRAUD_GM
+describe REPTO_419_FRAUD_GM_LOOSE Ends-in-digits Reply-To is similar to known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_GM_LOOSE 1.000
+tflags REPTO_419_FRAUD_GM_LOOSE publish
+##} REPTO_419_FRAUD_GM_LOOSE
+
+##{ REPTO_419_FRAUD_HM
+
+header REPTO_419_FRAUD_HM Reply-To:addr =~ /^(?=[^\s<>@]+\@hotmail\.com)(?:(?:a(?:brahambeniam|nikal01|zezul\.idrisazezulidris)|benarnault0|c(?:ecilekaramoko123|hoi21)|d(?:l13139|r\.dukanalycoulibaly)|egorbunova22|fanliangjen2|gen\.dmathokdiigwol|katabettencourt2018|l(?:\.b120k|e(?:a_edem|wisarm44)|imfu201677|ulihongm)|m(?:cliffmomah998|r(?:abrahambeniamfc|pedrohilldonations|s(?:\.roselinejac|elizabetmk|helenbgeorge|micheleallison2003)))|n(?:inajohn226|waigwe2765)|ocbc\-ba\-nkonline|patrickmullinfinaceservs|s(?:ajda\.andleeb|gthansencs|tephenbettinger|ulaimaninfante)|t(?:ashacap|omashntr)|unb(?:2015|int)|yostinbellamohammad))\@hotmail\.com$/i
+describe REPTO_419_FRAUD_HM Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_HM 3.000
+tflags REPTO_419_FRAUD_HM publish
+##} REPTO_419_FRAUD_HM
+
+##{ REPTO_419_FRAUD_OL
+
+header REPTO_419_FRAUD_OL Reply-To:addr =~ /^(?=[^\s<>@]+\@outlook\.com)(?:(?:a(?:a(?:23423|lexandermason)|brahamwilliamsonrpsltduk|l(?:bertchebe|exw113)|ndrew(?:_hai|gamble7)|utoresponds)|b(?:a(?:r(?:bayo_jacobs|claysplc2016)|sidris)|etty\.c_investment|illgfile203|riam8molefe)|c(?:bforeignremitdept|harlie\.j\.goodmand|o(?:l\.(?:airforce\.saadwarfali|warfalisaadairforce)|mpensationfunding))|d(?:eborahleeconsult|onation_dept|rjonathankuku)|e(?:benezernonyeagwuceozbplc|urope\.win2)|f(?:abienna\.s|iduciarybmw2020)|g(?:20compessdesk|eoffreynicolas\.esq|ilbertowosukk)|huyennvoha|j(?:ackson4steve|e(?:anedo1?|ssicameir30))|k(?:aujong|kkunited1)|l(?:\.williams722|ui1480)|m(?:card\.msoftuk|gbplc3|illerjeffreylawchambers|oussa\.sayyid|r(?:\.henrichkisker|antonioguterress|bryandavisuk44|jonah\.ot|mduku|s(?:\.coraluttah|_elizabeth20|michelleallison|roseallen)|vitaloadams)|spvt2020)|p(?:aul(?:\.walter120|blakey05)|hilcohen0012)|qanejmhffgg|r(?:c19691|ichardwahlfreegrant)|s(?:aaman10|gi2019|ilverlakeconsultantllc|t(?:\.monica|eve\.lenkathomson11))|t(?:g331965|oyotadrawboard2019|reff11)|unvanzyl_mrs|winuklotocash2018))\@outlook\.com$/i
+describe REPTO_419_FRAUD_OL Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_OL 3.000
+tflags REPTO_419_FRAUD_OL publish
+##} REPTO_419_FRAUD_OL
+
+##{ REPTO_419_FRAUD_PM
+
+header REPTO_419_FRAUD_PM Reply-To:addr =~ /^(?=[^\s<>@]+\@protonmail\.com)(?:(?:armstrong0244|berndkoch|davidmetus|euclaim|p(?:a(?:melagriffi|t\.nwankwo)|rotonydonation)|scottpeter012|v\.brianpierre|wraggsmk|yihsbltan|ziraatbankasi))\@protonmail\.com$/i
+describe REPTO_419_FRAUD_PM Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_PM 3.000
+tflags REPTO_419_FRAUD_PM publish
+##} REPTO_419_FRAUD_PM
+
+##{ REPTO_419_FRAUD_QQ
+
+header REPTO_419_FRAUD_QQ Reply-To:addr =~ /^(?=[^\s<>@]+\@qq\.com)(?:(?:1(?:731419584|821317384)|2(?:0(?:32508290|90641921)|3(?:72948239|89029403|97857528)|751232036)|3(?:323469072|523284224)|a(?:gent(?:markruben_fbi|promofficer)|kia\.j55)|claimoffice1|dennisonctrenton|l\.valiant|peterwong20177|s(?:abrinacrawford000|hu60w)|treasury_deptment0|wang_cjianlin))\@qq\.com$/i
+describe REPTO_419_FRAUD_QQ Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_QQ 3.000
+tflags REPTO_419_FRAUD_QQ publish
+##} REPTO_419_FRAUD_QQ
+
+##{ REPTO_419_FRAUD_YH
+
+header REPTO_419_FRAUD_YH Reply-To:addr =~ /^(?=[^\s<>@]+\@yahoo\.com)(?:(?:a(?:driantongson13|gaaintl\-4g5ee\.w3|l(?:berts\.odia|esiakalina2006)|mbassador\.l|nn(?:awax48|hester\.usa4))|b(?:a(?:che\.delfine|nk\.phbng14|rr(?:\.thomasclark|ister\.(?:dennis11|marcus)|lawrencefubara39|william_davies))|en(?:jaminb34|nicholas22)|illlawrenceee|riceangela45)|c(?:\.(?:aroline90|coulibaly2)|a(?:binet_maitre_emmanuel_patris|mpbellwilliamms)|h(?:arlesscharf112|hoy\.t|im\.w|jackson65)|juan852|o(?:llins(?:mattew32|wayne84)|mpliment\.sseason|ntelamine)|ythiamiller\.un10)|d(?:hamilton9099|i(?:aanesoto190|plomaticagent180)|r(?:\.aminramli|victorobaji))|edwarddawson|f(?:aizaadama2016|bicompensation_funds|ederal\.r73|id00180)|g(?:ov\.ukmessageboard|raham\.eddie2016|uesfilet1336523)|harry1vans|i(?:\.project33411|befranfgnfmf|nfo(?:111mail|bank1|money)|project32411)|j(?:\.edwards228|a(?:ckson\.davis915|ne(?:_ooparah|temoon150))|essica\.p_family|inping\.tw|kimyong21|lawrencefrb|ulietjohnsonn)|k(?:elvinmark629|im(?:\.leang2018?|leang(?:575|90))|yle_grubbe)|l(?:e(?:a_edem13|ge331|hman(?:909|bila))|i(?:m_kaan|sarobinson_555|uhngbin)|y_cheapiseth(?:11|2019))|m(?:arie_avis12|d(?:\.ps|zsesszika672)|elissalewis(?:10001|4004)|iss\.zarryb|o(?:hammedaahil46|keye79)|r(?:kellyayi62|s(?:\.esthernicolas|isabella\.dzesszikan|themo))|s\.gracie_olakun|unny(?:\.sopheap207|_sopheap30))|n(?:adhowc|estordaniel2|orahuz1960)|o(?:fficial_franksylvester88|legkozyrev1|mranshaalan52)|p(?:a(?:ckerkelvin|yus123x)|eterlee1950|rincerasmane)|r(?:alphw(?:\.johnson78|johnson78)|i(?:chard\.w94|taadamsw10)|o(?:b(?:ertbailey2004|orts20)|se(?:mary\.3as|richard655)))|s(?:amthong4040|igurlauganna34|leo25|mith(?:\.dr|colin767)|opheap\.munny|pwalker101|sgt\.bethany|tevecox\.98)|t(?:\.murasawa|ep1chen|heara\.chhoy|ylerhess\.43)|u(?:butu16|kdebtmanagement5)|vanserge2001|will(?:clark0010|iamsimon(?:22|521))|xianglongdai60|zhaodonghk))\@yahoo\.com$/i
+describe REPTO_419_FRAUD_YH Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_YH 3.000
+tflags REPTO_419_FRAUD_YH publish
+##} REPTO_419_FRAUD_YH
+
+##{ REPTO_419_FRAUD_YH_LOOSE
+
+meta REPTO_419_FRAUD_YH_LOOSE __REPTO_419_FRAUD_YH_LOOSE && !REPTO_419_FRAUD_YH
+describe REPTO_419_FRAUD_YH_LOOSE Ends-in-digits Reply-To is similar to known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_YH_LOOSE 1.000
+tflags REPTO_419_FRAUD_YH_LOOSE publish
+##} REPTO_419_FRAUD_YH_LOOSE
+
+##{ REPTO_419_FRAUD_YJ
+
+header REPTO_419_FRAUD_YJ Reply-To:addr =~ /^(?=[^\s<>@]+\@yahoo\.co\.jp)(?:(?:a(?:drianbayford|lainminc73|n(?:gelinarichardson01|ita(?:kirkweeks45|usarpac)))|b(?:a(?:lmaa1115|rrevansthomas213)|ealife4god|gsblcagent|nchmclaw)|d(?:eborahmark2|raymndch)|e(?:d(?:032000100|ithi0iochou)|millybrownnc|ssicajlavoie|velynjoshua56)|fred_gamba|henrybanko1970|m(?:24erc|aryp1799_8335|eghanbutlerfca|ktbradley|oneygram100|rs_chen_00001)|nikbnson1|o(?:fficialinfoemail|livia_mabor)|pamgells|r(?:acheljude000|eplykasikorn|itawi668)|s(?:andrabates418|d203077)))\@yahoo\.co\.jp$/i
+describe REPTO_419_FRAUD_YJ Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_YJ 3.000
+tflags REPTO_419_FRAUD_YJ publish
+##} REPTO_419_FRAUD_YJ
+
+##{ REPTO_419_FRAUD_YN
+
+header REPTO_419_FRAUD_YN Reply-To:addr =~ /^(?=[^\s<>@]+\@yandex\.com)(?:(?:a(?:lsharibi|m(?:andarandle|g3333txx101)|na\.mariposa|wesome\.mariacarmen)|b(?:ayemahama|igghandgrant|radely\.j)|clemlau|diezanimadueke|f(?:3dex\.courier|ed\.r3v|reedommarketinvestments|uzhongjun\.director)|g(?:\.anniversary(?:101)?|add4fi\.aisha)|hhalesbbanddd?|irenaa\.georgiadou|j(?:efrey(?:\-dean|\.dean11)|o(?:hnnicholsonjr|seph\-scott2k5)|uliet\.lee2222)|kenhamberlet|l(?:es20sc|otointernational\.elgordo)|m(?:a(?:hama\.baye|rcarmenguty)|fdpm|ohamed\.bennani|r(?:\-(?:jos\.martins|robert\-patrick\.patrick)|\.kongkea|spercy))|nokiahouse1[03]|olivia\.mabor|p(?:aragonloansinc|hilipfen778|ri(?:ncedarren0244|vatemail24)|ullmanrb)|rich(?:ard\.wahl|lawands)|skyeloanand\.financelimited|t(?:\.baloyi|an\.sung|omss\.smith|resor\.mambo)|w(?:b\.foundation|ill(?:1amsmarg1|iamsimon1960))|za\.dc2016))\@yandex\.com$/i
+describe REPTO_419_FRAUD_YN Reply-To is known advance fee fraud collector mailbox
+#score REPTO_419_FRAUD_YN 3.000
+tflags REPTO_419_FRAUD_YN publish
+##} REPTO_419_FRAUD_YN
+
+##{ RISK_FREE
+
+meta     RISK_FREE      __FRAUD_IOV && !__UNSUB_LINK && !__VIA_ML && !__HTML_LINK_IMAGE && !__SUBSCRIPTION_INFO && !__HS_SUBJ_RE_FW && !__LCL__ENV_AND_HDR_FROM_MATCH 
+describe RISK_FREE      No risk!
+##} RISK_FREE
+
+##{ SB_GIF_AND_NO_URIS
+
+meta SB_GIF_AND_NO_URIS (__GIF_ATTACH&&!__HAS_ANY_URI&&!__HAS_ANY_EMAIL)
+##} SB_GIF_AND_NO_URIS
+
+##{ SENDGRID_REDIR
+
+meta       SENDGRID_REDIR              __SENDGRID_REDIR_NOPHISH && !ALL_TRUSTED && !__HAS_ERRORS_TO && !__HAS_X_BEEN_THERE && !__HAS_X_MAILMAN_VERSION && !__STY_INVIS_MANY && !__HTML_SINGLET_10 && !__HAVE_BOUNCE_RELAYS 
+describe   SENDGRID_REDIR              Redirect URI via Sendgrid
+#score      SENDGRID_REDIR              1.500  # limit
+tflags     SENDGRID_REDIR              publish
+##} SENDGRID_REDIR
+
+##{ SENDGRID_REDIR_PHISH
+
+meta       SENDGRID_REDIR_PHISH        __SENDGRID_REDIR_PHISH
+describe   SENDGRID_REDIR_PHISH        Redirect URI via Sendgrid + phishing signs
+#score      SENDGRID_REDIR_PHISH        3.500  # limit
+tflags     SENDGRID_REDIR_PHISH        publish
+##} SENDGRID_REDIR_PHISH
+
+##{ SEO_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     SEO_SUSP_NTLD __FROM_ADDRLIST_SUSPNTLD && (__PDS_SEO1 + __PDS_SEO2 >= 1)
+tflags   SEO_SUSP_NTLD publish
+describe SEO_SUSP_NTLD SEO offer from suspicious TLD
+#score    SEO_SUSP_NTLD 1.2 # limit
+endif
+endif
+##} SEO_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ SERGIO_SUBJECT_VIAGRA01
+
+header   SERGIO_SUBJECT_VIAGRA01   Subject =~ /v[^a-zA-Z0-9]{0,3}[i1l][^a-zA-Z0-9]{0,3}a[^a-zA-Z0-9 ]{0,3}g[^a-zA-Z0-9]{0,3}r[^a-zA-Z0-9]{0,3}a/i
+describe SERGIO_SUBJECT_VIAGRA01   Viagra garbled subject
+##} SERGIO_SUBJECT_VIAGRA01
+
+##{ SHOPIFY_IMG_NOT_RCVD_SFY
+
+meta       SHOPIFY_IMG_NOT_RCVD_SFY    __SHOPIFY_IMG_NOT_RCVD_SFY && !MIME_QP_LONG_LINE && !__RCD_RDNS_MTA_MESSY && !__AC_UNSUB_URI && !__HAS_CAMPAIGNID && !__HAS_SENDER && !__HAS_ORGANIZATION && !__RCD_RDNS_OB && !__DOS_LINK 
+#score      SHOPIFY_IMG_NOT_RCVD_SFY    2.500  # limit
+describe   SHOPIFY_IMG_NOT_RCVD_SFY    Shopify hosted image but message not from Shopify
+tflags     SHOPIFY_IMG_NOT_RCVD_SFY    publish
+##} SHOPIFY_IMG_NOT_RCVD_SFY
+
+##{ SHORTENER_SHORT_IMG
+
+meta       SHORTENER_SHORT_IMG         __URL_SHORTENER && HTML_SHORT_LINK_IMG_1
+describe   SHORTENER_SHORT_IMG         Short HTML + image + URL shortener
+#score      SHORTENER_SHORT_IMG         2.500  # limit
+tflags     SHORTENER_SHORT_IMG         publish
+##} SHORTENER_SHORT_IMG
+
+##{ SHORTENER_SHORT_SUBJ
+
+meta        SHORTENER_SHORT_SUBJ       __SHORTENER_SHORT_SUBJ && !__DOS_HAS_LIST_UNSUB && !__HAS_LIST_ID && !__HDR_RCVD_GOOGLE && !__XPRIO 
+describe    SHORTENER_SHORT_SUBJ       URL shortener (avoiding URIBL?) + short subject
+#score       SHORTENER_SHORT_SUBJ       3.000  # limit
+##} SHORTENER_SHORT_SUBJ
+
+##{ SHORT_HELO_AND_INLINE_IMAGE
+
+meta SHORT_HELO_AND_INLINE_IMAGE     (__HELO_NO_DOMAIN && __ANY_IMAGE_ATTACH)
+describe SHORT_HELO_AND_INLINE_IMAGE    Short HELO string, with inline image
+##} SHORT_HELO_AND_INLINE_IMAGE
+
+##{ SHORT_IMG_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     SHORT_IMG_SUSP_NTLD __LCL__KAM_BODY_LENGTH_LT_1024 && __HTML_LINK_IMAGE && __FROM_ADDRLIST_SUSPNTLD
+tflags   SHORT_IMG_SUSP_NTLD publish
+describe SHORT_IMG_SUSP_NTLD Short HTML + image + suspicious TLD
+#score    SHORT_IMG_SUSP_NTLD 1.5 # limit
+endif
+endif
+##} SHORT_IMG_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ SHORT_SHORTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     SHORT_SHORTNER __PDS_MSG_512 && (__PDS_URISHORTENER || __URL_SHORTENER) && !DRUGS_ERECTILE
+describe SHORT_SHORTNER Short body with little more than a link to a shortener
+#score    SHORT_SHORTNER 2.0 # limit
+endif
+endif
+##} SHORT_SHORTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ SHORT_TERM_PRICE
+
+body SHORT_TERM_PRICE /short\W+term\W+(target|projected)(\W+price)?/i
+##} SHORT_TERM_PRICE
+
+##{ SINGLETS_LOW_CONTRAST
+
+meta      SINGLETS_LOW_CONTRAST         __HTML_SINGLET_MANY && __HTML_FONT_LOW_CONTRAST_MINFP
+describe  SINGLETS_LOW_CONTRAST         Single-letter formatted HTML + hidden text
+tflags    SINGLETS_LOW_CONTRAST         publish
+##} SINGLETS_LOW_CONTRAST
+
+##{ SPAMMY_XMAILER
+
+meta SPAMMY_XMAILER (__XM_OL_28001441||__XM_OL_48072300||__XM_OL_28004682||__XM_OL_10_0_4115||__XM_OL_4_72_2106_4)
+describe SPAMMY_XMAILER X-Mailer string is common in spam and not in ham
+##} SPAMMY_XMAILER
+
+##{ SPOOFED_FREEMAIL
+
+meta     SPOOFED_FREEMAIL       __SPOOFED_FREEMAIL && !__HAS_IN_REPLY_TO && !__FS_SUBJ_RE && !__MSGID_GUID && !__freemail_safe && !__THREADED && !__HDRS_LCASE_KNOWN && !__HDR_RCVD_GOOGLE && !__HDR_RCVD_TONLINEDE
+#score    SPOOFED_FREEMAIL       2.000 # limit
+tflags   SPOOFED_FREEMAIL       net
+##} SPOOFED_FREEMAIL
+
+##{ SPOOFED_FREEMAIL_NO_RDNS
+
+meta     SPOOFED_FREEMAIL_NO_RDNS __SPOOFED_FREEMAIL && __RDNS_NONE
+describe SPOOFED_FREEMAIL_NO_RDNS From SPOOFED_FREEMAIL and no rDNS
+#score    SPOOFED_FREEMAIL_NO_RDNS 1.5
+##} SPOOFED_FREEMAIL_NO_RDNS
+
+##{ SPOOFED_FREEM_REPTO
+
+meta      SPOOFED_FREEM_REPTO           __SPOOFED_FREEM_REPTO && !__AC_TINY_FONT && !__HAS_IN_REPLY_TO && !__HAS_THREAD_INDEX 
+describe  SPOOFED_FREEM_REPTO           Forged freemail sender with freemail reply-to
+#score     SPOOFED_FREEM_REPTO           2.500
+tflags    SPOOFED_FREEM_REPTO           net publish
+##} SPOOFED_FREEM_REPTO
+
+##{ SPOOFED_FREEM_REPTO_CHN
+
+meta      SPOOFED_FREEM_REPTO_CHN       (__SPOOFED_FREEM_REPTO || FORGED_YAHOO_RCVD) && __REPTO_CHN_FREEM
+describe  SPOOFED_FREEM_REPTO_CHN       Forged freemail sender with Chinese freemail reply-to
+#score     SPOOFED_FREEM_REPTO_CHN       3.500
+tflags    SPOOFED_FREEM_REPTO_CHN       net publish
+##} SPOOFED_FREEM_REPTO_CHN
+
+##{ SPOOFED_FREEM_REPTO_RUS
+
+meta      SPOOFED_FREEM_REPTO_RUS       (__SPOOFED_FREEM_REPTO || FORGED_YAHOO_RCVD) && __REPTO_RUS_FREEM
+describe  SPOOFED_FREEM_REPTO_RUS       Forged freemail sender with Russian freemail reply-to
+#score     SPOOFED_FREEM_REPTO_RUS       3.500
+tflags    SPOOFED_FREEM_REPTO_RUS       net publish
+##} SPOOFED_FREEM_REPTO_RUS
+
+##{ SPOOF_GMAIL_MID
+
+meta     SPOOF_GMAIL_MID SPOOFED_FREEMAIL && __PDS_FROM_GMAIL && !__PDS_GMAIL_MID
+#score    SPOOF_GMAIL_MID 1.5
+describe SPOOF_GMAIL_MID From Gmail but it doesn't seem to be...
+##} SPOOF_GMAIL_MID
+
+##{ STATIC_XPRIO_OLE
+
+meta        STATIC_XPRIO_OLE     __STATIC_XPRIO_OLE
+describe    STATIC_XPRIO_OLE     Static RDNS + X-Priority + MIMEOLE
+#score       STATIC_XPRIO_OLE     2.000   # limit
+tflags      STATIC_XPRIO_OLE     publish
+##} STATIC_XPRIO_OLE
+
+##{ STOCK_IMG_CTYPE
+
+meta STOCK_IMG_CTYPE (__ANY_IMAGE_ATTACH&&__ENV_AND_HDR_FROM_MATCH&&__CTYPE_ONETAB_GIF&&__HTML_IMG_ONLY)
+describe STOCK_IMG_CTYPE  Stock spam image part, with distinctive Content-Type header
+##} STOCK_IMG_CTYPE
+
+##{ STOCK_IMG_HDR_FROM
+
+meta STOCK_IMG_HDR_FROM  (__ANY_IMAGE_ATTACH&&__ENV_AND_HDR_FROM_MATCH&&__TVD_FW_GRAPHIC_ID1&&__HTML_IMG_ONLY)
+describe STOCK_IMG_HDR_FROM Stock spam image part, with distinctive From line
+##} STOCK_IMG_HDR_FROM
+
+##{ STOCK_IMG_HTML
+
+meta STOCK_IMG_HTML  (__ANY_IMAGE_ATTACH&&__ENV_AND_HDR_FROM_MATCH&&__PART_STOCK_CID&&__HTML_IMG_ONLY)
+describe STOCK_IMG_HTML   Stock spam image part, with distinctive HTML
+##} STOCK_IMG_HTML
+
+##{ STOCK_IMG_OUTLOOK
+
+meta STOCK_IMG_OUTLOOK  (__ANY_IMAGE_ATTACH&&__ENV_AND_HDR_FROM_MATCH&&__XM_MS_IN_GENERAL&&__HTML_LENGTH_1536_2048)
+describe STOCK_IMG_OUTLOOK  Stock spam image part, with Outlook-like features
+##} STOCK_IMG_OUTLOOK
+
+##{ STOCK_LOW_CONTRAST
+
+meta        STOCK_LOW_CONTRAST    (__HTML_FONT_LOW_CONTRAST_MINFP && __FB_S_STOCK) && !__BUGGED_IMG 
+describe    STOCK_LOW_CONTRAST    Stocks + hidden text
+#score       STOCK_LOW_CONTRAST    2.500   # limit
+tflags      STOCK_LOW_CONTRAST    publish
+##} STOCK_LOW_CONTRAST
+
+##{ STOCK_PRICES
+
+meta STOCK_PRICES (SHORT_TERM_PRICE && LONG_TERM_PRICE)
+##} STOCK_PRICES
+
+##{ STOCK_TIP
+
+meta        STOCK_TIP         __STOCK_TIP && !__DKIM_EXISTS 
+describe    STOCK_TIP         Stock tips
+#score       STOCK_TIP         3.000   # limit
+tflags      STOCK_TIP         publish
+##} STOCK_TIP
+
+##{ STOX_AND_PRICE
+
+meta STOX_AND_PRICE     CURR_PRICE && STOX_REPLY_TYPE
+##} STOX_AND_PRICE
+
+##{ STOX_REPLY_TYPE
+
+header STOX_REPLY_TYPE  Content-Type =~ /text\/plain; .* reply-type=original/
+##} STOX_REPLY_TYPE
+
+##{ STOX_REPLY_TYPE_WITHOUT_QUOTES
+
+meta STOX_REPLY_TYPE_WITHOUT_QUOTES (STOX_REPLY_TYPE && !(__HS_SUBJ_RE_FW || __HS_QUOTE))
+##} STOX_REPLY_TYPE_WITHOUT_QUOTES
+
+##{ SUBJECT_NEEDS_ENCODING
+
+meta SUBJECT_NEEDS_ENCODING    (!__SUBJECT_ENCODED_B64 && !__SUBJECT_ENCODED_QP) && __SUBJECT_NEEDS_MIME
+describe SUBJECT_NEEDS_ENCODING  Subject is encoded but does not specify the encoding
+##} SUBJECT_NEEDS_ENCODING
+
+##{ SUBJ_BRKN_WORDNUMS ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  meta      SUBJ_BRKN_WORDNUMS     __SUBJ_BRKN_WORDNUMS && !DKIM_SIGNED && !__TO___LOWER
+  describe  SUBJ_BRKN_WORDNUMS     Subject contains odd word breaks and numbers
+endif
+##} SUBJ_BRKN_WORDNUMS ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+##{ SUBJ_UNNEEDED_HTML
+
+meta      SUBJ_UNNEEDED_HTML            __SUBJ_UNNEEDED_HTML && !__NOT_SPOOFED && !__RP_MATCHES_RCVD && !__VIA_ML 
+describe  SUBJ_UNNEEDED_HTML            Unneeded HTML formatting in Subject:
+##} SUBJ_UNNEEDED_HTML
+
+##{ SYSADMIN
+
+meta        SYSADMIN             __SYSADMIN && !ALL_TRUSTED && !__ANY_TEXT_ATTACH && !__DKIM_EXISTS && !__LCL__ENV_AND_HDR_FROM_MATCH && !__MSGID_OK_DIGITS 
+describe    SYSADMIN             Supposedly from your IT department
+#score       SYSADMIN             3.500        # limit
+tflags      SYSADMIN             publish
+##} SYSADMIN
+
+##{ TBIRD_SUSP_MIME_BDRY
+
+meta           TBIRD_SUSP_MIME_BDRY  __MUA_TBIRD && __TB_MIME_BDRY_NO_Z
+describe       TBIRD_SUSP_MIME_BDRY  Unlikely Thunderbird MIME boundary
+##} TBIRD_SUSP_MIME_BDRY
+
+##{ TEQF_USR_IMAGE
+
+meta      TEQF_USR_IMAGE                __TO_EQ_FROM_USR_NN_MINFP && __ANY_IMAGE_ATTACH 
+describe  TEQF_USR_IMAGE                To and from user nearly same + image
+tflags    TEQF_USR_IMAGE                publish
+##} TEQF_USR_IMAGE
+
+##{ TEQF_USR_MSGID_HEX
+
+meta      TEQF_USR_MSGID_HEX            __TO_EQ_FROM_USR_NN_MINFP && __MSGID_OK_HEX && !__MSGID_NOFQDN2
+describe  TEQF_USR_MSGID_HEX            To and from user nearly same + unusual message ID
+tflags    TEQF_USR_MSGID_HEX            publish
+##} TEQF_USR_MSGID_HEX
+
+##{ TEQF_USR_MSGID_MALF
+
+meta      TEQF_USR_MSGID_MALF           __TO_EQ_FROM_USR_NN_MINFP && __MSGID_NOFQDN2 
+describe  TEQF_USR_MSGID_MALF           To and from user nearly same + malformed message ID
+tflags    TEQF_USR_MSGID_MALF           publish
+##} TEQF_USR_MSGID_MALF
+
+##{ THEBAT_UNREG
+
+header  THEBAT_UNREG  X-Mailer =~ /^The Bat! .{0,20} UNREG$/
+##} THEBAT_UNREG
+
+##{ THIS_AD
+
+meta        THIS_AD           __THIS_AD && !__MOZILLA_MSGID && !__FROM_ENCODED_QP && !__CR_IN_SUBJ && !__RP_MATCHES_RCVD 
+describe    THIS_AD           "This ad" and variants
+tflags      THIS_AD           publish
+##} THIS_AD
+
+##{ THIS_IS_ADV_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     THIS_IS_ADV_SUSP_NTLD __FROM_ADDRLIST_SUSPNTLD && __ADMITS_SPAM
+tflags   THIS_IS_ADV_SUSP_NTLD publish
+describe THIS_IS_ADV_SUSP_NTLD This is an advertisement from a suspicious TLD
+#score    THIS_IS_ADV_SUSP_NTLD 1.5 # limit
+endif
+endif
+##} THIS_IS_ADV_SUSP_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ TONLINE_FAKE_DKIM
+
+meta        TONLINE_FAKE_DKIM          __HDR_RCVD_TONLINEDE && __DKIM_EXISTS 
+describe    TONLINE_FAKE_DKIM          t-online.de doesn't do DKIM
+#score       TONLINE_FAKE_DKIM          3.000  # limit
+tflags      TONLINE_FAKE_DKIM          publish
+##} TONLINE_FAKE_DKIM
+
+##{ TONOM_EQ_TOLOC_SHRT_SHRTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     TONOM_EQ_TOLOC_SHRT_SHRTNER __PDS_URISHORTENER && __PDS_TONAME_EQ_TOLOCAL && __PDS_MSG_1024
+describe TONOM_EQ_TOLOC_SHRT_SHRTNER Short email with shortener and To:name eq To:local
+#score    TONOM_EQ_TOLOC_SHRT_SHRTNER 1.5 # limit
+endif
+endif
+##} TONOM_EQ_TOLOC_SHRT_SHRTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ TO_EQ_FM_DIRECT_MX
+
+meta           TO_EQ_FM_DIRECT_MX   __TO_EQ_FM_DIRECT_MX && !__THREAD_INDEX_GOOD && !__IS_EXCH && !__CTYPE_MULTIPART_MIXED 
+describe       TO_EQ_FM_DIRECT_MX   To == From and direct-to-MX
+#score          TO_EQ_FM_DIRECT_MX   2.500     # limit
+tflags         TO_EQ_FM_DIRECT_MX   publish
+##} TO_EQ_FM_DIRECT_MX
+
+##{ TO_EQ_FM_DOM_HTML_IMG
+
+meta           TO_EQ_FM_DOM_HTML_IMG    __TO_EQ_FM_DOM_HTML_IMG && !__NOT_SPOOFED && !__CTYPE_MULTIPART_ALT && !__IS_EXCH && !__UNSUB_LINK && !__COMMENT_EXISTS && !__FM_TO_ALL_NUMS && !__DKIM_EXISTS && !__HAS_THREAD_INDEX && !__MSGID_JAVAMAIL && !__RP_MATCHES_RCVD
+describe       TO_EQ_FM_DOM_HTML_IMG    To domain == From domain and HTML image link
+##} TO_EQ_FM_DOM_HTML_IMG
+
+##{ TO_EQ_FM_DOM_HTML_ONLY
+
+meta           TO_EQ_FM_DOM_HTML_ONLY   __TO_EQ_FM_DOM_HTML_ONLY && !__NOT_SPOOFED && !__CTYPE_MULTIPART_ALT && !HTML_MIME_NO_HTML_TAG && !__IS_EXCH && !__MSGID_BEFORE_RECEIVED && !__FM_TO_ALL_NUMS && !__FROM_LOWER && !__HAS_IN_REPLY_TO && !__BUGGED_IMG && !__FROM_ENCODED_QP && !__MSGID_OK_HEX
+describe       TO_EQ_FM_DOM_HTML_ONLY   To domain == From domain and HTML only
+##} TO_EQ_FM_DOM_HTML_ONLY
+
+##{ TO_EQ_FM_DOM_SPF_FAIL ifplugin Mail::SpamAssassin::Plugin::SPF
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta           TO_EQ_FM_DOM_SPF_FAIL    __TO_EQ_FM_DOM_SPF_FAIL && !__THREADED && !ALL_TRUSTED
+  describe       TO_EQ_FM_DOM_SPF_FAIL    To domain == From domain and external SPF failed
+  tflags         TO_EQ_FM_DOM_SPF_FAIL    net
+endif
+##} TO_EQ_FM_DOM_SPF_FAIL ifplugin Mail::SpamAssassin::Plugin::SPF
+
+##{ TO_EQ_FM_HTML_ONLY
+
+meta           TO_EQ_FM_HTML_ONLY   __TO_EQ_FM_HTML_ONLY && !ALL_TRUSTED && !__RCD_RDNS_MAIL_MESSY && !__RCD_RDNS_SMTP_MESSY && !__NOT_SPOOFED && !__DKIM_EXISTS && !__ANY_IMAGE_ATTACH && !__FROM_LOWER && !__TAG_EXISTS_CENTER
+describe       TO_EQ_FM_HTML_ONLY   To == From and HTML only
+##} TO_EQ_FM_HTML_ONLY
+
+##{ TO_EQ_FM_SPF_FAIL ifplugin Mail::SpamAssassin::Plugin::SPF
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta           TO_EQ_FM_SPF_FAIL    __TO_EQ_FM_SPF_FAIL && !__THREADED && !ALL_TRUSTED
+  describe       TO_EQ_FM_SPF_FAIL    To == From and external SPF failed
+  tflags         TO_EQ_FM_SPF_FAIL    net
+endif
+##} TO_EQ_FM_SPF_FAIL ifplugin Mail::SpamAssassin::Plugin::SPF
+
+##{ TO_IN_SUBJ
+
+meta           TO_IN_SUBJ           __TO_IN_SUBJ && !__VIA_ML && !MISSING_MIMEOLE && !__THREAD_INDEX_GOOD && !__FSL_RELAY_GOOGLE && !__LCL__ENV_AND_HDR_FROM_MATCH && !__HS_SUBJ_RE_FW
+describe       TO_IN_SUBJ           To address is in Subject
+tflags         TO_IN_SUBJ           publish
+#score          TO_IN_SUBJ           0.1
+##} TO_IN_SUBJ
+
+##{ TO_NAME_SUBJ_NO_RDNS
+
+meta       TO_NAME_SUBJ_NO_RDNS        LOCALPART_IN_SUBJECT && __RDNS_NONE 
+describe   TO_NAME_SUBJ_NO_RDNS        Recipient username in subject + no rDNS
+#score      TO_NAME_SUBJ_NO_RDNS        3.000  # limit
+tflags     TO_NAME_SUBJ_NO_RDNS        publish
+##} TO_NAME_SUBJ_NO_RDNS
+
+##{ TO_NO_BRKTS_FROM_MSSP
+
+meta       TO_NO_BRKTS_FROM_MSSP     __TO_NO_BRKTS_FROM_RUNON && !__RCD_RDNS_MTA_MESSY && !__CTYPE_MULTIPART_ALT && !__REPTO_QUOTE && !__MIME_QP && !__TO___LOWER && !__BUGGED_IMG && !__SUBJECT_ENCODED_QP && !__VIA_ML && !__FR_SPACING_8 && !__TAG_EXISTS_CENTER && !__RCVD_ZIXMAIL && !__RP_MATCHES_RCVD && !__HAS_SENDER 
+#score      TO_NO_BRKTS_FROM_MSSP     2.50     # max
+describe   TO_NO_BRKTS_FROM_MSSP     Multiple header formatting problems
+##} TO_NO_BRKTS_FROM_MSSP
+
+##{ TO_NO_BRKTS_HTML_IMG
+
+meta       TO_NO_BRKTS_HTML_IMG    __TO_NO_BRKTS_HTML_IMG && !__FM_TO_ALL_NUMS && !__FROM_FULL_NAME && !__HAS_THREAD_INDEX && !__DKIM_EXISTS && !__HAS_SENDER && !__THREADED && !__LONGLINE 
+describe   TO_NO_BRKTS_HTML_IMG    To: lacks brackets and HTML and one image
+#score      TO_NO_BRKTS_HTML_IMG    2.000   # limit
+tflags     TO_NO_BRKTS_HTML_IMG    publish
+##} TO_NO_BRKTS_HTML_IMG
+
+##{ TO_NO_BRKTS_HTML_ONLY
+
+meta       TO_NO_BRKTS_HTML_ONLY   __TO_NO_BRKTS_HTML_ONLY && !RDNS_NONE && !__MIME_QP && !__MSGID_JAVAMAIL && !__CTYPE_CHARSET_QUOTED && !__SUBJECT_ENCODED_B64 && !__VIA_ML && !__MSGID_BEFORE_RECEIVED && !__MIME_BASE64 && !__RCD_RDNS_MAIL_MESSY && !__COMMENT_EXISTS && !LOTS_OF_MONEY && !__TAG_EXISTS_CENTER && !__UPPERCASE_URI && !__UNSUB_LINK && !__RCD_RDNS_MX_MESSY && !__DKIM_EXISTS && !__BUGGED_IMG && !__FM_TO_ALL_NUMS && !__URI_12LTRDOM && !__RDNS_NO_SUBDOM && !__HDRS_LCASE && !__LCL__ENV_AND_HDR_FROM_MATCH 
+#score      TO_NO_BRKTS_HTML_ONLY   2.00       # limit
+describe   TO_NO_BRKTS_HTML_ONLY   To: lacks brackets and HTML only
+tflags     TO_NO_BRKTS_HTML_ONLY   publish
+##} TO_NO_BRKTS_HTML_ONLY
+
+##{ TO_NO_BRKTS_MSFT
+
+meta       TO_NO_BRKTS_MSFT         __TO_NO_BRKTS_MSFT && !__VIA_ML && !__LYRIS_EZLM_REMAILER && !__THREAD_INDEX_GOOD && !__IS_EXCH && !__UNSUB_LINK && !__NOT_SPOOFED && !__DOS_HAS_LIST_UNSUB && !__NAME_EQ_EMAIL && !__SUBJECT_ENCODED_QP && !__THREADED && !__HAS_THREAD_INDEX && !__HAS_X_REF && !__HAS_IN_REPLY_TO && !__FROM_ENCODED_QP && !__RP_MATCHES_RCVD
+describe   TO_NO_BRKTS_MSFT         To: lacks brackets and supposed Microsoft tool
+#score      TO_NO_BRKTS_MSFT         2.50      # limit
+##} TO_NO_BRKTS_MSFT
+
+##{ TO_NO_BRKTS_NORDNS_HTML
+
+meta       TO_NO_BRKTS_NORDNS_HTML      __TO_NO_BRKTS_NORDNS_HTML && !ALL_TRUSTED && !__MSGID_JAVAMAIL && !__MSGID_BEFORE_RECEIVED && !__VIA_ML && !__UA_MUTT && !__COMMENT_EXISTS && !__HTML_LENGTH_384 && !__MIME_BASE64 && !__UPPERCASE_URI && !__TO___LOWER && !__TAG_EXISTS_CENTER && !__LONGLINE && !__DKIM_EXISTS 
+#score      TO_NO_BRKTS_NORDNS_HTML      2.00  # limit
+describe   TO_NO_BRKTS_NORDNS_HTML      To: lacks brackets and no rDNS and HTML only
+tflags     TO_NO_BRKTS_NORDNS_HTML      publish
+##} TO_NO_BRKTS_NORDNS_HTML
+
+##{ TO_NO_BRKTS_PCNT
+
+meta       TO_NO_BRKTS_PCNT         __TO_NO_BRKTS_PCNT && !__SUBJECT_ENCODED_B64 && !__DOS_HAS_LIST_UNSUB && !__VIA_ML && !__ISO_2022_JP_DELIM && !__IMS_MSGID && !__THREAD_INDEX_GOOD && !__RCD_RDNS_MX_MESSY && !__UNSUB_LINK && !__LONGLINE && !URI_HEX && !__RP_MATCHES_RCVD && !__MAIL_LINK && !__BUGGED_IMG && !__MIME_QP && !__COMMENT_EXISTS && !__TAG_EXISTS_STYLE && !__LCL__ENV_AND_HDR_FROM_MATCH && !__HAS_X_MAILER && !__HTML_LINK_IMAGE && !__SENDER_BOT && !__DKIM_EXISTS && !__KHOP_NO_FULL_NAME && !__THREADED 
+describe   TO_NO_BRKTS_PCNT         To: lacks brackets + percentage
+#score      TO_NO_BRKTS_PCNT         2.50      # limit
+tflags     TO_NO_BRKTS_PCNT         publish
+##} TO_NO_BRKTS_PCNT
+
+##{ TO_TOO_MANY_WFH_01
+
+meta       TO_TOO_MANY_WFH_01          __TO_TOO_MANY_WFH_01
+describe   TO_TOO_MANY_WFH_01          Work-from-Home + many recipients
+tflags     TO_TOO_MANY_WFH_01          publish
+##} TO_TOO_MANY_WFH_01
+
+##{ TRANSFORM_LIFE
+
+meta       TRANSFORM_LIFE              __TRANSFORM_LIFE && !__HAS_CAMPAIGNID && !__HAS_SENDER && !__HAS_X_MAILER && !__VIA_ML 
+describe   TRANSFORM_LIFE              Transform your life!
+#score      TRANSFORM_LIFE              2.500  # limit
+##} TRANSFORM_LIFE
+
+##{ TT_MSGID_TRUNC
+
+header TT_MSGID_TRUNC   Message-Id =~ /^\s*<?[^<>\s]+\[\d+$/
+describe TT_MSGID_TRUNC Scora: Message-Id ends after left-bracket + digits
+##} TT_MSGID_TRUNC
+
+##{ TT_OBSCURED_VALIUM
+
+meta TT_OBSCURED_VALIUM         ( __TT_BROKEN_VALIUM || __TT_OBSCURED_VALIUM ) && ! __TT_VALIUM
+describe TT_OBSCURED_VALIUM     Scora: obscured "VALIUM" in subject
+##} TT_OBSCURED_VALIUM
+
+##{ TT_OBSCURED_VIAGRA
+
+meta TT_OBSCURED_VIAGRA         ( __TT_BROKEN_VIAGRA || __TT_OBSCURED_VIAGRA ) && ! __TT_VIAGRA
+describe TT_OBSCURED_VIAGRA     Scora: obscured "VIAGRA" in subject
+##} TT_OBSCURED_VIAGRA
+
+##{ TVD_ACT_193
+
+body TVD_ACT_193                /\bact of (?:193|nineteen thirty)/i
+describe TVD_ACT_193            Message refers to an act passed in the 1930s
+##} TVD_ACT_193
+
+##{ TVD_APPROVED
+
+body TVD_APPROVED               /you.{1,2}re .{0,20}approved/i
+describe TVD_APPROVED           Body states that the recipient has been approved
+##} TVD_APPROVED
+
+##{ TVD_DEAR_HOMEOWNER
+
+body TVD_DEAR_HOMEOWNER         /^dear homeowner/i
+describe TVD_DEAR_HOMEOWNER     Spam with generic salutation of "dear homeowner"
+##} TVD_DEAR_HOMEOWNER
+
+##{ TVD_EB_PHISH
+
+meta TVD_EB_PHISH      __FROM_EBAY && NORMAL_HTTP_TO_IP
+##} TVD_EB_PHISH
+
+##{ TVD_ENVFROM_APOST
+
+header TVD_ENVFROM_APOST        EnvelopeFrom =~ /\'/
+describe TVD_ENVFROM_APOST      Envelope From contains single-quote
+##} TVD_ENVFROM_APOST
+
+##{ TVD_FINGER_02
+
+header TVD_FINGER_02    Content-Type =~ /^text\/plain(?:; (?:format=flowed|charset="Windows-1252"|reply-type=original)){3}/i
+##} TVD_FINGER_02
+
+##{ TVD_FLOAT_GENERAL
+
+rawbody TVD_FLOAT_GENERAL       /\bstyle\s*=\s*"[^"]*\bfloat\s*:\s*[a-z]+\s*">\s*[a-zA-Z]+\s*</i
+describe TVD_FLOAT_GENERAL      Message uses CSS float style
+##} TVD_FLOAT_GENERAL
+
+##{ TVD_FUZZY_DEGREE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body TVD_FUZZY_DEGREE   /<inter W1><post P1>\b(?!degree)<D><E><G><R><E><E>\b/i
+describe TVD_FUZZY_DEGREE  Obfuscation of the word "degree"
+endif
+##} TVD_FUZZY_DEGREE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ TVD_FUZZY_FINANCE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body TVD_FUZZY_FINANCE  /(?!finance)<F><I><N><A><N><C><E>/i
+describe TVD_FUZZY_FINANCE  Obfuscation of the word "finance"
+endif
+##} TVD_FUZZY_FINANCE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ TVD_FUZZY_FIXED_RATE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body TVD_FUZZY_FIXED_RATE       /<inter W2><post P2>(?!fixed rate)<F><I><X><E><D>\s+<R><A><T><E>/i
+describe TVD_FUZZY_FIXED_RATE   Obfuscation of the phrase "fixed rate"
+endif
+##} TVD_FUZZY_FIXED_RATE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ TVD_FUZZY_MICROCAP ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body TVD_FUZZY_MICROCAP /<inter W2><post P2>(?!microcap)(?!micro-cap)<M><I><C><R><O>-?<C><A><P>/i
+describe TVD_FUZZY_MICROCAP  Obfuscation of the word "micro-cap"
+endif
+##} TVD_FUZZY_MICROCAP ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ TVD_FUZZY_PHARMACEUTICAL ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body TVD_FUZZY_PHARMACEUTICAL   /<inter W2><post P2>(?!pharmaceutical)<P><H><A><R><M><A><C><E><U><T><I><C><A><L>/i
+describe TVD_FUZZY_PHARMACEUTICAL  Obfuscation of the word "pharmaceutical"
+endif
+##} TVD_FUZZY_PHARMACEUTICAL ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ TVD_FUZZY_SYMBOL ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body TVD_FUZZY_SYMBOL   /<inter W2><post P2>(?!symboo?l)<S><Y><M><B><O><L>/i
+describe TVD_FUZZY_SYMBOL  Obfuscation of the word "symbol"
+endif
+##} TVD_FUZZY_SYMBOL ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ TVD_FW_GRAPHIC_NAME_LONG ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader TVD_FW_GRAPHIC_NAME_LONG     Content-Type =~ /\bname="[a-z]{8,}\.gif/
+describe   TVD_FW_GRAPHIC_NAME_LONG     Long image attachment name
+endif
+##} TVD_FW_GRAPHIC_NAME_LONG ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ TVD_FW_GRAPHIC_NAME_MID ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader TVD_FW_GRAPHIC_NAME_MID      Content-Type =~ /\bname="[a-z]{6,7}\.gif/
+describe   TVD_FW_GRAPHIC_NAME_MID      Medium sized image attachment name
+endif
+##} TVD_FW_GRAPHIC_NAME_MID ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ TVD_INCREASE_SIZE
+
+body TVD_INCREASE_SIZE          /\bsize of .{1,20}(?:penis|dick|manhood)/i
+describe TVD_INCREASE_SIZE      Advertising for penis enlargement
+##} TVD_INCREASE_SIZE
+
+##{ TVD_IP_HEX
+
+uri TVD_IP_HEX  m@^https?://(?:\d+\.){0,3}0x[0-9a-f]{2}@i
+##} TVD_IP_HEX
+
+##{ TVD_IP_SING_HEX
+
+uri TVD_IP_SING_HEX     m@^https?://0x[0-9a-f]+(?:[:/]|$)@i
+##} TVD_IP_SING_HEX
+
+##{ TVD_LINK_SAVE
+
+body TVD_LINK_SAVE              /\blink to save\b/i
+describe TVD_LINK_SAVE          Spam with the text "link to save"
+##} TVD_LINK_SAVE
+
+##{ TVD_PH_BODY_ACCOUNTS_PRE
+
+meta TVD_PH_BODY_ACCOUNTS_PRE          __TVD_PH_BODY_ACCOUNTS_PRE
+describe TVD_PH_BODY_ACCOUNTS_PRE      The body matches phrases such as "accounts suspended", "account credited", "account verification"
+##} TVD_PH_BODY_ACCOUNTS_PRE
+
+##{ TVD_PH_REC
+
+body TVD_PH_REC                /\byour .{0,40}account .{0,40}record/i
+describe TVD_PH_REC    Message includes a phrase commonly used in phishing mails
+##} TVD_PH_REC
+
+##{ TVD_PH_SEC
+
+body TVD_PH_SEC                /\byour .{0,40}account .{0,40}security/i
+describe TVD_PH_SEC    Message includes a phrase commonly used in phishing mails
+##} TVD_PH_SEC
+
+##{ TVD_PP_PHISH
+
+meta TVD_PP_PHISH      __FROM_PAYPAL && NORMAL_HTTP_TO_IP
+##} TVD_PP_PHISH
+
+##{ TVD_QUAL_MEDS
+
+body TVD_QUAL_MEDS              /\bquality med(?:ication)?s\b/i
+describe TVD_QUAL_MEDS          The body matches phrases such as "quality meds" or "quality medication"
+##} TVD_QUAL_MEDS
+
+##{ TVD_RATWARE_CB
+
+header TVD_RATWARE_CB           Content-Type =~ /\bboundary\b.{1,40}qzsoft_directmail_seperator/i
+describe TVD_RATWARE_CB         Content-Type header that is commonly indicative of ratware
+##} TVD_RATWARE_CB
+
+##{ TVD_RATWARE_CB_2
+
+header TVD_RATWARE_CB_2         Content-Type =~ /\bboundary\s*=\s*"?-+\d+=+\.MRA/
+describe TVD_RATWARE_CB_2       Content-Type header that is commonly indicative of ratware
+##} TVD_RATWARE_CB_2
+
+##{ TVD_RATWARE_MSGID_02
+
+header TVD_RATWARE_MSGID_02     Message-ID =~ /^[^<]*<[a-z]+\@/
+describe TVD_RATWARE_MSGID_02   Ratware with a Message-ID header that is entirely lower-case
+##} TVD_RATWARE_MSGID_02
+
+##{ TVD_RCVD_IP
+
+header TVD_RCVD_IP  Received =~ /^from\s+(?:\d+[^0-9a-zA-Z\s]){3}\d+[.\s]/
+describe TVD_RCVD_IP  Message was received from an IP address
+##} TVD_RCVD_IP
+
+##{ TVD_RCVD_IP4
+
+header TVD_RCVD_IP4 Received =~ /^from\s+(?:\d+\.){3}\d+\s/
+describe TVD_RCVD_IP4  Message was received from an IPv4 address
+##} TVD_RCVD_IP4
+
+##{ TVD_RCVD_SPACE_BRACKET
+
+header TVD_RCVD_SPACE_BRACKET Received =~ /\(\[(?!unix)[^\[\]]*\s/i
+##} TVD_RCVD_SPACE_BRACKET
+
+##{ TVD_SECTION
+
+body TVD_SECTION                /\bSection (?:27A|21B)/i
+describe TVD_SECTION            References to specific legal codes
+##} TVD_SECTION
+
+##{ TVD_SILLY_URI_OBFU
+
+body TVD_SILLY_URI_OBFU         m!https?://[a-z0-9-]+\.[a-z0-9-]*\.?[^a-z0-9.:/\s"'\@?\)>-]+[a-z0-9.-]*[a-z]{3}(?:\s|$)!i
+describe TVD_SILLY_URI_OBFU     URI obfuscation that can fool a URIBL or a uri rule
+##} TVD_SILLY_URI_OBFU
+
+##{ TVD_SPACED_SUBJECT_WORD3
+
+header TVD_SPACED_SUBJECT_WORD3 Subject =~ /^(?:(?:Re|Fw)[^:]{0,5}: )?[A-Z]+[a-z]+[A-Z]+$/
+describe TVD_SPACED_SUBJECT_WORD3  Entire subject is "UPPERlowerUPPER" with no whitespace
+##} TVD_SPACED_SUBJECT_WORD3
+
+##{ TVD_SPACE_ENCODED
+
+meta        TVD_SPACE_ENCODED      __TVD_SPACE_ENCODED && !__NOT_SPOOFED && !__VIA_ML && !__HS_SUBJ_RE_FW && !__SUBSCRIPTION_INFO && !__TO_EQ_FROM_DOM && !__RCD_RDNS_MAIL && !__ISO_2022_JP_DELIM
+#score       TVD_SPACE_ENCODED      2.500   # limit
+describe    TVD_SPACE_ENCODED      Space ratio & encoded subject
+##} TVD_SPACE_ENCODED
+
+##{ TVD_SPACE_RATIO_MINFP
+
+meta        TVD_SPACE_RATIO_MINFP  __TVD_SPACE_RATIO && !__CT_ENCRYPTED && !__X_CRON_ENV && !__ISO_2022_JP_DELIM && !__NOT_SPOOFED && !ALL_TRUSTED && !__MIME_NO_TEXT && !__LONGLINE && !__THREADED && !__SUBSCRIPTION_INFO && !__VIA_ML && !__HELO_HIGHPROFILE && !__DKIM_EXISTS && !__RCD_RDNS_SMTP_MESSY && !__RCD_RDNS_MAIL && !__EMPTY_BODY && !__XM_APPLEMAIL 
+#score       TVD_SPACE_RATIO_MINFP  2.500   # limit
+describe    TVD_SPACE_RATIO_MINFP  Space ratio (vertical text obfuscation?)
+##} TVD_SPACE_RATIO_MINFP
+
+##{ TVD_STOCK1 ifplugin Mail::SpamAssassin::Plugin::BodyEval
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+body TVD_STOCK1    eval:check_stock_info('2')
+describe TVD_STOCK1  Spam related to stock trading
+endif
+##} TVD_STOCK1 ifplugin Mail::SpamAssassin::Plugin::BodyEval
+
+##{ TVD_SUBJ_ACC_NUM
+
+header TVD_SUBJ_ACC_NUM        Subject =~ /\b[a-zA-Z]+ [\#\s]{1,4}\d+[A-Z]+/
+describe TVD_SUBJ_ACC_NUM      Subject has spammy looking monetary reference
+##} TVD_SUBJ_ACC_NUM
+
+##{ TVD_SUBJ_FINGER_03
+
+header TVD_SUBJ_FINGER_03       Subject =~ /^\s*\*\s+(?:\w+\W+)+\*\s*$/
+describe TVD_SUBJ_FINGER_03     Entire subject is enclosed in asterisks "* like so *"
+##} TVD_SUBJ_FINGER_03
+
+##{ TVD_SUBJ_NUM_OBFU_MINFP
+
+meta        TVD_SUBJ_NUM_OBFU_MINFP   __TVD_SUBJ_NUM_OBFU && !__RP_MATCHES_RCVD && !__RCD_RDNS_MAIL_MESSY && !__VIA_ML && !__ISO_2022_JP_DELIM && !__NOT_SPOOFED && !__X_CRON_ENV && !__NOT_A_PERSON && !__HAS_THREAD_INDEX && !__THREADED && !__NUMBERS_IN_SUBJ && !__URI_MAILTO
+##} TVD_SUBJ_NUM_OBFU_MINFP
+
+##{ TVD_SUBJ_OWE
+
+header TVD_SUBJ_OWE Subject =~ /^\s*(?:\w+\s+)+you\s+(?:\w+\s+)*(?:owe|indebted)\s+(?:\w+\s+)+an\s*other/i
+describe TVD_SUBJ_OWE  Subject line states that the recipieint is in debt
+##} TVD_SUBJ_OWE
+
+##{ TVD_SUBJ_WIPE_DEBT
+
+header TVD_SUBJ_WIPE_DEBT       Subject =~ /(?:wipe out|remove|get (?:rid|out) of|eradicate) .{0,20}(?:owe|debt|obligation)/i
+describe TVD_SUBJ_WIPE_DEBT     Spam advertising a way to eliminate debt
+##} TVD_SUBJ_WIPE_DEBT
+
+##{ TVD_VISIT_PHARMA
+
+body TVD_VISIT_PHARMA           /Online Ph.rmacy/i
+describe TVD_VISIT_PHARMA       Body mentions online pharmacy
+##} TVD_VISIT_PHARMA
+
+##{ TVD_VIS_HIDDEN
+
+rawbody TVD_VIS_HIDDEN /<TEXTAREA[^>]+style\s*=\s*"visibility:\s*hidden\b/i
+describe TVD_VIS_HIDDEN Invisible textarea HTML tags
+##} TVD_VIS_HIDDEN
+
+##{ TW_GIBBERISH_MANY
+
+meta           TW_GIBBERISH_MANY      __TENWORD_GIBBERISH > 20
+describe       TW_GIBBERISH_MANY      Lots of gibberish text to spoof pattern matching filters
+#score          TW_GIBBERISH_MANY      2.000   # limit
+tflags         TW_GIBBERISH_MANY      publish
+##} TW_GIBBERISH_MANY
+
+##{ T_ACH_CANCELLED_EXE ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+       meta         T_ACH_CANCELLED_EXE   __ACH_CANCELLED_EXE
+       describe     T_ACH_CANCELLED_EXE   "ACH cancelled" probable malware
+endif
+##} T_ACH_CANCELLED_EXE ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_ANY_PILL_PRICE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        T_ANY_PILL_PRICE         (__PILL_PRICE_01 || __PILL_PRICE_02) && !__NOT_A_PERSON
+  describe    T_ANY_PILL_PRICE         Prices for pills
+endif
+##} T_ANY_PILL_PRICE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ T_CDISP_SZ_MANY ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   T_CDISP_SZ_MANY      Content-Disposition =~ /\bsize\s?=\s?\d.*\bsize\s?=\s?\d/
+  describe     T_CDISP_SZ_MANY      Suspicious MIME header
+#  score        T_CDISP_SZ_MANY      2.0  # limit
+endif
+##} T_CDISP_SZ_MANY ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_DATE_IN_FUTURE_96_Q ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+header   T_DATE_IN_FUTURE_96_Q    eval:check_for_shifted_date('96', '2920')
+describe T_DATE_IN_FUTURE_96_Q    Date: is 4 days to 4 months after Received: date
+endif
+##} T_DATE_IN_FUTURE_96_Q ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+##{ T_DATE_IN_FUTURE_Q_PLUS ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+header   T_DATE_IN_FUTURE_Q_PLUS  eval:check_for_shifted_date('2920', 'undef')
+describe T_DATE_IN_FUTURE_Q_PLUS  Date: is over 4 months after Received: date
+endif
+##} T_DATE_IN_FUTURE_Q_PLUS ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+
+##{ T_DOC_ATTACH_NO_EXT ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         T_DOC_ATTACH_NO_EXT   __ATTACH_NAME_NO_EXT && (__PDF_ATTACH_MT || __DOC_ATTACH_MT)
+  describe     T_DOC_ATTACH_NO_EXT   Document attachment with suspicious name
+endif
+##} T_DOC_ATTACH_NO_EXT ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_DOS_OUTLOOK_TO_MX_IMAGE
+
+meta T_DOS_OUTLOOK_TO_MX_IMAGE         __ANY_OUTLOOK_MUA && !__OE_MUA && __DOS_DIRECT_TO_MX && __ANY_IMAGE_ATTACH
+describe T_DOS_OUTLOOK_TO_MX_IMAGE     Direct to MX with Outlook headers and an image
+##} T_DOS_OUTLOOK_TO_MX_IMAGE
+
+##{ T_DOS_ZIP_HARDCORE ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader    T_DOS_ZIP_HARDCORE        Content-Type =~ /^application\/zip;\sname="hardcore\.zip"$/
+  describe      T_DOS_ZIP_HARDCORE        hardcore.zip file attached; quite certainly a virus
+#  score         T_DOS_ZIP_HARDCORE        2.5
+endif
+##} T_DOS_ZIP_HARDCORE ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_DRUGS_ERECTILE_SHORT_SHORTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     T_DRUGS_ERECTILE_SHORT_SHORTNER __PDS_HTML_LENGTH_1024 && (__PDS_URISHORTENER || __URL_SHORTENER) && DRUGS_ERECTILE
+describe T_DRUGS_ERECTILE_SHORT_SHORTNER Short erectile drugs advert with T_URL_SHORTENER
+#score    T_DRUGS_ERECTILE_SHORT_SHORTNER 1.5 # limit
+endif
+endif
+##} T_DRUGS_ERECTILE_SHORT_SHORTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ T_FILL_THIS_FORM_FRAUD_PHISH ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_FILL_THIS_FORM_FRAUD_PHISH     __FILL_THIS_FORM_FRAUD_PHISH && !__SPOOFED_URL && !__VIA_ML && !__HAS_IN_REPLY_TO && !__THREADED && !__HDR_RCVD_SHOPIFY && !__HAS_ERRORS_TO 
+  describe T_FILL_THIS_FORM_FRAUD_PHISH     Answer suspicious question(s)
+endif
+##} T_FILL_THIS_FORM_FRAUD_PHISH ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_FILL_THIS_FORM_LOAN ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_FILL_THIS_FORM_LOAN            __FILL_THIS_FORM_LOAN && !__COMMENT_EXISTS && !__HTML_LINK_IMAGE
+  describe T_FILL_THIS_FORM_LOAN            Answer loan question(s)
+#  score    T_FILL_THIS_FORM_LOAN            2.0
+endif
+##} T_FILL_THIS_FORM_LOAN ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_FILL_THIS_FORM_SHORT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_FILL_THIS_FORM_SHORT           __FILL_THIS_FORM_SHORT && !__VIA_ML && !__MSGID_JAVAMAIL
+  describe T_FILL_THIS_FORM_SHORT           Fill in a short form with personal information
+#  score    T_FILL_THIS_FORM_SHORT           1.00      # limit
+endif
+##} T_FILL_THIS_FORM_SHORT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_FORGED_RELAY_MUA_TO_MX
+
+header T_FORGED_RELAY_MUA_TO_MX         X-Spam-Relays-External =~ /^\[ ip=(?!127)([\d.]+) [^\[]*\[ ip=\1 [^\[]+ helo=(!(?!(?:10|127|169\.254|172\.(?:1[6-9]|2[0-9]|3[01])|192\.168)\.)| )[^\[]+$/
+##} T_FORGED_RELAY_MUA_TO_MX
+
+##{ T_FORGED_TBIRD_IMG_SIZE ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+
+ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+  meta       T_FORGED_TBIRD_IMG_SIZE   __FORGED_TBIRD_IMG && __ONE_IMG && __IMG_LE_300K
+  describe   T_FORGED_TBIRD_IMG_SIZE   Likely forged Thunderbird image spam
+endif
+##} T_FORGED_TBIRD_IMG_SIZE ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+
+##{ T_FREEMAIL_DOC_PDF ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         T_FREEMAIL_DOC_PDF       __FREEMAIL_DOC_PDF
+  describe     T_FREEMAIL_DOC_PDF       MS document or PDF attachment, from freemail
+endif
+##} T_FREEMAIL_DOC_PDF ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ T_FREEMAIL_DOC_PDF_BCC ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         T_FREEMAIL_DOC_PDF_BCC   __FREEMAIL_DOC_PDF && __TO_UNDISCLOSED
+  describe     T_FREEMAIL_DOC_PDF_BCC   MS document or PDF attachment, from freemail, all recipients hidden
+endif
+##} T_FREEMAIL_DOC_PDF_BCC ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ T_FREEMAIL_RVW_ATTCH ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         T_FREEMAIL_RVW_ATTCH     (__PLS_REVIEW || __DLND_ATTACH) && __FREEMAIL_DOC_PDF
+  describe     T_FREEMAIL_RVW_ATTCH     Please review attached document, from freemail
+endif
+##} T_FREEMAIL_RVW_ATTCH ifplugin Mail::SpamAssassin::Plugin::FreeMail
+
+##{ T_FROMNAME_EQUALS_TO ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+meta     T_FROMNAME_EQUALS_TO __PLUGIN_FROMNAME_EQUALS_TO
+describe T_FROMNAME_EQUALS_TO From:name matches To:
+#score    T_FROMNAME_EQUALS_TO 1.0
+tflags   T_FROMNAME_EQUALS_TO publish
+endif
+##} T_FROMNAME_EQUALS_TO ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+##{ T_FROMNAME_SPOOFED_EMAIL ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+meta     T_FROMNAME_SPOOFED_EMAIL  (__PLUGIN_FROMNAME_SPOOF && !__VIA_ML && !__VIA_RESIGNER && !__RP_MATCHES_RCVD)
+describe T_FROMNAME_SPOOFED_EMAIL From:name looks like a spoofed email
+#score    T_FROMNAME_SPOOFED_EMAIL 0.3
+tflags   T_FROMNAME_SPOOFED_EMAIL publish
+endif
+##} T_FROMNAME_SPOOFED_EMAIL ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+##{ T_FROM_MULTI_SHORT_IMG if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  meta       T_FROM_MULTI_SHORT_IMG     __FROM_MULTI_SHORT_IMG && !__RCD_RDNS_MX_MESSY 
+  describe   T_FROM_MULTI_SHORT_IMG     Multiple From addresses + short message with image
+endif
+##} T_FROM_MULTI_SHORT_IMG if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+
+##{ T_FUZZY_OPTOUT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           T_FUZZY_OPTOUT             /(?:$|\W)(?=<O>)(?!opt[-\s]?out)<O><P><T>[-\s]?<O><U><T>(?:$|\W)/i
+  describe       T_FUZZY_OPTOUT             Obfuscated opt-out text
+endif
+##} T_FUZZY_OPTOUT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_FUZZY_SPRM ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body T_FUZZY_SPRM /<inter W1><post P2><S><P><U><R><M>/i
+endif
+##} T_FUZZY_SPRM ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_FUZZY_WELLSFARGO ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta          T_FUZZY_WELLSFARGO         __FUZZY_WELLSFARGO_BODY || __FUZZY_WELLSFARGO_FROM
+  describe      T_FUZZY_WELLSFARGO         Obfuscated "Wells Fargo"
+endif
+##} T_FUZZY_WELLSFARGO ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_GB_FREEM_FROM_NOT_REPLY ifplugin Mail::SpamAssassin::Plugin::FreeMail ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+    meta     T_GB_FREEM_FROM_NOT_REPLY    ( !__FROM_EQ_REPLY && FREEMAIL_FROM && FREEMAIL_REPLYTO )
+    describe T_GB_FREEM_FROM_NOT_REPLY    From: and Reply-To: have different freemail domains
+#    score    T_GB_FREEM_FROM_NOT_REPLY    1.500 # limit
+    tflags   T_GB_FREEM_FROM_NOT_REPLY    publish
+endif
+endif
+##} T_GB_FREEM_FROM_NOT_REPLY ifplugin Mail::SpamAssassin::Plugin::FreeMail ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+##{ T_GB_FROMNAME_SPOOFED_EMAIL_IP ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+  meta      T_GB_FROMNAME_SPOOFED_EMAIL_IP  ( T_FROMNAME_SPOOFED_EMAIL && !__NOT_SPOOFED )
+  describe  T_GB_FROMNAME_SPOOFED_EMAIL_IP  From:name looks like a spoofed email from a spoofed ip
+#  score     T_GB_FROMNAME_SPOOFED_EMAIL_IP  0.50 # limit
+  tflags    T_GB_FROMNAME_SPOOFED_EMAIL_IP  publish
+endif
+##} T_GB_FROMNAME_SPOOFED_EMAIL_IP ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+
+##{ T_GB_HASHBL_BTC if (version >= 3.004003) ifplugin Mail::SpamAssassin::Plugin::HashBL
+
+if (version >= 3.004003)
+  ifplugin Mail::SpamAssassin::Plugin::HashBL
+    body          T_GB_HASHBL_BTC eval:check_hashbl_bodyre('bl.btcblack.it', 'raw/max=10/shuffle', '\b(?<!=)([13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[acdefghjklmnpqrstuvwxyz234567890]{30,90})\b')
+    tflags        T_GB_HASHBL_BTC net
+    describe      T_GB_HASHBL_BTC Message contains BTC address found on BTCBL
+#    score         T_GB_HASHBL_BTC 5.0 # limit
+endif
+endif
+##} T_GB_HASHBL_BTC if (version >= 3.004003) ifplugin Mail::SpamAssassin::Plugin::HashBL
+
+##{ T_HK_NAME_FM_FROM ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+if (version >= 3.004000)
+  meta         T_HK_NAME_FM_FROM               __HK_NAME_FROM && FREEMAIL_FROM
+#  score               T_HK_NAME_FM_FROM               1.5
+endif
+endif
+##} T_HK_NAME_FM_FROM ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+##{ T_HK_NAME_FROM ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+if (version >= 3.004000)
+  meta         T_HK_NAME_FROM          __HK_NAME_FROM && !FREEMAIL_FROM
+#  score               T_HK_NAME_FROM          1.0
+endif
+endif
+##} T_HK_NAME_FROM ifplugin Mail::SpamAssassin::Plugin::FreeMail if (version >= 3.004000)
+
+##{ T_HK_SPAMMY_FILENAME ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+meta           T_HK_SPAMMY_FILENAME    __HK_SPAMMY_CTFN || __HK_SPAMMY_CDFN
+endif
+##} T_HK_SPAMMY_FILENAME ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_HTML_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         T_HTML_ATTACH         __HTML_ATTACH_01 || __HTML_ATTACH_02
+  describe     T_HTML_ATTACH         HTML attachment to bypass scanning?
+endif
+##} T_HTML_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_HTML_TAG_BALANCE_CENTER ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+  meta       T_HTML_TAG_BALANCE_CENTER       __HTML_TAG_BALANCE_CENTER && !__RCD_RDNS_MAIL_MESSY && !__RCD_RDNS_SMTP_MESSY 
+  describe   T_HTML_TAG_BALANCE_CENTER       Malformatted HTML
+endif
+##} T_HTML_TAG_BALANCE_CENTER ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+
+##{ T_ISO_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         T_ISO_ATTACH          __ISO_ATTACH || __ISO_ATTACH_MT
+  describe     T_ISO_ATTACH          ISO attachment - possible malware delivery
+#  score        T_ISO_ATTACH          3.000    # limit
+endif
+##} T_ISO_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_KAM_HTML_FONT_INVALID ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+meta           T_KAM_HTML_FONT_INVALID         __KAM_HTML_FONT_INVALID
+describe       T_KAM_HTML_FONT_INVALID         Test for Invalidly Named or Formatted Colors in HTML
+#score         T_KAM_HTML_FONT_INVALID         0.1
+endif
+##} T_KAM_HTML_FONT_INVALID ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+
+##{ T_LARGE_PCT_AFTER_MANY if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+   meta        T_LARGE_PCT_AFTER_MANY   __LARGE_PERCENT_AFTER > 3
+   describe    T_LARGE_PCT_AFTER_MANY   Many large percentages after...
+endif
+##} T_LARGE_PCT_AFTER_MANY if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ T_LFUZ_PWRMALE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body T_LFUZ_PWRMALE       /<inter W1><post P2><P><O><W><E><R><M><A><L><E>/i
+endif
+##} T_LFUZ_PWRMALE ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_LOTTO_AGENT_FM
+
+header   T_LOTTO_AGENT_FM   From =~ /(?:claim(?:s|ing)?(?:[\s_.]processing)?|fiducia\w+|dispatch|reimbursement|payout|prize[\s_.]transfer|(?:international|foreign|win+ing)[\s_.]rem+it+ance)[\s_.]?(?:agent|manager|officer|secretary|director|department|dept)/i
+describe T_LOTTO_AGENT_FM   Claims Agent
+##} T_LOTTO_AGENT_FM
+
+##{ T_LOTTO_AGENT_RPLY
+
+meta     T_LOTTO_AGENT_RPLY __LOTTO_AGENT_RPLY && !__TO_YOUR_ORG
+describe T_LOTTO_AGENT_RPLY Claims Agent
+##} T_LOTTO_AGENT_RPLY
+
+##{ T_LOTTO_URI
+
+uri      T_LOTTO_URI       /(?:claim(?:s|ing)?(?:[-_]?processing)?|fiducia\w+|reimbursement|(?:international|foreign|win+ing)?[-_]?rem+it+ance|award)[-_]?(?:department|dept|unit|group|committee|office|agent|manager|secretary)/i
+describe T_LOTTO_URI       Claims Department URL
+##} T_LOTTO_URI
+
+##{ T_MANY_PILL_PRICE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        T_MANY_PILL_PRICE        (__PILL_PRICE_01 + __PILL_PRICE_02) > 2
+  describe    T_MANY_PILL_PRICE        Prices for many pills
+endif
+##} T_MANY_PILL_PRICE if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ T_MIME_MALF if (version >= 3.004000)
+
+if (version >= 3.004000)
+       meta        T_MIME_MALF        __MIME_MALF && !ALL_TRUSTED
+       describe    T_MIME_MALF        Malformed MIME: headers in body
+#      score       T_MIME_MALF        2.00     # limit
+endif
+##} T_MIME_MALF if (version >= 3.004000)
+
+##{ T_MONEY_PERCENT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_MONEY_PERCENT    LOTS_OF_MONEY && (__PCT_FOR_YOU || __PCT_OF_PMTS || __FIFTY_FIFTY)
+  describe T_MONEY_PERCENT    X% of a lot of money for you
+endif
+##} T_MONEY_PERCENT ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_OBFU_ATTACH_MISSP ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         T_OBFU_ATTACH_MISSP   __FROM_RUNON && (T_OBFU_HTML_ATTACH || OBFU_TEXT_ATTACH || T_OBFU_DOC_ATTACH || T_OBFU_PDF_ATTACH || T_OBFU_JPG_ATTACH || T_OBFU_GIF_ATTACH)
+  describe     T_OBFU_ATTACH_MISSP   Obfuscated attachment type and misspaced From
+endif
+##} T_OBFU_ATTACH_MISSP ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_OBFU_DOC_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   T_OBFU_DOC_ATTACH     Content-Type =~ m,\bapplication/octet-stream\b.+\.(?:doc|rtf)\b,i
+  describe     T_OBFU_DOC_ATTACH     MS Document attachment with generic MIME type
+endif
+##} T_OBFU_DOC_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_OBFU_GIF_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   T_OBFU_GIF_ATTACH     Content-Type =~ m,\bapplication/octet-stream\b.+\.gif\b,i
+  describe     T_OBFU_GIF_ATTACH     GIF attachment with generic MIME type
+endif
+##} T_OBFU_GIF_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_OBFU_HTML_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   T_OBFU_HTML_ATTACH    Content-Type =~ m,\bapplication/octet-stream\b.+\.html?\b,i
+  describe     T_OBFU_HTML_ATTACH    HTML attachment with non-text MIME type
+endif
+##} T_OBFU_HTML_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_OBFU_HTML_ATT_MALW ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         T_OBFU_HTML_ATT_MALW  __ZIP_ATTACH_NOFN && __HTML_ATTACH_02
+  describe     T_OBFU_HTML_ATT_MALW  HTML attachment with incorrect MIME type - possible malware
+endif
+##} T_OBFU_HTML_ATT_MALW ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_OBFU_JPG_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   T_OBFU_JPG_ATTACH     Content-Type =~ m,\bapplication/octet-stream\b.+\.jpe?g\b,i
+  describe     T_OBFU_JPG_ATTACH     JPG attachment with generic MIME type
+endif
+##} T_OBFU_JPG_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_OBFU_PDF_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   T_OBFU_PDF_ATTACH     Content-Type =~ m,\bapplication/octet-stream\b.+\.pdf\b,i
+  describe     T_OBFU_PDF_ATTACH     PDF attachment with generic MIME type
+endif
+##} T_OBFU_PDF_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_PDS_BTC_AHACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_PDS_BTC_AHACKER ( __PDS_BTC_ID && __PDS_BTC_BADFROM && __PDS_BTC_ANON )
+  describe T_PDS_BTC_AHACKER Bitcoin Hacker
+#  score    T_PDS_BTC_AHACKER 3.0 # limit
+endif
+##} T_PDS_BTC_AHACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_PDS_BTC_HACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_PDS_BTC_HACKER ( __PDS_BTC_ID && __PDS_BTC_ANON && !__PDS_BTC_BADFROM )
+  describe T_PDS_BTC_HACKER Bitcoin Hacker
+#  score    T_PDS_BTC_HACKER 2.0 # limit
+endif
+##} T_PDS_BTC_HACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_PDS_BTC_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     T_PDS_BTC_NTLD ( __BITCOIN_ID && __FROM_ADDRLIST_SUSPNTLD )
+describe T_PDS_BTC_NTLD Bitcoin suspect NTLD
+#score    T_PDS_BTC_NTLD 2.0 # limit
+endif
+endif
+##} T_PDS_BTC_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ T_PDS_FREEMAIL_REPLYTO_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     T_PDS_FREEMAIL_REPLYTO_URISHRT (__PDS_URISHORTENER || __URL_SHORTENER) && __freemail_hdr_replyto && __SUBJ_SHORT && __PDS_HTML_LENGTH_2048
+describe T_PDS_FREEMAIL_REPLYTO_URISHRT Freemail replyto with URI shortener
+#score    T_PDS_FREEMAIL_REPLYTO_URISHRT 1.5 # limit
+endif
+endif
+##} T_PDS_FREEMAIL_REPLYTO_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ T_PDS_LTC_AHACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_PDS_LTC_AHACKER ( __PDS_LITECOIN_ID && __PDS_BTC_BADFROM && __PDS_BTC_ANON )
+  describe T_PDS_LTC_AHACKER Litecoin Hacker
+#  score    T_PDS_LTC_AHACKER 3.0 # limit
+endif
+##} T_PDS_LTC_AHACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_PDS_LTC_HACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     T_PDS_LTC_HACKER ( __PDS_LITECOIN_ID && __PDS_BTC_ANON && !__PDS_BTC_BADFROM )
+  describe T_PDS_LTC_HACKER Litecoin Hacker
+#  score    T_PDS_LTC_HACKER 2.0 # limit
+endif
+##} T_PDS_LTC_HACKER ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_PDS_PRO_TLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   T_PDS_PRO_TLD eval:check_uri_host_listed('SUSP_URI_NTLD_PRO')
+#score    T_PDS_PRO_TLD 1.0
+describe T_PDS_PRO_TLD .pro TLD
+endif
+endif
+##} T_PDS_PRO_TLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ T_PDS_SHORTFWD_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     T_PDS_SHORTFWD_URISHRT (__PDS_URISHORTENER || __URL_SHORTENER) && (__THREADED || __HAS_IN_REPLY_TO || __HAS_THREAD_INDEX || __URI_MAILTO || __REPTO_QUOTE) && __SUBJ_SHORT && __PDS_HTML_LENGTH_2048
+describe T_PDS_SHORTFWD_URISHRT Threaded email with URI shortener
+#score    T_PDS_SHORTFWD_URISHRT 1.5 # limit
+endif
+endif
+##} T_PDS_SHORTFWD_URISHRT ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ T_PDS_SHORTFWD_URISHRT_FP ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     T_PDS_SHORTFWD_URISHRT_FP (__PDS_URISHORTENER || __URL_SHORTENER) && __HS_SUBJ_RE_FW && __PDS_MSG_512
+describe T_PDS_SHORTFWD_URISHRT_FP Apparently a short fwd/re with URI shortener
+#score    T_PDS_SHORTFWD_URISHRT_FP 1.5 # limit
+endif
+endif
+##} T_PDS_SHORTFWD_URISHRT_FP ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ T_REMOTE_IMAGE ifplugin Mail::SpamAssassin::Plugin::MIMEHeader # {
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader # {
+  meta T_REMOTE_IMAGE  __REMOTE_IMAGE
+  describe T_REMOTE_IMAGE      Message contains an external image
+endif
+##} T_REMOTE_IMAGE ifplugin Mail::SpamAssassin::Plugin::MIMEHeader # {
+
+##{ T_SENT_TO_EMAIL_ADDR if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     T_SENT_TO_EMAIL_ADDR __FROM_ADDRLIST_SUSPNTLD && __PDS_SENT_TO_EMAIL_ADDR
+describe T_SENT_TO_EMAIL_ADDR Email was sent to email address
+#score    T_SENT_TO_EMAIL_ADDR 2.0 # limit
+endif
+endif
+##} T_SENT_TO_EMAIL_ADDR if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ T_SHARE_50_50
+
+meta     T_SHARE_50_50     (__SHARE_IT || __AGREED_RATIO) && __FIFTY_FIFTY
+describe T_SHARE_50_50     Share the money 50/50
+##} T_SHARE_50_50
+
+##{ T_STY_INVIS_DIRECT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      T_STY_INVIS_DIRECT              __STY_INVIS_DIRECT && !__L_BODY_8BITS && !__UNSUB_LINK && !__HDR_RCVD_AMAZON && !__TO___LOWER && !__PDS_DOUBLE_URL && !__MAIL_LINK 
+  describe  T_STY_INVIS_DIRECT              HTML hidden text + direct-to-MX
+#  score     T_STY_INVIS_DIRECT              2.500     # limit
+endif
+##} T_STY_INVIS_DIRECT if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ T_SUSPNTLD_EXPIRATION_EXTORT if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     T_SUSPNTLD_EXPIRATION_EXTORT LOTS_OF_MONEY && __PDS_EXPIRATION_NOTICE && __FROM_ADDRLIST_SUSPNTLD
+describe T_SUSPNTLD_EXPIRATION_EXTORT Susp NTLD with an expiration notice and lotsa money
+#score    T_SUSPNTLD_EXPIRATION_EXTORT 2.0 # limit
+endif
+endif
+##} T_SUSPNTLD_EXPIRATION_EXTORT if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ T_TONOM_EQ_TOLOC_SHRT_PSHRTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     T_TONOM_EQ_TOLOC_SHRT_PSHRTNER __PDS_SHORT_URL && __PDS_TONAME_EQ_TOLOCAL && __SUBJ_SHORT
+describe T_TONOM_EQ_TOLOC_SHRT_PSHRTNER Short subject with potential shortener and To:name eq To:local
+#score    T_TONOM_EQ_TOLOC_SHRT_PSHRTNER 1.5 # limit
+endif
+endif
+##} T_TONOM_EQ_TOLOC_SHRT_PSHRTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ T_TVD_FUZZY_SECTOR ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body T_TVD_FUZZY_SECTOR   /(?!sector)<S><E><C><T><O><R>/i
+endif
+##} T_TVD_FUZZY_SECTOR ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_TVD_FUZZY_SECURITIES ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+body T_TVD_FUZZY_SECURITIES       /<inter W2><post P2>(?!securities)(?!security,? es)<S><E><C><U><R><I><T><I><E><S>/i
+endif
+##} T_TVD_FUZZY_SECURITIES ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+
+##{ T_TVD_FW_GRAPHIC_ID2 ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader T_TVD_FW_GRAPHIC_ID2   Content-Id =~ /<(?:[0-9A-F]{8}\.){3}[0-9A-F]{8}/
+endif
+##} T_TVD_FW_GRAPHIC_ID2 ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_TVD_MIME_EPI ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+body T_TVD_MIME_EPI             eval:check_msg_parse_flags('mime_epilogue_exists')
+endif
+##} T_TVD_MIME_EPI ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+##{ T_TVD_MIME_NO_HEADERS ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+body T_TVD_MIME_NO_HEADERS      eval:check_msg_parse_flags('missing_mime_headers')
+endif
+##} T_TVD_MIME_NO_HEADERS ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+
+##{ T_WON_MONEY_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta       T_WON_MONEY_ATTACH   __YOU_WON && LOTS_OF_MONEY && (__PDF_ATTACH || __DOC_ATTACH)
+  describe   T_WON_MONEY_ATTACH   You won lots of money! See attachment.
+endif
+##} T_WON_MONEY_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_WON_NBDY_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta       T_WON_NBDY_ATTACH    __YOU_WON && __EMPTY_BODY && (__PDF_ATTACH || __DOC_ATTACH || __GIF_ATTACH || __JPEG_ATTACH)
+  describe   T_WON_NBDY_ATTACH    You won lots of money! See attachment.
+endif
+##} T_WON_NBDY_ATTACH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ T_ZW_OBFU_BITCOIN if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       T_ZW_OBFU_BITCOIN            __UNICODE_OBFU_ZW && __BITCOIN_ID
+  describe   T_ZW_OBFU_BITCOIN            Obfuscated text + bitcoin ID - possible extortion
+#  score      T_ZW_OBFU_BITCOIN            2.500       # limit
+endif
+##} T_ZW_OBFU_BITCOIN if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ T_ZW_OBFU_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       T_ZW_OBFU_FREEM              __UNICODE_OBFU_ZW && __freemail_hdr_replyto 
+  describe   T_ZW_OBFU_FREEM              Obfuscated text + freemail
+#  score      T_ZW_OBFU_FREEM              2.000       # limit
+endif
+##} T_ZW_OBFU_FREEM if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ T_ZW_OBFU_FROMTOSUBJ if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       T_ZW_OBFU_FROMTOSUBJ         __UNICODE_OBFU_ZW && FROM_IN_TO_AND_SUBJ 
+  describe   T_ZW_OBFU_FROMTOSUBJ         Obfuscated text + from in to and subject
+#  score      T_ZW_OBFU_FROMTOSUBJ         2.000       # limit
+endif
+##} T_ZW_OBFU_FROMTOSUBJ if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ UC_GIBBERISH_OBFU
+
+meta        UC_GIBBERISH_OBFU  (__UC_GIBB_OBFU > 1) && !__RP_MATCHES_RCVD && !__VIA_ML && !__DKIM_EXISTS && !ALL_TRUSTED
+describe    UC_GIBBERISH_OBFU  Multiple instances of "word VERYLONGGIBBERISH word"
+#score       UC_GIBBERISH_OBFU  3.000  # Limit
+tflags      UC_GIBBERISH_OBFU  publish
+##} UC_GIBBERISH_OBFU
+
+##{ UNDISC_FREEM
+
+meta       UNDISC_FREEM                __UNDISC_FREEM
+describe   UNDISC_FREEM                Undisclosed recipients + freemail reply-to
+tflags     UNDISC_FREEM                publish
+##} UNDISC_FREEM
+
+##{ UNDISC_MONEY
+
+meta       UNDISC_MONEY                __UNDISC_MONEY && !__VIA_ML && !__MSGID_HEXISH
+describe   UNDISC_MONEY                Undisclosed recipients + money/fraud signs
+tflags     UNDISC_MONEY                publish
+##} UNDISC_MONEY
+
+##{ UNICODE_OBFU_ASC if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       UNICODE_OBFU_ASC           __UNICODE_OBFU_ASC && !__SPAN_BEG_TEXT && !HTML_IMAGE_ONLY_32
+  describe   UNICODE_OBFU_ASC           Obfuscating text with unicode
+#  score      UNICODE_OBFU_ASC           2.500 # limit
+  tflags     UNICODE_OBFU_ASC           publish
+endif
+##} UNICODE_OBFU_ASC if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ UNICODE_OBFU_ZW if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       UNICODE_OBFU_ZW            __UNICODE_OBFU_ZW_2 && !__SUBSCRIPTION_INFO && !__RCD_RDNS_MAIL_MESSY && !__DOS_HAS_LIST_ID && !__USING_VERP1 && !__DOS_HAS_LIST_UNSUB && !__RCD_RDNS_SMTP && !__DKIM_EXISTS 
+  describe   UNICODE_OBFU_ZW            Obfuscating text with hidden characters
+#  score      UNICODE_OBFU_ZW            3.500 # limit
+  tflags     UNICODE_OBFU_ZW            publish
+endif
+##} UNICODE_OBFU_ZW if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ UPGRADE_MAILBOX
+
+meta        UPGRADE_MAILBOX      __UPGR_MAILBOX && __HTML_FONT_LOW_CONTRAST_MINFP 
+describe    UPGRADE_MAILBOX      Upgrade your mailbox! (phishing?)
+##} UPGRADE_MAILBOX
+
+##{ URIBL_RHS_DOB ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+
+ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+urirhssub URIBL_RHS_DOB         dob.sibl.support-intelligence.net  A   2
+body URIBL_RHS_DOB              eval:check_uridnsbl('URIBL_RHS_DOB')
+describe URIBL_RHS_DOB          Contains an URI of a new domain (Day Old Bread)
+tflags URIBL_RHS_DOB            net
+endif
+##} URIBL_RHS_DOB ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+
+##{ URI_ADOBESPARK
+
+meta       URI_ADOBESPARK              __URI_ADOBESPARK
+#score      URI_ADOBESPARK              3.500  # limit
+tflags     URI_ADOBESPARK              publish
+##} URI_ADOBESPARK
+
+##{ URI_AZURE_CLOUDAPP
+
+meta       URI_AZURE_CLOUDAPP          __URI_AZURE_CLOUDAPP && __NAKED_TO && !__HDR_RCVD_GOOGLE
+describe   URI_AZURE_CLOUDAPP          Link to hosted azure web application, possible phishing
+#score      URI_AZURE_CLOUDAPP          3.000  # limit
+tflags     URI_AZURE_CLOUDAPP          publish
+##} URI_AZURE_CLOUDAPP
+
+##{ URI_DASHGOVEDU
+
+meta       URI_DASHGOVEDU              __URI_DASHGOVEDU
+describe   URI_DASHGOVEDU              Suspicious domain name
+#score      URI_DASHGOVEDU              3.500  # limit
+tflags     URI_DASHGOVEDU              publish
+##} URI_DASHGOVEDU
+
+##{ URI_DATA
+
+meta        URI_DATA           __URI_DATA && !ALL_TRUSTED && !__RCD_RDNS_MAIL_MESSY && !__HAS_ERRORS_TO && !__VIA_ML && !__ENV_AND_HDR_FROM_MATCH && !__DOS_HAS_LIST_UNSUB 
+describe    URI_DATA           "data:" URI - possible malware or phish
+#score       URI_DATA           3.250  # limit
+tflags      URI_DATA           publish
+##} URI_DATA
+
+##{ URI_DOTDOT_LOW_CNTRST
+
+meta        URI_DOTDOT_LOW_CNTRST HTML_FONT_LOW_CONTRAST && __URI_DOM_DOTDOT
+describe    URI_DOTDOT_LOW_CNTRST Suspicious URI + hidden text
+#score       URI_DOTDOT_LOW_CNTRST 2.500   # limit
+##} URI_DOTDOT_LOW_CNTRST
+
+##{ URI_DOTEDU
+
+meta       URI_DOTEDU                  __URI_DOTEDU && !__RCVD_DOTEDU_EXT && !__DOS_HAS_LIST_UNSUB && !__VIA_ML && !__HAS_X_MAILER && !ALL_TRUSTED && !__UNSUB_LINK && !__RDNS_SHORT && !__MAIL_LINK 
+describe   URI_DOTEDU                  Has .edu URI
+#score      URI_DOTEDU                  2.000  # limit
+tflags     URI_DOTEDU                  publish
+##} URI_DOTEDU
+
+##{ URI_DOTEDU_ENTITY
+
+meta       URI_DOTEDU_ENTITY           __URI_DOTEDU_ENTITY && !__SUBSCRIPTION_INFO 
+describe   URI_DOTEDU_ENTITY           Via .edu MTA + suspicious HTML content
+#score      URI_DOTEDU_ENTITY           3.000  # limit
+tflags     URI_DOTEDU_ENTITY           publish
+##} URI_DOTEDU_ENTITY
+
+##{ URI_DOTTY_HEX
+
+meta        URI_DOTTY_HEX              __URI_DOTTY_HEX
+describe    URI_DOTTY_HEX              Suspicious URI format
+tflags      URI_DOTTY_HEX              publish
+##} URI_DOTTY_HEX
+
+##{ URI_DQ_UNSUB
+
+meta           URI_DQ_UNSUB     __URI_DQ_UNSUB
+describe       URI_DQ_UNSUB     IP-address unsubscribe URI
+tflags         URI_DQ_UNSUB     publish
+##} URI_DQ_UNSUB
+
+##{ URI_FIREBASEAPP
+
+meta       URI_FIREBASEAPP             __URI_FIREBASEAPP || __URI_WEBAPP
+describe   URI_FIREBASEAPP             Link to hosted firebase web application, possible phishing
+#score      URI_FIREBASEAPP             3.000  # limit
+tflags     URI_FIREBASEAPP             publish
+##} URI_FIREBASEAPP
+
+##{ URI_GOOGLE_PROXY
+
+meta           URI_GOOGLE_PROXY       __URI_GOOGLE_PROXY && !__FSL_RELAY_GOOGLE && !__TO___LOWER && !__MSGID_OK_HEX && !__HAS_CAMPAIGNID 
+describe       URI_GOOGLE_PROXY       Accessing a blacklisted URI or obscuring source of phish via Google proxy?
+tflags         URI_GOOGLE_PROXY       publish
+##} URI_GOOGLE_PROXY
+
+##{ URI_GOOG_STO_SPAMMY
+
+uri URI_GOOG_STO_SPAMMY m;^https?://storage\.googleapis\.com/(?:(?:1tactc1200|5a70f8147b2241c|7(?:7(?:7burnf4|ancemrani|kneesleeve|metabolism)|88medw4|arshield777|burn7774|savingsoff)|a(?:d(?:t100visa|vanced1500)|lliedtrust7?|n(?:c77emen777|nutsegtsety|tidcfsdfzef)|pp(?:empresa|itausa)|tividade|udio0254)|b(?:337276797de5b3|7772dcb|ath(?:and777|dfgdfgdfh|rooomlki)|cvncv7845|d(?:fbgverhg|sgbsehtth|thdethydeth)|e(?:dvgervg|t(?:terbutter008|umpoiytre))|looodsugarerte|obby\-dependencies|r(?:ieanfrg|tghrh)|utterknife)|c(?:art\-checkout|bd(?:11gummies|gummty|kfgdfg)|dfeesde|jowa|o(?:mpr(?:essionsocks|ovanteanexo)|n(?:7cealed|defesf)|verageinsu)|reative14141)|d(?:e(?:nta77fend|rma(?:7correc7t|correctskin|hdth|thbsdrhg)|tranmultas)|g(?:iadikir784|vdevgege)|i(?:abetes7|recting77)|rtrebtgh747|zdzefef)|e(?:7co7verage|liminatorlower|ntrega|rectiledysfunction|xpertwindows|yesightmax)|f(?:d(?:128218622bd3f|fdfdzezr78|zdzelom)|habgfdgbfrtg|i(?:7542512|del(?:ityinsulife|ty(?:gbdtrbr|tyhjudtyu))|ghttinnitusnow|ltyredfezz|refig(?:22hting|hting)|xguca777)|la(?:shlight7fr7ee|tbelly)|o(?:mrulasugaa|od54451|toswhatsapps)|rgdfgdfh|s(?:dcfzef|efzgefz)|tlkopmdrdfe|ungusfghgh)|g(?:7oldco|fhfjgfhfg|hetiop|luster|oldii00215|r(?:fgrgrg|owplus11)|u(?:ardiao|mmzdfefzf|tterprotection7))|h(?:dfghbrh|e(?:art14141|rplyy0012)|ome(?:9865|w(?:arranty|rr0216)))|i(?:n(?:formedetranmulta|ogen0065|s(?:7urance7net|t(?:a(?:0541|f(?:atioplo|gregrerg)|hard00021|nttranslator)|h(?:ard879477|eater001))|urancenet)|vest777in)|tchrelief)|k(?:757474|e(?:ranfvgdgfrder|to(?:7rim|ghghgh|jkkfghk|oo7896|toto2323))|nef6565)|l(?:a(?:bcream|wncare3)|eaf7filt7er|i(?:berty77arran|fefiltrevdf)|ocaweb|umiagudiidd)|m(?:a(?:galu|le77en|ttress0707)|e(?:dica(?:lsupplies|r(?:0085|123n|df747))|llitox00545|t(?:abolismlos|f(?:85|dfvde)))|on(?:5g154g|t(?:ezuma001|zdzsds)))|n(?:badefdfg|e(?:sdsd|wtiniggrgr)|inoty74|lmsld)|omeg(?:7aburn|a7burn)|p(?:ersonalized21|o(?:rtableheater7|vsedfzef)|r(?:intsvalentine|otectsecurity)|soidngf8147|ureplant7)|r(?:apidecision77|e(?:adclub11|n(?:ewlaemailved|walllll0065))|iverb1986srt4|oundupccancer)|s(?:a(?:mples7nuge7|vage72)|dfgwsd74fg|eniorserk77s|ignlaotrrmp|teelprobite77|ughdetged|zdzdzdzd)|t(?:acflashlight72|heunbreakable|r(?:abalhos|ugreen30)|unnifgdege)|u(?:berxlm|ltrahgt|sbmosquito)|v(?:e(?:7hicle7cov|hi7clesh7)|frgrerg|i(?:salander|vint0401)|szdefzsfzef)|w(?:4enmedicra8|alk(?:0015|ghghgh)|defgzegfze|e(?:bwhatsfotos|edkiller|llgrove90)|ifibooster)|xcbxcbopiaze|yusdgtduf777|zantacdedzef))/;i
+describe URI_GOOG_STO_SPAMMY Link to spammy content hosted by google storage
+#score URI_GOOG_STO_SPAMMY 3.000
+tflags URI_GOOG_STO_SPAMMY publish
+##} URI_GOOG_STO_SPAMMY
+
+##{ URI_HEX_IP
+
+meta       URI_HEX_IP                  __URI_HEX_IP
+#score      URI_HEX_IP                  2.500  # limit
+describe   URI_HEX_IP                  URI with hex-encoded IP-address host
+tflags     URI_HEX_IP                  publish
+##} URI_HEX_IP
+
+##{ URI_IMG_WP_REDIR
+
+meta       URI_IMG_WP_REDIR            __URI_IMG_WP_REDIR
+#score      URI_IMG_WP_REDIR            3.000  # limit
+describe   URI_IMG_WP_REDIR            Image via WordPress "accelerator" proxy
+tflags     URI_IMG_WP_REDIR            publish
+##} URI_IMG_WP_REDIR
+
+##{ URI_LONG_REPEAT
+
+meta       URI_LONG_REPEAT             __URI_LONG_REPEAT
+describe   URI_LONG_REPEAT             Very long identical host+domain
+#score      URI_LONG_REPEAT             2.500  # limit
+tflags     URI_LONG_REPEAT             publish
+##} URI_LONG_REPEAT
+
+##{ URI_MALWARE_SCMS
+
+uri         URI_MALWARE_SCMS   /\.SettingContent-ms\b/i
+describe    URI_MALWARE_SCMS   Link to malware exploit download (.SettingContent-ms file)
+tflags      URI_MALWARE_SCMS   publish
+##} URI_MALWARE_SCMS
+
+##{ URI_ONLY_MSGID_MALF
+
+  meta      URI_ONLY_MSGID_MALF           __URI_ONLY_MSGID_MALF && !__RP_MATCHES_RCVD && !__URI_MAILTO && !__NOT_SPOOFED && !__DKIM_EXISTS && !__MSGID_JAVAMAIL && !__HAS_REPLY_TO && !RCVD_IN_DNSWL_LOW
+  tflags    URI_ONLY_MSGID_MALF           net
+  meta      URI_ONLY_MSGID_MALF           __URI_ONLY_MSGID_MALF && !__RP_MATCHES_RCVD && !__URI_MAILTO && !__NOT_SPOOFED && !__DKIM_EXISTS && !__MSGID_JAVAMAIL && !__HAS_REPLY_TO
+describe  URI_ONLY_MSGID_MALF           URI only + malformed message ID
+#score     URI_ONLY_MSGID_MALF           2.000 # limit
+tflags    URI_ONLY_MSGID_MALF           publish
+##} URI_ONLY_MSGID_MALF
+
+##{ URI_OPTOUT_3LD
+
+uri         URI_OPTOUT_3LD    m,^https?://(?:quit|bye|remove|exit|leave|disallow|halt|stop|end|herego|out|discontinue)\d*\.[^/]+\.(?:com|net)\b,i
+describe    URI_OPTOUT_3LD    Opt-out URI, suspicious hostname
+#score       URI_OPTOUT_3LD    2.000   # limit
+tflags      URI_OPTOUT_3LD    publish
+##} URI_OPTOUT_3LD
+
+##{ URI_OPTOUT_USME
+
+uri         URI_OPTOUT_USME   m,^https?://(?:quit|bye|remove|exit|leave|disallow|halt|stop|end|herego|out|discontinue)\d*\.[^/]+\.(?:us|me|mobi|club)\b,i
+describe    URI_OPTOUT_USME   Opt-out URI, unusual TLD
+tflags      URI_OPTOUT_USME   publish
+##} URI_OPTOUT_USME
+
+##{ URI_PHISH
+
+describe    URI_PHISH            Phishing using web form
+#score       URI_PHISH            4.00   # limit
+tflags      URI_PHISH            publish
+##} URI_PHISH
+
+##{ URI_PHISH if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta      URI_PHISH      __URI_PHISH && !ALL_TRUSTED && !__UNSUB_LINK && !__TAG_EXISTS_CENTER && !__HAS_SENDER && !__CAN_HELP && !__VIA_ML && !__UPPERCASE_URI && !__HAS_CC && !__NUMBERS_IN_SUBJ && !__PCT_FOR_YOU && !__MOZILLA_MSGID && !__FB_COST && !__hk_bigmoney && !__HELO_HIGHPROFILE && !__RCD_RDNS_SMTP_MESSY && !__BUGGED_IMG && !__FB_TOUR && !__RCVD_DOTGOV_EXT 
+endif
+##} URI_PHISH if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+
+##{ URI_PHISH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta      URI_PHISH      __URI_PHISH && !ALL_TRUSTED && !__UNSUB_LINK && !__TAG_EXISTS_CENTER && !__HAS_SENDER && !__CAN_HELP && !__VIA_ML && !__UPPERCASE_URI && !__HAS_CC && !__NUMBERS_IN_SUBJ && !__PCT_FOR_YOU && !__MOZILLA_MSGID && !__FB_COST && !__hk_bigmoney && !__REMOTE_IMAGE && !__HELO_HIGHPROFILE && !__RCD_RDNS_SMTP_MESSY && !__BUGGED_IMG && !__FB_TOUR && !__RCVD_DOTGOV_EXT 
+endif
+##} URI_PHISH ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+
+##{ URI_PHP_REDIR
+
+meta       URI_PHP_REDIR               __URI_PHP_REDIR && !__USING_VERP1 && !__RCD_RDNS_MTA 
+#score      URI_PHP_REDIR               3.500  # limit
+describe   URI_PHP_REDIR               PHP redirect to different URL (link obfuscation)
+tflags     URI_PHP_REDIR               publish
+##} URI_PHP_REDIR
+
+##{ URI_TRY_3LD
+
+uri         URI_TRY_3LD       m,^https?://(?:try|start|get(?!\.adobe)|save|check(?!out)|act|compare|join|learn|request|visit(?!or)|my(?!sub|turbotax)\w)[^.]*\.[^/]+\.(?:com|net)\b,i
+describe    URI_TRY_3LD       "Try it" URI, suspicious hostname
+#score       URI_TRY_3LD       2.000   # limit
+tflags      URI_TRY_3LD       publish
+##} URI_TRY_3LD
+
+##{ URI_TRY_USME
+
+meta        URI_TRY_USME      __URI_TRY_USME && !__DKIM_EXISTS 
+describe    URI_TRY_USME      "Try it" URI, unusual TLD
+tflags      URI_TRY_USME      publish
+##} URI_TRY_USME
+
+##{ URI_WPADMIN
+
+meta        URI_WPADMIN        __URI_WPADMIN
+describe    URI_WPADMIN        WordPress login/admin URI, possible phishing
+tflags      URI_WPADMIN        publish
+##} URI_WPADMIN
+
+##{ URI_WP_DIRINDEX
+
+meta        URI_WP_DIRINDEX    __URI_WPDIRINDEX
+describe    URI_WP_DIRINDEX    URI for compromised WordPress site, possible malware
+#score       URI_WP_DIRINDEX    3.500   # limit
+tflags      URI_WP_DIRINDEX    publish
+##} URI_WP_DIRINDEX
+
+##{ URI_WP_HACKED
+
+meta        URI_WP_HACKED      (__URI_WPCONTENT || __URI_WPINCLUDES) && !__VIA_ML && !__HAS_ERRORS_TO && !__RCD_RDNS_SMTP && !__THREADED && !ALL_TRUSTED && !__NOT_SPOOFED 
+describe    URI_WP_HACKED      URI for compromised WordPress site, possible malware
+#score       URI_WP_HACKED      3.500   # limit
+tflags      URI_WP_HACKED      publish
+##} URI_WP_HACKED
+
+##{ URI_WP_HACKED_2
+
+meta        URI_WP_HACKED_2    (__PS_TEST_LOC_WP && !URI_WP_HACKED) && !__HAS_LIST_ID && !__THREADED && !__USING_VERP1 
+describe    URI_WP_HACKED_2    URI for compromised WordPress site, possible malware
+#score       URI_WP_HACKED_2    2.500   # limit
+tflags      URI_WP_HACKED_2    publish
+##} URI_WP_HACKED_2
+
+##{ USB_DRIVES
+
+meta       USB_DRIVES                 __SUBJ_USB_DRIVES
+describe   USB_DRIVES                 Trying to sell custom USB flash drives
+#score      USB_DRIVES                 2.000   # limit
+tflags     USB_DRIVES                 publish
+##} USB_DRIVES
+
+##{ VFY_ACCT_NORDNS
+
+meta        VFY_ACCT_NORDNS      __VFY_ACCT_NORDNS && !__STY_INVIS_MANY 
+describe    VFY_ACCT_NORDNS      Verify your account to a poorly-configured MTA - probable phishing
+#score       VFY_ACCT_NORDNS      3.000        # limit
+tflags      VFY_ACCT_NORDNS      publish
+##} VFY_ACCT_NORDNS
+
+##{ VPS_NO_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+meta     VPS_NO_NTLD __VPSNUMBERONLY_TLD && __FROM_ADDRLIST_SUSPNTLD
+tflags   VPS_NO_NTLD publish
+describe VPS_NO_NTLD vps[0-9] domain at a suspiscious TLD
+#score    VPS_NO_NTLD 1.0 # limit
+endif
+endif
+##} VPS_NO_NTLD if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+
+##{ WALMART_IMG_NOT_RCVD_WAL
+
+meta       WALMART_IMG_NOT_RCVD_WAL    __WALMART_IMG_NOT_RCVD_WAL && !__DKIM_EXISTS
+#score      WALMART_IMG_NOT_RCVD_WAL    2.500  # limit
+describe   WALMART_IMG_NOT_RCVD_WAL    Walmart hosted image but message not from Walmart
+tflags     WALMART_IMG_NOT_RCVD_WAL    publish
+##} WALMART_IMG_NOT_RCVD_WAL
+
+##{ WANT_TO_ORDER
+
+body       WANT_TO_ORDER               /you (?:(?:would )?like|want)( to)? order (?:this|it|now|today)\b/i
+#score      WANT_TO_ORDER               1.500  # limit
+##} WANT_TO_ORDER
+
+##{ WIKI_IMG
+
+uri            WIKI_IMG            m,^https?://[^/]+wiki[mp]edia\.org/.+\.(?:png|gif|jpe?g),i
+describe       WIKI_IMG            Image from wikipedia
+##} WIKI_IMG
+
+##{ WORD_INVIS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      WORD_INVIS                    __WORD_INVIS_MINFP && !WORD_INVIS_MANY
+  describe  WORD_INVIS                    A hidden word
+#  score     WORD_INVIS                    3.000       # limit
+  tflags    WORD_INVIS                    publish
+endif
+##} WORD_INVIS if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ WORD_INVIS_MANY if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      WORD_INVIS_MANY               __WORD_INVIS_2
+  describe  WORD_INVIS_MANY               Multiple individual hidden words
+#  score     WORD_INVIS_MANY               3.000       # limit
+  tflags    WORD_INVIS_MANY               publish
+endif
+##} WORD_INVIS_MANY if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+
+##{ XFER_LOTSA_MONEY
+
+meta     XFER_LOTSA_MONEY        __XFER_LOTSA_MONEY && !__VIA_ML && !__HAS_SENDER && !__SUBSCRIPTION_INFO 
+describe XFER_LOTSA_MONEY        Transfer a lot of money
+#score    XFER_LOTSA_MONEY        1.000   # limit
+##} XFER_LOTSA_MONEY
+
+##{ XM_DIGITS_ONLY
+
+meta       XM_DIGITS_ONLY              __XM_DIGITS_ONLY
+describe   XM_DIGITS_ONLY              X-Mailer malformed
+#score      XM_DIGITS_ONLY              3.000  # limit
+tflags     XM_DIGITS_ONLY              publish
+##} XM_DIGITS_ONLY
+
+##{ XM_LIGHT_HEAVY
+
+meta       XM_LIGHT_HEAVY              __XM_LIGHT_HEAVY && !__HAS_X_BEEN_THERE 
+describe   XM_LIGHT_HEAVY              Special edition of a MUA
+#score      XM_LIGHT_HEAVY              2.500  # limit
+##} XM_LIGHT_HEAVY
+
+##{ XM_PHPMAILER_FORGED
+
+meta        XM_PHPMAILER_FORGED    __XM_PHPMAILER_FORGED
+describe    XM_PHPMAILER_FORGED    Apparently forged header
+tflags      XM_PHPMAILER_FORGED    publish
+##} XM_PHPMAILER_FORGED
+
+##{ XM_RANDOM
+
+meta       XM_RANDOM                   __XM_RANDOM && !__STY_INVIS_3 && !__HAS_IN_REPLY_TO && !__XM_UC_ONLY 
+describe   XM_RANDOM                   X-Mailer apparently random
+#score      XM_RANDOM                   3.000  # limit
+tflags     XM_RANDOM                   publish
+##} XM_RANDOM
+
+##{ XM_RECPTID
+
+meta       XM_RECPTID                  __HAS_XM_RECPTID && !__TAG_EXISTS_SCRIPT && !__REPLYTO_NOREPLY && !__ENVFROM_AMAZONSES && !__DOS_DIRECT_TO_MX && !__FRAUD_PTX 
+describe   XM_RECPTID                  Has spammy message header
+#score      XM_RECPTID                  3.000  # limit
+##} XM_RECPTID
+
+##{ XPRIO
+
+describe    XPRIO              Has X-Priority header
+#score       XPRIO              2.250  # limit
+tflags      XPRIO              publish
+##} XPRIO
+
+##{ XPRIO if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+  meta      XPRIO              __XPRIO_MINFP
+endif
+##} XPRIO if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+
+##{ XPRIO ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  tflags    XPRIO              net
+endif
+##} XPRIO ifplugin Mail::SpamAssassin::Plugin::DKIM
+
+##{ XPRIO ifplugin Mail::SpamAssassin::Plugin::DKIM if !plugin(Mail::SpamAssassin::Plugin::SPF)
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+    meta    XPRIO              __XPRIO_MINFP && !DKIM_SIGNED && !__DKIM_DEPENDABLE && !DKIM_VALID && !DKIM_VALID_AU && !RCVD_IN_DNSWL_NONE 
+endif
+endif
+##} XPRIO ifplugin Mail::SpamAssassin::Plugin::DKIM if !plugin(Mail::SpamAssassin::Plugin::SPF)
+
+##{ XPRIO ifplugin Mail::SpamAssassin::Plugin::DKIM ifplugin Mail::SpamAssassin::Plugin::SPF
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  ifplugin Mail::SpamAssassin::Plugin::SPF
+    meta    XPRIO              __XPRIO_MINFP && !DKIM_SIGNED && !__DKIM_DEPENDABLE && !DKIM_VALID && !DKIM_VALID_AU && !RCVD_IN_DNSWL_NONE && !SPF_PASS 
+endif
+endif
+##} XPRIO ifplugin Mail::SpamAssassin::Plugin::DKIM ifplugin Mail::SpamAssassin::Plugin::SPF
+
+##{ XPRIO_SHORT_SUBJ
+
+meta        XPRIO_SHORT_SUBJ   __XPRIO_SHORT_SUBJ && !__MSM_PRIO_REPTO && !ALL_TRUSTED && !__DKIM_EXISTS && !__RELAY_THRU_WWW && !__CTYPE_HAS_BOUNDARY && !__RCD_RDNS_MTA && !__HAS_HREF 
+describe    XPRIO_SHORT_SUBJ   Has X Priority header + short subject
+#score       XPRIO_SHORT_SUBJ   2.500  # limit
+tflags      XPRIO_SHORT_SUBJ   publish
+##} XPRIO_SHORT_SUBJ
+
+##{ XPRIO_URL_SHORTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     XPRIO_URL_SHORTNER __XPRIO_MINFP && __PDS_URISHORTENER
+describe XPRIO_URL_SHORTNER X-Priority header and short URL
+#score    XPRIO_URL_SHORTNER 1.0 # limit
+endif
+endif
+##} XPRIO_URL_SHORTNER ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)
+
+##{ X_MAILER_CME_6543_MSN
+
+header X_MAILER_CME_6543_MSN   X-Mailer =~ /^CME-V6\.5\.4\.3; MSN\s*$/
+##} X_MAILER_CME_6543_MSN
+
+##{ YOUR_DELIVERY_ADDRESS
+
+body       YOUR_DELIVERY_ADDRESS       /(?:respond|reply) (to )?(?:our|this) email (?:with|and send) your (?:(?:delivery |shipping )?address|address (?:for|of) shipping)/i
+#score      YOUR_DELIVERY_ADDRESS       1.500  # limit
+##} YOUR_DELIVERY_ADDRESS
+
+##{ YOU_INHERIT
+
+meta     YOU_INHERIT      __YOU_INHERIT
+describe YOU_INHERIT      Discussing your inheritance
+##} YOU_INHERIT
+
+##{ bayes_ignore_header_sandbox
+
+bayes_ignore_header X-ACL-Warn
+bayes_ignore_header X-Alimail-AntiSpam
+bayes_ignore_header X-Amavis-Modified
+bayes_ignore_header X-Anti-Spam
+bayes_ignore_header X-Anti-Virus
+bayes_ignore_header X-Anti-Virus-Version
+bayes_ignore_header X-AntiAbuse
+bayes_ignore_header X-Antispam
+bayes_ignore_header X-Antivirus
+bayes_ignore_header X-Antivirus-Code
+bayes_ignore_header X-Antivirus-Status
+bayes_ignore_header X-Antivirus-Version
+bayes_ignore_header x-aol-global-disposition
+bayes_ignore_header X-ASF-Spam-Status
+bayes_ignore_header X-ASG-Debug-ID
+bayes_ignore_header X-ASG-Orig-Subj
+bayes_ignore_header X-ASG-Recipient-Whitelist
+bayes_ignore_header X-ASG-Tag
+bayes_ignore_header X-Assp-Version
+bayes_ignore_header X-Authority-Analysis
+bayes_ignore_header X-Authvirus
+bayes_ignore_header X-Auto-Response-Suppress
+bayes_ignore_header X-AV-Do-Run
+bayes_ignore_header X-AV-Status
+bayes_ignore_header x-avast-antispam
+bayes_ignore_header X-Backend
+bayes_ignore_header X-Barracuda-Apparent-Source-IP
+bayes_ignore_header X-Barracuda-Bayes
+bayes_ignore_header X-Barracuda-BBL-IP
+bayes_ignore_header X-Barracuda-BRTS-Status
+bayes_ignore_header X-Barracuda-BRTS-URL-Found
+bayes_ignore_header X-Barracuda-Connect
+bayes_ignore_header X-Barracuda-Encrypted
+bayes_ignore_header X-Barracuda-Envelope-From
+bayes_ignore_header X-Barracuda-Fingerprint-Found
+bayes_ignore_header X-Barracuda-Orig-Rcpt
+bayes_ignore_header X-Barracuda-RBL-IP
+bayes_ignore_header X-Barracuda-RBL-Trusted-Forwarder
+bayes_ignore_header X-Barracuda-Spam-Report
+bayes_ignore_header X-Barracuda-Spam-Score
+bayes_ignore_header X-Barracuda-Spam-Status
+bayes_ignore_header X-Barracuda-Start-Time
+bayes_ignore_header X-Barracuda-UID
+bayes_ignore_header X-Barracuda-URL
+bayes_ignore_header X-Barracuda-Virus-Alert
+bayes_ignore_header X-Bayes-Prob
+bayes_ignore_header X-Bayesian-Result
+bayes_ignore_header X-BitDefender-Spam
+bayes_ignore_header X-BitDefender-SpamStamp
+bayes_ignore_header X-BL
+bayes_ignore_header X-Bogosity
+bayes_ignore_header X-Boxtrapper
+bayes_ignore_header X-Brightmail-Tracker
+bayes_ignore_header X-BTI-AntiSpam
+bayes_ignore_header X-Bugzilla-Version
+bayes_ignore_header X-CanIt-Geo
+bayes_ignore_header X-Canit-Stats-ID
+bayes_ignore_header X-CanItPRO-Stream
+bayes_ignore_header X-Clapf-spamicity
+bayes_ignore_header X-Cloud-Security
+bayes_ignore_header X-CM-Score
+bayes_ignore_header X-CMAE-Analysis
+bayes_ignore_header X-CMAE-Match
+bayes_ignore_header X-CMAE-Score
+bayes_ignore_header X-CMAE-Verdict
+bayes_ignore_header X-CNFS-Analysis
+bayes_ignore_header X-Company
+bayes_ignore_header X-Coremail-Antispam
+bayes_ignore_header X-CRM114-CacheID
+bayes_ignore_header X-CRM114-Status
+bayes_ignore_header X-CRM114-Version
+bayes_ignore_header X-CT-Spam
+bayes_ignore_header X-CTCH-SenderID
+bayes_ignore_header X-CTCH-SenderID-TotalBulk
+bayes_ignore_header X-CTCH-SenderID-TotalConfirmed
+bayes_ignore_header X-CTCH-SenderID-TotalMessages
+bayes_ignore_header X-CTCH-SenderID-TotalRecipients
+bayes_ignore_header X-CTCH-SenderID-TotalSpam
+bayes_ignore_header X-CTCH-SenderID-TotalSuspected
+bayes_ignore_header X-CTCH-SenderID-TotalVirus
+bayes_ignore_header X-CTCH-Spam
+bayes_ignore_header X-CTCH-VOD
+bayes_ignore_header X-Drweb-SpamState
+bayes_ignore_header X-DSPAM-Confidence
+bayes_ignore_header X-DSPAM-Factors
+bayes_ignore_header X-DSPAM-Improbability
+bayes_ignore_header X-DSPAM-Probability
+bayes_ignore_header X-DSPAM-Processed
+bayes_ignore_header X-DSPAM-Result
+bayes_ignore_header X-DSPAM-Signature
+bayes_ignore_header x-eavas
+bayes_ignore_header x-eavas-action
+bayes_ignore_header x-eavas-eavasid
+bayes_ignore_header X-Enigmail-Version
+bayes_ignore_header X-EsetId
+bayes_ignore_header X-EsetResult
+bayes_ignore_header X-Exchange-Antispam-Report
+bayes_ignore_header X-ExtloopSabreCommercials1
+bayes_ignore_header X-EYOU-SPAMVALUE
+bayes_ignore_header X-FB-OUTBOUND-SPAM
+bayes_ignore_header X-FEAS-SBL
+bayes_ignore_header X-FILTER-SCORE
+bayes_ignore_header X-Forefront-Antispam-Report
+bayes_ignore_header X-Forefront-PRVS
+bayes_ignore_header X-Fuglu-Spamstatus
+bayes_ignore_header X-Fuglu-Suspect
+bayes_ignore_header X-getmail-filter-classifier
+bayes_ignore_header X-GFIME-MASPAM
+bayes_ignore_header X-Gmane-NNTP-Posting-Host
+bayes_ignore_header X-GMX-Antispam
+bayes_ignore_header X-GMX-Antivirus
+bayes_ignore_header X-He-Spam
+bayes_ignore_header X-hMailServer-Spam
+bayes_ignore_header X-IAS
+bayes_ignore_header X-iGspam-global
+bayes_ignore_header X-Injected-Via-Gmane
+bayes_ignore_header X-Interia-Antivirus
+bayes_ignore_header X-IP-Spam-Verdict
+bayes_ignore_header X-Ironport
+bayes_ignore_header X-IronPort-Anti-Spam-Filtered
+bayes_ignore_header X-IronPort-Anti-Spam-Result
+bayes_ignore_header X-IronPort-AV
+bayes_ignore_header X-Ironport-HAT
+bayes_ignore_header X-Ironport-HOSTNAME
+bayes_ignore_header X-Ironport-LNR
+bayes_ignore_header X-Ironport-MessageFilter
+bayes_ignore_header X-Ironport-MFP
+bayes_ignore_header X-Ironport-MID
+bayes_ignore_header X-IronPort-Outgoing-Antispam
+bayes_ignore_header X-Ironport-RIF
+bayes_ignore_header X-Ironport-SBRS
+bayes_ignore_header X-Ironport-SENDER
+bayes_ignore_header X-Ironport-SUBJECT
+bayes_ignore_header X-Junk-Score
+bayes_ignore_header X-Junkmail
+bayes_ignore_header X-KLMS-AntiPhishing
+bayes_ignore_header X-Klms-Antispam
+bayes_ignore_header X-KLMS-AntiSpam-Info
+bayes_ignore_header X-KLMS-AntiSpam-Interceptor-Info
+bayes_ignore_header X-KLMS-AntiSpam-Lua-Profiles
+bayes_ignore_header X-KLMS-AntiSpam-Method
+bayes_ignore_header X-KLMS-AntiSpam-Moebius-Timestamps
+bayes_ignore_header X-KLMS-AntiSpam-Rate
+bayes_ignore_header X-KLMS-AntiSpam-Status
+bayes_ignore_header X-KLMS-AntiSpam-Version
+bayes_ignore_header X-KLMS-AntiVirus
+bayes_ignore_header X-KLMS-AntiVirus-Status
+bayes_ignore_header X-KLMS-Message-Action
+bayes_ignore_header X-KLMS-Rule-ID
+bayes_ignore_header X-KMail-EncryptionState
+bayes_ignore_header X-KMail-MDN-Sent
+bayes_ignore_header X-KMail-SignatureState
+bayes_ignore_header X-MailCleaner-SpamChec
+bayes_ignore_header X-MailCleaner-SpamCheck
+bayes_ignore_header X-MailFoundry
+bayes_ignore_header X-MDMailLookup-Result
+bayes_ignore_header X-ME-Bayesian
+bayes_ignore_header X-ME-Content
+bayes_ignore_header X-MessageFilter
+bayes_ignore_header X-Microsoft-Antispam
+bayes_ignore_header X-Mlf-Version
+bayes_ignore_header X-MXScan-AntiSpam
+bayes_ignore_header X-MXScan-AntiVirus
+bayes_ignore_header X-MXScan-Country-Sequence
+bayes_ignore_header X-MXScan-License
+bayes_ignore_header X-MXScan-Msgid
+bayes_ignore_header X-MXScan-ProcessingTime
+bayes_ignore_header X-MXScan-Scan
+bayes_ignore_header X-NAI-Spam-Flag
+bayes_ignore_header X-NAI-Spam-Rules
+bayes_ignore_header X-NAI-Spam-Score
+bayes_ignore_header X-NAI-Spam-Threshold
+bayes_ignore_header X-NetStation-Status
+bayes_ignore_header X-OVH-SPAMCAUSE
+bayes_ignore_header X-OVH-SPAMCAUSE:
+bayes_ignore_header X-OVH-SPAMSCORE
+bayes_ignore_header X-OVH-SPAMSTATE
+bayes_ignore_header X-PerlMx-Spam
+bayes_ignore_header X-PerlMx-Virus-Scanned
+bayes_ignore_header X-PFSI-Info
+bayes_ignore_header X-PMX-Spam
+bayes_ignore_header X-PMX-Version
+bayes_ignore_header X-Policy-Service
+bayes_ignore_header X-policyd-weight
+bayes_ignore_header X-PreRBLs
+bayes_ignore_header X-Probable-Spam
+bayes_ignore_header X-PROLinux-SpamCheck
+bayes_ignore_header X-Proofpoint-Spam-Reason
+bayes_ignore_header X-Proofpoint-Virus-Version
+bayes_ignore_header x-purgate-eavas: clean
+bayes_ignore_header x-purgate-id
+bayes_ignore_header x-purgate-size
+bayes_ignore_header x-purgate-type
+bayes_ignore_header X-Qmail-Scanner-Diagnostics
+bayes_ignore_header X-Qmail-Scanner-MOVED-X-Spam-Status
+bayes_ignore_header X-Quarantine-ID
+bayes_ignore_header X-RSpam-Report
+bayes_ignore_header X-SA-Do-Not-Run
+bayes_ignore_header X-SA-Exim-Version
+bayes_ignore_header X-Scanned-by
+bayes_ignore_header X-SmarterMail-CustomSpamHeader
+bayes_ignore_header X-Spam
+bayes_ignore_header X-Spam-Action
+bayes_ignore_header X-SPAM-AISP
+bayes_ignore_header X-Spam-Check-By
+bayes_ignore_header X-Spam-Checker-Version
+bayes_ignore_header X-Spam-CMAE-Analysis
+bayes_ignore_header X-Spam-CMAESCORE
+bayes_ignore_header X-Spam-CTCH-RefID
+bayes_ignore_header X-Spam-Flag
+bayes_ignore_header X-Spam-Level
+bayes_ignore_header X-Spam-Processed
+bayes_ignore_header X-Spam-Report
+bayes_ignore_header X-Spam-Scanned
+bayes_ignore_header X-Spam-Score
+bayes_ignore_header X-Spam-Score-Int
+bayes_ignore_header X-Spam-SmartLearn
+bayes_ignore_header X-Spam-Status
+bayes_ignore_header X-Spam-Threshold
+bayes_ignore_header X-Spam_bar
+bayes_ignore_header X-Spambayes-Classification
+bayes_ignore_header X-SpamExperts-Domain
+bayes_ignore_header X-SpamExperts-Outgoing-Class
+bayes_ignore_header X-SpamExperts-Outgoing-Evidence
+bayes_ignore_header X-SpamExperts-Username
+bayes_ignore_header X-Spamfilter-host
+bayes_ignore_header X-Spamina-Bogosity
+bayes_ignore_header X-Spamina-Spam-Report
+bayes_ignore_header X-Spamina-Spam-Score
+bayes_ignore_header X-SpamInfo
+bayes_ignore_header X-Spamsave
+bayes_ignore_header X-SpamTest-Group-ID
+bayes_ignore_header X-SpamTest-Info
+bayes_ignore_header X-SpamTest-Method
+bayes_ignore_header X-SpamTest-Rate
+bayes_ignore_header X-SpamTest-SPF
+bayes_ignore_header X-SpamTest-Status
+bayes_ignore_header X-SpamTest-Status-Extended
+bayes_ignore_header X-SPF-Scan-By
+bayes_ignore_header X-STA-Metric
+bayes_ignore_header X-STA-NotSpam
+bayes_ignore_header X-STA-Spam
+bayes_ignore_header X-StarScan-Version
+bayes_ignore_header X-SurGATE-Result
+bayes_ignore_header X-SWITCHham-Score
+bayes_ignore_header X-UI-Filterresults
+bayes_ignore_header X-UI-Loop
+bayes_ignore_header X-UI-Out-Filterresults
+bayes_ignore_header X-Univie-Spam-Checker-Version
+bayes_ignore_header X-Univie-Virus-Scan
+bayes_ignore_header X-Virus
+bayes_ignore_header X-Virus-Checker-Version
+bayes_ignore_header X-Virus-Scanned
+bayes_ignore_header X-Virus-Scanner-Result
+bayes_ignore_header X-Virus-Scanner-Version
+bayes_ignore_header X-Virus-Status
+bayes_ignore_header X-VirusChecked
+bayes_ignore_header X-VR-SCORE
+bayes_ignore_header X-VR-SPAMCAUSE
+bayes_ignore_header X-VR-STATUS
+bayes_ignore_header X-WatchGuard-Mail-Client-IP
+bayes_ignore_header X-WatchGuard-Mail-From
+bayes_ignore_header X-WatchGuard-Mail-Recipients
+bayes_ignore_header X-WatchGuard-Spam-ID
+bayes_ignore_header X-WatchGuard-Spam-Score
+bayes_ignore_header X-Whitelist-Domain
+bayes_ignore_header X-WUM-CCI
+bayes_ignore_header X_CMAE_Category##} bayes_ignore_header_sandbox
+
+##{ if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS_sandbox
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+askdns     __FROM_FMBLA_NEWDOM    _AUTHORDOMAIN_.fresh.fmb.la. A /^127\.2\.0\.2$/
+askdns     __FROM_FMBLA_NEWDOM14  _AUTHORDOMAIN_.fresh.fmb.la. A /^127\.2\.0\.14$/
+askdns     __FROM_FMBLA_NEWDOM28  _AUTHORDOMAIN_.fresh.fmb.la. A /^127\.2\.0\.28$/
+askdns     __FROM_FMBLA_NDBLOCKED _AUTHORDOMAIN_.fresh.fmb.la. A /^127\.255\.255\.255$/
+reuse      FROM_FMBLA_NEWDOM
+reuse      FROM_FMBLA_NEWDOM14
+reuse      FROM_FMBLA_NEWDOM28
+reuse      FROM_FMBLA_NDBLOCKED
+reuse    __PDS_NEWDOMAIN
+reuse    FROM_NUMBERO_NEWDOMAIN
+reuse    FROM_NEWDOM_BTC
+askdns   __PDS_SPF_ONLYALL _SENDERDOMAIN_ TXT /^v=spf1 \+all$/
+reuse    BITCOIN_SPF_ONLYALL
+endif
+endif
+##} if (version >= 3.004001) ifplugin Mail::SpamAssassin::Plugin::AskDNS_sandbox
+
+##{ if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval_sandbox
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+enlist_addrlist (PAYPAL) *@paypal.com *@paypal.co.uk *@paypal.de *@paypal.com.au *@paypal.it
+enlist_addrlist (PAYPAL) *@paypal.es *@paypal.fr *@paypal.de *@paypal.com.hk
+enlist_addrlist (PAYPAL) *@*.paypal.com *@*.paypal.co.uk
+reuse    __FROM_ADDRLIST_PAYPAL
+reuse    FROM_PAYPAL_SPOOF
+enlist_addrlist (BANKS) *@abbey.co.uk *@abbey.com *@abbeyinternational.com *@abbeyinternational.co.uk *@abbeynational.com *@abbeynational.co.uk
+enlist_addrlist (BANKS) *@allianceleicester.com *@allianceleicester.co.uk *@alliance-leicester.com *@alliance-leicester.co.uk
+enlist_addrlist (BANKS) *@bankofamerica.com *@bankofamerica.co.uk
+enlist_addrlist (BANKS) *@barclaycard.com *@barclays.com
+enlist_addrlist (BANKS) *@citibank.com
+enlist_addrlist (BANKS) *@firstdirect.com *@firstdirect.co.uk
+enlist_addrlist (BANKS) *@halifax.com *@halifax.co.uk *@halifax-online.co.uk *@halifax-online.com
+enlist_addrlist (BANKS) *@hbos.com *@hbos.co.uk
+enlist_addrlist (BANKS) *@hsbc.com *@hsbc.co.uk *@hsbc.hk *@hsbcgroup.com *@hsbcgroup.co.uk
+enlist_addrlist (BANKS) *@lloydstsb.com *@lloydstsb.co.uk *@lloyds.com
+enlist_addrlist (BANKS) *@mbna.com
+enlist_addrlist (BANKS) *@nationwide.com *@nationwide.co.uk
+enlist_addrlist (BANKS) *@natwest.com *@natwest.co.uk
+enlist_addrlist (BANKS) *@santander.com *@santander.co.uk
+enlist_addrlist (BANKS) *@standardbank.co.za
+enlist_addrlist (BANKS) *@ybonline.co.uk *@ybonline.com
+reuse    __FROM_ADDRLIST_BANKS
+reuse    FROM_BANK_NOAUTH
+enlist_addrlist (GOV) *@*.gov
+enlist_addrlist (GOV) *@*.gov.uk *@parliament.uk *@*.parliament.uk
+reuse    __FROM_ADDRLIST_GOV
+reuse    FROM_GOV_SPOOF
+reuse    FROM_GOV_DKIM_AU
+reuse    FROM_GOV_REPLYTO_FREEMAIL
+enlist_addrlist (SUSP_NTLD) *@*.icu
+enlist_addrlist (SUSP_NTLD) *@*.online
+enlist_addrlist (SUSP_NTLD) *@*.work
+enlist_addrlist (SUSP_NTLD) *@*.date
+enlist_addrlist (SUSP_NTLD) *@*.top
+enlist_addrlist (SUSP_NTLD) *@*.fun
+enlist_addrlist (SUSP_NTLD) *@*.life
+enlist_addrlist (SUSP_NTLD) *@*.review
+enlist_addrlist (SUSP_NTLD) *@*.xyz
+enlist_addrlist (SUSP_NTLD) *@*.bid
+enlist_addrlist (SUSP_NTLD) *@*.stream
+enlist_addrlist (SUSP_NTLD) *@*.site
+enlist_addrlist (SUSP_NTLD) *@*.space
+enlist_addrlist (SUSP_NTLD) *@*.gdn
+enlist_addrlist (SUSP_NTLD) *@*.click
+enlist_addrlist (SUSP_NTLD) *@*.world
+enlist_addrlist (SUSP_NTLD) *@*.fit
+enlist_addrlist (SUSP_NTLD) *@*.ooo
+enlist_addrlist (SUSP_NTLD) *@*.faith
+enlist_addrlist (SUSP_NTLD) *@*.buzz
+enlist_addrlist (SUSP_NTLD) *@*.trade
+enlist_addrlist (SUSP_NTLD) *@*.cyou
+enlist_addrlist (SUSP_NTLD) *@*.vip
+enlist_uri_host (SUSP_URI_NTLD) icu
+enlist_uri_host (SUSP_URI_NTLD) online
+enlist_uri_host (SUSP_URI_NTLD) work
+enlist_uri_host (SUSP_URI_NTLD) date
+enlist_uri_host (SUSP_URI_NTLD) top
+enlist_uri_host (SUSP_URI_NTLD) fun
+enlist_uri_host (SUSP_URI_NTLD) life
+enlist_uri_host (SUSP_URI_NTLD) review
+enlist_uri_host (SUSP_URI_NTLD) xyz
+enlist_uri_host (SUSP_URI_NTLD) bid
+enlist_uri_host (SUSP_URI_NTLD) stream
+enlist_uri_host (SUSP_URI_NTLD) site
+enlist_uri_host (SUSP_URI_NTLD) space
+enlist_uri_host (SUSP_URI_NTLD) gdn
+enlist_uri_host (SUSP_URI_NTLD) click
+enlist_uri_host (SUSP_URI_NTLD) world
+enlist_uri_host (SUSP_URI_NTLD) fit
+enlist_uri_host (SUSP_URI_NTLD) ooo
+enlist_uri_host (SUSP_URI_NTLD) faith
+enlist_uri_host (SUSP_URI_NTLD) buzz
+enlist_uri_host (SUSP_URI_NTLD) trade
+enlist_uri_host (SUSP_URI_NTLD) cyou
+enlist_uri_host (SUSP_URI_NTLD) vip
+enlist_uri_host (SUSP_URI_NTLD_PRO) pro
+reuse    __FROM_ADDRLIST_SUSPNTLD
+reuse    __REPLYTO_ADDRLIST_SUSPNTLD
+reuse    FROM_SUSPICIOUS_NTLD
+reuse    GOOGLE_DRIVE_REPLY_BAD_NTLD
+reuse    VPS_NO_NTLD
+endif
+endif
+##} if (version >= 3.004002) ifplugin Mail::SpamAssassin::Plugin::WLBLEval_sandbox
+
+##{ if (version >= 3.004003) ifplugin Mail::SpamAssassin::Plugin::HashBL_sandbox
+
+if (version >= 3.004003)
+  ifplugin Mail::SpamAssassin::Plugin::HashBL
+    priority      T_GB_HASHBL_BTC -100
+    reuse         T_GB_HASHBL_BTC
+endif
+endif
+##} if (version >= 3.004003) ifplugin Mail::SpamAssassin::Plugin::HashBL_sandbox
+
+##{ if can(Mail::SpamAssassin::Conf::feature_bug6558_free) ifplugin Mail::SpamAssassin::Plugin::ReplaceTags_sandbox
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+    replace_tag lcase_e (?:e|\xc3[\xa8\xa9\xaa\xab]|\xc4[\x93\x95\x97\x99\x9b]|\xc8[\x85\x87\x80]|\xcf\xb5|\xd0\xb5|\xd1[\x90\x91\x94\xb3]|\xd2[\xbc\xbd\xbe\xbf]|\xd3[\x07\xa9\xab])
+    replace_rules   __E_LIKE_LETTER 
+endif
+endif
+##} if can(Mail::SpamAssassin::Conf::feature_bug6558_free) ifplugin Mail::SpamAssassin::Plugin::ReplaceTags_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::AskDNS_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+askdns    __DKIMWL_FREEMAIL _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.3\.\d+$/
+reuse     __DKIMWL_FREEMAIL
+askdns    __DKIMWL_BULKMAIL _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.2\.\d+$/
+reuse     __DKIMWL_BULKMAIL
+askdns    __DKIMWL_WL_HI    _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.5$/
+reuse     __DKIMWL_WL_HI
+askdns    __DKIMWL_WL_MEDHI _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.4$/
+reuse     __DKIMWL_WL_MEDHI
+askdns    __DKIMWL_WL_MED   _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.3$/
+reuse     __DKIMWL_WL_MED
+askdns    __DKIMWL_WL_BL   _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.\d+\.\d+\.0$/
+reuse     __DKIMWL_WL_BL
+askdns    __DKIMWL_BLOCKED  _DKIMDOMAIN_.lookup.dkimwl.org A /^127\.255\.255\.255$/
+reuse     __DKIMWL_BLOCKED
+reuse     DKIMWL_WL_HIGH
+reuse     DKIMWL_WL_MEDHI
+reuse     DKIMWL_WL_MED
+reuse     DKIMWL_BL
+reuse     DKIMWL_BLOCKED
+askdns   __HELO_DNS _LASTEXTERNALHELO_ A /./
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::AskDNS_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::DNSEval # {_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval # {
+reuse    RCVD_IN_PSBL
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::DNSEval # {_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::DNSEval_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::DNSEval
+reuse  RCVD_IN_IADB_LISTED
+reuse  RCVD_IN_IADB_EDDB
+reuse  RCVD_IN_IADB_EPIA
+reuse  RCVD_IN_IADB_SPF
+reuse  RCVD_IN_IADB_SENDERID
+reuse  RCVD_IN_IADB_DK
+reuse  RCVD_IN_IADB_RDNS
+reuse  RCVD_IN_IADB_GOODMAIL
+reuse  RCVD_IN_IADB_NOCONTROL
+reuse  RCVD_IN_IADB_OPTOUTONLY
+reuse  RCVD_IN_IADB_UNVERIFIED_1
+reuse  RCVD_IN_IADB_UNVERIFIED_2
+reuse  RCVD_IN_IADB_LOOSE
+reuse  RCVD_IN_IADB_OPTIN_LT50
+reuse  RCVD_IN_IADB_OPTIN_GT50
+reuse  RCVD_IN_IADB_OPTIN
+reuse  RCVD_IN_IADB_DOPTIN_LT50
+reuse  RCVD_IN_IADB_DOPTIN_GT50
+reuse  RCVD_IN_IADB_DOPTIN
+reuse  RCVD_IN_IADB_ML_DOPTIN
+reuse  RCVD_IN_IADB_OOO
+reuse  RCVD_IN_IADB_MI_CPEAR
+reuse  RCVD_IN_IADB_UT_CPEAR
+reuse  RCVD_IN_IADB_MI_CPR_30
+reuse  RCVD_IN_IADB_UT_CPR_30
+reuse  RCVD_IN_IADB_MI_CPR_MAT
+reuse  RCVD_IN_IADB_UT_CPR_MAT
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::DNSEval_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+fns_ignore_dkim linkedin.com googlegroups.com yahoogroups.com yahoogroups.de
+fns_ignore_headers List-Id
+fns_check 1
+reuse    __PLUGIN_FROMNAME_SPOOF
+reuse    __PLUGIN_FROMNAME_EQUALS_TO
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::ReplaceTags_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+replace_rules T_FUZZY_SPRM
+replace_rules FUZZY_MERIDIA
+replace_rules TVD_FUZZY_PHARMACEUTICAL
+replace_rules TVD_FUZZY_SYMBOL
+replace_rules T_TVD_FUZZY_SECURITIES
+replace_rules TVD_FUZZY_FINANCE
+replace_rules TVD_FUZZY_FIXED_RATE
+replace_rules TVD_FUZZY_MICROCAP
+replace_rules T_TVD_FUZZY_SECTOR
+replace_rules TVD_FUZZY_DEGREE
+  replace_rules __COPY_PASTE_EN
+  replace_tag FF_LNNO   (?:(?:\d{1,3}(?:[)}\]:.,]{1,80}|(?:st|nd|rd|th)[)}\]:.,]{0,3})|\W?\([\div]{1,5}\)|\W?\{\d{1,3}\}|\[\d{1,3}\]|\*{1,5}|\#{1,5}|\(?[A-K][)}\]:.,]{1,3})\s?)
+  replace_tag FF_YOUR   (?:a?\s?copy\sof\s)?(?:(?:your|din|seu|twoje)[\s,:]{1,5})?(?:present\s|c[uo]rrent\s|full(?:st[\xe4]ndigt)?\s?|complete\s|direct\s|private?\s|valid\s|personal\s|nuvarande\s|vollst[\xe4]ndige\s|aktuelle\s|pe\s(?:ne\s)?){0,3}
+  replace_tag ANDOR     (?:\s?[\/&+,]\s?|\sor\s|\sand?\s)
+  replace_tag NUMBER    (?:(?:ruf)?num(?:[bm]er)?\(?s?\)?|nos?\.|no\b|n[\xb0]|\#s?|nbrs?\.?)
+  replace_tag FF_SUFFIX (?:\sin\s(?:full|words)|\scompleto)?:?(?:\s?[({][^)}]{1,30}[)}])?
+  replace_tag FF_BLANK1 (?:[\s:;]{0,4}(?:(?:[-=_.,:;*\s\x85]|&\#\d{1,3};|[\xe2][\x80][\xa6]){3,100}))
+  replace_tag FF_BLANK2 (?:[^-=_.,:;*\w]{0,3}(?:[-=_.,:;*\s\x85]|&\#\d{1,3};|[\xe2][\x80][\xa6]){1,100})
+  replace_tag FF_A1 (?:(?:countr?y|city|province|ter+itory|(?:zip|post(?:al)?)(?:\s?code)?|st?ates?|ad+res+e?)<ANDOR>?){1,3}(?:\sof\s(?:residence|birth|employment|citizenship|origin))?
+  replace_tag FF_A2 (?:(?:contact|full|house|home|resident[ia]+l|busines+|mailing|work|delivery|ship+ing|post(?:al)?|of+ice|e-?mail|bostads|wohn)<ANDOR>?){0,3}\s?(?:ad+res+[es]{0,2}|location|endere[\xe7]o)(?:\sline)?(?:\s[0-9])?
+  replace_tag FF_N1 (?:company|first|last|all|busines+|legal|ben[ei]ficiary|user|vollstaendigen)?\s?(?:name?[sn]?|navne|nome|nazwy)(?:<ANDOR>ad+res+)?
+  replace_tag FF_P1 (?:(?:(?:busines+|contact|fax|voice|house|home|mobile?|cel+(?:ular)?|of+ice|tel+e?(?:\s?(?:ph|f)one?)?|(?:ph|f)one|private)(?:\s(?:ph|f)one)?<ANDOR>?){1,3}(?:\s?<NUMBER>)?<ANDOR>?){1,3}
+  replace_tag FF_M1 (?:(?:ages?|marital\s?statu[se]|sex|gender|male\sor\sfemale|(?:date\s(?:of\s)?)?birth|religion|nationality|(?:user )?email|next\sof\skin|alter|staatsangehoerigkeit|nationalitet|idade|weik)<ANDOR>?){1,3}
+  replace_tag FF_L1 (?:(?:previous\s)?work(?:ing)\s?experience|employment|position|profes+ion|(?:monthly|an+ual)?\s?income|purpose\sof\sl(?:oa|ao)n|an+ual\sturn\s?over|l(?:oa|ao)n\sduration|oc+up[ae]tion(?:\/position)?s?|(?:l(?:oa|ao)n\s|the\s)?amount(?:\sneed(ed)?|\sdesired)?(?:\s(?:as|of)\sloan)?|beruf|zaw(?:=F3|[\xf3])d)
+  replace_tag FF_F1 (?:(?:bank(?:ing)?|beneficiary|billing|acc(?:oun)?t|rout(?:ing)?|swift|receiver|user)<ANDOR>?){1,3}\s(?:(?:name|ad+res+(?:es)?|location|code|details|institution|a\/c|<NUMBER>)<ANDOR>?){1,3}
+  replace_tag FF_F2 (?:(?:(?:international\s)?driver'?s?\sli[sc]+(?:en[sc]e)?|pas+\s?port|id\scard|[ia]d(?:entification|entity)(?:\s(?:card|<NUMBER>|papers?))?)<ANDOR>?){1,3}(?:\s<NUMBER>)?
+  replace_tag FF_F3 (?:picture|zdj\scie|test\squestion|answer|amount\swon|(?:inheritance\s)?funds?\svalue|(?:e-?mail\s)?pas+word|e-?mai?l\sid|amount\s[\w\s]{0,30}lost[\w\s]{0,15})
+  replace_tag FF_F4 (?:log[-\s]?in|(?:e-?mail\s)?user)\s?names?
+  replace_tag FF_F5 (?:ref(?:erence)?|batch|win+ing|award|billet)[-\s]?<NUMBER>
+  replace_tag FF_ALL (?:<FF_A1>|<FF_A2>|<FF_N1>|<FF_P1>|<FF_M1>|<FF_F1>|<FF_F2>|<FF_F3>|<FF_F4>|<FF_F5>|<FF_L1>)
+  replace_rules   __FILL_THIS_FORM_LONG1
+  replace_rules   __FILL_THIS_FORM_LONG2
+  replace_rules   __FILL_THIS_FORM_PARTIAL
+  replace_rules   __FILL_THIS_FORM_PARTIAL_RAW
+  replace_rules   __FILL_THIS_FORM_SHORT1
+  replace_rules   __FILL_THIS_FORM_SHORT2
+  replace_rules   __FILL_THIS_FORM_LOAN1
+  replace_rules   __FILL_THIS_FORM_FRAUD_PHISH1
+  replace_tag  CURRENCY   (?:[\(\[]?(?:\bU[Ss][D\$]{0,2}|\$(?:US)?|usd|USD|CAD|GBP|=[Aa][34]|\xa3|&\#16[34];|(?i:pounds\ssterling)|\xa4|EUR(?:OS?)?|(?:d')?[Ee]uro?s?|(?i:eur)\sde|CHF|FCFA|d[\xf3]lares\sde\slos\sE+\.\s?U+\.)[\]\)]?)
+  replace_tag  GB_UK      \b(?:U\.?K\.?|(?:Great\s)?Brit(?:ain|ish)|G\.?B\.?)\b
+  replace_tag  NUM_NOT_DATE       [1-9](?!\d\d\d\.\d\d\.\d\d\s)(?!\d?\.\d\d?\.\d\d\d\d\s)
+  replace_tag  NUM_NOT_DATE_IP    <NUM_NOT_DATE>(?!\d{0,2}(?:\.0|\.[1-2]\d{0,2}){3}(?:\D|$))
+  replace_rules   __LOTSA_MONEY_00 __LOTSA_MONEY_01 __LOTSA_MONEY_02 __LOTSA_MONEY_03 __LOTSA_MONEY_04
+  replace_tag  PERCENT      \b(?:\d\d|ten|[a-z]+teen|(?:twen|thir|fou?r|fif)ty(?:-?[a-z]+)?)\s?(?:%|percent)
+  replace_rules  __PCT_FOR_YOU_1 __PCT_FOR_YOU_2 __PCT_FOR_YOU_3 __PCT_OF_PMTS
+  replace_rules  T_FUZZY_OPTOUT
+       replace_rules                  __FRT_PRICE
+  replace_rules FUZZY_UNSUBSCRIBE
+  replace_rules FUZZY_ANDROID
+  replace_rules FUZZY_PROMOTION
+  replace_rules FUZZY_PRIVACY
+  replace_rules FUZZY_BROWSER
+  replace_rules FUZZY_SAVINGS
+  replace_rules FUZZY_IMPORTANT
+  replace_rules FUZZY_SECURITY
+  replace_rules __FUZZY_DR_OZ
+  replace_rules FUZZY_CLICK_HERE
+  replace_rules FUZZY_BITCOIN   
+  replace_rules __BITCOIN   
+  replace_rules FUZZY_WALLET    
+  replace_rules __FUZZY_MONERO
+  replace_rules __FUZZY_WELLSFARGO_BODY
+  replace_rules __FUZZY_WELLSFARGO_FROM
+  replace_rules __FUZZY_PORN      
+  replace_rules FUZZY_AMAZON   
+  replace_rules FUZZY_APPLE    
+  replace_rules FUZZY_MICROSOFT
+  replace_rules FUZZY_FACEBOOK  
+  replace_rules FUZZY_PAYPAL   
+  replace_rules FUZZY_NORTON   
+  replace_rules FUZZY_OVERSTOCK
+  replace_rules  __MY_VICTIM
+  replace_rules  __MY_MALWARE
+  replace_rules  __PAY_ME
+  replace_rules  __YOUR_PASSWORD
+  replace_rules  __YOUR_WEBCAM
+  replace_rules  __YOUR_ONAN
+  replace_rules  __YOUR_PERSONAL
+  replace_rules  __HOURS_DEADLINE
+  replace_rules  __EXPLOSIVE_DEVICE
+replace_rules T_LFUZ_PWRMALE
+  replace_rules   __PDS_BTC_HACKER __PDS_BTC_PIRATE
+  reuse    T_PDS_BTC_AHACKER
+  reuse    T_PDS_BTC_HACKER
+  reuse    T_PDS_LTC_AHACKER
+  reuse    T_PDS_LTC_HACKER
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::ReplaceTags_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::URIDNSBL_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::URIDNSBL
+reuse URIBL_RHS_DOB
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::URIDNSBL_sandbox
+
+##{ ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)_sandbox
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+enlist_uri_host (PDS_CASHSHORTENER) cutpaid.com
+enlist_uri_host (PDS_CASHSHORTENER) caat.site
+enlist_uri_host (PDS_CASHSHORTENER) triabicia.com
+enlist_uri_host (PDS_CASHSHORTENER) 2xs.io
+enlist_uri_host (PDS_CASHSHORTENER) ocest.site
+enlist_uri_host (PDS_CASHSHORTENER) spiin.xyz
+enlist_uri_host (PDS_CASHSHORTENER) waar.site
+enlist_uri_host (PDS_CASHSHORTENER) cpmlink.net
+enlist_uri_host (PDS_CASHSHORTENER) cowner.net
+enlist_uri_host (PDS_CASHSHORTENER) adfoc.us
+enlist_uri_host (PDS_CASHSHORTENER) shrinkhere.xyz
+enlist_uri_host (PDS_CASHSHORTENER) gurl.pw
+enlist_uri_host (PDS_CASHSHORTENER) shortearn.eu
+enlist_uri_host (PDS_CASHSHORTENER) spiin.xyz
+enlist_uri_host (PDS_CASHSHORTENER) libittarc.com
+enlist_uri_host (PDS_CASHSHORTENER) pc.cd
+enlist_uri_host (PDS_CASHSHORTENER) fc.lc
+enlist_uri_host (PDS_CASHSHORTENER) dares.xyz
+enlist_uri_host (PDS_CASHSHORTENER) trendlouds.com
+enlist_uri_host (PDS_CASHSHORTENER) yogaf.xyz
+enlist_uri_host (PDS_CASHSHORTENER) cobs.xyz
+enlist_uri_host (PDS_CASHSHORTENER) olnew.xyz
+enlist_uri_host (PDS_CASHSHORTENER) cleft.xyz
+enlist_uri_host (PDS_CASHSHORTENER) 7r6.com
+enlist_uri_host (PDS_CASHSHORTENER) mitly.us
+enlist_uri_host (PDS_CASHSHORTENER) kutpay.com
+enlist_uri_host (PDS_CASHSHORTENER) gsurl.me
+enlist_uri_host (PDS_CASHSHORTENER) gurl.ly
+enlist_uri_host (PDS_CASHSHORTENER) gsurl.in
+enlist_uri_host (PDS_CASHSHORTENER) acitoate.com
+enlist_uri_host (PDS_CASHSHORTENER) aclabink.com
+enlist_uri_host (PDS_CASHSHORTENER) activeation.com
+enlist_uri_host (PDS_CASHSHORTENER) activeterium.com
+enlist_uri_host (PDS_CASHSHORTENER) adflyforum.com
+enlist_uri_host (PDS_CASHSHORTENER) adflymail.com
+enlist_uri_host (PDS_CASHSHORTENER) adult.xyz
+enlist_uri_host (PDS_CASHSHORTENER) agileurbia.com
+enlist_uri_host (PDS_CASHSHORTENER) atomcurve.com
+enlist_uri_host (PDS_CASHSHORTENER) ay.gy
+enlist_uri_host (PDS_CASHSHORTENER) battleate.com
+enlist_uri_host (PDS_CASHSHORTENER) biastonu.com
+enlist_uri_host (PDS_CASHSHORTENER) bitigee.com
+enlist_uri_host (PDS_CASHSHORTENER) briskrange.com
+enlist_uri_host (PDS_CASHSHORTENER) brisktopia.com
+enlist_uri_host (PDS_CASHSHORTENER) casualient.com
+enlist_uri_host (PDS_CASHSHORTENER) clesolea.com
+enlist_uri_host (PDS_CASHSHORTENER) code404.biz
+enlist_uri_host (PDS_CASHSHORTENER) coginator.com
+enlist_uri_host (PDS_CASHSHORTENER) cogismith.com
+enlist_uri_host (PDS_CASHSHORTENER) covelign.com
+enlist_uri_host (PDS_CASHSHORTENER) crefranek.com
+enlist_uri_host (PDS_CASHSHORTENER) dashsphere.com
+enlist_uri_host (PDS_CASHSHORTENER) dataurbia.com
+enlist_uri_host (PDS_CASHSHORTENER) deciomm.com
+enlist_uri_host (PDS_CASHSHORTENER) ducolomal.com
+enlist_uri_host (PDS_CASHSHORTENER) east-jones.com
+enlist_uri_host (PDS_CASHSHORTENER) ecleneue.com
+enlist_uri_host (PDS_CASHSHORTENER) ellevolaw.com
+enlist_uri_host (PDS_CASHSHORTENER) endroudo.com
+enlist_uri_host (PDS_CASHSHORTENER) eunsetee.com
+enlist_uri_host (PDS_CASHSHORTENER) fainbory.com
+enlist_uri_host (PDS_CASHSHORTENER) fasttory.com
+enlist_uri_host (PDS_CASHSHORTENER) fawright.com
+enlist_uri_host (PDS_CASHSHORTENER) flyserve.co
+enlist_uri_host (PDS_CASHSHORTENER) greponozy.com
+enlist_uri_host (PDS_CASHSHORTENER) homoluath.com
+enlist_uri_host (PDS_CASHSHORTENER) hopigrarn.com
+enlist_uri_host (PDS_CASHSHORTENER) infopade.com
+enlist_uri_host (PDS_CASHSHORTENER) j.gs
+enlist_uri_host (PDS_CASHSHORTENER) kaitect.com
+enlist_uri_host (PDS_CASHSHORTENER) kializer.com
+enlist_uri_host (PDS_CASHSHORTENER) kibuilder.com
+enlist_uri_host (PDS_CASHSHORTENER) kimechanic.com
+enlist_uri_host (PDS_CASHSHORTENER) kudoflow.com
+enlist_uri_host (PDS_CASHSHORTENER) legeerook.com
+enlist_uri_host (PDS_CASHSHORTENER) libittarc.com
+enlist_uri_host (PDS_CASHSHORTENER) linkjaunt.com
+enlist_uri_host (PDS_CASHSHORTENER) locinealy.com
+enlist_uri_host (PDS_CASHSHORTENER) maetrimal.com
+enlist_uri_host (PDS_CASHSHORTENER) metastead.com
+enlist_uri_host (PDS_CASHSHORTENER) mmoity.com
+enlist_uri_host (PDS_CASHSHORTENER) mondoagram.com
+enlist_uri_host (PDS_CASHSHORTENER) neswery.com
+enlist_uri_host (PDS_CASHSHORTENER) nimbleinity.com
+enlist_uri_host (PDS_CASHSHORTENER) onisedeo.com
+enlist_uri_host (PDS_CASHSHORTENER) optitopt.com
+enlist_uri_host (PDS_CASHSHORTENER) picocurl.com
+enlist_uri_host (PDS_CASHSHORTENER) pladollmo.com
+enlist_uri_host (PDS_CASHSHORTENER) preofery.com
+enlist_uri_host (PDS_CASHSHORTENER) prereheus.com
+enlist_uri_host (PDS_CASHSHORTENER) q.gs
+enlist_uri_host (PDS_CASHSHORTENER) quainator.com
+enlist_uri_host (PDS_CASHSHORTENER) quamiller.com
+enlist_uri_host (PDS_CASHSHORTENER) queuecosm.bid
+enlist_uri_host (PDS_CASHSHORTENER) raboninco.com
+enlist_uri_host (PDS_CASHSHORTENER) rapidteria.com
+enlist_uri_host (PDS_CASHSHORTENER) rapidtory.com
+enlist_uri_host (PDS_CASHSHORTENER) sapolatsu.com
+enlist_uri_host (PDS_CASHSHORTENER) scapognel.com
+enlist_uri_host (PDS_CASHSHORTENER) simizer.com
+enlist_uri_host (PDS_CASHSHORTENER) skamaker.com
+enlist_uri_host (PDS_CASHSHORTENER) skamason.com
+enlist_uri_host (PDS_CASHSHORTENER) sluppend.com
+enlist_uri_host (PDS_CASHSHORTENER) sprysphere.com
+enlist_uri_host (PDS_CASHSHORTENER) streamvoyage.com
+enlist_uri_host (PDS_CASHSHORTENER) swarife.com
+enlist_uri_host (PDS_CASHSHORTENER) swiftation.com
+enlist_uri_host (PDS_CASHSHORTENER) swifttopia.com
+enlist_uri_host (PDS_CASHSHORTENER) techigo.com
+enlist_uri_host (PDS_CASHSHORTENER) threadsphere.bid
+enlist_uri_host (PDS_CASHSHORTENER) tinyical.com
+enlist_uri_host (PDS_CASHSHORTENER) tonancos.com
+enlist_uri_host (PDS_CASHSHORTENER) triabicia.com
+enlist_uri_host (PDS_CASHSHORTENER) turboagram.com
+enlist_uri_host (PDS_CASHSHORTENER) twineer.com
+enlist_uri_host (PDS_CASHSHORTENER) twiriock.com
+enlist_uri_host (PDS_CASHSHORTENER) userlab66.com
+enlist_uri_host (PDS_CASHSHORTENER) vaugette.com
+enlist_uri_host (PDS_CASHSHORTENER) velocicosm.com
+enlist_uri_host (PDS_CASHSHORTENER) velociterium.com
+enlist_uri_host (PDS_CASHSHORTENER) viahold.com
+enlist_uri_host (PDS_CASHSHORTENER) vializer.com
+enlist_uri_host (PDS_CASHSHORTENER) viwright.com
+enlist_uri_host (PDS_CASHSHORTENER) whareotiv.com
+enlist_uri_host (PDS_CASHSHORTENER) wirecellar.com
+enlist_uri_host (PDS_CASHSHORTENER) x19.biz
+enlist_uri_host (PDS_CASHSHORTENER) x19network.com
+enlist_uri_host (PDS_CASHSHORTENER) yabuilder.com
+enlist_uri_host (PDS_CASHSHORTENER) yamechanic.com
+enlist_uri_host (PDS_CASHSHORTENER) yoalizer.com
+enlist_uri_host (PDS_CASHSHORTENER) yobuilder.com
+enlist_uri_host (PDS_CASHSHORTENER) yoineer.com
+enlist_uri_host (PDS_CASHSHORTENER) yoitect.com
+enlist_uri_host (PDS_CASHSHORTENER) zipansion.com
+enlist_uri_host (PDS_CASHSHORTENER) zipteria.com
+enlist_uri_host (PDS_CASHSHORTENER) zipvale.com
+enlist_uri_host (PDS_URISHORTENER) owl.li
+enlist_uri_host (PDS_URISHORTENER) formspring.me
+enlist_uri_host (PDS_URISHORTENER) cc.uz
+enlist_uri_host (PDS_URISHORTENER) back.ly
+enlist_uri_host (PDS_URISHORTENER) surl.me
+enlist_uri_host (PDS_URISHORTENER) mysp.ac
+enlist_uri_host (PDS_URISHORTENER) s.apache.org
+enlist_uri_host (PDS_URISHORTENER) 0rz.tw
+enlist_uri_host (PDS_URISHORTENER) 1l2.us
+enlist_uri_host (PDS_URISHORTENER) 1link.in
+enlist_uri_host (PDS_URISHORTENER) 1u.ro
+enlist_uri_host (PDS_URISHORTENER) 1url.com
+enlist_uri_host (PDS_URISHORTENER) 2.gp
+enlist_uri_host (PDS_URISHORTENER) 2.ly
+enlist_uri_host (PDS_URISHORTENER) 2big.at
+enlist_uri_host (PDS_URISHORTENER) 2chap.it
+enlist_uri_host (PDS_URISHORTENER) 2pl.us
+enlist_uri_host (PDS_URISHORTENER) 2su.de
+enlist_uri_host (PDS_URISHORTENER) 2tu.us
+enlist_uri_host (PDS_URISHORTENER) 2ze.us
+enlist_uri_host (PDS_URISHORTENER) 3.ly
+enlist_uri_host (PDS_URISHORTENER) 301.to
+enlist_uri_host (PDS_URISHORTENER) 301url.com
+enlist_uri_host (PDS_URISHORTENER) 307.to
+enlist_uri_host (PDS_URISHORTENER) 4ms.me
+enlist_uri_host (PDS_URISHORTENER) 4sq.com
+enlist_uri_host (PDS_URISHORTENER) 4url.cc
+enlist_uri_host (PDS_URISHORTENER) 6url.com
+enlist_uri_host (PDS_URISHORTENER) 7.ly
+enlist_uri_host (PDS_URISHORTENER) 9mp.com
+enlist_uri_host (PDS_URISHORTENER) a.gd
+enlist_uri_host (PDS_URISHORTENER) a.gg
+enlist_uri_host (PDS_URISHORTENER) a.nf
+enlist_uri_host (PDS_URISHORTENER) a2a.me
+enlist_uri_host (PDS_URISHORTENER) a2n.eu
+enlist_uri_host (PDS_URISHORTENER) aa.cx
+enlist_uri_host (PDS_URISHORTENER) abbr.com
+enlist_uri_host (PDS_URISHORTENER) abcurl.net
+enlist_uri_host (PDS_URISHORTENER) abe5.com
+enlist_uri_host (PDS_URISHORTENER) access.im
+enlist_uri_host (PDS_URISHORTENER) ad.vu
+enlist_uri_host (PDS_URISHORTENER) adf.ly
+enlist_uri_host (PDS_URISHORTENER) adjix.com
+enlist_uri_host (PDS_URISHORTENER) afx.cc
+enlist_uri_host (PDS_URISHORTENER) all.fuseurl.com
+enlist_uri_host (PDS_URISHORTENER) alturl.com
+enlist_uri_host (PDS_URISHORTENER) amzn.com
+enlist_uri_host (PDS_URISHORTENER) amzn.to
+enlist_uri_host (PDS_URISHORTENER) ar.gy
+enlist_uri_host (PDS_URISHORTENER) arm.in
+enlist_uri_host (PDS_URISHORTENER) arst.ch
+enlist_uri_host (PDS_URISHORTENER) asso.in
+enlist_uri_host (PDS_URISHORTENER) atu.ca
+enlist_uri_host (PDS_URISHORTENER) aurls.info
+enlist_uri_host (PDS_URISHORTENER) awe.sm
+enlist_uri_host (PDS_URISHORTENER) ayl.lv
+enlist_uri_host (PDS_URISHORTENER) azc.cc
+enlist_uri_host (PDS_URISHORTENER) azqq.com
+enlist_uri_host (PDS_URISHORTENER) b23.ru
+enlist_uri_host (PDS_URISHORTENER) b2l.me
+enlist_uri_host (PDS_URISHORTENER) b65.com
+enlist_uri_host (PDS_URISHORTENER) b65.us
+enlist_uri_host (PDS_URISHORTENER) bacn.me
+enlist_uri_host (PDS_URISHORTENER) bcool.bz
+enlist_uri_host (PDS_URISHORTENER) beam.to
+enlist_uri_host (PDS_URISHORTENER) bgl.me
+enlist_uri_host (PDS_URISHORTENER) binged.it
+enlist_uri_host (PDS_URISHORTENER) bit.do
+enlist_uri_host (PDS_URISHORTENER) bit.ly
+enlist_uri_host (PDS_URISHORTENER) bitly.com
+enlist_uri_host (PDS_URISHORTENER) bizj.us
+enlist_uri_host (PDS_URISHORTENER) bkite.com
+enlist_uri_host (PDS_URISHORTENER) blippr.com
+enlist_uri_host (PDS_URISHORTENER) bloat.me
+enlist_uri_host (PDS_URISHORTENER) blu.cc
+enlist_uri_host (PDS_URISHORTENER) bon.no
+enlist_uri_host (PDS_URISHORTENER) bravo.ly
+enlist_uri_host (PDS_URISHORTENER) bsa.ly
+enlist_uri_host (PDS_URISHORTENER) bt.io
+enlist_uri_host (PDS_URISHORTENER) budurl.com
+enlist_uri_host (PDS_URISHORTENER) buff.ly
+enlist_uri_host (PDS_URISHORTENER) buk.me
+enlist_uri_host (PDS_URISHORTENER) burnurl.com
+enlist_uri_host (PDS_URISHORTENER) c-o.in
+enlist_uri_host (PDS_URISHORTENER) c.shamekh.ws
+enlist_uri_host (PDS_URISHORTENER) canurl.com
+enlist_uri_host (PDS_URISHORTENER) cd4.me
+enlist_uri_host (PDS_URISHORTENER) chilp.it
+enlist_uri_host (PDS_URISHORTENER) chopd.it
+enlist_uri_host (PDS_URISHORTENER) chpt.me
+enlist_uri_host (PDS_URISHORTENER) chs.mx
+enlist_uri_host (PDS_URISHORTENER) chzb.gr
+enlist_uri_host (PDS_URISHORTENER) cl.lk
+enlist_uri_host (PDS_URISHORTENER) cl.ly
+enlist_uri_host (PDS_URISHORTENER) clck.ru
+enlist_uri_host (PDS_URISHORTENER) cli.gs
+enlist_uri_host (PDS_URISHORTENER) cliccami.info
+enlist_uri_host (PDS_URISHORTENER) clickthru.ca
+enlist_uri_host (PDS_URISHORTENER) clipurl.us
+enlist_uri_host (PDS_URISHORTENER) clk.my
+enlist_uri_host (PDS_URISHORTENER) cloaky.de
+enlist_uri_host (PDS_URISHORTENER) clop.in
+enlist_uri_host (PDS_URISHORTENER) clp.ly
+enlist_uri_host (PDS_URISHORTENER) coge.la
+enlist_uri_host (PDS_URISHORTENER) cokeurl.com
+enlist_uri_host (PDS_URISHORTENER) conta.cc
+enlist_uri_host (PDS_URISHORTENER) cort.as
+enlist_uri_host (PDS_URISHORTENER) cot.ag
+enlist_uri_host (PDS_URISHORTENER) crks.me
+enlist_uri_host (PDS_URISHORTENER) crum.pl
+enlist_uri_host (PDS_URISHORTENER) ctvr.us
+enlist_uri_host (PDS_URISHORTENER) curio.us
+enlist_uri_host (PDS_URISHORTENER) cuthut.com
+enlist_uri_host (PDS_URISHORTENER) cutt.us
+enlist_uri_host (PDS_URISHORTENER) cuturl.com
+enlist_uri_host (PDS_URISHORTENER) cuturls.com
+enlist_uri_host (PDS_URISHORTENER) dai.ly
+enlist_uri_host (PDS_URISHORTENER) db.tt
+enlist_uri_host (PDS_URISHORTENER) dealspl.us
+enlist_uri_host (PDS_URISHORTENER) decenturl.com
+enlist_uri_host (PDS_URISHORTENER) df9.net
+enlist_uri_host (PDS_URISHORTENER) dfl8.me
+enlist_uri_host (PDS_URISHORTENER) digbig.com
+enlist_uri_host (PDS_URISHORTENER) digg.com
+enlist_uri_host (PDS_URISHORTENER) digipills.com
+enlist_uri_host (PDS_URISHORTENER) digs.by
+enlist_uri_host (PDS_URISHORTENER) disq.us
+enlist_uri_host (PDS_URISHORTENER) dld.bz
+enlist_uri_host (PDS_URISHORTENER) dlvr.it
+enlist_uri_host (PDS_URISHORTENER) dn.vc
+enlist_uri_host (PDS_URISHORTENER) do.my
+enlist_uri_host (PDS_URISHORTENER) doi.org
+enlist_uri_host (PDS_URISHORTENER) doiop.com
+enlist_uri_host (PDS_URISHORTENER) dopen.us
+enlist_uri_host (PDS_URISHORTENER) dr.tl
+enlist_uri_host (PDS_URISHORTENER) drudge.tw
+enlist_uri_host (PDS_URISHORTENER) durl.me
+enlist_uri_host (PDS_URISHORTENER) durl.us
+enlist_uri_host (PDS_URISHORTENER) dvlr.it
+enlist_uri_host (PDS_URISHORTENER) dwarfurl.com
+enlist_uri_host (PDS_URISHORTENER) easyuri.com
+enlist_uri_host (PDS_URISHORTENER) easyurl.net
+enlist_uri_host (PDS_URISHORTENER) eca.sh
+enlist_uri_host (PDS_URISHORTENER) eclurl.com
+enlist_uri_host (PDS_URISHORTENER) eepurl.com
+enlist_uri_host (PDS_URISHORTENER) eezurl.com
+enlist_uri_host (PDS_URISHORTENER) eweri.com
+enlist_uri_host (PDS_URISHORTENER) ewerl.com
+enlist_uri_host (PDS_URISHORTENER) ezurl.eu
+enlist_uri_host (PDS_URISHORTENER) fa.by
+enlist_uri_host (PDS_URISHORTENER) faceto.us
+enlist_uri_host (PDS_URISHORTENER) fav.me
+enlist_uri_host (PDS_URISHORTENER) fb.me
+enlist_uri_host (PDS_URISHORTENER) fbshare.me
+enlist_uri_host (PDS_URISHORTENER) ff.im
+enlist_uri_host (PDS_URISHORTENER) fff.to
+enlist_uri_host (PDS_URISHORTENER) fhurl.com
+enlist_uri_host (PDS_URISHORTENER) fire.to
+enlist_uri_host (PDS_URISHORTENER) firsturl.de
+enlist_uri_host (PDS_URISHORTENER) firsturl.net
+enlist_uri_host (PDS_URISHORTENER) flic.kr
+enlist_uri_host (PDS_URISHORTENER) flingk.com
+enlist_uri_host (PDS_URISHORTENER) flq.us
+enlist_uri_host (PDS_URISHORTENER) fly2.ws
+enlist_uri_host (PDS_URISHORTENER) fon.gs
+enlist_uri_host (PDS_URISHORTENER) foxyurl.com
+enlist_uri_host (PDS_URISHORTENER) freak.to
+enlist_uri_host (PDS_URISHORTENER) fur.ly
+enlist_uri_host (PDS_URISHORTENER) fuseurl.com
+enlist_uri_host (PDS_URISHORTENER) fuzzy.to
+enlist_uri_host (PDS_URISHORTENER) fwd4.me
+enlist_uri_host (PDS_URISHORTENER) fwdurl.net
+enlist_uri_host (PDS_URISHORTENER) fwib.net
+enlist_uri_host (PDS_URISHORTENER) g.ro.lt
+enlist_uri_host (PDS_URISHORTENER) g8l.us
+enlist_uri_host (PDS_URISHORTENER) get-shorty.com
+enlist_uri_host (PDS_URISHORTENER) get-url.com
+enlist_uri_host (PDS_URISHORTENER) get.sh
+enlist_uri_host (PDS_URISHORTENER) geturl.us
+enlist_uri_host (PDS_URISHORTENER) gg.gg
+enlist_uri_host (PDS_URISHORTENER) gi.vc
+enlist_uri_host (PDS_URISHORTENER) gizmo.do
+enlist_uri_host (PDS_URISHORTENER) gkurl.us
+enlist_uri_host (PDS_URISHORTENER) gl.am
+enlist_uri_host (PDS_URISHORTENER) go.9nl.com
+enlist_uri_host (PDS_URISHORTENER) go.ign.com
+enlist_uri_host (PDS_URISHORTENER) go.to
+enlist_uri_host (PDS_URISHORTENER) go.usa.gov
+enlist_uri_host (PDS_URISHORTENER) go2.me
+enlist_uri_host (PDS_URISHORTENER) gog.li
+enlist_uri_host (PDS_URISHORTENER) golmao.com
+enlist_uri_host (PDS_URISHORTENER) goo.gl
+enlist_uri_host (PDS_URISHORTENER) goo.io
+enlist_uri_host (PDS_URISHORTENER) good.ly
+enlist_uri_host (PDS_URISHORTENER) goshrink.com
+enlist_uri_host (PDS_URISHORTENER) gplus.to
+enlist_uri_host (PDS_URISHORTENER) gri.ms
+enlist_uri_host (PDS_URISHORTENER) gurl.es
+enlist_uri_host (PDS_URISHORTENER) hao.jp
+enlist_uri_host (PDS_URISHORTENER) hellotxt.com
+enlist_uri_host (PDS_URISHORTENER) hex.io
+enlist_uri_host (PDS_URISHORTENER) hiderefer.com
+enlist_uri_host (PDS_URISHORTENER) hmm.ph
+enlist_uri_host (PDS_URISHORTENER) hop.im
+enlist_uri_host (PDS_URISHORTENER) hop.kz
+enlist_uri_host (PDS_URISHORTENER) hopclicks.com
+enlist_uri_host (PDS_URISHORTENER) hotredirect.com
+enlist_uri_host (PDS_URISHORTENER) hotshorturl.com
+enlist_uri_host (PDS_URISHORTENER) href.in
+enlist_uri_host (PDS_URISHORTENER) hsblinks.com
+enlist_uri_host (PDS_URISHORTENER) ht.ly
+enlist_uri_host (PDS_URISHORTENER) htxt.it
+enlist_uri_host (PDS_URISHORTENER) hub.am
+enlist_uri_host (PDS_URISHORTENER) huff.to
+enlist_uri_host (PDS_URISHORTENER) hugeurl.com
+enlist_uri_host (PDS_URISHORTENER) hulu.com
+enlist_uri_host (PDS_URISHORTENER) hurl.it
+enlist_uri_host (PDS_URISHORTENER) hurl.me
+enlist_uri_host (PDS_URISHORTENER) hurl.no
+enlist_uri_host (PDS_URISHORTENER) hurl.ws
+enlist_uri_host (PDS_URISHORTENER) icanhaz.com
+enlist_uri_host (PDS_URISHORTENER) icio.us
+enlist_uri_host (PDS_URISHORTENER) idek.net
+enlist_uri_host (PDS_URISHORTENER) ikr.me
+enlist_uri_host (PDS_URISHORTENER) ilix.in
+enlist_uri_host (PDS_URISHORTENER) inx.lv
+enlist_uri_host (PDS_URISHORTENER) ir.pe
+enlist_uri_host (PDS_URISHORTENER) irt.me
+enlist_uri_host (PDS_URISHORTENER) is.gd
+enlist_uri_host (PDS_URISHORTENER) iscool.net
+enlist_uri_host (PDS_URISHORTENER) it2.in
+enlist_uri_host (PDS_URISHORTENER) ito.mx
+enlist_uri_host (PDS_URISHORTENER) its.my
+enlist_uri_host (PDS_URISHORTENER) itsy.it
+enlist_uri_host (PDS_URISHORTENER) ix.lt
+enlist_uri_host (PDS_URISHORTENER) j.mp
+enlist_uri_host (PDS_URISHORTENER) j2j.de
+enlist_uri_host (PDS_URISHORTENER) jdem.cz
+enlist_uri_host (PDS_URISHORTENER) jijr.com
+enlist_uri_host (PDS_URISHORTENER) just.as
+enlist_uri_host (PDS_URISHORTENER) k.vu
+enlist_uri_host (PDS_URISHORTENER) k6.kz
+enlist_uri_host (PDS_URISHORTENER) ketkp.in
+enlist_uri_host (PDS_URISHORTENER) kisa.ch
+enlist_uri_host (PDS_URISHORTENER) kissa.be
+enlist_uri_host (PDS_URISHORTENER) kl.am
+enlist_uri_host (PDS_URISHORTENER) klck.me
+enlist_uri_host (PDS_URISHORTENER) kore.us
+enlist_uri_host (PDS_URISHORTENER) korta.nu
+enlist_uri_host (PDS_URISHORTENER) kots.nu
+enlist_uri_host (PDS_URISHORTENER) krunchd.com
+enlist_uri_host (PDS_URISHORTENER) krz.ch
+enlist_uri_host (PDS_URISHORTENER) ktzr.us
+enlist_uri_host (PDS_URISHORTENER) kxk.me
+enlist_uri_host (PDS_URISHORTENER) l.hh.de
+enlist_uri_host (PDS_URISHORTENER) l.pr
+enlist_uri_host (PDS_URISHORTENER) l9k.net
+enlist_uri_host (PDS_URISHORTENER) lat.ms
+enlist_uri_host (PDS_URISHORTENER) liip.to
+enlist_uri_host (PDS_URISHORTENER) liltext.com
+enlist_uri_host (PDS_URISHORTENER) lin.cr
+enlist_uri_host (PDS_URISHORTENER) lin.io
+enlist_uri_host (PDS_URISHORTENER) linkbee.com
+enlist_uri_host (PDS_URISHORTENER) linkbun.ch
+enlist_uri_host (PDS_URISHORTENER) linkee.com
+enlist_uri_host (PDS_URISHORTENER) linkgap.com
+enlist_uri_host (PDS_URISHORTENER) linkslice.com
+enlist_uri_host (PDS_URISHORTENER) linxfix.de
+enlist_uri_host (PDS_URISHORTENER) liteurl.net
+enlist_uri_host (PDS_URISHORTENER) liurl.cn
+enlist_uri_host (PDS_URISHORTENER) livesi.de
+enlist_uri_host (PDS_URISHORTENER) lix.in
+enlist_uri_host (PDS_URISHORTENER) lk.ht
+enlist_uri_host (PDS_URISHORTENER) ln-s.net
+enlist_uri_host (PDS_URISHORTENER) ln-s.ru
+enlist_uri_host (PDS_URISHORTENER) lnk.by
+enlist_uri_host (PDS_URISHORTENER) lnk.gd
+enlist_uri_host (PDS_URISHORTENER) lnk.in
+enlist_uri_host (PDS_URISHORTENER) lnk.ly
+enlist_uri_host (PDS_URISHORTENER) lnk.ms
+enlist_uri_host (PDS_URISHORTENER) lnk.sk
+enlist_uri_host (PDS_URISHORTENER) lnkd.in
+enlist_uri_host (PDS_URISHORTENER) lnkurl.com
+enlist_uri_host (PDS_URISHORTENER) loopt.us
+enlist_uri_host (PDS_URISHORTENER) lost.in
+enlist_uri_host (PDS_URISHORTENER) lru.jp
+enlist_uri_host (PDS_URISHORTENER) lt.tl
+enlist_uri_host (PDS_URISHORTENER) lu.to
+enlist_uri_host (PDS_URISHORTENER) lurl.no
+enlist_uri_host (PDS_URISHORTENER) macte.ch
+enlist_uri_host (PDS_URISHORTENER) mash.to
+enlist_uri_host (PDS_URISHORTENER) mavrev.com
+enlist_uri_host (PDS_URISHORTENER) mcaf.ee
+enlist_uri_host (PDS_URISHORTENER) memurl.com
+enlist_uri_host (PDS_URISHORTENER) merky.de
+enlist_uri_host (PDS_URISHORTENER) metamark.net
+enlist_uri_host (PDS_URISHORTENER) migre.me
+enlist_uri_host (PDS_URISHORTENER) min2.me
+enlist_uri_host (PDS_URISHORTENER) minilien.com
+enlist_uri_host (PDS_URISHORTENER) minilink.org
+enlist_uri_host (PDS_URISHORTENER) miniurl.com
+enlist_uri_host (PDS_URISHORTENER) minurl.fr
+enlist_uri_host (PDS_URISHORTENER) mke.me
+enlist_uri_host (PDS_URISHORTENER) moby.to
+enlist_uri_host (PDS_URISHORTENER) moourl.com
+enlist_uri_host (PDS_URISHORTENER) mrte.ch
+enlist_uri_host (PDS_URISHORTENER) msg.sg
+enlist_uri_host (PDS_URISHORTENER) murl.kz
+enlist_uri_host (PDS_URISHORTENER) mv2.me
+enlist_uri_host (PDS_URISHORTENER) myloc.me
+enlist_uri_host (PDS_URISHORTENER) mysp.in
+enlist_uri_host (PDS_URISHORTENER) myurl.in
+enlist_uri_host (PDS_URISHORTENER) myurl.si
+enlist_uri_host (PDS_URISHORTENER) n.pr
+enlist_uri_host (PDS_URISHORTENER) nanoref.com
+enlist_uri_host (PDS_URISHORTENER) nanourl.se
+enlist_uri_host (PDS_URISHORTENER) nbc.co
+enlist_uri_host (PDS_URISHORTENER) nblo.gs
+enlist_uri_host (PDS_URISHORTENER) nbx.ch
+enlist_uri_host (PDS_URISHORTENER) ncane.com
+enlist_uri_host (PDS_URISHORTENER) ndurl.com
+enlist_uri_host (PDS_URISHORTENER) ne1.net
+enlist_uri_host (PDS_URISHORTENER) netnet.me
+enlist_uri_host (PDS_URISHORTENER) netshortcut.com
+enlist_uri_host (PDS_URISHORTENER) ni.to
+enlist_uri_host (PDS_URISHORTENER) nig.gr
+enlist_uri_host (PDS_URISHORTENER) nm.ly
+enlist_uri_host (PDS_URISHORTENER) nn.nf
+enlist_uri_host (PDS_URISHORTENER) not.my
+enlist_uri_host (PDS_URISHORTENER) notlong.com
+enlist_uri_host (PDS_URISHORTENER) nsfw.in
+enlist_uri_host (PDS_URISHORTENER) nutshellurl.com
+enlist_uri_host (PDS_URISHORTENER) nxy.in
+enlist_uri_host (PDS_URISHORTENER) nyti.ms
+enlist_uri_host (PDS_URISHORTENER) o-x.fr
+enlist_uri_host (PDS_URISHORTENER) o.ly
+enlist_uri_host (PDS_URISHORTENER) oboeyasui.com
+enlist_uri_host (PDS_URISHORTENER) oc1.us
+enlist_uri_host (PDS_URISHORTENER) offur.com
+enlist_uri_host (PDS_URISHORTENER) ofl.me
+enlist_uri_host (PDS_URISHORTENER) om.ly
+enlist_uri_host (PDS_URISHORTENER) omf.gd
+enlist_uri_host (PDS_URISHORTENER) omoikane.net
+enlist_uri_host (PDS_URISHORTENER) on.cnn.com
+enlist_uri_host (PDS_URISHORTENER) on.mktw.net
+enlist_uri_host (PDS_URISHORTENER) onecent.us
+enlist_uri_host (PDS_URISHORTENER) onforb.es
+enlist_uri_host (PDS_URISHORTENER) onion.com
+enlist_uri_host (PDS_URISHORTENER) onsaas.info
+enlist_uri_host (PDS_URISHORTENER) ooqx.com
+enlist_uri_host (PDS_URISHORTENER) oreil.ly
+enlist_uri_host (PDS_URISHORTENER) orz.se
+enlist_uri_host (PDS_URISHORTENER) ow.ly
+enlist_uri_host (PDS_URISHORTENER) oxyz.info
+enlist_uri_host (PDS_URISHORTENER) p.ly
+enlist_uri_host (PDS_URISHORTENER) p8g.tw
+enlist_uri_host (PDS_URISHORTENER) parv.us
+enlist_uri_host (PDS_URISHORTENER) paulding.net
+enlist_uri_host (PDS_URISHORTENER) pduda.mobi
+enlist_uri_host (PDS_URISHORTENER) peaurl.com
+enlist_uri_host (PDS_URISHORTENER) pendek.in
+enlist_uri_host (PDS_URISHORTENER) pep.si
+enlist_uri_host (PDS_URISHORTENER) pic.gd
+enlist_uri_host (PDS_URISHORTENER) piko.me
+enlist_uri_host (PDS_URISHORTENER) ping.fm
+enlist_uri_host (PDS_URISHORTENER) piurl.com
+enlist_uri_host (PDS_URISHORTENER) pli.gs
+enlist_uri_host (PDS_URISHORTENER) plumurl.com
+enlist_uri_host (PDS_URISHORTENER) plurl.me
+enlist_uri_host (PDS_URISHORTENER) pnt.me
+enlist_uri_host (PDS_URISHORTENER) politi.co
+enlist_uri_host (PDS_URISHORTENER) poll.fm
+enlist_uri_host (PDS_URISHORTENER) pop.ly
+enlist_uri_host (PDS_URISHORTENER) poprl.com
+enlist_uri_host (PDS_URISHORTENER) post.ly
+enlist_uri_host (PDS_URISHORTENER) posted.at
+enlist_uri_host (PDS_URISHORTENER) pp.gg
+enlist_uri_host (PDS_URISHORTENER) profile.to
+enlist_uri_host (PDS_URISHORTENER) pt2.me
+enlist_uri_host (PDS_URISHORTENER) ptiturl.com
+enlist_uri_host (PDS_URISHORTENER) pub.vitrue.com
+enlist_uri_host (PDS_URISHORTENER) puke.it
+enlist_uri_host (PDS_URISHORTENER) pysper.com
+enlist_uri_host (PDS_URISHORTENER) qik.li
+enlist_uri_host (PDS_URISHORTENER) qlnk.net
+enlist_uri_host (PDS_URISHORTENER) qoiob.com
+enlist_uri_host (PDS_URISHORTENER) qr.cx
+enlist_uri_host (PDS_URISHORTENER) qte.me
+enlist_uri_host (PDS_URISHORTENER) qu.tc
+enlist_uri_host (PDS_URISHORTENER) quickurl.co.uk
+enlist_uri_host (PDS_URISHORTENER) qurl.com
+enlist_uri_host (PDS_URISHORTENER) qurlyq.com
+enlist_uri_host (PDS_URISHORTENER) quu.nu
+enlist_uri_host (PDS_URISHORTENER) qux.in
+enlist_uri_host (PDS_URISHORTENER) qy.fi
+enlist_uri_host (PDS_URISHORTENER) r.im
+enlist_uri_host (PDS_URISHORTENER) rb6.me
+enlist_uri_host (PDS_URISHORTENER) rde.me
+enlist_uri_host (PDS_URISHORTENER) read.bi
+enlist_uri_host (PDS_URISHORTENER) readthis.ca
+enlist_uri_host (PDS_URISHORTENER) reallytinyurl.com
+enlist_uri_host (PDS_URISHORTENER) redir.ec
+enlist_uri_host (PDS_URISHORTENER) redirects.ca
+enlist_uri_host (PDS_URISHORTENER) redirx.com
+enlist_uri_host (PDS_URISHORTENER) relyt.us
+enlist_uri_host (PDS_URISHORTENER) retwt.me
+enlist_uri_host (PDS_URISHORTENER) ri.ms
+enlist_uri_host (PDS_URISHORTENER) rickroll.it
+enlist_uri_host (PDS_URISHORTENER) rivva.de
+enlist_uri_host (PDS_URISHORTENER) riz.gd
+enlist_uri_host (PDS_URISHORTENER) rly.cc
+enlist_uri_host (PDS_URISHORTENER) rnk.me
+enlist_uri_host (PDS_URISHORTENER) rsmonkey.com
+enlist_uri_host (PDS_URISHORTENER) rt.nu
+enlist_uri_host (PDS_URISHORTENER) ru.ly
+enlist_uri_host (PDS_URISHORTENER) rubyurl.com
+enlist_uri_host (PDS_URISHORTENER) rurl.org
+enlist_uri_host (PDS_URISHORTENER) rww.tw
+enlist_uri_host (PDS_URISHORTENER) s.gnoss.us
+enlist_uri_host (PDS_URISHORTENER) s3nt.com
+enlist_uri_host (PDS_URISHORTENER) s4c.in
+enlist_uri_host (PDS_URISHORTENER) s7y.us
+enlist_uri_host (PDS_URISHORTENER) safe.mn
+enlist_uri_host (PDS_URISHORTENER) safelinks.ru
+enlist_uri_host (PDS_URISHORTENER) sai.ly
+enlist_uri_host (PDS_URISHORTENER) sameurl.com
+enlist_uri_host (PDS_URISHORTENER) sdut.us
+enlist_uri_host (PDS_URISHORTENER) sed.cx
+enlist_uri_host (PDS_URISHORTENER) sfu.ca
+enlist_uri_host (PDS_URISHORTENER) shadyurl.com
+enlist_uri_host (PDS_URISHORTENER) shar.es
+enlist_uri_host (PDS_URISHORTENER) shim.net
+enlist_uri_host (PDS_URISHORTENER) shink.de
+enlist_uri_host (PDS_URISHORTENER) shorl.com
+enlist_uri_host (PDS_URISHORTENER) short.ie
+enlist_uri_host (PDS_URISHORTENER) short.to
+enlist_uri_host (PDS_URISHORTENER) shorten.ws
+enlist_uri_host (PDS_URISHORTENER) shortenurl.com
+enlist_uri_host (PDS_URISHORTENER) shorterlink.com
+enlist_uri_host (PDS_URISHORTENER) shortio.com
+enlist_uri_host (PDS_URISHORTENER) shortlinks.co.uk
+enlist_uri_host (PDS_URISHORTENER) shortly.nl
+enlist_uri_host (PDS_URISHORTENER) shortn.me
+enlist_uri_host (PDS_URISHORTENER) shortna.me
+enlist_uri_host (PDS_URISHORTENER) shortr.me
+enlist_uri_host (PDS_URISHORTENER) shorturl.com
+enlist_uri_host (PDS_URISHORTENER) shortz.me
+enlist_uri_host (PDS_URISHORTENER) shoturl.us
+enlist_uri_host (PDS_URISHORTENER) shout.to
+enlist_uri_host (PDS_URISHORTENER) show.my
+enlist_uri_host (PDS_URISHORTENER) shredu
+enlist_uri_host (PDS_URISHORTENER) shredurl.com
+enlist_uri_host (PDS_URISHORTENER) shrinkify.com
+enlist_uri_host (PDS_URISHORTENER) shrinkr.com
+enlist_uri_host (PDS_URISHORTENER) shrinkster.com
+enlist_uri_host (PDS_URISHORTENER) shrinkurl.us
+enlist_uri_host (PDS_URISHORTENER) shrt.fr
+enlist_uri_host (PDS_URISHORTENER) shrt.st
+enlist_uri_host (PDS_URISHORTENER) shrt.ws
+enlist_uri_host (PDS_URISHORTENER) shrten.com
+enlist_uri_host (PDS_URISHORTENER) shrtl.com
+enlist_uri_host (PDS_URISHORTENER) shrtn.com
+enlist_uri_host (PDS_URISHORTENER) shrtnd.com
+enlist_uri_host (PDS_URISHORTENER) shrunkin.com
+enlist_uri_host (PDS_URISHORTENER) shurl.net
+enlist_uri_host (PDS_URISHORTENER) shw.me
+enlist_uri_host (PDS_URISHORTENER) simurl.com
+enlist_uri_host (PDS_URISHORTENER) simurl.net
+enlist_uri_host (PDS_URISHORTENER) simurl.org
+enlist_uri_host (PDS_URISHORTENER) simurl.us
+enlist_uri_host (PDS_URISHORTENER) sitelutions.com
+enlist_uri_host (PDS_URISHORTENER) siteo.us
+enlist_uri_host (PDS_URISHORTENER) sl.ly
+enlist_uri_host (PDS_URISHORTENER) slate.me
+enlist_uri_host (PDS_URISHORTENER) slidesha.re
+enlist_uri_host (PDS_URISHORTENER) slki.ru
+enlist_uri_host (PDS_URISHORTENER) smallr.com
+enlist_uri_host (PDS_URISHORTENER) smallr.net
+enlist_uri_host (PDS_URISHORTENER) smarturl.it
+enlist_uri_host (PDS_URISHORTENER) smfu.in
+enlist_uri_host (PDS_URISHORTENER) smsh.me
+enlist_uri_host (PDS_URISHORTENER) smurl.com
+enlist_uri_host (PDS_URISHORTENER) smurl.name
+enlist_uri_host (PDS_URISHORTENER) sn.im
+enlist_uri_host (PDS_URISHORTENER) sn.vc
+enlist_uri_host (PDS_URISHORTENER) snadr.it
+enlist_uri_host (PDS_URISHORTENER) snipie.com
+enlist_uri_host (PDS_URISHORTENER) snipr.com
+enlist_uri_host (PDS_URISHORTENER) snipurl.com
+enlist_uri_host (PDS_URISHORTENER) snkr.me
+enlist_uri_host (PDS_URISHORTENER) snurl.com
+enlist_uri_host (PDS_URISHORTENER) soo.gd
+enlist_uri_host (PDS_URISHORTENER) song.ly
+enlist_uri_host (PDS_URISHORTENER) sp2.ro
+enlist_uri_host (PDS_URISHORTENER) spedr.com
+enlist_uri_host (PDS_URISHORTENER) sqze.it
+enlist_uri_host (PDS_URISHORTENER) srnk.net
+enlist_uri_host (PDS_URISHORTENER) srs.li
+enlist_uri_host (PDS_URISHORTENER) starturl.com
+enlist_uri_host (PDS_URISHORTENER) stickurl.com
+enlist_uri_host (PDS_URISHORTENER) stpmvt.com
+enlist_uri_host (PDS_URISHORTENER) sturly.com
+enlist_uri_host (PDS_URISHORTENER) su.pr
+enlist_uri_host (PDS_URISHORTENER) surl.co.uk
+enlist_uri_host (PDS_URISHORTENER) surl.hu
+enlist_uri_host (PDS_URISHORTENER) surl.it
+enlist_uri_host (PDS_URISHORTENER) t.cn
+enlist_uri_host (PDS_URISHORTENER) t.co
+enlist_uri_host (PDS_URISHORTENER) t.lh.com
+enlist_uri_host (PDS_URISHORTENER) ta.gd
+enlist_uri_host (PDS_URISHORTENER) takemyfile.com
+enlist_uri_host (PDS_URISHORTENER) tbd.ly
+enlist_uri_host (PDS_URISHORTENER) tcrn.ch
+enlist_uri_host (PDS_URISHORTENER) tgr.me
+enlist_uri_host (PDS_URISHORTENER) tgr.ph
+enlist_uri_host (PDS_URISHORTENER) th8.us
+enlist_uri_host (PDS_URISHORTENER) thecow.me
+enlist_uri_host (PDS_URISHORTENER) thrdl.es
+enlist_uri_host (PDS_URISHORTENER) tighturl.com
+enlist_uri_host (PDS_URISHORTENER) timesurl.at
+enlist_uri_host (PDS_URISHORTENER) tini.us
+enlist_uri_host (PDS_URISHORTENER) tiniuri.com
+enlist_uri_host (PDS_URISHORTENER) tiny.cc
+enlist_uri_host (PDS_URISHORTENER) tiny.ly
+enlist_uri_host (PDS_URISHORTENER) tiny.pl
+enlist_uri_host (PDS_URISHORTENER) tinyarro.ws
+enlist_uri_host (PDS_URISHORTENER) tinylink.com
+enlist_uri_host (PDS_URISHORTENER) tinylink.in
+enlist_uri_host (PDS_URISHORTENER) tinypl.us
+enlist_uri_host (PDS_URISHORTENER) tinysong.com
+enlist_uri_host (PDS_URISHORTENER) tinytw.it
+enlist_uri_host (PDS_URISHORTENER) tinyuri.ca
+enlist_uri_host (PDS_URISHORTENER) tinyurl.com
+enlist_uri_host (PDS_URISHORTENER) tk.
+enlist_uri_host (PDS_URISHORTENER) tl.gd
+enlist_uri_host (PDS_URISHORTENER) tllg.net
+enlist_uri_host (PDS_URISHORTENER) tmi.me
+enlist_uri_host (PDS_URISHORTENER) tncr.ws
+enlist_uri_host (PDS_URISHORTENER) tnij.org
+enlist_uri_host (PDS_URISHORTENER) tnw.to
+enlist_uri_host (PDS_URISHORTENER) tny.com
+enlist_uri_host (PDS_URISHORTENER) to.
+enlist_uri_host (PDS_URISHORTENER) to.je
+enlist_uri_host (PDS_URISHORTENER) to.ly
+enlist_uri_host (PDS_URISHORTENER) to.vg
+enlist_uri_host (PDS_URISHORTENER) togoto.us
+enlist_uri_host (PDS_URISHORTENER) totc.us
+enlist_uri_host (PDS_URISHORTENER) toysr.us
+enlist_uri_host (PDS_URISHORTENER) tpm.ly
+enlist_uri_host (PDS_URISHORTENER) tr.im
+enlist_uri_host (PDS_URISHORTENER) tr.my
+enlist_uri_host (PDS_URISHORTENER) tra.kz
+enlist_uri_host (PDS_URISHORTENER) traceurl.com
+enlist_uri_host (PDS_URISHORTENER) trackurl.it
+enlist_uri_host (PDS_URISHORTENER) trcb.me
+enlist_uri_host (PDS_URISHORTENER) trg.li
+enlist_uri_host (PDS_URISHORTENER) trib.al
+enlist_uri_host (PDS_URISHORTENER) trick.ly
+enlist_uri_host (PDS_URISHORTENER) trii.us
+enlist_uri_host (PDS_URISHORTENER) trim.li
+enlist_uri_host (PDS_URISHORTENER) trumpink.lt
+enlist_uri_host (PDS_URISHORTENER) trunc.it
+enlist_uri_host (PDS_URISHORTENER) truncurl.com
+enlist_uri_host (PDS_URISHORTENER) tsort.us
+enlist_uri_host (PDS_URISHORTENER) tubeurl.com
+enlist_uri_host (PDS_URISHORTENER) turo.us
+enlist_uri_host (PDS_URISHORTENER) tw0.us
+enlist_uri_host (PDS_URISHORTENER) tw1.us
+enlist_uri_host (PDS_URISHORTENER) tw2.us
+enlist_uri_host (PDS_URISHORTENER) tw5.us
+enlist_uri_host (PDS_URISHORTENER) tw6.us
+enlist_uri_host (PDS_URISHORTENER) tw8.us
+enlist_uri_host (PDS_URISHORTENER) tw9.us
+enlist_uri_host (PDS_URISHORTENER) twa.lk
+enlist_uri_host (PDS_URISHORTENER) tweet.me
+enlist_uri_host (PDS_URISHORTENER) tweetburner.com
+enlist_uri_host (PDS_URISHORTENER) tweetl.com
+enlist_uri_host (PDS_URISHORTENER) twhub.com
+enlist_uri_host (PDS_URISHORTENER) twi.gy
+enlist_uri_host (PDS_URISHORTENER) twip.us
+enlist_uri_host (PDS_URISHORTENER) twirl.at
+enlist_uri_host (PDS_URISHORTENER) twit.ac
+enlist_uri_host (PDS_URISHORTENER) twitclicks.com
+enlist_uri_host (PDS_URISHORTENER) twitterurl.net
+enlist_uri_host (PDS_URISHORTENER) twitterurl.org
+enlist_uri_host (PDS_URISHORTENER) twitthis.com
+enlist_uri_host (PDS_URISHORTENER) twittu.ms
+enlist_uri_host (PDS_URISHORTENER) twiturl.de
+enlist_uri_host (PDS_URISHORTENER) twitzap.com
+enlist_uri_host (PDS_URISHORTENER) twlv.net
+enlist_uri_host (PDS_URISHORTENER) twtr.us
+enlist_uri_host (PDS_URISHORTENER) twurl.cc
+enlist_uri_host (PDS_URISHORTENER) twurl.nl
+enlist_uri_host (PDS_URISHORTENER) u.mavrev.com
+enlist_uri_host (PDS_URISHORTENER) u.nu
+enlist_uri_host (PDS_URISHORTENER) u76.org
+enlist_uri_host (PDS_URISHORTENER) ub0.cc
+enlist_uri_host (PDS_URISHORTENER) uiop.me
+enlist_uri_host (PDS_URISHORTENER) ulimit.com
+enlist_uri_host (PDS_URISHORTENER) ulu.lu
+enlist_uri_host (PDS_URISHORTENER) unfaker.it
+enlist_uri_host (PDS_URISHORTENER) updating.me
+enlist_uri_host (PDS_URISHORTENER) u.to
+enlist_uri_host (PDS_URISHORTENER) ur.ly
+enlist_uri_host (PDS_URISHORTENER) ur1.ca
+enlist_uri_host (PDS_URISHORTENER) urizy.com
+enlist_uri_host (PDS_URISHORTENER) url.ag
+enlist_uri_host (PDS_URISHORTENER) url.az
+enlist_uri_host (PDS_URISHORTENER) url.co.uk
+enlist_uri_host (PDS_URISHORTENER) url.go.it
+enlist_uri_host (PDS_URISHORTENER) url.ie
+enlist_uri_host (PDS_URISHORTENER) url.inc-x.eu
+enlist_uri_host (PDS_URISHORTENER) url.lotpatrol.com
+enlist_uri_host (PDS_URISHORTENER) url360.me
+enlist_uri_host (PDS_URISHORTENER) url4.eu
+enlist_uri_host (PDS_URISHORTENER) urlao.com
+enlist_uri_host (PDS_URISHORTENER) urlbee.com
+enlist_uri_host (PDS_URISHORTENER) urlborg.com
+enlist_uri_host (PDS_URISHORTENER) urlbrief.com
+enlist_uri_host (PDS_URISHORTENER) urlcorta.es
+enlist_uri_host (PDS_URISHORTENER) urlcover.com
+enlist_uri_host (PDS_URISHORTENER) urlcut.com
+enlist_uri_host (PDS_URISHORTENER) urlcutter.com
+enlist_uri_host (PDS_URISHORTENER) urlenco.de
+enlist_uri_host (PDS_URISHORTENER) urlg.info
+enlist_uri_host (PDS_URISHORTENER) urlhawk.com
+enlist_uri_host (PDS_URISHORTENER) urli.nl
+enlist_uri_host (PDS_URISHORTENER) urlin.it
+enlist_uri_host (PDS_URISHORTENER) urlkiss.com
+enlist_uri_host (PDS_URISHORTENER) urloo.com
+enlist_uri_host (PDS_URISHORTENER) urlpire.com
+enlist_uri_host (PDS_URISHORTENER) urls.im
+enlist_uri_host (PDS_URISHORTENER) urlshorteningservicefortwitter.com
+enlist_uri_host (PDS_URISHORTENER) urltea.com
+enlist_uri_host (PDS_URISHORTENER) urlu.ms
+enlist_uri_host (PDS_URISHORTENER) urlvi.b
+enlist_uri_host (PDS_URISHORTENER) urlvi.be
+enlist_uri_host (PDS_URISHORTENER) urlx.ie
+enlist_uri_host (PDS_URISHORTENER) urlz.at
+enlist_uri_host (PDS_URISHORTENER) urlzen.com
+enlist_uri_host (PDS_URISHORTENER) usat.ly
+enlist_uri_host (PDS_URISHORTENER) use.my
+enlist_uri_host (PDS_URISHORTENER) uservoice.com
+enlist_uri_host (PDS_URISHORTENER) ustre.am
+enlist_uri_host (PDS_URISHORTENER) vado.it
+enlist_uri_host (PDS_URISHORTENER) vb.ly
+enlist_uri_host (PDS_URISHORTENER) vdirect.com
+enlist_uri_host (PDS_URISHORTENER) vgn.am
+enlist_uri_host (PDS_URISHORTENER) vi.ly
+enlist_uri_host (PDS_URISHORTENER) viigo.im
+enlist_uri_host (PDS_URISHORTENER) virl.com
+enlist_uri_host (PDS_URISHORTENER) vl.am
+enlist_uri_host (PDS_URISHORTENER) vm.lc
+enlist_uri_host (PDS_URISHORTENER) voizle.com
+enlist_uri_host (PDS_URISHORTENER) vtc.es
+enlist_uri_host (PDS_URISHORTENER) w0r.me
+enlist_uri_host (PDS_URISHORTENER) w33.us
+enlist_uri_host (PDS_URISHORTENER) w34.us
+enlist_uri_host (PDS_URISHORTENER) w3t.org
+enlist_uri_host (PDS_URISHORTENER) w55.de
+enlist_uri_host (PDS_URISHORTENER) wa9.la
+enlist_uri_host (PDS_URISHORTENER) wapo.st
+enlist_uri_host (PDS_URISHORTENER) wapurl.co.uk
+enlist_uri_host (PDS_URISHORTENER) webalias.com
+enlist_uri_host (PDS_URISHORTENER) welcome.to
+enlist_uri_host (PDS_URISHORTENER) wh.gov
+enlist_uri_host (PDS_URISHORTENER) widg.me
+enlist_uri_host (PDS_URISHORTENER) wipi.es
+enlist_uri_host (PDS_URISHORTENER) wkrg.com
+enlist_uri_host (PDS_URISHORTENER) woo.ly
+enlist_uri_host (PDS_URISHORTENER) wp.me
+enlist_uri_host (PDS_URISHORTENER) x.co
+enlist_uri_host (PDS_URISHORTENER) x.hypem.com
+enlist_uri_host (PDS_URISHORTENER) x.se
+enlist_uri_host (PDS_URISHORTENER) x.vu
+enlist_uri_host (PDS_URISHORTENER) xeeurl.com
+enlist_uri_host (PDS_URISHORTENER) xil.in
+enlist_uri_host (PDS_URISHORTENER) xlurl.de
+enlist_uri_host (PDS_URISHORTENER) xn--1ci.ws
+enlist_uri_host (PDS_URISHORTENER) xn--3fi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--5gi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--9gi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--bih.ws
+enlist_uri_host (PDS_URISHORTENER) xn--cwg.ws
+enlist_uri_host (PDS_URISHORTENER) xn--egi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--fwg.ws
+enlist_uri_host (PDS_URISHORTENER) xn--hgi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--l3h.ws
+enlist_uri_host (PDS_URISHORTENER) xn--odi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--ogi.ws
+enlist_uri_host (PDS_URISHORTENER) xn--rei.ws
+enlist_uri_host (PDS_URISHORTENER) xn--vgi.ws
+enlist_uri_host (PDS_URISHORTENER) xr.com
+enlist_uri_host (PDS_URISHORTENER) xrl.in
+enlist_uri_host (PDS_URISHORTENER) xrl.us
+enlist_uri_host (PDS_URISHORTENER) xrt.me
+enlist_uri_host (PDS_URISHORTENER) xurl.es
+enlist_uri_host (PDS_URISHORTENER) xurl.jp
+enlist_uri_host (PDS_URISHORTENER) xxsurl.de
+enlist_uri_host (PDS_URISHORTENER) xzb.cc
+enlist_uri_host (PDS_URISHORTENER) y.ahoo.it
+enlist_uri_host (PDS_URISHORTENER) yatuc.com
+enlist_uri_host (PDS_URISHORTENER) ye-s.com
+enlist_uri_host (PDS_URISHORTENER) ye.pe
+enlist_uri_host (PDS_URISHORTENER) yep.it
+enlist_uri_host (PDS_URISHORTENER) yfrog.com
+enlist_uri_host (PDS_URISHORTENER) yhoo.it
+enlist_uri_host (PDS_URISHORTENER) yiyd.com
+enlist_uri_host (PDS_URISHORTENER) yuarel.com
+enlist_uri_host (PDS_URISHORTENER) z.pe
+enlist_uri_host (PDS_URISHORTENER) z0p.de
+enlist_uri_host (PDS_URISHORTENER) zapt.in
+enlist_uri_host (PDS_URISHORTENER) zi.ma
+enlist_uri_host (PDS_URISHORTENER) zi.me
+enlist_uri_host (PDS_URISHORTENER) zi.mu
+enlist_uri_host (PDS_URISHORTENER) zi.pe
+enlist_uri_host (PDS_URISHORTENER) zip.li
+enlist_uri_host (PDS_URISHORTENER) zipmyurl.com
+enlist_uri_host (PDS_URISHORTENER) zite.to
+enlist_uri_host (PDS_URISHORTENER) zootit.com
+enlist_uri_host (PDS_URISHORTENER) zud.me
+enlist_uri_host (PDS_URISHORTENER) zurl.ws
+enlist_uri_host (PDS_URISHORTENER) zz.gd
+enlist_uri_host (PDS_URISHORTENER) zzang.kr
+enlist_uri_host (PDS_URISHORTENER) t.ly
+enlist_uri_host (PDS_URISHORTENER) wow.link
+enlist_uri_host (PDS_URISHORTENER) twixar.me
+enlist_uri_host (PDS_URISHORTENER) lnk.cm
+enlist_uri_host (PDS_URISHORTENER) rb.gy
+enlist_uri_host (PDS_URISHORTENER) gplinks.in
+enlist_uri_host (PDS_URISHORTENER) utfg.sk
+enlist_uri_host (PDS_URISHORTENER) um.lk
+enlist_uri_host (PDS_URISHORTENER) xn--vi8hiv.ws
+enlist_uri_host (PDS_URISHORTENER) ouo.io
+enlist_uri_host (PDS_URISHORTENER) mmo.tc
+enlist_uri_host (PDS_URISHORTENER) pvp.tc
+enlist_uri_host (PDS_URISHORTENER) ko.tc
+enlist_uri_host (PDS_URISHORTENER) m2.tc
+enlist_uri_host (PDS_URISHORTENER) sro.tc
+enlist_uri_host (PDS_URISHORTENER) heg.tc
+enlist_uri_host (PDS_URISHORTENER) fn.tc
+enlist_uri_host (PDS_URISHORTENER) lol.tc
+enlist_uri_host (PDS_URISHORTENER) tek.link
+enlist_uri_host (PDS_URISHORTENER) tr.im
+enlist_uri_host (PDS_URISHORTENER) cutwin.biz
+enlist_uri_host (PDS_URISHORTENER) urlzs.com
+enlist_uri_host (PDS_URISHORTENER) qqc.co
+enlist_uri_host (PDS_URISHORTENER) yyv.co
+enlist_uri_host (PDS_URISHORTENER) erq.io
+enlist_uri_host (PDS_URISHORTENER) yko.io
+enlist_uri_host (PDS_URISHORTENER) poweredbysecurity.online
+enlist_uri_host (PDS_URISHORTENER) poweredbysecurity.org
+enlist_uri_host (PDS_URISHORTENER) poweredbydialup.online
+enlist_uri_host (PDS_URISHORTENER) poweredbydialup.club
+enlist_uri_host (PDS_URISHORTENER) canadianlumberjacks.online
+enlist_uri_host (PDS_URISHORTENER) canadianlumberjacks.club
+enlist_uri_host (PDS_URISHORTENER) packetlivesmatter.online
+enlist_uri_host (PDS_URISHORTENER) packetlivesmatter.club
+enlist_uri_host (PDS_URISHORTENER) amishprincess.com
+enlist_uri_host (PDS_URISHORTENER) poweredbydialup.org
+enlist_uri_host (PDS_URISHORTENER) amishdatacenter.com
+enlist_uri_host (PDS_URISHORTENER) youtubeshort.pro
+enlist_uri_host (PDS_URISHORTENER) catsnthing.com
+enlist_uri_host (PDS_URISHORTENER) youtubeshort.watch
+enlist_uri_host (PDS_URISHORTENER) yourtube.site
+enlist_uri_host (PDS_URISHORTENER) catsnthings.fun
+enlist_uri_host (PDS_URISHORTENER) curiouscat.club
+enlist_uri_host (PDS_URISHORTENER) crabrave.pw
+enlist_uri_host (PDS_URISHORTENER) fortnitechat.site
+enlist_uri_host (PDS_URISHORTENER) fortnight.space
+enlist_uri_host (PDS_URISHORTENER) disçordapp.com
+enlist_uri_host (PDS_URISHORTENER) freegiftcards.co
+enlist_uri_host (PDS_URISHORTENER) minecräft.com
+enlist_uri_host (PDS_URISHORTENER) stopify.co
+enlist_uri_host (PDS_URISHORTENER) spottyfly.com
+enlist_uri_host (PDS_URISHORTENER) bmwforum.co
+enlist_uri_host (PDS_URISHORTENER) grabify.link
+enlist_uri_host (PDS_URISHORTENER) joinmy.site
+enlist_uri_host (PDS_URISHORTENER) youshouldclick.us
+reuse    T_PDS_SHORTFWD_URISHRT
+endif
+endif
+##} ifplugin Mail::SpamAssassin::Plugin::WLBLEval if (version >= 3.004000)_sandbox
+
+##{ redirector_pattern_sandbox
+
+redirector_pattern m'/(?:index.php)?\?.*(?<=[?&])URL=(.*?)(?:$|[&\#])'i
+redirector_pattern m'^https?:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/url\?.*?(?<=[?&])q=(.*?)(?:$|[&\#])'i
+redirector_pattern m'^https?:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/search\?.*?(?<=[?&])q=[^&]*?(?<=%20|..[=+\s])(?:site|inurl):(.*?)(?:$|%20|[\s+&\#])'i
+redirector_pattern m'^https?:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/search\?.*?(?<=[?&])q=[^&]*?(?<=%20|..[=+\s])(?:"|%22)(.*?)(?:$|%22|["\s+&\#])'i
+redirector_pattern m'^https?:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/translate\?.*?(?<=[?&])u=(.*?)(?:$|[&\#])'i
+redirector_pattern m'^https?:/*(?:\w+\.)?google(?:\.\w{2,3}){1,2}/pagead/iclk\?.*?(?<=[?&])adurl=(.*?)(?:$|[&\#])'i
+redirector_pattern m'^https?:/*(?:\w+\.)?aol\.com/redir\.adp\?.*(?<=[?&])_url=(.*?)(?:$|[&\#])'i
+redirector_pattern m'^https?/*(?:\w+\.)?facebook\.com/l/;(.*)'i
+##} redirector_pattern_sandbox
+
+##{ reuse_sandbox
+
+reuse    T_PDS_HIDDEN_UK_BUSINESSLOAN
+reuse    T_PDS_DOUBLE_URL
+reuse    T_PDS_DBL_URL_LINKBAIT
+reuse    PDS_DBL_URL_TNB_RUNON
+reuse    T_PDS_DBL_URL_ILLEGAL_CHARS
+reuse    FROM_2_EMAILS_SHORT
+reuse    T_SHORT_BODY_QUOTE
+reuse    T_BODY_QUOTE_MALF_MSGID
+reuse    SPOOFED_FREEMAIL_NO_RDNS
+reuse    T_PDS_URI_HIDDEN_HELO_NO_DOMAIN
+reuse    PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE
+reuse    PDS_TONAME_EQ_TOLOCAL_SHORT
+reuse    PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE
+reuse    PDS_TONAME_EQ_TOLOCAL_VSHORT
+reuse    T_PDS_LITECOIN_ID
+reuse    PDS_BTC_ID
+reuse    PDS_BTC_MSGID
+reuse  __PDS_GOOGLE_DRIVE_SHARE_1
+reuse  __PDS_GOOGLE_DRIVE_SHARE_2
+reuse  __PDS_GOOGLE_DRIVE_SHARE_3
+reuse    __PDS_GOOGLE_DRIVE_SHARE
+reuse    T_GOOGLE_DRIVE_DEAR_SOMETHING
+reuse    __PDS_GOOGLE_DRIVE_FILE
+reuse    __SHORT_BODY_G_DRIVE
+reuse    __SHORT_BODY_G_DRIVE_DYN
+reuse    T_SHORT_BODY_G_DRIVE_DYN
+reuse    T_FROM_NAME_EQ_TO_G_DRIVE
+##} reuse_sandbox
+
+
+uri         __128_ALNUM_URI     m;[/?][0-9a-z]{128,}$;i
+
+uri         __128_HEX_URI     m,/[0-9a-f]{128},
+
+uri         __128_LC_URI        m;[/?][a-z]{128,}$;
+
+uri         __45_ALNUM_IMG      m;/[0-9a-z]{45,}/\w+\.(?:png|gif|jpe?g)$;i
+
+uri         __45_ALNUM_URI      m;[/?][0-9a-z]{45,}$;i
+
+meta        __45_ALNUM_URI_O    __45_ALNUM_URI && !__64_ANY_URI && !__128_ALNUM_URI && !__128_LC_URI
+
+uri         __64_ANY_URI        m;[/?]\w{64,}$;i
+
+body        __ACCESS_RESTORE     /\bto (?:(?:restore|regain) access|(?:remove|uplift) (?:the|this) suspens|continue using your (?:account|online|mailbox)|zugreifen wiederhergestellt)/i
+
+body        __ACCESS_REVOKE      /(?:(?:temporary|permanent) (?:de-?activation|removal) of your (?:\w{1,30} )?(?:access|account)|Ihre Kreditkarte wird gesperrt)/i
+
+body        __ACCESS_SUSPENDED   /\b(?:(?:access|account|e?-?mails) (?:suspension|(?:has|have) (?:been )?(?:temporar(?:il)?y (?:been )?)?(?:suspended|blocked|locked|blacklisted))|suspend (?:you from|your) access(?:ing)?|suspen(?:sion|se|ded) noti(?:ce|fication))\b/i
+tflags      __ACCESS_SUSPENDED   multiple maxhits=2
+
+body        __ACCOUNT_DISRUPT    /\b(?:ensure (?:that )?your (?:account|access) is not (?:disrupted|suspended|interrupted)|(?:avoid|incoming) (?:[a-z]+ ){0,5}e?-?mails? (?:from )?being rejected|avoid (?:account|e?-?mail(?: ?box)? )?(?:shut ?down|suspension|locking|termination|expiration)|will terminate (?:your|its) service)\b/i
+tflags      __ACCOUNT_DISRUPT    multiple maxhits=2
+
+body        __ACCOUNT_ERROR      /\b(?:your account (?:is|appears to be) (?:incorrect|missing|in error|invalid))\b/i
+
+body        __ACCOUNT_REACTIV    /(?:(?:account|access) (?:has been )?(?:successfully )?(?:reviewed and )?re-?(?:activat(?:ion|ed)|new(?:al|ed))|(?:unlock|re-?activate|restore|recover) (?:your|the|this) (?:account|access))/i
+
+body        __ACCOUNT_SECURE     /\b(?:make your (?:"?[^\@\s]+\@\S+"? |e-?mail )?account more secure|Ihre Kreditkarte weist einige Sicherheitsprobleme)\b/i
+
+body        __ACCOUNT_UPGRADE    /\b(?:upgrade (?:of )your (?:account|access)|your (?:access|account) is[\w\s]{0,40}being upgraded|Weiter zur Aktualisierung)\b/i
+
+meta        __ACCT_PHISH         (__ACCESS_SUSPENDED + __ACCESS_RESTORE + __ACCESS_REVOKE + __VERIFY_ACCOUNT + __FAILED_LOGINS + __ACCOUNT_REACTIV + __SECURITY_DEPT + __ACCOUNT_ERROR + __ACCOUNT_DISRUPT + __ACCOUNT_UPGRADE + __ACCOUNT_SECURE + __SUSPICION_LOGIN + __PDS_FROM_NAME_TO_DOMAIN) > 1 && !__ACCT_PHISH_MANY
+
+meta        __ACCT_PHISH_MANY    (__ACCESS_SUSPENDED + __ACCESS_RESTORE + __ACCESS_REVOKE + __VERIFY_ACCOUNT + __FAILED_LOGINS + __ACCOUNT_REACTIV + __SECURITY_DEPT + __ACCOUNT_ERROR + __ACCOUNT_DISRUPT + __ACCOUNT_UPGRADE + __ACCOUNT_SECURE + __SUSPICION_LOGIN + __TO_IN_SUBJ + __SUBJ_DOM_ADMIN + __FROM_DOM_ADMIN + __PDS_FROM_NAME_TO_DOMAIN) > 3
+
+body        __ACH_CANCELLED_01     /\b(?:(?-i:ACH)|dividend)[-_ ](?:payment|transfer|transaction|was)[-_ ](?:(?:was|is)[-_ ])?(?:rejected|cancel+ed|declined|disabled|not[-_ ]accepted|(?:technical )?error)/i
+
+body        __ACH_CANCELLED_02     /(?:rejected|cancel+ed|declined|your)[-_ ](?:(?-i:ACH)|direct[-_ ]deposit)[-_ ](?:payment|transfer|transaction|declin(?:ed|ing))/i
+
+body        __ACH_CANCELLED_03     /\bwire[-_ ]?(?:payment|transfer|transaction)[-_ ](?:(?:was|is)[-_ ])?(?:rejected|cancel+ed|declined|disabled|not[-_ ]accepted|(?:technical )?error)/i
+
+body        __ACH_CANCELLED_04     /\bregarding[-_ ]your[-_ ]direct[-_ ]deposit[-_ ]via[-_ ](?-i:ACH)/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+       meta         __ACH_CANCELLED_EXE (__ACH_CANCELLED_01 || __ACH_CANCELLED_02 || __ACH_CANCELLED_03 || __ACH_CANCELLED_04) && __EXE_ATTACH
+endif
+
+uri __AC_1SEQC_URI     /\/1[a-z0-9]8[a-z0-9_]{20,}\/C\//
+
+uri __AC_1SEQV_URI     /\/1[a-z0-9]8[a-z0-9_]{20,}\/V\//
+
+uri __AC_CHDSEQ_URI    /\/chd[a-z0-9]{20,}/
+
+header     __AC_FROM_MANY_DOTS         From =~ /<(?:\w{2,}\.){2,}\w+@/
+
+meta       __AC_FROM_MANY_DOTS_MINFP   __AC_FROM_MANY_DOTS && !ALL_TRUSTED && !FREEMAIL_FORGED_FROMDOMAIN && !FORGED_GMAIL_RCVD && !__UNSUB_LINK && !__XM_VBULLETIN && !__RDNS_SHORT && !__REPTO_QUOTE && !__FSL_RELAY_GOOGLE && !__HAS_IN_REPLY_TO && !__RCD_RDNS_SMTP && !__HAS_THREAD_INDEX && !__RCD_RDNS_MX_MESSY && !__CTYPE_MULTIPART_MIXED && !__RCD_RDNS_MTA && !__VIA_ML && !__HAS_ERRORS_TO 
+
+rawbody    __AC_HTML_ENTITY_BONANZA_SHRT_RAW          /(?:&[A-Z0-9\#]{2,};\s{0,64}){10}/i
+
+uri __AC_LAND_URI      /\/land\//
+
+uri __AC_LONGSEQ_URI   /\/[A-Z0-9]{50,}\.(?:php|html|cgi)\b/
+
+uri __AC_MHDSEQ_URI    /\/mhd[a-z0-9]{20,}/
+
+uri __AC_NDOMLONGNASPX_URI     /[A-Za-z]+[0-9]{2}\.[A-Za-z0-9-]+\.me\/(?:[A-Za-z0-9-]{10,}\/){2}[0-9]{8,}\/[A-Za-z]+\.aspx/
+
+uri __AC_NUMS_URI      /(?:\/[0-9]+){5}\.[0-9a-zA-Z]+\.(:?php|html)\b/
+
+uri __AC_OUTI_URI      /\/outi\b/
+
+uri __AC_OUTL_URI      /\/outl\b/
+
+uri __AC_PHPOFFSUB_URI /\/php\/off\/[0-9.]+\/sub\//
+
+uri __AC_PHPOFFTOP_URI /\/php\/off\/[0-9.]+\/top\//
+
+uri        __AC_POSTHTMLEXTRAS         /(?:main[0-9]?|mian|start(?:page)?|info(?:page|source|center)?|(?:one|view)?(?:site|source)(?:view|[0-9])?|(?:hub|file)one|index(?:[0-9]|page)?|mediafile|userlink|faction1)[.,]html?\/\w{2,}\b/i
+
+uri        __AC_POSTIMGEXTRAS          /(?:(?:main|external|hosted|new|file)?(?:im(?:g|age)?|user|one)s?-?(?:view(?:er)?|file|map|finder|portal|hub|online)?s?|library|media(?:source|-?files?)?|main|png|view|begin|file|port|space|webpics|host)(?:[-]?(?:[0-9]|one|two|three|four|five|six|seven|eight|nine))?[.,](?:jpe?g|png|gif)\/\w{2,}\b/i
+
+meta       __AC_POST_EXTRAS            (__AC_POSTHTMLEXTRAS || __AC_POSTIMGEXTRAS)
+
+uri __AC_PUNCTNUMS_URI /\.com\/[A-Za-z+=\/.?_-]{4,}[0-9]{9,12}[a-z0-9]{1,2}[A-Za-z+=\/.?_-]+[0-9]{7,9}[A-Za-z+=\/.?_-]{6,}[0-9]{7,9}\b/
+
+uri __AC_REPORT_URI    /\/report\//
+
+uri __AC_RMOVE_URI     /\/r\/move\/[0-9]+\//
+
+rawbody    __AC_TINY_FONT              /(?:font-size)\s*:\s*[1-3]\s*(?:em|p[tx]|%)?(?:\s*!important)?\s*[";]/i
+
+uri __AC_UHDSEQ_URI    /\/uhd[a-z0-9]{20,}/
+
+uri __AC_UNSUB_URI     /\/unsub\//
+
+body        __ADMAIL          /(?:\b|_)ad-?(?:mail|message)s?(?:\b|_)/i
+
+body        __ADMITS_SPAM     /\bth(?:e[- ]+above|is)(?:\?+s|[- ]+is)[- ]+(?:intended[- ]+as[- ]+)?an?[- ]+(?:e-?mail[- ]+)?[a@]dvert[i1l]sement\b/i
+
+meta      __ADVANCE_FEE_2_NEW  (__AFRICAN_STATE + __ATM_CARD + __BACK_SCRATCH +  __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + __EX_CUSTOMER + __FOUND_YOU + __FRAUD_AON + __FRAUD_AUM + __FRAUD_AXF + __FRAUD_BEP + __FRAUD_BGP + __FRAUD_CKF + __FRAUD_DPR + __FRAUD_FVU + __FRAUD_GBW + __FRAUD_IPK + __FRAUD_IRT + __FRAUD_JNB + __FRAUD_JYG + __FRAUD_MCQ + __FRAUD_MLY + __FRAUD_MQO + __FRAUD_NEB + __FRAUD_QFY + __FRAUD_QXX + __FRAUD_SNT + __FRAUD_ULK + __FRAUD_UOQ + __FRAUD_VQE + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_XJR + __FRAUD_XWW + __FRAUD_YPO + __FRAUD_YQV + __I_INHERIT + __INTL_BANK + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + LOTTO_AGENT + T_LOTTO_AGENT_RPLY + __LOTTO_DEPT + __LOTTO_RELATED + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __NEXT_OF_KIN + __NOT_DEAD_YET + __PCT_OF_PMTS + __SCAM + __SHARE_IT + __THEY_INHERIT +  UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __URG_BIZ + __YOUR_CONSIGNMENT + __YOUR_FUND + __YOUR_PERM + __YOU_WON > 1) && !__THREAD_INDEX_GOOD
+
+meta      __ADVANCE_FEE_2_NEW_FORM  __FILL_THIS_FORM && !LOTS_OF_MONEY && __ADVANCE_FEE_2_NEW
+
+meta      __ADVANCE_FEE_2_NEW_FRM_MNY  __FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_2_NEW
+
+meta      __ADVANCE_FEE_2_NEW_MONEY  !__FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_2_NEW
+
+meta      __ADVANCE_FEE_3_NEW  (__AFRICAN_STATE + __ATM_CARD + __BACK_SCRATCH +  __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + __EX_CUSTOMER + __FOUND_YOU + __FRAUD_AON + __FRAUD_AUM + __FRAUD_AXF + __FRAUD_BEP + __FRAUD_BGP + __FRAUD_CKF + __FRAUD_DPR + __FRAUD_FVU + __FRAUD_GBW + __FRAUD_IPK + __FRAUD_IRT + __FRAUD_JNB + __FRAUD_JYG + __FRAUD_MCQ + __FRAUD_MLY + __FRAUD_MQO + __FRAUD_NEB + __FRAUD_QFY + __FRAUD_QXX + __FRAUD_SNT + __FRAUD_ULK + __FRAUD_UOQ + __FRAUD_VQE + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_XJR + __FRAUD_XWW + __FRAUD_YPO + __FRAUD_YQV + __I_INHERIT + __INTL_BANK + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + LOTTO_AGENT + T_LOTTO_AGENT_RPLY + __LOTTO_DEPT + __LOTTO_RELATED + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __NEXT_OF_KIN + __NOT_DEAD_YET + __PCT_OF_PMTS + __SCAM + __SHARE_IT + __THEY_INHERIT +  UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __URG_BIZ + __YOUR_CONSIGNMENT + __YOUR_FUND + __YOUR_PERM + __YOU_WON > 2) && !__THREAD_INDEX_GOOD
+
+meta      __ADVANCE_FEE_3_NEW_FORM  __FILL_THIS_FORM && !LOTS_OF_MONEY && __ADVANCE_FEE_3_NEW
+
+meta      __ADVANCE_FEE_3_NEW_FRM_MNY  __FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_3_NEW
+
+meta      __ADVANCE_FEE_3_NEW_MONEY  !__FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_3_NEW
+
+meta      __ADVANCE_FEE_4_NEW  (__AFRICAN_STATE + __ATM_CARD + __BACK_SCRATCH +  __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + __EX_CUSTOMER + __FOUND_YOU + __FRAUD_AON + __FRAUD_AUM + __FRAUD_AXF + __FRAUD_BEP + __FRAUD_BGP + __FRAUD_CKF + __FRAUD_DPR + __FRAUD_FVU + __FRAUD_GBW + __FRAUD_IPK + __FRAUD_IRT + __FRAUD_JNB + __FRAUD_JYG + __FRAUD_MCQ + __FRAUD_MLY + __FRAUD_MQO + __FRAUD_NEB + __FRAUD_QFY + __FRAUD_QXX + __FRAUD_SNT + __FRAUD_ULK + __FRAUD_UOQ + __FRAUD_VQE + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_XJR + __FRAUD_XWW + __FRAUD_YPO + __FRAUD_YQV + __I_INHERIT + __INTL_BANK + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + LOTTO_AGENT + T_LOTTO_AGENT_RPLY + __LOTTO_DEPT + __LOTTO_RELATED + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __NEXT_OF_KIN + __NOT_DEAD_YET + __PCT_OF_PMTS + __SCAM + __SHARE_IT + __THEY_INHERIT +  UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __URG_BIZ + __YOUR_CONSIGNMENT + __YOUR_FUND + __YOUR_PERM + __YOU_WON > 3) && !__THREAD_INDEX_GOOD
+
+meta      __ADVANCE_FEE_4_NEW_FORM  __FILL_THIS_FORM && !LOTS_OF_MONEY && __ADVANCE_FEE_4_NEW
+
+meta      __ADVANCE_FEE_4_NEW_FRM_MNY  __FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_4_NEW
+
+meta      __ADVANCE_FEE_4_NEW_MONEY  !__FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_4_NEW
+
+meta      __ADVANCE_FEE_5_NEW  (__AFRICAN_STATE + __ATM_CARD + __BACK_SCRATCH +  __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + __EX_CUSTOMER + __FOUND_YOU + __FRAUD_AON + __FRAUD_AUM + __FRAUD_AXF + __FRAUD_BEP + __FRAUD_BGP + __FRAUD_CKF + __FRAUD_DPR + __FRAUD_FVU + __FRAUD_GBW + __FRAUD_IPK + __FRAUD_IRT + __FRAUD_JNB + __FRAUD_JYG + __FRAUD_MCQ + __FRAUD_MLY + __FRAUD_MQO + __FRAUD_NEB + __FRAUD_QFY + __FRAUD_QXX + __FRAUD_SNT + __FRAUD_ULK + __FRAUD_UOQ + __FRAUD_VQE + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_XJR + __FRAUD_XWW + __FRAUD_YPO + __FRAUD_YQV + __I_INHERIT + __INTL_BANK + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + LOTTO_AGENT + T_LOTTO_AGENT_RPLY + __LOTTO_DEPT + __LOTTO_RELATED + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __NEXT_OF_KIN + __NOT_DEAD_YET + __PCT_OF_PMTS + __SCAM + __SHARE_IT + __THEY_INHERIT +  UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __URG_BIZ + __YOUR_CONSIGNMENT + __YOUR_FUND + __YOUR_PERM + __YOU_WON > 4) && !__THREAD_INDEX_GOOD
+
+meta      __ADVANCE_FEE_5_NEW_FORM  __FILL_THIS_FORM && !LOTS_OF_MONEY && __ADVANCE_FEE_5_NEW
+
+meta      __ADVANCE_FEE_5_NEW_FRM_MNY  __FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_5_NEW
+
+meta      __ADVANCE_FEE_5_NEW_MONEY  !__FILL_THIS_FORM && LOTS_OF_MONEY && __ADVANCE_FEE_5_NEW
+
+body __AFF_004470_NUMBER  /(?:\+|00|011)\W{0,3}44\W{0,3}0?\W{0,3}70/
+
+body __AFF_LOTTERY        /(?:lottery|winner)/i
+
+meta     __AFRICAN_STATE  (__NIGERIA || __IVORY_COAST || __BURKINA_FASO || __GHANA || __BENIN || __AFR_UNION)
+
+body     __AFR_UNION      /\bafrican\sunion\b/i
+
+body     __AGREED_RATIO   /\b(?:agreed|sharing)\s(?:ratios?|percent\w+)\b/i
+
+meta       __ALIBABA_IMG_NOT_RCVD_ALI  __URI_IMG_ALICDN && !__HDR_RCVD_ALIBABA
+
+header         __AMADEUSMS_MUA     X-Mailer =~ /^Amadeus Messaging Server/
+
+meta       __AMAZON_IMG_NOT_RCVD_AMZN  __URI_IMG_AMAZON && !__HDR_RCVD_AMAZON
+
+body     __AM_DYING       /\b(?:am\s(?:\S+\s)?dying|terminally\sill|cancer|en\sphase\sterminale|(?:become|is|devenu|maladie)\sincurable|que\sje\smeurs)\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __ANY_IMAGE_ATTACH Content-Type =~ /\bimage\//i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta        __ANY_TEXT_ATTACH 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader  __ANY_TEXT_ATTACH Content-Type =~ /text\/\w+/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __ANY_TEXT_ATTACH_DOC     Content-Type =~ /text\/\w+/i
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body       __APP_DEVELOPMENT           /\b(?:mobile apps|(?:apps?|portal) (?:dev(?:elop(?:ment|ed))?|design|test(?:ing)?|U[IX]|maintenance|support)|(?:we |can |have )+(?:design(?:ed)?|buil[dt]|maintain(?:ed)?|created?)(?: over| more than)?[\s0-9]+apps|different platforms|we are (?:[-a-z]+ ){1,4}(?:software|apps?) (?:company|develop(?:ers|ment)))\b/i
+  tflags     __APP_DEVELOPMENT           multiple maxhits=6
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __APP_DEVELOPMENT_MANY      __APP_DEVELOPMENT > 5
+endif
+
+body     __ATM_CARD       /\b(?:your|the|this|through|via|by\smeans\sof\|that\sa|issue\s(?:(?:to|for)\s)?you\sa)[\s\(](?:\w{1,20}\s)?(?:atm|debit|(?:money[\s-]?gram\s)?fast\scash)(?:\smaster|swift|value?|cash)?[\s\)]card/i
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __ATTACH_NAME_NO_EXT 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __ATTACH_NAME_NO_EXT Content-Type =~ m,\bname\s?=\s?"(?!=\?)[^."]+",i
+endif
+
+body        __ATTN_MAIL_USER     /\b(?:att(?:entio)?n|dear|caro) (?:web ?(?:mail)?\s\S\s)?(?:web ?|e-?)?mail (?:user|DO USU(?:=E1|[\xe1]|[\xc3][\xa1])RIO)[:;,]/i
+
+body     __AUTO_ACCIDENT     /auto(?:mobile)? accident/i
+
+header __AXB_MO_OL_024C2  X-MimeOLE =~ /Produced\ By\ Microsoft\ MimeOLE\ V6\.00\.2600\.0000/
+
+header __AXB_MO_OL_1ECD5  X-MimeOLE =~ /Produced\ By\ Microsoft\ MimeOLE\ V6\.00\.2800\.1081/
+
+header __AXB_XM_OL_024C2  X-Mailer =~ /Microsoft\ Outlook\ Express\ 6\.00\.2600\.0000/
+
+header __AXB_XM_OL_1ECD5  X-Mailer =~ /Microsoft\ Outlook\ Express\ 6\.00\.2800\.1081/
+
+body     __BACK_SCRATCH   /\bmutual+y?\s(?:benefi(?:t|cial)|interest)\b/i
+
+body     __BANK_DRAFT     /\bbank\sdraft/i
+
+body     __BARRISTER      /\b(?:barrister|solicitor at law|barr\.)/i
+
+body     __BENEFICIARY    /\bb(?:e|=E9|[\xe9]|[\xc3][\xa9])n(?:e|=E9|[\xe9]|[\xc3][\xa9])fi(?:c|sh)i?ai?r(?:y|ies|es?)/i
+
+body     __BENIN          /\bb(?:e|=E9|[\xe9]|[\xc3][\xa9])nin\b/i
+
+body           __BIGNUM_EMAILS            /\b(?:thousand|million|\d[,1-9]{0,6}(?:[,0]{2,}k?|k))\s(?:(?!and|or|your|place|baby|suspicious|supportive|subpoenaed)\w+\s)?(?:e-?mail(?:(?![-:.\)\>\]])s?|\saddresses)|fax numbers|leads|names)\b/i
+tflags         __BIGNUM_EMAILS            multiple maxhits=5
+
+meta           __BIGNUM_EMAILS_3          __BIGNUM_EMAILS > 2
+
+meta           __BIGNUM_EMAILS_FREEM      __BIGNUM_EMAILS && __freemail_hdr_replyto
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body          __BITCOIN           /\bB[-\s]?i[-\s]?t[-\s]?c[-\s]?o[-\s]?i[-\s]?n\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          __BITCOIN           /<B>[-\s]?<I>[-\s]?<T>[-\s]?<C>[-\s]?<O>[-\s]?<I>[-\s]?<N>/i
+endif
+
+body           __BITCOIN_ID     /\b(?<!=)(?:[13](?:(?:[-_=\s][a-km-zA-HJ-NP-Z1-9]){29,34}|[a-km-zA-HJ-NP-Z1-9]{29,34})|bc1[acdefghjklmnpqrstuvwxyz234567890]{30,90}|b[-_=\s]c[-_=\s]1(?:[-_=\s][acdefghjklmnpqrstuvwxyz234567890]){30,90})\b/
+
+meta       __BITCOIN_IMGUR             __IMGUR_IMG && __BITCOIN 
+
+meta           __BITCOIN_OBFU_SUBJ  __BITCOIN && __SUBJ_OBFU_PUNCT 
+
+meta           __BITCOIN_SPAM_02  __BITCOIN_ID && __BOTH_INR_AND_REF 
+
+meta           __BITCOIN_SPAM_05  __BITCOIN_ID && __SPOOFED_FREEMAIL 
+
+meta           __BITCOIN_SPAM_07  __BITCOIN_ID && __TO_EQ_FROM
+
+meta       __BITCOIN_WFH_01            __BITCOIN && __WFH_01
+
+meta           __BITCOIN_XPRIO      __XPRIO && (__BITCOIN || __BITCOIN_ID)
+
+meta        __BODY_SINGLE_URI     (__BODY_SINGLE_WORD && __HAS_ANY_URI)
+
+meta        __BODY_SINGLE_WORD    __BODY_TEXT_LINE < 3 && !__EMPTY_BODY && !__SMIME_MESSAGE && ((__SINGLE_WORD_LINE && !__SINGLE_WORD_SUBJ) || __SINGLE_WORD_LINE > 1)
+
+body __BODY_STARTS_WITH_FROM_LINE /^From \S+ \S\S\S \S\S\S .. ..:..:.. \S+\s+\S+\: /s
+
+body        __BODY_TEXT_LINE     /^\s*\S/
+tflags      __BODY_TEXT_LINE     multiple maxhits=3
+
+meta        __BODY_URI_ONLY      __BODY_TEXT_LINE < 3 && __HAS_ANY_URI && !__SMIME_MESSAGE
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  full       __BOGUS_MIME_HDR            /\bContent-[XYZ]-[a-z]{6,15}:\s+[a-z]{6,15}\b/
+  tflags     __BOGUS_MIME_HDR            multiple maxhits=8
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __BOGUS_MIME_HDR_MANY       __BOGUS_MIME_HDR > 7
+endif
+
+header     __BOGUS_MIME_VER_02         MIME-Version =~ /^(?!.*\b1\.0\b).+/
+
+meta       __BOGUS_MSM_HDRS             __HAS_MSMAIL_PRI && __MSOE_MID_WRONG_CASE && __HDR_ORDER_FTSDMCXXXX
+
+body       __BONUS_LAST_DAY            /\b(?:last|final) day of the (?:\$\d+ |\d+ dollars? )?bonus offer(?:ing)?\b/i
+
+meta     __BOTH_INR_AND_REF    (__XM_BALSA || __XM_CALYPSO || __XM_FORTE || __XM_MHE || __XM_SQRLMAIL || __XM_SYLPHEED || __THEBAT_MUA || __XM_VM || __XM_XIMEVOL || __UA_KMAIL || __UA_MOZ5 || __UA_OPERA7)
+
+body           __BTC_OBFU_2     /\b\W{0,10}b(?!it[-\s]?coin)\W{0,10}i\W{0,10}t\W{0,10}c\W{0,10}o\W{0,10}i\W{0,10}n\W{0,10}\b/i
+
+body           __BTC_OBFU_3     /\b\W{0,10}b(?!tc\b)\W{0,10}t\W{0,10}c\W{0,10}\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __BTC_OBFU_4     /\bb(?!itcoin)[i\x{0456}]t[c\x{0441}][o\x{043E}][i\x{0456}]n\b/i
+endif
+
+body           __BTC_OBFU_5     /&\#x62;&\#x69;&\#x74;&\#x63;&\#x6F;&\#x69;&\#x6E;/i
+
+rawbody  __BUGGED_IMG  m{<img\b[^>]{0,100}\ssrc=.?https?://[^>]{6,80}(?:\?[^>]{8}|[^a-z](?![a-f]{3}|20\d\d[01]\d[0-3]\d)[0-9a-f]{8})}i
+
+body     __BURKINA_FASO   /\bburkina\s?faso\b/i
+
+body        __CANT_SEE_AD_1   /\b(?:can(?:no|')?t|(?:aren'?t[-,!\s]{1,3}|not[-,!\s]{1,3}|un)able[-,!\s]{1,3}to)[-,!\s]{1,3}(?:(?!our|this|the)\w{1,12}[-,\s]{1,3}){1,2}(?:our|this|the)[-.,\s*]{1,3}(?:commercial[-.,\s]{1,3}|ad(?:v[-.]?ert[i1l]se-?ment)?[-.,\s]{1,3}|images |newsletter |mailing ){1,2}(?:at all|(?:(?:down )?(?:below|underneath))|in (?:your|this) mail|(?:due to|because(?: of)?|as|from) (?:no |missing |unloaded |blocked )?(?:images|graphics))\b/i
+
+body        __CANT_SEE_AD_2   /\b(?:issue|problem|trouble) (?:getting|viewing|with) (?:(?:our|the) )?(?:message|content|e-?mail|details)(?: below)?[.?] (?:please|go ahead and) (?:click|browse)\b/i
+
+body        __CAN_HELP         /\bcan help\b/i
+
+body __CASHPRZ      /cash prize of/
+
+body     __CHARITY        /\b(?:charit(?:y|[ai]ble)|orphans?|homeless|orphelins|sans\sabri)\b/i
+
+body        __CLEAN_MAILBOX      /\b(?:(?:e-?mail|mail\s?box|violation:|(?-i:CLICK)) (?:quota size|clean(?:-?up))|clean ?up click ?here|(?:please|automatically) reduce (?:your|the) e?-?mail ?box size|reduce (?:your |the )?(?:e?-?mail(?: ?box)? )?size automatically)\b/i
+tflags      __CLEAN_MAILBOX      multiple maxhits=2
+
+rawbody        __COMMENT_GIBBERISH      /<!--(?:\s{1,10}[-\w'"]{1,40}){100}/im
+
+body     __COMPENSATION   /\b(?:compensat(?:e|ion)|recompensed?|ausgleich)\b/i
+
+body     __CONTACT_ATTY   /\bcontact(?:er)?\s(?:my|(?:de\s)?mon)\s(?:barrister|attou?rney|lawyer|avocat|gestionnaire)\b/i
+
+body     __CONTACT_YOU    /\b(?:contact(?:ing)\syou|vous\scontacter?)\b/i
+
+rawbody    __CONTENT_AFTER_HTML        /<\/html>\s*[a-z0-9]/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body     __COPY_PASTE_EN    /Copy (and|\+|\&) paste/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __COPY_PASTE_EN    /<C><O><P><Y> (?:<A><N><D>|\+|\&) <P><A><S><T><E>/i
+endif
+
+body     __COURIER        /\bcourier\s(?:company|service)\b/i
+
+header      __CR_IN_SUBJ      Subject:raw =~ /\015/
+
+header  __CTYPE_MULTIPART_ANY Content-Type =~ /multipart\/\w+/i
+
+header     __CTYPE_MULTIPART_MIXED Content-Type =~ /multipart\/mixed/i
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __CTYPE_NULL        0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __CTYPE_NULL        Content-Type =~ /^\s*;/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __CTYPE_ONETAB_GIF Content-Type:raw =~ /^image\/gif;\n\tname=\".+?\"$/s
+endif
+
+header     __CT_ENCRYPTED              Content-Type =~ /^multipart\/(?:x-)?(?:pgp-)?encrypted|application\/(?:x-)?pkcs7-mime/
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader     __CT_UTF7               Content-Type =~ /\bcharset=.?utf-7\b/i
+endif
+
+header      __DATE_LOWER       ALL =~ /date:\s\S{5}/
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body       __DAY_I_EARNED            /day,?\sI\s(?:earned|got|received|made|brought\sin)\s\$\s?\d{3}/i
+  tflags     __DAY_I_EARNED            multiple maxhits=4
+endif
+
+body __DBLCLAIM     /avoid double claiming/
+
+body     __DEAD_PARENT    /\b(?:my|meu)\s(?:(?:deceased|dead)\s(?:father|mother|husband)|(?:father|dad|mother|mom|husband|marido)(?:'?s)?\s(?:death|died|passed\saway|murder|was\s(?:killed|murdered|poisoned)|faleceu))/i
+
+body     __DEAL           /\b(?:(?:business|financial|this|the|mutual|die(?:se)?r?|cette|profitable)\s(?:deal|transa[ck]tion|proposal|off[er]{2}|venture|suggestion|partnership)|your\spartnership)/i
+
+body     __DECEASED       /\b(?:the|my|your|der|du|le|meu?)\s(?:deceased|late|verstorbenen|d(?:i|e|=E9|[\xe9]|[\xc3][\xa9])funto?|d(?:e|=E9|[\xe9]|[\xc3][\xa9])nt|falecido)\b/i
+
+body     __DESTROY_ME     /\b(?:destroy|hunt|quemar)\sm[eyi]\b/i
+
+body           __DESTROY_YOU    /\b(?:destroy\syou|deine Zukunft zerst\S{1,3}ren)/i
+
+body     __DIED_IN        /\bdied\sin\b/i
+
+body     __DIPLOMATIC     /\bdiplomatic\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_BLOCKED  net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_BULKMAIL net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_FREEMAIL net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_WL_BL   net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_WL_HI    net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_WL_MED   net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags    __DKIMWL_WL_MEDHI net
+endif
+
+header  __DKIM_EXISTS  exists:DKIM-Signature
+tflags  __DKIM_EXISTS  nice
+
+body           __DLND_ATTACH      /\bdownload\sthe\sattach(?:ed|ment)\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __DOC_ATTACH       0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         __DOC_ATTACH       (__DOC_ATTACH_MT || __DOC_ATTACH_FN1 || __DOC_ATTACH_FN2)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __DOC_ATTACH_FN1   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __DOC_ATTACH_FN1   Content-Type =~ /="[^"]+\.(?:docx?|rtf)"/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __DOC_ATTACH_FN2   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __DOC_ATTACH_FN2   Content-Disposition =~ /="[^"]+\.(?:docx?|rtf)"/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __DOC_ATTACH_MT    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __DOC_ATTACH_MT    Content-Type =~ m,\bapplication/(?:msword|rtf|vnd\.ms-word|vnd\.openxmlformats-officedocument\.wordprocessingml\.document)\b,i
+endif
+
+body     __DORMANT_ACCT   /\b(?:(?:dormant|abandoned|left\s?over)\s(?:account|fund|transaction|sum|deposit)|fonds\sdorment)/i
+
+body   __DOS_BODY_FRI  /\bfri(?:day)?\b/i
+
+body   __DOS_BODY_MON  /\bmon(?:day)?\b/i
+
+body   __DOS_BODY_SAT  /\bsat(?:day)?\b/i
+
+body           __DOS_BODY_STOCK        /\bstock\b/i
+
+body   __DOS_BODY_SUN  /\bsun(?:day)?\b/i
+
+body   __DOS_BODY_THU  /\bthu(?:r(?:s(?:day)?)?)?\b/i
+
+body           __DOS_BODY_TICKER       /\b[A-Z]{4}\.(?:OB|PK)\b/
+
+body   __DOS_BODY_TUE  /\btue(?:s(?:day)?)?\b/i
+
+body   __DOS_BODY_WED  /\bwed(?:nesday)?\b/i
+
+body   __DOS_COMING_TO_YOUR_PLACE      /I (?:am|might(?: be)?) c[a-z]?o[a-z]?m[a-z]?(?:i[a-z]?n[a-z]?g[a-z]{0,2}|e down) to y[!a-z]{2,4}r (?:city|place[a-z]{0,2}|co[a-z]?u[a-z]?n[a-z]?t[a-z]?ry) in (?:f[a-z]?e[a-z]?w|\d{1,2}) (?:day|week)s/
+
+body   __DOS_CORRESPOND_EMAIL          /correspond with me using my email/
+
+meta __DOS_DIRECT_TO_MX                __DOS_SINGLE_EXT_RELAY && !__DOS_HAS_LIST_ID && !__DOS_HAS_LIST_UNSUB && !__DOS_HAS_MAILING_LIST && !__DOS_RELAYED_EXT
+
+meta __DOS_DIRECT_TO_MX_UNTRUSTED      __DOS_DIRECT_TO_MX && !ALL_TRUSTED
+
+body   __DOS_DROP_ME_A_LINE            /Drop me a line at/
+
+body   __DOS_EMAIL_DIRECTLY            /(?:Email m[a-z]?e|address) direc(?:tl|lt)y at/
+
+body           __DOS_FIN_ADVANTAGE     /\bfinancial advantage/i
+
+uri __DOS_HAS_ANY_URI          /^\w+:\/\//
+
+header __DOS_HAS_LIST_ID       exists:List-ID
+
+header __DOS_HAS_LIST_UNSUB    exists:List-Unsubscribe
+
+header __DOS_HAS_MAILING_LIST  exists:Mailing-List
+
+body __DOS_HI                   /^Hi,$/
+
+body   __DOS_I_AM_25                   /I a.?m 25/
+
+body __DOS_I_DRIVE_A   /I drive a/
+
+body __DOS_LET_GO_JOB  /I was (?:let go|fired|layed off|dismissed) from a job I h(?:el|a)d for (?:2\d years|\d{3} months)/
+
+body __DOS_LINK                 /\blink\b/
+
+body   __DOS_MEET_EACH_OTHER           /(?:meet each other|[Mm]ay ?be we can meet)/
+
+header __DOS_MSGID_DIGITS10 Message-ID =~ /<1[013-9]\d{8}\@.*>/
+
+header __DOS_MSGID_DIGITS9 Message-ID =~ /<\d{9}\@.*>/
+
+body __DOS_MY_OLD_JOB  /my old job/
+
+body   __DOS_PERSONAL_EMAIL            /personal email at/
+
+header __DOS_RCVD_FRI  Received =~ / Fri, /
+
+header __DOS_RCVD_MON  Received =~ / Mon, /
+
+header __DOS_RCVD_SAT  Received =~ / Sat, /
+
+header __DOS_RCVD_SUN  Received =~ / Sun, /
+
+header __DOS_RCVD_THU  Received =~ / Thu, /
+
+header __DOS_RCVD_TUE  Received =~ / Tue, /
+
+header __DOS_RCVD_WED  Received =~ / Wed, /
+
+meta   __DOS_REF_2_WK_DAYS     (__DOS_RCVD_MON && __DOS_BODY_WED) || (__DOS_RCVD_TUE && __DOS_BODY_THU) || (__DOS_RCVD_WED && __DOS_BODY_FRI) || (__DOS_RCVD_THU && __DOS_BODY_MON) || (__DOS_RCVD_FRI && __DOS_BODY_TUE) || (__DOS_RCVD_SAT && __DOS_BODY_TUE) || (__DOS_RCVD_SUN && __DOS_BODY_TUE)
+
+meta   __DOS_REF_NEXT_WK_DAY   (__DOS_RCVD_MON && __DOS_BODY_TUE) || (__DOS_RCVD_TUE && __DOS_BODY_WED) || (__DOS_RCVD_WED && __DOS_BODY_THU) || (__DOS_RCVD_THU && __DOS_BODY_FRI) || (__DOS_RCVD_FRI && __DOS_BODY_MON) || (__DOS_RCVD_SAT && __DOS_BODY_MON) || (__DOS_RCVD_SUN && __DOS_BODY_MON)
+
+meta   __DOS_REF_TODAY         (__DOS_RCVD_MON && __DOS_BODY_MON) || (__DOS_RCVD_TUE && __DOS_BODY_TUE) || (__DOS_RCVD_WED && __DOS_BODY_WED) || (__DOS_RCVD_THU && __DOS_BODY_THU) || (__DOS_RCVD_FRI && __DOS_BODY_FRI) || (__DOS_RCVD_SAT && __DOS_BODY_SAT) || (__DOS_RCVD_SUN && __DOS_BODY_SUN)
+
+header __DOS_RELAYED_EXT       ALL-EXTERNAL =~ /(?:^|\n)[Rr][eE][cC][eE][iI][vV][eE][dD]:\s.+\n[Rr][eE][cC][eE][iI][vV][eE][dD]:\s/s
+
+header __DOS_SINGLE_EXT_RELAY   X-Spam-Relays-External =~ /^\[ [^\]]+ \]$/
+
+body           __DOS_STEADY_COURSE     /\bsteady (?:and increasing )?course\b/i
+
+body           __DOS_STRONG_CF         /\bstrong cash flow/i
+
+body __DOS_TAKING_HOME /Taking home \d (?:digit level|figures) in \d{1,2} months/
+
+body   __DOS_WRITE_ME_AT               /[Ww].?r.?i.?t.?e me at/
+
+meta       __DOTGOV_IMAGE              __URI_DOTGOV && __REMOTE_IMAGE 
+
+meta       __DYNAMIC_IMGUR             __IMGUR_IMG && __RDNS_DYNAMIC_IPADDR 
+
+body     __EARLY_DEMISE   /\buntimely\sdeath\b/i
+
+header  __EBAY_ADDRESS         From:addr =~ /[\@.]ebay\.\w\w\w?(?:\.\w\w)?$/i
+
+meta       __EBAY_IMG_NOT_RCVD_EBAY    __URI_IMG_EBAY && !__HDR_RCVD_EBAY
+
+meta        __EMAIL_PHISH        (__WEBMAIL_ACCT + __MAILBOX_FULL + __MAILBOX_FULL_SE + __CLEAN_MAILBOX + __VALIDATE_MAILBOX + __VALIDATE_MBOX_SE + __UPGR_MAILBOX + __LOCK_MAILBOX + __SYSADMIN + __ATTN_MAIL_USER + __MAIL_ACCT_ACCESS1 + __MAIL_ACCT_ACCESS2 + __ACCESS_REVOKE + __PASSWORD_UPGRADE + __PENDING_MESSAGES + __RELEASE_MESSAGES + __PASSWORD_EXP_CLUMSY + (__TVD_PH_SUBJ_META || __TVD_PH_BODY_META || __TVD_PH_BODY_ACCOUNTS_PRE || __TVD_PH_BODY_ACCOUNTS_POST || __PDS_FROM_NAME_TO_DOMAIN) > 1) && !__EMAIL_PHISH_MANY
+
+meta        __EMAIL_PHISH_MANY   (__WEBMAIL_ACCT + __MAILBOX_FULL + __MAILBOX_FULL_SE + __CLEAN_MAILBOX + __VALIDATE_MAILBOX + __VALIDATE_MBOX_SE + __UPGR_MAILBOX + __LOCK_MAILBOX + __SYSADMIN + __ATTN_MAIL_USER + __MAIL_ACCT_ACCESS1 + __MAIL_ACCT_ACCESS2 + __ACCESS_REVOKE + __PASSWORD_UPGRADE + __PENDING_MESSAGES + __RELEASE_MESSAGES + __PASSWORD_EXP_CLUMSY + __TO_IN_SUBJ + __SUBJ_DOM_ADMIN + __FROM_DOM_ADMIN + (__TVD_PH_SUBJ_META || __TVD_PH_BODY_META || __TVD_PH_BODY_ACCOUNTS_PRE || __TVD_PH_BODY_ACCOUNTS_POST || __PDS_FROM_NAME_TO_DOMAIN) > 3)
+
+meta        __EMPTY_BODY         __BODY_TEXT_LINE < 2 && !__SMIME_MESSAGE
+
+body           __END_FUTURE_EMAILS /\b(?:end|stop(?! receiving these (?:alerts|emails))|cease|discontinue|removed?|(?:do(?! not wish to receive [\w\s]{0,20}emails)|would|you(?:'d)?) (?:not (?:wish|want|like|desire)|(?:prefer|wish|want|like|desire) not) to|exclude yourself|fore?go)[- ](?:get |receiv(?:ing|e) |or |(?:a-z{1,30} ){0,4}from )?(?:these|our|(?:any )?(?:future|further)) (?:(?:e|ad)?-?m(?:ail(?:ing)?|es+[age]{3})|alert|PSA|marketing|notice)[- ]?(?:ad|update)?s?\b/i
+
+header     __ENVFROM_AMAZONSES         EnvelopeFrom =~ /\@amazonses\.com$/
+
+header     __ENVFROM_GOOG_TRIX         EnvelopeFrom =~ /(?:@|=)trix\.bounces\.google\.com(?:$|=)/
+
+meta       __ENVFROM_GOOG_TRIX_SPAMMY  __ENVFROM_GOOG_TRIX && (__GOOGLE_DOC_SUSP || FREEMAIL_REPLYTO_END_DIGIT || __ADVANCE_FEE_2_NEW || FORGED_GMAIL_RCVD || LOTS_OF_MONEY || __HAS_X_SOURCE_DIR )
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+       meta         __EXE_ATTACH        0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+       mimeheader   __EXE_ATTACH        Content-Type =~ /\.exe\b/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __EXPLOSIVE_DEVICE     /\b(?:explosive\sdevice|bomb)\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __EXPLOSIVE_DEVICE     /(?:^|\s)(?:<E><X><P><L><O><S><I><V><E>\s<D><E><V><I><C><E>|<B><O><M><B>)\s/i
+endif
+
+meta           __EXTORT_MANY          (__MY_MALWARE + __PAY_ME + __MY_VICTIM + __YOUR_WEBCAM + __YOUR_ONAN + __YOUR_PERSONAL + __HOURS_DEADLINE + __YOUR_PASSWORD + LOCALPART_IN_SUBJECT + __DESTROY_ME + __DESTROY_YOU + __EXPLOSIVE_DEVICE + __PAXFUL + __HUSH_HUSH) > 3
+
+body     __EX_CUSTOMER    /\b(?:(?:dead|deceased|late|verstorbenen|death\sof\sthe)\s(?:[ck]lient|customer|ac+ount|invest[eo]r|beneficiary|depositor|mr\.|kunde|engr?\.?)|titulaire\sdu\scompte\sest\sd(?:e|=E9|[\xe9]|[\xc3][\xa9])c(?:e|=E9|[\xe9]|[\xc3][\xa9])d(?:e|=E9|[\xe9]|[\xc3][\xa9])|invest[eo]r\sdied|(?:e|=E9|[\xe9]|[\xc3][\xa9])tranger\sd(?:e|=E9|[\xe9]|[\xc3][\xa9])c(?:e|=E9|[\xe9]|[\xc3][\xa9])d(?:e|=E9|[\xe9]|[\xc3][\xa9])|(?:[ck]lient|customer|ac+ount|invest[eo]r|beneficiary|mr\.|kunde|engr?\.?)\s(?:[a-z]{1,10}\s)?(?:dead|deceased|verstorbenen))/i
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+    body            __E_LIKE_LETTER /<lcase_e>/
+    tflags          __E_LIKE_LETTER multiple maxhits=320 
+endif
+endif
+
+body        __FAILED_LOGINS      /unsuc+es+ful log-?[io]n at+empts/i
+
+body        __FBI_BODY_SHOUT_1   /^FEDERAL BUREAU OF INVESTIGATIONS?\b/
+
+rawbody     __FBI_BODY_SHOUT_2   /^FEDERAL BUREAU OF INVESTIGATIONS?\b/m
+
+header      __FBI_FM_DOM         From:addr =~ /\bfbi\.gov$/
+
+header      __FBI_FM_NAME        From:name =~ /federal\sbureau\sof\sinvestigation/i
+
+header      __FBI_RCVD_DOM       X-Spam-Relays-External =~ / rdns=\S+\bfbi\.gov /
+
+meta        __FBI_SPOOF          (__FBI_FM_NAME || __FBI_FM_DOM || __FBI_BODY_SHOUT_1 || __FBI_BODY_SHOUT_2) && !__FBI_RCVD_DOM && __HAS_REPLY_TO
+
+body        __FB_COST          /\bcost\b/i
+
+body        __FB_NUM_PERCNT    /\d\s?\%/
+
+body        __FB_S_PRICE       /pri{1,2}c[a-z]?e/i
+
+body        __FB_S_STOCK       /\bstock/i
+
+body        __FB_TOUR          /\btour/i
+
+body     __FEES           /\b(?:security|safe\w*|courier|registration|pay|paid|up-?front|processing|delivery|transfer|keeping)[\s\w]{0,15}\s(?:fee|charge)s?\b/i 
+
+body     __FIFTY_FIFTY    /\b(?:50|fifty)(?:%?[\/:]50%?|%|\spercent)/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM               0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __FILL_THIS_FORM               (__FILL_THIS_FORM_LONG || __FILL_THIS_FORM_PARTIAL > 4 || __FILL_THIS_FORM_PARTIAL_RAW > 4)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_FRAUD_PHISH   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __FILL_THIS_FORM_FRAUD_PHISH   (__FILL_THIS_FORM || __FILL_THIS_FORM_SHORT) && (__FILL_THIS_FORM_FRAUD_PHISH1 || __EMAIL_PHISH || __ACCT_PHISH)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_FRAUD_PHISH1  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_FRAUD_PHISH1   /<FF_YOUR>(?:<FF_F1>|<FF_F2>|<FF_F3>|<FF_F4>|<FF_F5>)<FF_SUFFIX>(?:<FF_BLANK1>|<FF_BLANK2>$)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_LOAN          0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __FILL_THIS_FORM_LOAN          __FILL_THIS_FORM && __FILL_THIS_FORM_LOAN1
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_LOAN1         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_LOAN1         /<FF_YOUR><FF_L1><FF_SUFFIX>(?:<FF_BLANK1>|<FF_BLANK2>$)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_LONG          0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __FILL_THIS_FORM_LONG          __FILL_THIS_FORM_LONG1 || __FILL_THIS_FORM_LONG2
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_LONG1         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_LONG1         /(?:<FF_LNNO><FF_YOUR><FF_ALL><FF_SUFFIX>(?:<FF_BLANK2>(?:P[a-z\.\s]{10,30})?|<ANDOR>)){5}/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_LONG2         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_LONG2         /(?:<FF_YOUR><FF_ALL><FF_SUFFIX>(?:<FF_BLANK2>(?:P[a-z\.\s]{10,30})?|<ANDOR>)){5}/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_PARTIAL       0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_PARTIAL       /^\s?<FF_LNNO>?<FF_YOUR>(?:<FF_ALL><ANDOR>?){1,3}<FF_SUFFIX>(?:<FF_BLANK1>|(?:[-=_.,:;*\s]|=20){1,4}$)/im
+  tflags   __FILL_THIS_FORM_PARTIAL       multiple maxhits=5
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_PARTIAL_RAW   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  rawbody  __FILL_THIS_FORM_PARTIAL_RAW   /^(?>\s{0,50})<FF_LNNO>?<FF_YOUR>(?:<FF_ALL><ANDOR>?){1,3}<FF_SUFFIX>(?:<FF_BLANK1>|(?:[-=_.,:;*\s]|=20|&nbsp;|<\/\w+>){0,4}$)/im
+  tflags   __FILL_THIS_FORM_PARTIAL_RAW   multiple maxhits=5
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_SHORT         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __FILL_THIS_FORM_SHORT         !__FILL_THIS_FORM && (__FILL_THIS_FORM_SHORT1 || __FILL_THIS_FORM_SHORT2 || __FILL_THIS_FORM_PARTIAL > 2 || __FILL_THIS_FORM_PARTIAL_RAW > 2)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_SHORT1        0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_SHORT1        /(?:<FF_LNNO><FF_YOUR><FF_ALL><FF_SUFFIX>(?:<FF_BLANK2>|<ANDOR>)){3}/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __FILL_THIS_FORM_SHORT2        0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __FILL_THIS_FORM_SHORT2        /(?:<FF_YOUR><FF_ALL><FF_SUFFIX>(?:<FF_BLANK2>|<ANDOR>)){3}/i
+endif
+
+header         __FLASHMAIL_MUA     X-Mailer =~ /^NetEase Flash Mail \d/
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+       meta        __FM_MY_PRICE      __FB_S_PRICE
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+       meta        __FM_MY_PRICE      (__FB_S_PRICE || __FRT_PRICE)
+endif
+
+meta           __FM_TO_ALL_NUMS     __FROM_ALL_NUMS && __TO_ALL_NUMS
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  rawbody   __FONT_INVIS                  /<(?!style)[a-z]+\s[^>]{1,80}(?:font(?:-size)?\s*:\s*(?:0*[01](?:\.\d+)?(?:px|pt|Q|vw|vh|vmin)|0+(?:\.\d+)?(?:cm|mm|pc|ch|rem|lh|vmax|%)|0+(?:\.0\d*)(?:em|ex|in))(?:\s[a-z]|\s*[;'])|['"\s;]color\s*:\s*transparent\s*[;'])[^>]{0,80}>\w/i
+  tflags    __FONT_INVIS                  multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_10               __FONT_INVIS > 10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_2                __FONT_INVIS > 2
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_5                __FONT_INVIS > 5
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_CENTER           __FONT_INVIS && __TAG_EXISTS_CENTER 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_DIRECT           __FONT_INVIS && __DOS_DIRECT_TO_MX_UNTRUSTED 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_DOTGOV           __FONT_INVIS && __URI_DOTGOV 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_HTML_NOHTML      __FONT_INVIS && HTML_MIME_NO_HTML_TAG 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_LONG_LINE        __FONT_INVIS && __LONGLINE 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_MANY             __FONT_INVIS_2
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_MSGID            __FONT_INVIS && __MSGID_OK_HOST 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_NORDNS           __FONT_INVIS && __RDNS_NONE 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __FONT_INVIS_SINGLET          __FONT_INVIS && __HTML_SINGLET 
+endif
+
+header       __FORGED_MUA_POSTFIX0     User-Agent =~ /Postfix/
+
+header       __FORGED_MUA_POSTFIX1     X-Mailer =~ /Postfix/
+
+meta       __FORGED_TBIRD_IMG      __MUA_TBIRD && __JPEG_ATTACH && __MIME_BDRY_0D0D
+describe   __FORGED_TBIRD_IMG      Possibly forged Thunderbird image spam
+
+meta     __FORM_FRAUD     (__FILL_THIS_FORM || __FILL_THIS_FORM_SHORT) && (__FRAUD_VQE + __FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_DPR + __FRAUD_BEP + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IRT + __FRAUD_AON + __FRAUD_WNY + __FRAUD_IPK + __FRAUD_QXX + __FRAUD_IOV + __FRAUD_MLY + __FRAUD_ULK + __FRAUD_BGP + __FRAUD_YWW + __FRAUD_JYG + __FRAUD_XWW + __FRAUD_UUY + __FRAUD_SNT + __FRAUD_JNB + __FRAUD_QFY + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_AUM + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __AFRICAN_STATE + __AGREED_RATIO + __AM_DYING + __ATM_CARD + __BACK_SCRATCH +  __BARRISTER + __BENEFICIARY + __COMPENSATION + __CONTACT_ATTY + __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIED_IN + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + EMRCP + __EX_CUSTOMER + __FEES + __FIFTY_FIFTY + __FOUND_YOU + __FRAUD + __FRAUD_PTX + __HUSH_HUSH + __I_INHERIT + __INHERIT_PMT + __INTL_BANK + __INVEST_COUNTRY + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + __LOTTO_ADMITS + LOTTO_AGENT + __LOTTO_DEPT + __LOTTO_RELATED + __LOTTO_VERIFY + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __LUCRATIVE + __MILLIONS + __MY_FORTUNE + __NEXT_OF_KIN + __NOT_DEAD_YET + __NOT_SCAM + __OUR_BEHALF + __SCAM + __SHARE_IT + __SUM_OF_FUND + __SURVIVORS + __THEY_INHERIT + __TRTMT_DEFILED + __TRUNK_BOX +  __UN + UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __YOUR_BANK + __YOUR_FUND + __YOUR_PERM + __YOUR_PROFIT + __YOU_WON + T_LOTTO_AGENT_FM + T_LOTTO_AGENT_RPLY + __PCT_FOR_YOU + __PCT_OF_PMTS + __RANDOM_PICK + __CHARITY > 1)
+
+meta     __FORM_FRAUD_3  (__FILL_THIS_FORM || __FILL_THIS_FORM_SHORT) && (__FRAUD_VQE + __FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_DPR + __FRAUD_BEP + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IRT + __FRAUD_AON + __FRAUD_WNY + __FRAUD_IPK + __FRAUD_QXX + __FRAUD_IOV + __FRAUD_MLY + __FRAUD_ULK + __FRAUD_BGP + __FRAUD_YWW + __FRAUD_JYG + __FRAUD_XWW + __FRAUD_UUY + __FRAUD_SNT + __FRAUD_JNB + __FRAUD_QFY + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_AUM + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __AFRICAN_STATE + __AGREED_RATIO + __AM_DYING + __ATM_CARD + __BACK_SCRATCH +  __BARRISTER + __BENEFICIARY + __COMPENSATION + __CONTACT_ATTY + __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIED_IN + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + EMRCP + __EX_CUSTOMER + __FEES + __FIFTY_FIFTY + __FOUND_YOU + __FRAUD + __FRAUD_PTX + __HUSH_HUSH + __I_INHERIT + __INHERIT_PMT + __INTL_BANK + __INVEST_COUNTRY + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + __LOTTO_ADMITS + LOTTO_AGENT + __LOTTO_DEPT + __LOTTO_RELATED + __LOTTO_VERIFY + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __LUCRATIVE + __MILLIONS + __MY_FORTUNE + __NEXT_OF_KIN + __NOT_DEAD_YET + __NOT_SCAM + __OUR_BEHALF + __SCAM + __SHARE_IT + __SUM_OF_FUND + __SURVIVORS + __THEY_INHERIT + __TRTMT_DEFILED + __TRUNK_BOX +  __UN + UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __YOUR_BANK + __YOUR_FUND + __YOUR_PERM + __YOUR_PROFIT + __YOU_WON + T_LOTTO_AGENT_FM + T_LOTTO_AGENT_RPLY + __PCT_FOR_YOU + __PCT_OF_PMTS + __RANDOM_PICK + __CHARITY > 3)
+
+meta     __FORM_FRAUD_5  (__FILL_THIS_FORM || __FILL_THIS_FORM_SHORT) && (__FRAUD_VQE + __FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_DPR + __FRAUD_BEP + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IRT + __FRAUD_AON + __FRAUD_WNY + __FRAUD_IPK + __FRAUD_QXX + __FRAUD_IOV + __FRAUD_MLY + __FRAUD_ULK + __FRAUD_BGP + __FRAUD_YWW + __FRAUD_JYG + __FRAUD_XWW + __FRAUD_UUY + __FRAUD_SNT + __FRAUD_JNB + __FRAUD_QFY + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_AUM + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __AFRICAN_STATE + __AGREED_RATIO + __AM_DYING + __ATM_CARD + __BACK_SCRATCH +  __BARRISTER + __BENEFICIARY + __COMPENSATION + __CONTACT_ATTY + __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIED_IN + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + EMRCP + __EX_CUSTOMER + __FEES + __FIFTY_FIFTY + __FOUND_YOU + __FRAUD + __FRAUD_PTX + __HUSH_HUSH + __I_INHERIT + __INHERIT_PMT + __INTL_BANK + __INVEST_COUNTRY + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + __LOTTO_ADMITS + LOTTO_AGENT + __LOTTO_DEPT + __LOTTO_RELATED + __LOTTO_VERIFY + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS + __LUCKY_WINNER + __LUCRATIVE + __MILLIONS + __MY_FORTUNE + __NEXT_OF_KIN + __NOT_DEAD_YET + __NOT_SCAM + __OUR_BEHALF + __SCAM + __SHARE_IT + __SUM_OF_FUND + __SURVIVORS + __THEY_INHERIT + __TRTMT_DEFILED + __TRUNK_BOX +  __UN + UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __YOUR_BANK + __YOUR_FUND + __YOUR_PERM + __YOUR_PROFIT + __YOU_WON + T_LOTTO_AGENT_FM + T_LOTTO_AGENT_RPLY + __PCT_FOR_YOU + __PCT_OF_PMTS + __RANDOM_PICK + __CHARITY > 5)
+
+meta        __FORM_LOW_CONTRAST   (__FILL_THIS_FORM_SHORT2 || __FILL_THIS_FORM_SHORT2) && __HTML_FONT_LOW_CONTRAST_MINFP
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __FOR_SALE_LTP            /00\.? (?:less 10%|LTP)/i
+  tflags      __FOR_SALE_LTP            multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_LTP_MANY       __FOR_SALE_LTP > 10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __FOR_SALE_NET            /00\.? NET/i
+  tflags      __FOR_SALE_NET            multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_NET_MANY       __FOR_SALE_NET > 10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __FOR_SALE_OBO            /\bor best offer\b/i
+  tflags      __FOR_SALE_OBO            multiple maxhits=6
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_OBO_MANY       __FOR_SALE_OBO > 5
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __FOR_SALE_PRC_100K       /\bprice:? \$\d\d\d,\d\d\d/i
+  tflags      __FOR_SALE_PRC_100K       multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_PRC_100K_MANY  __FOR_SALE_PRC_100K > 5
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __FOR_SALE_PRC_10K        /\bprice:? \$\d\d,\d\d\d/i
+  tflags      __FOR_SALE_PRC_10K        multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_PRC_10K_MANY   __FOR_SALE_PRC_10K > 10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __FOR_SALE_PRC_1K         /\bprice:? \$\d,?\d\d\d[.\s]/i
+  tflags      __FOR_SALE_PRC_1K         multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_PRC_1K_MANY    __FOR_SALE_PRC_1K > 10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  rawbody     __FOR_SALE_PRC_EOL        /\s\$\d{1,3},\d00(?:\.00)?$/m
+  tflags      __FOR_SALE_PRC_EOL        multiple maxhits=11
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_PRC_EOL_MANY   __FOR_SALE_PRC_EOL > 10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta        __FOR_SALE_PRC_MANY       (__FOR_SALE_PRC_1K + __FOR_SALE_PRC_10K + __FOR_SALE_PRC_100K) > 20
+endif
+
+body     __FOUND_YOU      /\b(?:I|we)\sfound\syour?\b/i
+
+body     __FRAUD          /\b(?:de)?fraud/i
+
+body __FRAUD_IOV       /\b(?:no risks?|risky?[- ]{0,3}free|free of risks?|100% safe|v\S{1,3}llig Risikofrei ist)\b/i
+
+body __FRAUD_PTX       /\b(?:ass?ass?inat(?:ed|ion)|murder(?:e?d)?|poison(?:e?d)?|kill(?:ed|ing|ers)\b[^.]{0,99}\b(?:war veterans|rebels?)|les tueurs)\b/i
+
+body __FRAUD_XWW       /\b(?:honest(?:ly)?\sco(?:-?operat(?:e|ion)|llaborat(?:e|ion))|ehrliche\szusammenarbeit|sichere [kc]o+p[eo]ration|col+aboration\swith\sme)\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  header   __FREEMAIL_DISPTO   eval:check_freemail_header('Disposition-Notification-To')
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         __FREEMAIL_DOC_PDF     (__DOC_ATTACH || __PDF_ATTACH) && (FREEMAIL_FROM || FREEMAIL_REPLYTO)
+endif
+
+meta       __FREEMAIL_WFH_01           (FREEMAIL_FROM || FREEMAIL_REPLYTO) && __WFH_01
+
+meta       __FREEM_FRNUM_UNICD_EMPTY  FREEMAIL_FROM && __FROM_ALL_NUMS && __FROM_ENCODED_B64 && __SUBJECT_ENCODED_B64 && __EMPTY_BODY
+
+if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+  meta         __FROM_41_FREEMAIL         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         __FROM_41_FREEMAIL         (__NSL_ORIG_FROM_41 || __NSL_RCVD_FROM_41) && (FREEMAIL_FROM || FREEMAIL_REPLYTO) && !__THREADED
+  describe     __FROM_41_FREEMAIL         Sent from Africa + freemail provider
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   __FROM_ADDRLIST_BANKS eval:check_from_in_list('BANKS')
+endif
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   __FROM_ADDRLIST_GOV eval:check_from_in_list('GOV')
+endif
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   __FROM_ADDRLIST_PAYPAL eval:check_from_in_list('PAYPAL')
+endif
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   __FROM_ADDRLIST_SUSPNTLD eval:check_from_in_list('SUSP_NTLD')
+endif
+endif
+
+header     __FROM_ADDR_WS              From:addr =~ /\s/
+
+header      __FROM_ADMIN         From =~ /\b(?:(?:sys)?admin(?:istrator)?|server|service|support)\b/i
+
+header __FROM_ALL_HEX      From:addr =~ /^(?!(?:19|20)\d\d[01]\d[0-3]\d)(?![0-9a-f]*[a-f]{3})[0-9a-f]+\@/
+
+header         __FROM_ALL_NUMS      From:addr =~ /^\d+@/
+
+header  __FROM_DNS             From =~ /(?<![^\w.-])dns(?:admin)?\@/i
+
+meta        __FROM_DOM_ADMIN     __FROM_ADMIN && __PDS_FROM_NAME_TO_DOMAIN
+
+header      __FROM_DOM_INFO    From:addr =~ /\.info$/i
+
+header __FROM_EBAY     From:addr =~ /\@ebay\.com$/i
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+    header   __FROM_EQ_REPLY            eval:check_fromname_equals_replyto()
+endif
+endif
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags     __FROM_FMBLA_NDBLOCKED net
+endif
+endif
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags     __FROM_FMBLA_NEWDOM    net
+endif
+endif
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags     __FROM_FMBLA_NEWDOM14  net
+endif
+endif
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags     __FROM_FMBLA_NEWDOM28  net
+endif
+endif
+
+header  __FROM_FULL_NAME       From:name =~ /^[^a-z[:punct:][:cntrl:]\d\s][^[:punct:][:cntrl:]\d\s]*[[:punct:]\s]+[^a-z[:punct:][:cntrl:]\d\s]/
+tflags  __FROM_FULL_NAME       nice
+
+header  __FROM_INFO            From =~ /(?<![^\w.-])info\@/i
+
+header      __FROM_LOWER       ALL =~ /from:\s\S{5}/
+
+header         __FROM_MISSPACED      From =~ /^\s*"[^"]*"</
+
+meta           __FROM_MISSP_EH_MATCH __FROM_RUNON_UNCODED && __LCL__ENV_AND_HDR_FROM_MATCH
+
+if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+  meta         __FROM_MISSP_FREEMAIL 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta         __FROM_MISSP_FREEMAIL __FROM_RUNON && (FREEMAIL_FROM || FREEMAIL_REPLYTO)
+endif
+
+meta           __FROM_MISSP_REPLYTO  __FROM_RUNON && __HAS_REPLY_TO
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  meta       __FROM_MULTI_NORDNS      __PDS_FROM_2_EMAILS && __RDNS_NONE 
+endif
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  meta       __FROM_MULTI_SHORT_IMG   __PDS_FROM_2_EMAILS && (HTML_IMAGE_ONLY_16 || HTML_SHORT_LINK_IMG_2 || __HTML_IMG_ONLY)
+endif
+
+full       __FROM_NAME_IN_MSG         /^From:\s+([^<]\S+\s\S+)\s(?=.{1,2048}^\1\r?$)/sm
+
+header __FROM_PAYPAL   From:addr =~ /\@paypal\.com$/i
+
+header         __FROM_RUNON          From =~ /\S+<\w+/
+
+header         __FROM_RUNON_UNCODED  From:raw =~ /\S+(?<!\?=)<\w+/
+
+header __FROM_WEB_DAEMON From:addr =~ /(?:apache|www|web|tomcat|\biis\b).*\@/i
+
+header     __FROM_WORDY                From:addr =~ /^(?:(?:[A-Z][A-Za-z]+|or|&)\.)+[A-Z][A-Za-z]+\@/
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+       meta        __FRT_PRICE        0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+       body        __FRT_PRICE        /<inter SP2><post P2>\b(?!price)<P><R><IX><C><E>\b/i
+endif
+
+rawbody     __FR_SPACING_8     /[a-z0-9]{6}\s{8}[a-z0-9]{5}/i
+
+header   __FSL_HAS_LIST_UNSUB  exists:List-Unsubscribe
+
+header  __FSL_HELO_BARE_IP_1      X-Spam-Relays-External =~ /^[^\]]+ helo=(?!127)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} [^\]]*auth= /i
+
+header  __FSL_HELO_BARE_IP_2    X-Spam-Relays-Untrusted =~ /helo=(?!127)\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} /i
+
+header  __FSL_HELO_USER_1   X-Spam-Relays-External =~ / helo=user /i
+
+header  __FSL_HELO_USER_2   Received =~ /from User(?:\s+by|\s*[\[\(]|$)/i
+
+header  __FSL_HELO_USER_3   Received =~ /(?:eh|he)lo(?:=|\s)User\)/i
+
+header   __FSL_RELAY_GOOGLE    X-Spam-Relays-External =~ /^[^\]]+ rdns=[^ ]+\.google\.com\.? /i
+
+header      __FS_SUBJ_RE       Subject =~ /^Re: /
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          __FUZZY_DR_OZ       /(?=<D>)(?!(?-i:D(?:r.|octor)(?:\s|&nbsp;)Oz))(?:<R>|<O><C>(?:<T><O><R>)?)\.?<WS>*<O><Z>(?:$|\W)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta          __FUZZY_MONERO      0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          __FUZZY_MONERO      /(?=<M>)(?!monero)<M><O><N><E><R><O>/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          __FUZZY_PORN        /(?=<P>)(?!pornograph?(?:y|i[ca]|er))<P><O><R><N><O><G><R><A><P><H>?(?:<Y>|<I><C>|<E><R>)/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body          __FUZZY_WELLSFARGO_BODY  /(?=<W>)(?!Wells[-\s]?Fargo)<W><E><L><L><S>[-\s]?<F><A><R><G><O>/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  header        __FUZZY_WELLSFARGO_FROM  From:name =~ /(?=<W>)(?!Wells[-\s]?Fargo)<W><E><L><L><S>[-\s]?<F><A><R><G><O>/i
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body       __GAPPY_SALES_LEADS         /\b(?:business|e?-?mail|your|marketing|advertising)\s(?!sales|leads|campaign)(?:s\s?a\s?l\s?e\s?s|l\s?e\s?a\s?d\s?s|c\s?a\s?m\s?p\s?a\s?i\s?g\s?n)\b/i
+  tflags     __GAPPY_SALES_LEADS         multiple maxhits=3
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __GAPPY_SALES_LEADS_MANY    __GAPPY_SALES_LEADS > 2
+endif
+
+header     __GB_FAKE_RF                  Subject =~ /(Fw|Re)\:[a-z0-9\+]/i
+
+body     __GHANA          /\bghana\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __GIF_ATTACH Content-Type =~ /^image\/gif\b/i
+endif
+
+body     __GIVE_MONEY     /\b(?:(?:give\syou\s(?:this\s)?(?:money|fund|inheritance))|(?:donated?\s(?:\w\+\s){0,3}(?:the\ssum\sof|(?:(?:the|this|some)\s(?:money|funds?|inheritance)|to\s)(?:you|(?:(?:the|a)\s)?church|charit(?:y|ies)|humanit\w+|needy|poor|orphan(?:age)?s?|philanthropists\?)))|de vous donner cet argent|faire don de la somme|voudrais en faire don|tego funduszu do dom(?:=F3|[\xf3])w (?:dziecka|wdowy))\b/i
+
+meta        __GOOGLE_DOCS_PHISH_1  __URI_GOOGLE_DOC && (__TVD_PH_SUBJ_META || __TVD_PH_BODY_META || __TVD_PH_BODY_ACCOUNTS_PRE || __TVD_PH_BODY_ACCOUNTS_POST)
+
+meta        __GOOGLE_DOCS_PHISH_2  __URI_GOOGLE_DOC && (__EMAIL_PHISH || __ACCT_PHISH) && !__EMAIL_PHISH_MANY && !__ACCT_PHISH_MANY
+
+meta        __GOOGLE_DOC_SUSP    __URI_GOOGLE_DOC && (__HAS_DOMAINKEY_SIG || __RDNS_NONE || __SYSADMIN || __STY_INVIS || LOTS_OF_MONEY || __XFER_MONEY || __ADVANCE_FEE_2_NEW) && !ALL_TRUSTED
+
+uri       __GOOG_MALWARE_DNLD           m;^https?://[^/]*\.google\.com/[^?]*url\?.*[\?&/]download;i
+
+uri       __GOOG_REDIR                  m;^https?://[^/]*\.google\.com/url\?;i
+
+meta        __GOOG_STO_HTML_PHISH     __URI_GOOG_STO_HTML && (__EMAIL_PHISH || __ACCT_PHISH) && !__EMAIL_PHISH_MANY && !__ACCT_PHISH_MANY
+
+meta       __GOOG_STO_IMG_HTML_1      __URI_GOOG_STO_IMG && __URI_GOOG_STO_HTML
+
+meta       __GOOG_STO_IMG_NOHTML      __URI_GOOG_STO_IMG && !__URI_GOOG_STO_HTML
+
+meta       __GOOG_STO_NOIMG_HTML      !__URI_GOOG_STO_IMG && __URI_GOOG_STO_HTML
+
+body __HAS_ANY_EMAIL /\w@\S+\.\w/
+
+uri __HAS_ANY_URI   /^\w+:\/\//
+
+header     __HAS_CAMPAIGNID            exists:X-Campaignid
+
+header     __HAS_CID                   exists:X-CID
+
+header     __HAS_COMPLAINT_TO          exists:Complaint-To
+
+header     __HAS_DOMAINKEY_SIG         exists:DomainKey-Signature
+
+describe       __HAS_HREF      Has an anchor tag with a href attribute in non-quoted line
+rawbody                __HAS_HREF      /^[^>].*?<a href=/im
+tflags         __HAS_HREF      multiple maxhits=100
+
+describe       __HAS_HREF_ONECASE      Has an anchor tag with a href attribute in non-quoted line with consistent case
+rawbody                __HAS_HREF_ONECASE      /^[^>].*?<(a href|A HREF)=/m
+tflags         __HAS_HREF_ONECASE      multiple maxhits=100
+
+describe       __HAS_IMG_SRC   Has an img tag on a non-quoted line
+rawbody                __HAS_IMG_SRC   /^[^>].*?<img src=/im
+tflags         __HAS_IMG_SRC   multiple maxhits=100
+
+rawbody  __HAS_IMG_SRC_DATA  /^[^>].*?<img src=['"]data/im
+
+describe       __HAS_IMG_SRC_ONECASE   Has an img tag on a non-quoted line with consistent case
+rawbody                __HAS_IMG_SRC_ONECASE   /^[^>].*?<(img src|IMG SRC)=/m
+tflags         __HAS_IMG_SRC_ONECASE   multiple maxhits=100
+
+header     __HAS_LIST_OPEN             exists:List-Open
+
+header     __HAS_LOGID                 exists:logid
+
+header     __HAS_MESSAGEID             exists:MessageID
+
+header     __HAS_PHP_ORIG_SCRIPT       exists:X-PHP-Originating-Script
+
+header     __HAS_PHP_SCRIPT            exists:X-PHP-Script
+
+header __HAS_THREAD_INDEX  exists:Thread-Index
+
+header     __HAS_TRACKING_CODE         exists:Tracking-Code
+
+body     __HAS_WON_01    /\bque ha ganado\b/i
+
+header     __HAS_XM_LID                exists:X-Mailer-LID
+
+header     __HAS_XM_RECPTID            exists:X-Mailer-RecptId
+
+header     __HAS_XM_SENTBY             exists:X-Mailer-Sent-By
+
+header     __HAS_XM_SID                exists:X-Mailer-SID
+
+header     __HAS_X_EBSERVER            exists:X-EBSERVER
+
+header     __HAS_X_LETTER              exists:X-Letter
+
+header    __HAS_X_NO_RELAY              exists:X-No-Relay
+
+header     __HAS_X_OUTGOING_SPAM_STAT  exists:X-OutGoing-Spam-Status
+
+header     __HAS_X_SOURCE_DIR          exists:X-Source-Dir
+
+header         __HDRS_LCASE          ALL =~ /\n(?:Message-id|Content-type|X-MSMail-priority|from|subject|to|cc|Disposition-notification-to):/sm
+tflags         __HDRS_LCASE          multiple maxhits=3
+
+meta           __HDRS_LCASE_KNOWN    __MSGID_JAVAMAIL || __UA_MSOEMAC || __UA_MSOMAC || __MSGID_APPLEMAIL || __MSGID_HEX_UID || __MSGID_HEXISH
+
+header         __HDRS_MISSP          ALL:raw =~ /^(?:Subject|From|To|Reply-To):\S/ism
+
+header __HDR_ORDER_FTSDMCXXXX ALL =~ /\nFrom: .{1,80}?\nTo: .{1,80}?\nSubject: .{1,200}?\nDate: .{1,40}?\nMIME-Version: .{1,40}?\nContent-Type: .{1,120}?\nX-Priority: .{1,40}?\nX-MSMail-Priority: .{1,40}?\nX-Mailer: .{1,80}?\nX-MimeOLE:/s
+
+header     __HDR_RCVD_ALIBABA          X-Spam-Relays-External =~ /\srdns=\S+\.alibaba\.com\s/
+
+header     __HDR_RCVD_AMAZON           X-Spam-Relays-External =~ /\srdns=\S+\.amazon(?:ses)?\.com\s/
+
+header     __HDR_RCVD_EBAY             X-Spam-Relays-External =~ /\srdns=\S+\.ebay\.com\s/
+
+header     __HDR_RCVD_GOOGLE           X-Spam-Relays-External =~ / rdns=mail-\S+\.google\.com\.?\s/
+
+header     __HDR_RCVD_KEEPA            X-Spam-Relays-External =~ /\srdns=\S+\.keepa\.com\s/
+
+header     __HDR_RCVD_NEWEGG           X-Spam-Relays-External =~ /\srdns=\S+\.newegg\.com\s/
+
+header     __HDR_RCVD_SHOPIFY          X-Spam-Relays-External =~ /\srdns=\S+\.shopify\.com\s/
+
+header      __HDR_RCVD_TONLINEDE       X-Spam-Relays-External =~ /\srdns=\S+\.t-online\.de\s/
+
+header     __HDR_RCVD_WALMART          X-Spam-Relays-External =~ /\srdns=\S+\.walmart\.com\s/
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags   __HELO_DNS net
+endif
+
+header   __HELO_HIGHPROFILE  X-Spam-Relays-External =~ /^[^\]]+ helo=\S*(?:hotmail|gmail|google|yahoo|msn|microsoft|outlook|paypal|xxx)\.[\w]+\b/i
+
+header   __HELO_MISC_IP                X-Spam-Relays-Untrusted =~ /^[^\]]+ helo=[^a-z\?]\S{0,30}(?:\d{1,3}[^\d]){4}[^\]]+ auth= /i
+
+header __HELO_NOT_RDNS X-Spam-Relays-External =~ /^[^\]]+ rdns=(\S+) helo=(?!(?i)\1)\S/
+
+header __HELO_NO_DOMAIN   X-Spam-Relays-External =~ /^[^\]]+ helo=[^\.]+ /
+
+body        __HEXHASHWORD_S2EU /\s[A-Z]?[a-z]{1,15}\s(?![a-z]{10,20}\s)[a-z]{0,10}(?!-?\d{1,5}-)(?!\d{10}\s)(?:(?!--)[-0-9a-f]){10,64}(?:[g-z][a-z]{0,10})?\s[A-Z]?[a-z]{1,15}\b/
+tflags      __HEXHASHWORD_S2EU multiple maxhits=4
+
+body           __HK_LOTTO_2            /\blot(?:eri[ej]|t(?:ery|o)) ?(?:(?:inter)?national|foundation|mercato|univers|euro ?million|e-?mail|euro-pw|bill ?gates|swiss|prestige|cristal|am.ricaine|coca.?cola|fiduciary|department)/i
+
+body           __HK_LOTTO_BALLOT       /\b(?:promotional|on.?line|computer|internet|e-?mail|fran.aise) (?:ballot|draw|sweepstake)/i
+
+body           __HK_LOTTO_STAATS       /\bstaatsloteri/i
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+if (version >= 3.004000)
+  header       __HK_NAME_FROM          From:name =~ /^FROM\b/mi
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+if (version >= 3.004000)
+  header       __HK_NAME_MR_MRS        From:name =~ /^M(?:RS?|ISS)\b/mi
+endif
+endif
+
+body           __HK_SCAM_N15           /\b(?:account (?:overseas?|offshore)|(?:overseas?|offshore) account)\b/i
+
+body           __HK_SCAM_N16           /\b(?:arrangement secret|secret arrangement)\b/i
+
+body           __HK_SCAM_N2            /\bnext of kin\b/i
+
+body           __HK_SCAM_N3            /\bdirect telephone numbers?\b/i
+
+body           __HK_SCAM_N8            /\byour compensation\b/i
+
+body           __HK_SCAM_S1            /pay you the sum of/i
+
+body           __HK_SCAM_S15           /(?:discovered a dormant account|can you be my partner)/i
+
+body           __HK_SCAM_S25           /\bbank (?:in|of) ghana/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader     __HK_SPAMMY_CDFN        Content-Disposition =~ /name=.*?(?:lot(?:eri[ej]|t(?:ery|o))|award|prize|winn(?:er|ing)|microsoft|congrat|urgent)/mi
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader     __HK_SPAMMY_CTFN        Content-Type =~ /name=.*?(?:lot(?:eri[ej]|t(?:ery|o))|award|prize|winn(?:er|ing)|microsoft|congrat|urgent)/mi
+endif
+
+meta       __HOSTED_IMG_DIRECT_MX      __DOS_DIRECT_TO_MX && ( __URI_IMG_EBAY || __URI_IMG_AMAZON || __URI_IMG_ALICDN  || __URI_IMG_WALMART || __URI_IMG_NEWEGG || __URI_IMG_SHOPIFY || __URI_IMG_YTIMG || __URI_IMG_JOOMCDN || __URI_IMG_WISH || __URI_IMG_STATICBG || __URI_IMG_CHANNYPIC)
+
+meta       __HOSTED_IMG_DQ_UNSUB       __URI_DQ_UNSUB && ( __URI_IMG_EBAY || __URI_IMG_AMAZON || __URI_IMG_ALICDN || __URI_IMG_WALMART || __URI_IMG_NEWEGG || __URI_IMG_SHOPIFY || __URI_IMG_YTIMG || __URI_IMG_JOOMCDN || __URI_IMG_WISH || __URI_IMG_STATICBG || __URI_IMG_CHANNYPIC)
+
+meta       __HOSTED_IMG_FREEM          ( FREEMAIL_REPLYTO || FREEMAIL_FROM ) && ( __URI_IMG_EBAY || __URI_IMG_AMAZON || __URI_IMG_ALICDN || __URI_IMG_WALMART || __URI_IMG_NEWEGG || __URI_IMG_SHOPIFY || __URI_IMG_YTIMG || __URI_IMG_JOOMCDN || __URI_IMG_WISH || __URI_IMG_WP_REDIR || __URI_IMG_STATICBG || __URI_IMG_CHANNYPIC) 
+
+meta       __HOSTED_IMG_MULTI          ( __URI_IMG_EBAY + __URI_IMG_AMAZON + __URI_IMG_ALICDN + __URI_IMG_WALMART + __URI_IMG_NEWEGG + __URI_IMG_SHOPIFY + __URI_IMG_YTIMG + __URI_IMG_JOOMCDN + __URI_IMG_WISH + __URI_IMG_WP_REDIR + __URI_IMG_STATICBG || __URI_IMG_CHANNYPIC) > 1
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __HOURS_DEADLINE       /\b(?:(?:give\syou|gebe\sihnen(?:\snur)?|you\s(?:will\s)?have(?:\sonly|\sjust)?|within)(?:(\sthe)?\s(?:last|next))?\s(?:\d+|one|two|three|a few)\s?(?:hours?|hr(?:\s?s)?|days?|stunden)|(?:by|to|until|before)\sthe\send\sof\sthe\s(?:work(?:ing)?\s)?day|Ich\sgebe\sIhnen\s\d+\sStunden|\d+\shours?\sbefore\s(?:sending|releasing|exposing|publishing)|(?:the|your)\sdeadline\s(?:is|will\sbe))\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __HOURS_DEADLINE       /(?:^|\s)(?:(?:<G><I><V><E>\s<Y><O><U>|<G><E><B><E>\s<I><H><N><E><N>(?:\s<N><U><R>)?|<Y><O><U>\s(?:<W><I><L><L>\s)?<H><A><V><E>(?:\s<O><N><L><Y>|\s<J><U><S><T>)?|<W><I><T><H><I><N>)(?:(\s<T><H><E>)?\s(?:<L><A><S><T>|<N><E><X><T>))?\s(?:\d+|<O><N><E>|<T><W><O>|<T><H><R><E><E>|<A> <F><E><W>)\s?(?:<H><O><U><R><S>?|<H><R>\s?<S>?|<D><A><Y><S>?|<S><T><U><N><D><E><N>)|(?:<B><Y>|<T><O>|<U><N><T><I><L>|<B><E><F><O><R><E>)\s<T><H><E>\s<E><N><D>\s<O><F>\s<T><H><E>\s(?:<W><O><R><K>(?:<I><N><G>)?\s)?<D><A><Y>|Ich\sgebe\sIhnen\s\d+\sStunden|\d+\s<H><O><U><R><S>?\s<B><E><F><O><R><E>\s(?:<S><E><N><D><I><N><G>|<R><E><L><E><A><S><I><N><G>|<E><X><P><O><S><I><N><G>|<P><U><B><L><I><S><H><I><N><G>)|(?:<T><H><E>|<Y><O><U><R>)\s<D><E><A><D><L><I><N><E>\s(?:<I><S>|<W><I><L><L>\s<B><E>))/i
+endif
+
+rawbody __HS_QUOTE /^> /
+
+header __HS_SUBJ_RE_FW Subject =~ /^(?i:re|fw):/
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __HTML_ATTACH_01    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __HTML_ATTACH_01    Content-Type =~ m,\btext/html\b.+\.html?\b,i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __HTML_ATTACH_02    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __HTML_ATTACH_02    Content-Disposition =~ m,\bfilename="?[^"]+\.html?\b,i
+endif
+
+rawbody    __HTML_ENTITY_ASCII         /(?:&\#(?:(?:\d{1,2}|1[01]\d|12[0-7])|x[0-7][0-9a-f])\s{0,64};\s{0,64}){10}/i
+
+meta       __HTML_ENTITY_ASCII_MINFP   __HTML_ENTITY_ASCII && !__DKIM_EXISTS && !__RCD_RDNS_SMTP && !__RCD_RDNS_SMTP_MESSY && !__JM_REACTOR_DATE && !__HAS_ERRORS_TO && !__L_BODY_8BITS && !__RCD_RDNS_MAIL_MESSY && !__VIA_ML 
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+  meta        __HTML_FONT_LOW_CONTRAST_MINFP   HTML_FONT_LOW_CONTRAST && !__HAS_SENDER && !__THREADED && !__HAS_THREAD_INDEX && !ALL_TRUSTED && !__NOT_SPOOFED && !__HDRS_LCASE_KNOWN
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::DKIM
+  meta        __HTML_FONT_LOW_CONTRAST_MINFP   HTML_FONT_LOW_CONTRAST && !__HAS_SENDER && !__THREADED && !__HAS_THREAD_INDEX && !ALL_TRUSTED && !__NOT_SPOOFED && !__HDRS_LCASE_KNOWN && !DKIM_VALID
+endif
+
+rawbody     __HTML_FONT_TINY_01      /font-size:\s{0,5}[0-4]px;/i
+
+rawbody     __HTML_OFF_PAGE   /;(?:top|left):-\d{3,9}px;/i
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  rawbody    __HTML_SHRT_CMNT_OBFU       /\w<!--\s*\w+\s*-->\w/
+  tflags     __HTML_SHRT_CMNT_OBFU       multiple maxhits=10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __HTML_SHRT_CMNT_OBFU_MANY  __HTML_SHRT_CMNT_OBFU > 5 && HTML_MESSAGE
+endif
+
+rawbody   __HTML_SINGLET                />\s*(?:[a-z"]|&\#(?:\d+|x[0-9a-f]+);)\s*</i
+tflags    __HTML_SINGLET                multiple maxhits=21
+
+meta      __HTML_SINGLET_10             __HTML_SINGLET > 10
+
+meta      __HTML_SINGLET_MANY           __HTML_SINGLET > 20
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+  body       __HTML_TAG_BALANCE_CENTER     eval:html_tag_balance('center', '!= 0')
+endif
+
+body     __HUSH_HUSH      /\b(?:confiden[tc]i[ae]l(?:\b|ity\b|it(?:=E9|[\xe9]|[\xc3][\xa9]))|private\b|secr[e\xe8](?:te?|cy)\b|sensitive\b|concealed\b|obscured?\b|discre(?:et|tion)\b|very\sdiscrete|top\ssecret|vertraulich(?:en)?\b|geheim\b|priv(?:e|=E9|[\xe9]|[\xc3][\xa9]))/i
+
+uri        __IMGUR_IMG                 m,^https?://(?:[^.]+\.)?imgur\.com/[a-z0-9]{7}\.(?:png|gif|jpe?g)$,i
+tflags     __IMGUR_IMG                 multiple maxhits=4
+
+meta       __IMGUR_IMG_2               __IMGUR_IMG == 2
+
+meta       __IMGUR_IMG_3               __IMGUR_IMG == 3
+
+if !plugin(Mail::SpamAssassin::Plugin::ImageInfo)
+  meta       __IMG_LE_300K           0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+  body       __IMG_LE_300K           eval:pixel_coverage('all',62500,300000)
+endif
+
+body     __INHERIT_PMT    /\binheritance\spayment\s/i
+
+body     __INTL_BANK      /\b(?:international\s(?:\w+\s)?bank|banque\sinternationale)\b/i
+
+body     __INVEST_COUNTRY /\binvest\sin\syour?\scountry\b/i
+
+body     __INVEST_MONEY   /\binvest(?:ir)?\s(?:this|ces|d[ae]s|sur ce|de ces)\s(?:money|f[ou]nds?)\b/i
+
+header __IP_IN_RELAY  X-Spam-Relays-External =~ /^\[ ip=(\d+)\.(\d+)\.(\d+)\.(\d+) (?:[^\]]* )?(?:rdns|helo)=\S*(?:\1\D\2\D\3\D\4|\4\D\3\D\2\D\1)/
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __ISO_ATTACH        0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __ISO_ATTACH        Content-Disposition =~ m,\bfilename="?[^"]+\.iso[";$],i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __ISO_ATTACH_MT     0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __ISO_ATTACH_MT     Content-Type =~ m,\bapplication/x-iso9660-image\b,i
+endif
+
+body     __IS_LEGAL       /\b(?:(?:(this|esta)\s(?:deal|offer|transac[tc]i(?:o|[\xc3][\xb3])n|proposal|exchange|arrangement|work)|it)?\s[ie]s\s(?:(?:guaranteed|completely|absolutely|perfectly|100%|very|fully)\s)?(?:legal|hitch-free|seguro|legitimate)|legitimate\sarrangement|toute?\sl(?:e|=E9|[\xe9]|[\xc3][\xa9])gale)\b/i
+
+body     __IVORY_COAST    /\b(?:Cote\s?D.Ivoire|Ivory\s?Coast|Costa\sde\sMarfil)\b/i
+
+body     __I_INHERIT      /\b(?:I|eu)\s[a-z\s]{0,30}(?:inherited|herdei)\b/i
+
+body     __I_WILL_YOU     /\bwill(?:ed)?\s(?:[a-z\s]{0,20}(?:fortune|money|\$[\d,]+[a-z]{0,9})\s)?to\syou\b/i
+
+header __JM_REACTOR_DATE    Date =~ / \+0000$/
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader __JPEG_ATTACH           Content-Type =~ /image\/jpe?g/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader     __KAM_BLOCK_UTF7_2      Content-Type =~ /charset=(?:unicode-\d+-\d+-)?utf-7/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+        body            __KAM_BODY_LENGTH_LT_1024       eval:check_body_length('1024')
+        describe        __KAM_BODY_LENGTH_LT_1024       The length of the body of the email is less than 1024 bytes.
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+       body            __KAM_BODY_LENGTH_LT_128        eval:check_body_length('128')
+        describe        __KAM_BODY_LENGTH_LT_128        The length of the body of the email is less than 128 bytes.
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+        body            __KAM_BODY_LENGTH_LT_256        eval:check_body_length('256')
+        describe        __KAM_BODY_LENGTH_LT_256        The length of the body of the email is less than 256 bytes.
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+        body            __KAM_BODY_LENGTH_LT_512        eval:check_body_length('512')
+        describe        __KAM_BODY_LENGTH_LT_512        The length of the body of the email is less than 512 bytes.
+endif
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::HTMLEval)
+meta           __KAM_HTML_FONT_INVALID         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+body           __KAM_HTML_FONT_INVALID         eval:html_test('font_invalid_color')
+endif
+
+body            __KAM_LOTTO2    /((ticket|serial|lucky) number|secret pin ?code|batch number|reference number|promotion date)/is
+
+header   __KB_DATE_CONTAINS_TAB  Date:raw =~ /^\t/
+
+header __KB_MSGID_OUTLOOK_888  Message-Id =~ /^<[0-9a-f]{8}(?:\$[0-9a-f]{8}){2}\@/
+
+meta    __KHOP_NO_FULL_NAME    !(__NOT_A_PERSON || __FROM_ENCODED_QP || __FROM_NEEDS_MIME || __FROM_FULL_NAME)
+
+if !(can(Mail::SpamAssassin::Conf::feature_bug6558_free))
+   meta        __LARGE_PERCENT_AFTER  0
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+   body        __LARGE_PERCENT_AFTER  /\d{3}% after/i
+   tflags      __LARGE_PERCENT_AFTER  multiple maxhits=4
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::HeaderEval)
+  meta      __LCL__ENV_AND_HDR_FROM_MATCH     0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::HeaderEval
+  meta      __LCL__ENV_AND_HDR_FROM_MATCH     __ENV_AND_HDR_FROM_MATCH
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::BodyEval)
+  meta      __LCL__KAM_BODY_LENGTH_LT_1024    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+if !(can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length))
+    meta      __LCL__KAM_BODY_LENGTH_LT_1024    0
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+    meta      __LCL__KAM_BODY_LENGTH_LT_1024    __KAM_BODY_LENGTH_LT_1024
+endif
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::BodyEval)
+  meta      __LCL__KAM_BODY_LENGTH_LT_128     0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+if !(can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length))
+    meta      __LCL__KAM_BODY_LENGTH_LT_128     0
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+    meta      __LCL__KAM_BODY_LENGTH_LT_128     __KAM_BODY_LENGTH_LT_128
+endif
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::BodyEval)
+  meta      __LCL__KAM_BODY_LENGTH_LT_512     0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+if !(can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length))
+    meta      __LCL__KAM_BODY_LENGTH_LT_512     0
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::BodyEval
+  if can(Mail::SpamAssassin::Plugin::BodyEval::has_check_body_length)
+    meta      __LCL__KAM_BODY_LENGTH_LT_512     __KAM_BODY_LENGTH_LT_512
+endif
+endif
+
+meta        __LIST_PARTIAL         __DOS_HAS_LIST_UNSUB && !__DOS_HAS_LIST_ID
+
+meta        __LIST_PRTL_PUMPDUMP   __LIST_PARTIAL && __PD_CNT_1
+
+meta        __LIST_PRTL_SAME_USER  __LIST_PARTIAL && __TO_EQ_FROM_USR
+
+body     __LITECOIN_ID   /\b(?<!=)[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}\b/
+
+uri __LOCAL_PP_NONPPURL                m'https?://(?:[A-Za-z0-9-_]+)\.(?!paypal\.com)(?:[A-Za-z0-9-_\.]+)'i
+
+body        __LOCK_MAILBOX       /\b(?:(?:deactivate|lock(?: up)?|lose ac+ess to|los[se] (?:of )?(?:important )?(?:information|mail|messages) in) (?:your )?(?:mail\s?box|(?:web ?|e-?)mail)|your (?:mail\s?box|(?:(?:web ?|e-?)mail)(?: account)?) (?:(?:will|may) be(?:come)? )?(?:in-?a(?:ctive|cess[ia]ble)|locked|disabled|deleted|removed)\b|ditt konto vara "?deaktiverad"?|begr(?:=E4|\xe4|[\xc3][\xa4])nsad tillg(?:=E5|[\xe5]|[\xc3][\xa5])ng till din brevl(?:=E5|[\xe5]|[\xc3][\xa5])da|contas? de (?:web ?|e-?)mail (?:ser(?:=E1|[\xe1]|[\xc3][\xa1]) (?:desativado|exclu(?:=ED|[\xed]|[\xc3][\xad])do)|(?:=E9|[\xe9]|[\xc3][\xa9]) exclu(?:=ED|[\xed]|[\xc3][\xad])do)|destruir a sua caixa de (?:correio|entrada)|tw(?:=F3|[\xf3])j konto zostalo ograniczone|straci swoje e-?mail na sta[\xc5][\x82]e|konto zostanie automatycznie wy[\xc5][\x82][\xc4][\x85]czona|e-?mail account[^.]{0,30}deactivated (?:in|from) our (?:database|system|server)|you will be deactivated|(?:account|e?-?mail(?: ?box)?) (?:will (?:be )?)?(?:shut ?down|expire|deactivate)|we have (?:stopped|suspended) (?:processing|accepting) (?:any )?(?:incoming|new|fresh) email)/i
+tflags      __LOCK_MAILBOX       multiple maxhits=2
+
+full     __LONGLINE    /^[^\r\n]{998}/m
+
+rawbody   __LONG_INVIS_DIV              /<div\s+style\s*=\s*"(?:(?<!-)visibility\s*:\s*hidden|display\s*:\s*none)\s*">[^<\s]{1400}/i
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __LONG_STY_INVIS              __STY_INVIS && __LONGLINE
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __LOTSA_MONEY_00   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __LOTSA_MONEY_00   /<CURRENCY>[\s\.]?<NUM_NOT_DATE>[\dOo][,\.][\dOo]{3}(?:(?!\d)|\b)/
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __LOTSA_MONEY_01   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __LOTSA_MONEY_01   /(?:(?i:sum\sof\s)[\(\[]?|<CURRENCY>\s?)[\s\.]?<NUM_NOT_DATE_IP>[\d.,\sOo]{5,20}[\dOo](?<!\.00)\b/
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __LOTSA_MONEY_02   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __LOTSA_MONEY_02   /(?<![-\d])<NUM_NOT_DATE_IP>[\d.,\sOo]{5,20}[\dOo][\)\]\(]?\s?(?:<CURRENCY>|Pounds|(?i:dollars?|bucks))\b/
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __LOTSA_MONEY_03   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __LOTSA_MONEY_03   /(?:(?i:sum\sof\s)[\(\[]?|<CURRENCY>\s?)<NUM_NOT_DATE>[\d.,\sOo]{0,5}[\)\]]?\s?(?i:M(?i:il+)?\b|mil+(?i:io|<O>)n|hund?[re]+a?[dt]|thousand|tausend|milh[\xf5]es)/
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __LOTSA_MONEY_04   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __LOTSA_MONEY_04   /(?:(?<![-\d])<NUM_NOT_DATE>[\d\.,]{0,4}(?:M|\smilli?one?s|\s?mln)|million(?!s)|mill<O>n|hund?rea?d(?!s)[^\.]{1,25}thousand(?!s)|cents?[^\.]{1,25}mille|hundert[^\.]{1,30}tausend|ientos?[^\.]{1,20}mil|cent[a-z\s]{1,20}mil\s[a-z]{1,20}centos)[^\.\$]{0,50}?(?:(?:U\.?\s?S\.?\s?(?:A\.?\s?)?|united\s?states\s|E\.\s?U\.\s|canad(?:ian|a)\s|(?:ia\s)?de\s)?d(?:[o\xf3]|[\xc3][\xb3])l+are?s?|\bbucks|USD|GBP|<GB_UK>\spounds?|(?:<GB_UK>\s)?pounds?\ssterling|pounds(?!\sof)|(?:d'\s?)?euros?|francs?)\b/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __LOTSA_MONEY_05   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __LOTSA_MONEY_05   /(?:(?:sum|value|amount)\sof\s)<NUM_NOT_DATE_IP>[\d.,\sO]{7,20}[\dO\.][\)\]\(\s]{0,3}(?:pounds?|dollars?|euros?|bucks)\b/i
+endif
+
+meta     __LOTTO_ADMITS     __LOTTO_ADMITS_1 || __LOTTO_ADMITS_2 || __LOTTO_ADMITS_3 || __LOTTO_ATTACH_1 || __LOTTO_ATTACH_2
+
+body     __LOTTO_ADMITS_1 /\b(?:on-?line|e-?mail|ballot|(?:inter)?national|state|(?:UK|euro)[- ]?(?:mil+ions?|PW)|Canada|Microsoft|MSN|internet|mega|jackpot+|Royal Heritage|foundation|cash\sgrant|mercato|univers|staatsloterij|bill\s?gates|Olympics?|swiss|this|est[ea]|internationaux de gagnants de)(?:\s(?!lot|swe|prom)\w{1,20}){0,3}\s?(?:lot(?:to|t+ery|eri[ea])|sweepstakes?|promo(?:tion|cao|cion)?|jackpot+)\b/i
+
+body     __LOTTO_ADMITS_2 /\b(?:free)?(?:lot(?:to|tery|erie)|sweepstakes)\s(?:(?:inter)?na[tz]ional|department|bureau|group|award|microsoft)/i
+
+uri      __LOTTO_ADMITS_3 /lott+ery/i
+
+meta     __LOTTO_AGENT    __LOTTO_AGENT_01 || __LOTTO_AGENT_02
+
+body     __LOTTO_AGENT_01 /\b(?:(?:(?:the|y?our)(?:\s\w{1,20})?|contact|accredited|listed)\sclaim(?:s|ing)?(?:\sprocessing)?|fiducia\w+|reimbursement|(?:prize|international|intl|foreign|win+ing)(?:[\s,.]+(?:rem+it+ance|settlement|payment|payout|award|transfer))+|payment|payout|immunity|(?<!memory\s)grants?(?!\smanager))\s?(?:agent|manager|officer|secretary|director|mgr\b)/i
+
+body     __LOTTO_AGENT_02 /\blot+ery[^\.]{1,40} ticket agent/i
+
+header   __LOTTO_AGENT_RPLY Reply-To =~ /(?:claim(?:s|ing)?(?:[\s_.]processing)?|fiducia\w+|dispatch|reimbursement|payout|prize\stransfer|(?:international|foreign|win+ing)[\s_.]rem+it+ance)[\s_.]?(?:agent|manager|officer|secretary|director|department|dept)/i
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __LOTTO_ATTACH_1   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __LOTTO_ATTACH_1   Content-Type =~ /lott(?:o|ery)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __LOTTO_ATTACH_2   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __LOTTO_ATTACH_2   Content-Disposition =~ /lott(?:o|ery)/i
+endif
+
+body     __LOTTO_DEPT       /\b(?:claim(?:s|ing)?(?:\sprocessing)?|fiducia\w+|reimbursement|(?:international|foreign|win+ing)(?:\s(?:rem+it+ance|settlement|payment|award))+|payment|award|compensation|lot+ery)(?:\s\w+)?\s?(?:department|dept|unit|group|committee|bureau)/i
+
+body     __LOTTO_RELATED    /\b(?:lot+(?:o|ery)|sweepstakes)\s(?:prize|draw(?:s|ing)?|(?:ge)?win(?:n?er|n?ing)?|jackpot+|award|fund|com+it+e+|com+is+ion|guild|promotion|promocao|program|day|online|company|(?:in)?corporat|agent|co[-,]?ordinator|team)/i
+
+body     __LOTTO_VERIFY     /\bpromo\sverification/i
+
+body     __LOTTO_WINNINGS   /\b(?:claim|process(?:ing)?|transfert?(?:\s\w+)?|redeem|payment|virement|zahlung|reivindicar|demandar|remise)\s(?:(?:[a-z]{1,5}\s)?(?:your|of|the|this|de|ihrer|seu|tu)\s)+(?:win+ings?|money|(?:cash\s)?prize|award|f[ou]nds?|grant|gewinne|premio|gain)\b/i
+
+body     __LOTTO_WIN_01     /\bwin+ing\s(?:prize|number|notification|draw|check|cheque|details|information|payment)/i
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+    body            __LOWER_E       /e/
+    tflags          __LOWER_E       multiple maxhits=230
+endif
+endif
+
+body     __LUCKY_WINNER   /\b(?:lucky|gl.cklich(?:en)?|afortunados)\s(?:(?:ge)?win+ers?|ganador(?:es)?|individuals?)\b/i
+
+body     __LUCRATIVE      /\b(?:lucrative|profitable|tr[\xe8]s\ssalutaire)\b/i
+
+rawbody __L_BODY_8BITS          /[\x80-\xff]/
+
+header __L_CTE_7BIT             Content-Transfer-Encoding =~ /^7bit$/
+
+body        __MAILBOX_FULL       /\b(?:you(?:r (?:mail\s?box|(?:e-?|web ?)mail))? (?:is (?:almost )?full|quota is running low|(?:quota )?ha(?:s|ve) (?:reached|exceeded|passed) (?:the|your|it'?s?) (?:university )?(?:size|storage|set|(?:e-?|web ?)mail|quota|folder|mail ?box)[\/\s](?:limit |quota |account )+)|over your mail\s?box (?:size )?(?:limit|quota)|maximum mail\s?box (?:size )?(?:limit|quota) exceeded|sua (?:conta|caixa) de (?:(?:e-?|web ?)mail|correio) (?:excedeu (?:sua|o) limite|est(?:=E1|[\xe1]|[\xc3][\xa1]) quase cheio))\b/i
+
+body        __MAILBOX_FULL_SE    /(?:\b=F6|[\xf6]|[\xc3][\xb6])verskridit gr(?:=E4|[\xe4]|[\xc3][\xa4])nsen f(?:=F6|[\xf6]|[\xc3][\xb6])r din postl(?:=E5|[\xe5]|[\xc3][\xa5])da\b/i
+
+header __MAILER_OL_6626 X-Mailer =~ /^Microsoft Outlook, Build 10\.0\.6626$/
+
+body        __MAIL_ACCT_ACCESS1  /\b(?:your (?:web ?|e-?)?mail (?:account|log-?in) (?:has )?been accessed|r(?:=F3|[\xf3])zne komputery zalogowaniu sie)\b/i
+
+body        __MAIL_ACCT_ACCESS2  /\blo+se ac+es+ to your (?:web|e-?)?mail ?(?:account|log-?in|box|address)\b/i
+
+uri     __MAIL_LINK    /\?.{0,200}\w\@[\w-]{1,20}.\w\w\w?\b/i
+tflags  __MAIL_LINK    nice
+
+body       __MAKE_XTRA_DOLLAR          /\bmake an extra dollar\b/i
+
+header     __MALF_MIME_VER             MIME-Version =~ /^1\.0\S/
+
+meta           __MALWARE_NORDNS       __MY_MALWARE && __RDNS_NONE 
+
+meta           __MALWARE_PASSWORD     __MY_MALWARE && __PASSWORD 
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         __MALW_ATTACH       __MALW_ATTACH_01_01 || __MALW_ATTACH_01_02 || __MALW_ATTACH_02_01 || __MALW_ATTACH_02_02
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __MALW_ATTACH_01_01 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __MALW_ATTACH_01_01 Content-Disposition =~ /\bfilename(?:="?[^"]+|\*(?:\d+\*)?=(?:UTF-8'')?\S+)\.SettingContent-ms\b/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __MALW_ATTACH_01_02 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __MALW_ATTACH_01_02 Content-Type =~ /\bname="?[^"]+\.SettingContent-ms\b/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __MALW_ATTACH_02_01 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __MALW_ATTACH_02_01 Content-Disposition =~ /\bfilename(?:="?[^"]*|\*(?:\d+\*)?=(?:UTF-8'')?\S*)(?:invoice|statement|(?:\.|%C2%B7|[\xc2][\xb7]|_)(?:pdf|img|png|gif|jpe?g))\.(?:ace|zip|7z|rar|r17|gz)[";$]/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __MALW_ATTACH_02_02 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __MALW_ATTACH_02_02 Content-Type =~ /\bname="?[^"]*(?:invoice|statement|(?:\.|[\xc2][\xb7]|_)(?:pdf|img|png|gif|jpe?g))\.(?:ace|zip|7z|rar|r17|gz)[";$]/i
+endif
+
+meta           __MANY_HDRS_LCASE     __HDRS_LCASE > 1
+
+meta           __MANY_SPAN_IN_TEXT   (__SPAN_BEG_TEXT > 4) && (__SPAN_END_TEXT > 4)
+
+header __MAY_BE_FORGED Received =~ /\(may be forged\)/
+
+header __MID_START_001C   Message-ID =~ /^<000001c/
+
+body     __MILLIONS       /\bmillions\sof\s(?:dollar|euro|pound)/i
+
+header __MIMEOLE_1106   X-MimeOLE =~ /^Produced By Microsoft MimeOLE V6.00.2800.1106$/
+
+meta       __MIMEOLE_DIRECT_TO_MX      __HAS_MIMEOLE && __DOS_DIRECT_TO_MX 
+
+header     __MIME_BDRY_0D0D        Content-Type =~ /boundary="-{12}(?:0[1-9]){12}/
+
+if !((version >= 3.004000))
+       meta        __MIME_CTYPE_IN_BODY    0
+endif
+
+if (version >= 3.004000)
+       body        __MIME_CTYPE_IN_BODY    /^Content-Type:\s/
+endif
+
+if !((version >= 3.004000))
+       meta        __MIME_MALF      0
+endif
+
+if (version >= 3.004000)
+       meta        __MIME_MALF      __CTYPE_MULTIPART_ANY && __MIME_CTYPE_IN_BODY
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta        __MIME_NO_TEXT    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta        __MIME_NO_TEXT    (__CTYPE_MULTIPART_ANY && !__ANY_TEXT_ATTACH)
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  rawbody __MIME_QPC           eval:check_for_mime('mime_qp_count')
+endif
+
+header   __MISSING_REF         References =~ /^UNSET$/ [if-unset: UNSET]
+
+header   __MISSING_REPLY       In-Reply-To =~ /^UNSET$/ [if-unset: UNSET]
+
+rawbody    __MIXED_AREA_CASE           /<(?!AREA|area)[Aa][Rr][Ee][Aa]\s/
+
+rawbody    __MIXED_CENTER_CASE         /<(?!CENTER|center)[Cc][Ee][Nn][Tt][Ee][Rr]>/
+
+rawbody    __MIXED_FONT_CASE           /<(?!FONT|font)[Ff][Oo][Nn][Tt]\s/
+
+rawbody    __MIXED_HREF_CASE_JH        /<[Aa](?i:rea)?\s+(?!HREF|href)[Hh][Rr][Ee][Ff]=/
+
+rawbody    __MIXED_IMG_CASE_JH         /<(?!IMG|img)[Ii][Mm][Gg]\s/
+
+header __MOLE_2962  X-MimeOLE =~ /^Produced\ By\ Microsoft\ MimeOLE\ V6\.00\.2900\.2962$/
+
+meta           __MONERO         (__MONERO_ID || __MONERO_CURNCY || __URI_MONERO || __FUZZY_MONERO)
+
+body           __MONERO_CURNCY  /Monero \(XMR\)/
+
+body           __MONERO_ID      /\b4[0-9AB][1-9A-HJ-NP-Za-km-z]{93,104}\b/
+
+meta     __MONEY_ATM_CARD LOTS_OF_MONEY && __ATM_CARD
+
+meta     __MONEY_FORM        LOTS_OF_MONEY && __FILL_THIS_FORM
+
+meta     __MONEY_FORM_SHORT  LOTS_OF_MONEY && __FILL_THIS_FORM_SHORT
+
+meta     __MONEY_FRAUD_3  LOTS_OF_MONEY && (__FRAUD_VQE + __FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_DPR + __FRAUD_BEP + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IRT + __FRAUD_AON + __FRAUD_WNY + __FRAUD_IPK + __FRAUD_QXX + __FRAUD_IOV + __FRAUD_MLY + __FRAUD_ULK + __FRAUD_BGP + __FRAUD_YWW + __FRAUD_JYG + __FRAUD_XWW + __FRAUD_UUY + __FRAUD_SNT + __FRAUD_JNB + __FRAUD_QFY + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_AUM + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __AFRICAN_STATE + __AGREED_RATIO + __AM_DYING + __ATM_CARD + __BACK_SCRATCH +  __BARRISTER + __BENEFICIARY + __COMPENSATION + __CONTACT_ATTY + __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIED_IN + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + EMRCP + __EX_CUSTOMER + __FEES + __FIFTY_FIFTY + __FOUND_YOU + __FRAUD + __FRAUD_PTX + __HUSH_HUSH + __I_INHERIT + __INHERIT_PMT + __INTL_BANK + __INVEST_COUNTRY + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + __LOTTO_ADMITS + LOTTO_AGENT + __LOTTO_DEPT + __LOTTO_RELATED + __LOTTO_VERIFY + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS +  __LUCKY_WINNER + __LUCRATIVE + __MILLIONS + __MY_FORTUNE + __NEXT_OF_KIN + __NOT_DEAD_YET + __NOT_SCAM + __OUR_BEHALF + __SCAM + __SHARE_IT + __SUM_OF_FUND + __SURVIVORS + __THEY_INHERIT + __TRTMT_DEFILED + __TRUNK_BOX +  __UN + UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __YOUR_BANK + __YOUR_FUND + __YOUR_PERM + __YOUR_PROFIT + __YOU_WON + T_LOTTO_AGENT_FM + T_LOTTO_AGENT_RPLY + __PCT_FOR_YOU + __PCT_OF_PMTS + __RANDOM_PICK + __CHARITY > 3)
+
+meta     __MONEY_FRAUD_5  LOTS_OF_MONEY && (__FRAUD_VQE + __FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_DPR + __FRAUD_BEP + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IRT + __FRAUD_AON + __FRAUD_WNY + __FRAUD_IPK + __FRAUD_QXX + __FRAUD_IOV + __FRAUD_MLY + __FRAUD_ULK + __FRAUD_BGP + __FRAUD_YWW + __FRAUD_JYG + __FRAUD_XWW + __FRAUD_UUY + __FRAUD_SNT + __FRAUD_JNB + __FRAUD_QFY + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_AUM + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __AFRICAN_STATE + __AGREED_RATIO + __AM_DYING + __ATM_CARD + __BACK_SCRATCH +  __BARRISTER + __BENEFICIARY + __COMPENSATION + __CONTACT_ATTY + __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIED_IN + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + EMRCP + __EX_CUSTOMER + __FEES + __FIFTY_FIFTY + __FOUND_YOU + __FRAUD + __FRAUD_PTX + __HUSH_HUSH + __I_INHERIT + __INHERIT_PMT + __INTL_BANK + __INVEST_COUNTRY + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + __LOTTO_ADMITS + LOTTO_AGENT + __LOTTO_DEPT + __LOTTO_RELATED + __LOTTO_VERIFY + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS +  __LUCKY_WINNER + __LUCRATIVE + __MILLIONS + __MY_FORTUNE + __NEXT_OF_KIN + __NOT_DEAD_YET + __NOT_SCAM + __OUR_BEHALF + __SCAM + __SHARE_IT + __SUM_OF_FUND + __SURVIVORS + __THEY_INHERIT + __TRTMT_DEFILED + __TRUNK_BOX +  __UN + UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __YOUR_BANK + __YOUR_FUND + __YOUR_PERM + __YOUR_PROFIT + __YOU_WON + T_LOTTO_AGENT_FM + T_LOTTO_AGENT_RPLY + __PCT_FOR_YOU + __PCT_OF_PMTS + __RANDOM_PICK + __CHARITY > 5)
+
+meta     __MONEY_FRAUD_8  LOTS_OF_MONEY && (__FRAUD_VQE + __FRAUD_KJV + __FRAUD_IRJ + __FRAUD_NEB + __FRAUD_XJR + __FRAUD_DPR + __FRAUD_BEP + __FRAUD_TDP + __FRAUD_GAN + __FRAUD_IRT + __FRAUD_AON + __FRAUD_WNY + __FRAUD_IPK + __FRAUD_QXX + __FRAUD_IOV + __FRAUD_MLY + __FRAUD_ULK + __FRAUD_BGP + __FRAUD_YWW + __FRAUD_JYG + __FRAUD_XWW + __FRAUD_UUY + __FRAUD_SNT + __FRAUD_JNB + __FRAUD_QFY + __FRAUD_WDR + __FRAUD_WFC + __FRAUD_AUM + __FRAUD_MCQ + __FRAUD_PVN + __FRAUD_FVU + __FRAUD_CKF + __FRAUD_MQO + __FRAUD_TCC + __FRAUD_GBW + __FRAUD_AXF + __FRAUD_THJ + __FRAUD_YQV + __FRAUD_YJA + __FRAUD_YPO + __FRAUD_UOQ + __AFRICAN_STATE + __AGREED_RATIO + __AM_DYING + __ATM_CARD + __BACK_SCRATCH +  __BARRISTER + __BENEFICIARY + __COMPENSATION + __CONTACT_ATTY + __CONTACT_YOU + __COURIER + __DEAD_PARENT + __DEAL + DEAR_BENEFICIARY + DEAR_WINNER + __DECEASED + __DESTROY_ME + __DIED_IN + __DIPLOMATIC + __DORMANT_ACCT + __EARLY_DEMISE + EMRCP + __EX_CUSTOMER + __FEES + __FIFTY_FIFTY + __FOUND_YOU + __FRAUD + __FRAUD_PTX + __HUSH_HUSH + __I_INHERIT + __INHERIT_PMT + __INTL_BANK + __INVEST_COUNTRY + __INVEST_MONEY + __IS_LEGAL + __I_WILL_YOU + __KAM_LOTTO2 + __LOTTO_ADMITS + LOTTO_AGENT + __LOTTO_DEPT + __LOTTO_RELATED + __LOTTO_VERIFY + T_LOTTO_URI + __LOTTO_WIN_01 + __LOTTO_WINNINGS +  __LUCKY_WINNER + __LUCRATIVE + __MILLIONS + __MY_FORTUNE + __NEXT_OF_KIN + __NOT_DEAD_YET + __NOT_SCAM + __OUR_BEHALF + __SCAM + __SHARE_IT + __SUM_OF_FUND + __SURVIVORS + __THEY_INHERIT + __TRTMT_DEFILED + __TRUNK_BOX +  __UN + UNCLAIMED_MONEY + __WIDOW + __WILL_LEGAL + __XFER_MONEY + __YOU_ASSIST + __YOU_INHERIT + __YOUR_BANK + __YOUR_FUND + __YOUR_PERM + __YOUR_PROFIT + __YOU_WON + T_LOTTO_AGENT_FM + T_LOTTO_AGENT_RPLY + __PCT_FOR_YOU + __PCT_OF_PMTS + __RANDOM_PICK + __CHARITY > 8)
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta     __MONEY_FREEMAIL_REPTO   LOTS_OF_MONEY && __freemail_hdr_replyto
+endif
+
+meta            __MONEY_FROM_41           __NSL_RCVD_FROM_41 && LOTS_OF_MONEY
+
+body     __MOVE_MONEY     /\b(?:(?:receive|re-?profile|transfer(?:ring|ir|t)?|release|repatriat(?:e|ion)|rapatrier|secure|r(?:e|=E9|[\xe9]|[\xc3][\xa9])clamation|possession|virer|dona(?:te|r)|depositante|dep[\xc3][\xb3]sito)\s(?:th(?:e(?:se)?|is)|d[ae]s|sur ce|de ce[st]|cet|est[eao]s?|del?)|re-?profiling|receive|re-?locat(?:e|ing)(?:\s\w{1,15})?)\s(?:of\s|your\s|the\s){0,2}(?:sums?\sof\s|inheritance\s)?(?:proceeds|funds?|money|balance|account|g[eo]ld|compte|fond[so]{1,2}|dinero|argent)\b/i
+
+meta       __MSGID_DOLLARS_URI_IMG     __MSGID_DOLLARS_MAYBE && __HAS_ANY_URI && __HTML_LINK_IMAGE
+
+header         __MSGID_GUID          Message-ID =~ /^<?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}\@/i
+
+header         __MSGID_HEXISH        Message-ID =~ /^<?OF[0-9A-F]{8}\.[0-9A-F]{8}-ON[0-9A-F]{8}\.[0-9A-F]{8}(?:-[0-9A-F]{8}\.[0-9A-F]{8})?\@/
+
+header         __MSGID_HEX_UID       Message-ID =~ /^<?[0-9A-F]{8}\.[0-9A-F]{2,5}%[a-zA-Z]/
+
+header __MSGID_JAVAMAIL        Message-ID =~ /\.JavaMail\./
+tflags __MSGID_JAVAMAIL        nice
+
+header  __MSGID_LIST   Message-ID =~ /-\w+\#[\w.]+\.\w{2,4}\@/
+tflags  __MSGID_LIST   nice
+
+header   __MSGID_NOFQDN1  Message-ID =~ /<[^\@]*>/m
+
+header   __MSGID_NOFQDN2  Message-ID =~ /<.*\@[A-Za-z0-9]+>/m
+
+meta        __MSMAIL_PRI_ABNORMAL      __HAS_MSMAIL_PRI && !__MSMAIL_PRI_NORMAL
+
+header      __MSMAIL_PRI_HIGH          X-MSMail-Priority =~ /^(?:high|urgent)$/i
+
+header      __MSMAIL_PRI_NORMAL        X-MSMail-Priority =~ /^normal$/i
+
+meta       __MSM_PRIO_REPTO             __HAS_MSMAIL_PRI && __HAS_REPLY_TO && __SUBJ_SHORT 
+
+header __MSOE_MID_WRONG_CASE   ALL =~ /\nMessage-Id: /
+
+header         __MTLANDROID_MUA    X-Mailer =~ /\bMotorola android mail \d+\.\d/
+
+header     __MUA_TBIRD             User-Agent =~ /^Mozilla\/(.*) Thunderbird/
+
+body     __MY_FORTUNE     /\b(?:my|his|her)\s(?:fortune|heritage)\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __MY_MALWARE           /\b(?:(?:I(?:'ve|\shave)?\s(?:put|set\s?up|installed|buil[td]\sin|placed)\s(?:a\s)?|my\s(?:personal\s|background\s|hidden\s)?)(?:mal+ware|virus|spy\s?ware|trojan|program\srecorded|expl[o0]it|backdoor|(?:sneaky\s|hidden\s|malicious\s)+(?:app|stuff))|(?:application|mal+ware)[^\.]{1,30}(?:enable[sd]|allow(?:s|ed))\sme\sto\s(?:access|control)|I\s(?:contaminated|infected|hacked|toxified|poisoned)\s(?:your|this)\s(?:machine|computer|gadget|(?:smart\s?)?phone|device|email)|Anwendung\s[^\.]{1,50}\sich\sauf\salle\sIhre\sdarauf\sgespeicherten\sDateien\szugreifen\skann|mein\shinterhältiges\sProgramm|I\s?am\s?a\s?hacker|(?:(?:trojan|virus|spyware|mal+ware)\s)+giv(?:es|ing)\sme)\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __MY_MALWARE           /(?:^|\s)(?:(?:<I>(?:'<V><E>|\s<H><A><V><E>)?\s(?:<P><U><T><|><S><E><T>\s?<U><P>|<I><N><S><T><A><L><L><E><D>|<B><U><I><L>(?:<T>|<D>)\s<I><N>|<P><L><A><C><E><D>)\s(?:<A>\s)?|<M><Y>\s(?:<P><E><R><S><O><N><A><L>\s|<B><A><C><K><G><R><O><U><N><D>\s|<H><I><D><D><E><N>\s)?)(?:<M><A><L>+<W><A><R><E>|<V><I><R><U><S>|<S><P><Y>\s?<W><A><R><E>|<T><R><O><J><A><N>|<P><R><O><G><R><A><M>\s<R><E><C><O><R><D><E><D>|<E><X><P><L>(?:<O>|0)<I><T>|<B><A><C><K><D><O><O><R>|(?:<S><N><E><A><K><Y>\s|<H><I><D><D><E><N>\s|<M><A><L><I><C><I><O><U><S>\s)+(?:<A><P><P>|<S><T><U><F><F>))|(?:<A><P><P><L><I><C><A><T><I><O><N>|<M><A><L>+<W><A><R><E>)[^\.]{1,30}(?:<E><N><A><B><L><E>(?:<D>|<S>)|<A><L><L><O><W>(?:<S>|<E><D>))\s<M><E>\s<T><O>\s(?:<A><C><C><E><S><S>|<C><O><N><T><R><O><L>)|<I>\s(?:<C><O><N><T><A><M><I><N><A><T><E><D>|<I><N><F><E><C><T><E><D>|<H><A><C><K><E><D>|<T><O><X><I><F><I><E><D>|<P><O><I><S><O><N><E><D>)\s(?:<Y><O><U><R>|<T><H><I><S>)\s(?:<M><A><C><H><I><N><E>|<C><O><M><P><U><T><E><R>|<G><A><D><G><E><T>|(?:<S><M><A><R><T>\s?)?<P><H><O><N><E>|<D><E><V><I><C><E>|<E><M><A><I><L>)|Anwendung\s[^\.]{1,50}\sich\sauf\salle\sIhre\sdarauf\sgespeicherten\sDateien\szugreifen\skann|<M><E><I><N>\s<H><I><N><T><E><R><H><A><L><T><I><G><E><S>\s<P><R><O><G><R><A><M>+|<I>\s?<A><M>\s?<A>\s?<H><A><C><K><E><R>|(?:(?:<T><R><O><J><A><N>|<V><I><R><U><S>|<S><P><Y><W><A><R><E>|<M><A><L>+<W><A><R><E>)\s)+<G><I><V>(?:<E><S>|<I><N><G>)\s<M><E>)[\s\.,]/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __MY_VICTIM            /\b(?:hi|hello),?(?:\smy)?\s(?:victim|prey)\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __MY_VICTIM            /(?:<H><I>|<H><E><L><L><O>),?(?:\s<M><Y>)?\s(?:<V><I><C><T><I><M>|<P><R><E><Y>)/i
+endif
+
+header __NAKED_TO   To =~ /^[^\s<>]+\@[^\s<>]+$/
+
+meta           __NAME_EMAIL_DIFF   __NAME_IS_EMAIL && ! __NAME_EQ_EMAIL
+
+header __NAME_EQ_EMAIL From:raw =~ /([\w+.-]+\@[\w.-]+\.\w\w+)["'`\s]*<\s*\1>/i
+
+header __NAME_IS_EMAIL From:raw =~ /\w\@[\w.-]+\.\w\w+["'`]*\s*<\w+\@\w/
+
+meta       __NEWEGG_IMG_NOT_RCVD_NEGG  __URI_IMG_NEWEGG && !__HDR_RCVD_NEWEGG
+
+body     __NEXT_OF_KIN    /\bnext[-\s]of[-\s]kin\b/i
+
+body     __NIGERIA        /\bnigeria\b/i
+
+meta    __NOT_A_PERSON __VACATION || ANY_BOUNCE_MESSAGE || __CHALLENGE_RESPONSE || __VIA_ML || __DOS_HAS_LIST_UNSUB || __SENDER_BOT || __UNSUB_LINK || __UNSUB_EMAIL || __MSGID_LIST || __SUBSCRIPTION_INFO
+tflags  __NOT_A_PERSON nice
+
+body     __NOT_DEAD_YET   /\b(?:will\sinherit|que\sherede|your\sdeath|your?\sbeing\sdead)\b/i
+
+body     __NOT_SCAM       /\b(?:not\sa\sscam|(?:not|never)\sscam\syou)\b/i
+
+tflags    __NOT_SPOOFED        nice
+
+if !(!plugin(Mail::SpamAssassin::Plugin::DKIM))
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+  meta __NOT_SPOOFED  DKIM_VALID || !__LAST_EXTERNAL_RELAY_NO_AUTH || ALL_TRUSTED      # yes DKIM, no SPF
+endif
+endif
+
+if !(!plugin(Mail::SpamAssassin::Plugin::DKIM))
+ ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta __NOT_SPOOFED  SPF_PASS || DKIM_VALID || !__LAST_EXTERNAL_RELAY_NO_AUTH || ALL_TRUSTED  # yes DKIM, yes SPF
+endif
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+   meta __NOT_SPOOFED  __DKIM_EXISTS || !__LAST_EXTERNAL_RELAY_NO_AUTH || ALL_TRUSTED  # no DKIM, no SPF.
+endif
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::DKIM)
+ ifplugin Mail::SpamAssassin::Plugin::SPF
+   meta __NOT_SPOOFED  SPF_PASS || __DKIM_EXISTS || !__LAST_EXTERNAL_RELAY_NO_AUTH || ALL_TRUSTED      # no DKIM, yes SPF
+endif
+endif
+
+meta     __NO_INR_YES_REF      (__XM_GNUS || __XM_MSOE5 || __XM_MSOE6 || __XM_MOZ4 || __XM_SKYRI || __XM_WWWMAIL || __UA_GNUS || __UA_KNODE || __UA_MUTT || __UA_PAN || __UA_XNEWS)
+
+header          __NSL_ORIG_FROM_41        X-Originating-IP =~ /^(?:.+\[)?41\./
+describe        __NSL_ORIG_FROM_41        Originates from 41.0.0.0/8
+
+header          __NSL_RCVD_FROM_41        X-Spam-Relays-External =~ / ip=41\./
+describe        __NSL_RCVD_FROM_41        Received from 41.0.0.0/8
+
+header   __NUMBEREND_TLD From:addr =~ /\@[a-z]{2,}[0-9]{4,}(\.[a-z]{2,4})?\.[a-z]+$/i
+
+header   __NUMBERONLY_TLD From:addr =~ /\@[0-9]{4,}(\.[a-z]{2,4})?\.[a-z]+$/i
+
+header      __NUMBERS_IN_SUBJ  Subject =~ /\d{3}/
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta           __OBFU_BITCOIN   ( __BITCOIN_ID && ( __BTC_OBFU_2 || __BTC_OBFU_3 || __BTC_OBFU_4 || __BTC_OBFU_5 ) )
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta           __OBFU_BITCOIN   ( __BITCOIN_ID && ( __BTC_OBFU_2 || __BTC_OBFU_3 || FUZZY_BITCOIN || __BTC_OBFU_5 ) )
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta           __OBFU_BITCOIN_NOID   ( !__BITCOIN_ID && ( __BTC_OBFU_2 || __BTC_OBFU_3 || __BTC_OBFU_4 || __BTC_OBFU_5 ) )
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta           __OBFU_BITCOIN_NOID   ( !__BITCOIN_ID && ( __BTC_OBFU_2 || __BTC_OBFU_3 || FUZZY_BITCOIN || __BTC_OBFU_5 ) )
+endif
+
+body       __OBFU_UNSUB_UL             /(?:click_here|remove_your|our_e?mail|this_list|to_unsubscribe|future_e?mail|our_list)/
+
+if !plugin(Mail::SpamAssassin::Plugin::ImageInfo)
+  meta       __ONE_IMG               0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ImageInfo
+  body       __ONE_IMG               eval:image_count('all',1,1)
+endif
+
+header   __OPERA_MID_NON_OP    Message-ID =~ /^<[^o][^p]\./
+
+body        __ORDER_TODAY              /\border (?:it|one|yours|this) (?:today|now|right\saway)\b/i
+
+body     __OUR_BEHALF     /\b(?:on\s(?:my|our)\sbehalf|of\sbehalf\sof)\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __PART_CID_STOCK_LESS    Content-ID =~ /^<00[a-f0-9]{10}\$[a-f0-9]{8}\$[a-f0-9]{8}\@[A-Za-z]+>$/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __PART_STOCK_CD_F Content-Disposition =~ /filename/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __PART_STOCK_CID Content-ID =~ /^<[a-f0-9]{12}\$[a-f0-9]{8}\$[a-f0-9]{8}\@[^\s\.]+>$/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __PART_STOCK_CL Content-Location =~ /./
+endif
+
+body       __PASSIVE_INCOME            /\bpassive income\b/i
+
+body       __PASSWORD                  /\bp[-\s_]?a[-\s_]?s[-\s_]?s[-\s_]?w[-\s_]?o[-\s_]?r[-\s_]?d\b/i
+
+body        __PASSWORD_EXP_CLUMSY  /\bpassword is due for expiration yesterday\b/i
+
+body        __PASSWORD_UPGRADE   /\bpassword upgrade\b/i
+
+body           __PAXFUL         /\bp-?a+-?x+-?f-?u+-?l\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __PAY_ME               /\b(?:pay\sme|(?:(?:send|transmit|give)\s(?:to\s)?me|(?:send(?:en\ssie)?|transfer)\s(?:the\samount\sof|exactly|genau)|I\swant|den\sbetrag\svon|payment\sof)\s(?:[\d,'.\$£]+\s?(?:usd?|eur?(?:os)?|gbp|BTC)?|bitcoin|BTC)|(?:make|perform|send|transmit)\sthe\spayment|amount\sfor\smy\ssilence|(?:pay|fund)\sthis\s(?:bitcoin|monero)[-\s](?:address|wallet|brieftasche)|my bribe(?:ry)?)\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __PAY_ME               /(?:^|\s)(?:<P><A><Y>\s<M><E>|(?:(?:<S><E><N><D>|<T><R><A><N><S><M><I><T>|<G><I><V><E>)\s(?:<T><O>\s)?<M><E>|(?:<S><E><N><D>(?:<E><N>\s<S><I><E>)?|<T><R><A><N><S><F><E><R>)\s(?:<T><H><E>\s<A><M><O><U><N><T>\s<O><F>|<E><X><A><C><T><L><Y>|<G><E><N><A><U>)|<I>\s<W><A><N><T>|<D><E><N>\s<B><E><T><R><A><G>\s<V><O><N>|<P><A><Y><M><E><N><T>\s<O><F>)\s(?:[\d,'.\$£]+\s?(?:<U><S><D>?|<E><U><R>?(?:<O><S>)?|<G><B><P>|<B><T><C>)?|<B><I><T><C><O><I><N>|<B><T><C>)|(?:<M><A><K><E>|<P><E><R><F><O><R><M>|<S><E><N><D>|<T><R><A><N><S><M><I><T>)\s<T><H><E>\s<P><A><Y><M><E><N><T>|<A><M><O><U><N><T>\s<F><O><R>\s<M><Y>\s<S><I><L><E><N><C><E>|(?:<P><A><Y>|<F><U><N><D>)\s<T><H><I><S>\s(?:<B><I><T><C><O><I><N>|<M><O><N><E><R><O>)[-\s](?:<A><D><D><R><E><S><S>|<W><A><L><L><E><T>|<B><R><I><E><F><T><A><S><C><H><E>|<M><Y> <B><R><I><B><E>(?:<R><Y>)?))[\s\.,]/i
+endif
+
+body     __PAY_YOU        /\bpay\syou\b/
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __PCT_FOR_YOU    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __PCT_FOR_YOU    __PCT_FOR_YOU_1 || __PCT_FOR_YOU_2 || __PCT_FOR_YOU_3 || T_SHARE_50_50
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __PCT_FOR_YOU_1  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __PCT_FOR_YOU_1  /<PERCENT>[\s)]{0,3}(?:(?:of\s[\w\s]{0,35}?)?(?:for|to|as)\syour?|(?:[^\s.]{1,15}\s)?an uns beide)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __PCT_FOR_YOU_2  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __PCT_FOR_YOU_2  /\b(?:(?:give|offer)\syou|vous\s(?:aurez\sdroit\s(?:=E0|[\xe0])|donnerai|all(?:e|=E9|[\xe9]|[\xc3][\xa9])\srecevoir\sautour\sde)|ihnen)\s<PERCENT>/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __PCT_FOR_YOU_3  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __PCT_FOR_YOU_3  /\byour?\s(?!can)(?:(?!you)\w{1,15}\s){0,10}(?:(?:share|entiti?le(?:d|ment)?|percentage|fee|assist(?:ance)?|comp[ea]nsat(?:ed?|tion)|reward(?:ed)?|renumerat(?:e|tion)|com+is+ion|paid|deduct|account|tage|(?:will|shall|would|(?:are|stand|going)\sto)\s(?:be\s)?(?:tak(?:e|ing)|earn|get(?:ting)?|remit|subtract|with+old)|(?:deduct|taken?|subtract(?:ed)?)\syour|keep(?:ing)?|receiv(?:e|ing)|retain(?:ing)?|have|half|giv(?:en|ing)|paid|(?:give|pay|offer)\s(?:me|you|him)|bank\saccount|to\s(?:take|use)|(?:time|country)\sand|ratio\sof)(?:\s(?!you)\w{1,15}){0,10})\s(?<!by\s)(?<!up\sto\s)<PERCENT>/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  meta     __PCT_OF_PMTS    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body     __PCT_OF_PMTS    /<PERCENT>[\s)]+(?:of\s[\w\s]{0,35}?)?(?:of|du|de)\s(?:(?:the|la)\s)?(?:total\s)?(?:payments?|rem+it+ances?|capital|chec(?:k|que)s?|mon(?:ey|ies)|suma?)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __PDF_ATTACH       0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  meta         __PDF_ATTACH       (__PDF_ATTACH_MT || __PDF_ATTACH_FN1 || __PDF_ATTACH_FN2)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __PDF_ATTACH_FN1   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __PDF_ATTACH_FN1   Content-Type =~ /="[^"]+\.pdf"/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __PDF_ATTACH_FN2   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __PDF_ATTACH_FN2   Content-Disposition =~ /="[^"]+\.pdf"/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __PDF_ATTACH_MT    0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __PDF_ATTACH_MT    Content-Type =~ m,\bapplication/pdf\b,i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  header   __PDS_BTC_ANON     From:name =~ /\bAnon/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  meta     __PDS_BTC_BADFROM     ( __PDS_BTC_HACKER || __PDS_BTC_PIRATE )
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  header   __PDS_BTC_HACKER   From:name =~ /h<A>ck<E>r/i
+endif
+
+meta     __PDS_BTC_ID   ( __BITCOIN_ID && !__URL_BTC_ID && !__HAS_IMG_SRC_DATA && !__BUGGED_IMG)
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  header   __PDS_BTC_PIRATE   From:name =~ /p<I>r<A>t<E>/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+header   __PDS_CASHSHORTENER eval:check_uri_host_listed('PDS_CASHSHORTENER')
+endif
+endif
+
+uri  __PDS_DOUBLE_URL m;https?://[\S]+(?:\?|=)https?://[\S]+[\w]+$;
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+body     __PDS_EXPIRATION_NOTICE /\bexpiration (notice|alert|date)\b/i
+endif
+endif
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  header     __PDS_FROM_2_EMAILS      From =~ /(?:^|<|"| )([\w+.-]+\@[\w.-]+\.\w\w++)(?:[^\n\w<]{0,80})?<(?!\1)[^\n\s]*\@/i
+endif
+
+header   __PDS_FROM_GMAIL From:addr =~ /\@g(?:oogle)?mail\.com$/i
+
+header   __PDS_FROM_NAME_TO_DOMAIN  ALL =~ /From: ["']?([a-z0-9\.-]+\.[0-9a-z\.-]+)["']? [^\n]+\nTo:[^\n]+\@\1/ism
+
+header   __PDS_GMAIL_MID Message-Id =~ /\@mail.gmail.com>$/
+
+meta     __PDS_GOOGLE_DRIVE_SHARE (__PDS_GOOGLE_DRIVE_SHARE_1 + __PDS_GOOGLE_DRIVE_SHARE_2 + __PDS_GOOGLE_DRIVE_SHARE_3 >= 2)
+
+header __PDS_GOOGLE_DRIVE_SHARE_1 References =~ /\@docs\-share\.google\.com\>/
+
+header __PDS_GOOGLE_DRIVE_SHARE_2 From:addr =~ /^drive\-shares\-noreply\@google\.com$/
+
+header __PDS_GOOGLE_DRIVE_SHARE_3 X-Envelope-From:addr =~ /\@doclist\.bounces\.google\.com$/
+
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta     __PDS_HP_HELO_NODNS (__HELO_HIGHPROFILE && !__HELO_DNS)
+tflags   __PDS_HP_HELO_NODNS net
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+meta __PDS_HTML_LENGTH_1024 __HTML_LENGTH_0000_1024
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::HTMLEval
+meta __PDS_HTML_LENGTH_2048 __HTML_LENGTH_0000_1024 || __HTML_LENGTH_1024_1536 || __HTML_LENGTH_1536_2048
+endif
+
+meta     __PDS_LITECOIN_ID (__LITECOIN_ID && !__URL_LTC_ID && !__HAS_IMG_SRC_DATA && !__BUGGED_IMG)
+
+meta     __PDS_MSG_1024 (__KAM_BODY_LENGTH_LT_1024 || __PDS_HTML_LENGTH_1024)
+
+meta     __PDS_MSG_512 (__KAM_BODY_LENGTH_LT_512 || __HTML_LENGTH_512)
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+meta     __PDS_NEWDOMAIN  (__FROM_FMBLA_NEWDOM || __FROM_FMBLA_NEWDOM14 || __FROM_FMBLA_NEWDOM28)
+tflags   __PDS_NEWDOMAIN  net
+endif
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+body     __PDS_OFFER_ONLY_AMERICA /This offer (?:is )?(?:only )?for (United States|USA)/i
+endif
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEEval)
+  meta    __PDS_QP_1024 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  meta    __PDS_QP_1024      (__MIME_QPC > 0) && (__MIME_QPC < 1024)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEEval)
+  meta    __PDS_QP_128 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  meta    __PDS_QP_128       (__MIME_QPC > 0) && (__MIME_QPC < 128)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEEval)
+  meta    __PDS_QP_512 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  meta    __PDS_QP_512       (__MIME_QPC > 0) && (__MIME_QPC < 512)
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEEval)
+  meta    __PDS_QP_64 0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEEval
+  meta    __PDS_QP_64        (__MIME_QPC > 0) && (__MIME_QPC < 64)
+endif
+
+header   __PDS_RDNS_MTA X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*(mta|mail|mx|smtp)\b\S* /i
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+body     __PDS_SENT_TO_EMAIL_ADDR /This message was sent to Email Address\./i
+endif
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+body     __PDS_SEO1 /(?:top|first page|1st) (?:(?:results|rank(?:ing)?) )?(?:in|of|on) (?:Google|MSN|Yahoo|Bing)|rank number one|top page rank|guarantee you 1st|link.building/i
+endif
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+body     __PDS_SEO2 /losing your (?:[a-z]+ )?(?:rank(?:ing)?|results)|rank well on [a-z]+\b/i
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     __PDS_SHORT_URL __SHORT_URL && !__URL_SHORTENER && !__PDS_URISHORTENER && !ALL_TRUSTED
+endif
+endif
+
+if (version >= 3.004001)
+ifplugin Mail::SpamAssassin::Plugin::AskDNS
+tflags   __PDS_SPF_ONLYALL net
+endif
+endif
+
+header   __PDS_TONAME_EQ_TOLOCAL To:raw =~ /^\s*['"]?([^'"]+)['"]? <?\1\@/
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  header     __PDS_TO_EQ_FROM_NAME_1  ALL =~ /\nTo:\s+(?:[^\n<]{0,80}<)?([^\n\s>]+)>?\n(?:[^\n]{1,100}\n)*From:\W+(\1)([^\n\w<]++<)?((?!\1)[^\n">]++)>?\n/ism
+endif
+
+if can(Mail::SpamAssassin::Conf::perl_min_version_5010000)
+  header     __PDS_TO_EQ_FROM_NAME_2  ALL =~ /\nFrom:\W+"([\w+.-]+\@[\w.-]+\.\w\w+)(?:[^\n\w<]{0,80}<)?((?!\1)[^\n">]++)>?\n(?:[^\n]{1,100}\n)*To:\s+(?:[^\n<]{0,80}<)?(\1)>?/ism
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+meta     __PDS_TO_SUBJ_URISHRT __TO_IN_SUBJ && (__PDS_URISHORTENER || __URL_SHORTENER) && __PDS_MSG_1024
+endif
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+if (version >= 3.004000)
+header   __PDS_URISHORTENER eval:check_uri_host_listed('PDS_URISHORTENER')
+endif
+endif
+
+meta        __PD_CNT_1        (__PUMPDUMP_01+__PUMPDUMP_02+__PUMPDUMP_03+__PUMPDUMP_04+__PUMPDUMP_05+__PUMPDUMP_06+__PUMPDUMP_07+__PUMPDUMP_08+__PUMPDUMP_09+__PUMPDUMP_10) > 0
+
+body        __PENDING_MESSAGES   /\b(?:messages pending|(?:your|\d+[\])}]?) (?:pending|un(?:delivered|received)) (?:messages|e?-?mails))\b/i
+
+body       __PERFECT_BINARY            /\bperfect binary option\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __PHISH_ATTACH_01_01  Content-Disposition =~ /\bfilename(?:="?[^"]*|\*(?:\d+\*)?=(?:UTF-8'')?\S*)(?:\.|%C2%B7|[\xc2][\xb7]|_)(?:pdf|docx?)\.html?[";$]/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __PHISH_ATTACH_01_02  Content-Type =~ /\bname="?[^"]*(?:\.|[\xc2][\xb7]|_)(?:pdf|docx?)\.html?[";$]/i
+endif
+
+meta       __PHISH_FBASE_01            (__URI_FIREBASEAPP || __URI_WEBAPP) && __PDS_FROM_NAME_TO_DOMAIN && __MAIL_LINK
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body       __PHOTO_RETOUCHING         /\b(?:(?:retouching|(?:image|photo|pic)s? (?:[a-z]{1,15} ){0,3}(?:edit(?:ing|ors)|team|(?:cut+|mask|clip+|clean|crop+|resiz|enhanc|etch)ing|cut+(?:ing)?[-\s]?out|enhancement|manipulation|restoration|compositing|working|(?:color|contrast|brightnes+|background|make-?up) (?:cor+ection|change)|solution|work|services?)|(?<!that\s)(?<!\.\s)your (?:imag(?:es|ing)|pics)|photo\s?shop (?:expert|service)s?|(?:deliver (?:the|your) |(?:(?:send|throw|ship|drop|deliver|give|provide|e-?mail) us|(?:cut+(?:ing)?[-\s]?out|masking|(?:test|edit)(?:ing)?) (?:for|of|on|with)) (?:(?:an?|one|your|some|sample|test|example|the) )+)(?:image|photo|pic)s?|(?:proces+|edit)(?:\sover|\smore th[ae]n)? \d{2,5}\D? (?:image|photo|pic)s|improv(?:e|ing) (?:(?:image|photo|picture|pic) (?:quality|lighting)|(?:(?:image|photo|picture|pic) )?(?:resolution|contrast|background|color))|cor+ecting (?:color|contrast|brightnes+|background))\b|(?:e-?com+erce|website|jew[el]+r(?:[y's]+|ies)|model+(?:s|ing)?|products?|portraits?|graduation['s]*|school['s]*|bab(?:[y's]+|ies)|famil(?:[y's]+|ies)|kids|wedding|beauty|glamou?r|catalog['s]*|store['s]*|shop['s]*|(?:cut+(?:ing)?[-\s]?out|clip+ing\spath|(?:all|any) kinds? of|enhance|retouch|edit(?:ing)?)[,;]?(?:\s[a-z]{1,15}){0,4})\s(?:image|photo|pic)s?(?:[.,?]|$|\sand\b|\sor\b|\setc\b)|\b(?:imag(?:es|ing)|photos)\s\d+$)/i
+  tflags     __PHOTO_RETOUCHING         multiple maxhits=5
+endif
+
+header  __PHPMAILER_MUA       X-Mailer =~ /^PHPMailer\b/
+
+meta    __PHP_MUA             __PHP_MUA_1 || __PHP_MUA_2
+
+header  __PHP_MUA_1           X-Mailer =~ /^PHP\s?v?\/?\d\./
+
+header  __PHP_MUA_2           X-Mailer =~ /^PHP\d$/
+
+header  __PHP_NOVER_MUA       X-Mailer =~ /^PHP$/
+
+meta       __PHP_ORIG_SCRIPT_SONLY     __HAS_PHP_ORIG_SCRIPT && (__TVD_SPACE_RATIO || __SINGLE_WORD_SUBJ || __OBFUSCATING_COMMENT_B)
+
+if !(can(Mail::SpamAssassin::Conf::feature_bug6558_free))
+  meta        __PILL_PRICE_01        0
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __PILL_PRICE_01        m;(?=[\d .f])(?:free|[\d .]{3}(?:/|per|each)) ?(?=[ptc])(?:pill|tablet|cap(?:sule|let))s?\b;i
+  tflags      __PILL_PRICE_01        multiple maxhits=3
+endif
+
+if !(can(Mail::SpamAssassin::Conf::feature_bug6558_free))
+  meta        __PILL_PRICE_02        0
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body        __PILL_PRICE_02        /(?=[ptc])(?:pill|tablet|cap(?:sule|let))s[-= :]{1,5}\$?[\d .]{3}/i
+  tflags      __PILL_PRICE_02        multiple maxhits=3
+endif
+
+body           __PLS_REVIEW       /\b(?:please|kindly)\s(?:(?:re)?view|see)(?:\s\w+)?\sattach(?:ed|ment)\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+header   __PLUGIN_FROMNAME_EQUALS_TO eval:check_fromname_equals_to()
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+header   __PLUGIN_FROMNAME_SPOOF eval:check_fromname_spoof()
+endif
+
+uri         __PS_TEST_LOC_WP   m;/(?:wp-content/plugins|wp-content/themes|wp-includes|modules/mod_wdbanners|includes/|google_recommends|mt-static|data/module)/.{1,128}(?!\.gif|\.jpg|\.png|\.bmp|\.ico|\.pdf|\.svg)[^?]{4}(?:\?[^?]{1,5})?$;i
+
+body        __PUMPDUMP_01     /\b(?:times|multiply|tripl(?:e|ing)|quadrupl(?:e|ing)|quintupl(?:e|ing)) (?:your|an) (?:princip(?:al|le)|investment)\b/i
+
+body        __PUMPDUMP_02     /\b(?:sto[ck]{2}|share price) (?:will |may |is (?:(?:about|poised|positioned|ready) to |gonna ))?(?:triple|quadruple|quintuple|soar|go(?:es?) (?:nuts|crazy|sky high|way up))\b/i
+
+body        __PUMPDUMP_03     /\bbuy (?:[^.!]{1,30} )?(?:(?:(?:mon|tues|wednes|thurs|fri)day|tomorrow) (?:first thing|open|morning)|(?:first thing|opens|before) (?:(?:mon|tues|wednes|thurs|fri)day|tomorrow))/i
+
+body        __PUMPDUMP_04     /\bmake you (?:big bucks|hundreds|thousands)\b/i
+
+body        __PUMPDUMP_05     /\b(?:tripled|quadrupled|quintupled|(?:shares|value|company) (?:go up|increase|has (?:increased|gained)) (?:by|more than) [a-z\s]{0,20}\d+(?: times| percent| ?%)) (?:and that )?in (?:(?:\d|a (?:span of|few)) days|a very short period)\b/i
+
+body        __PUMPDUMP_06     /\brecommend(?:ed|s)? (?:a|this) (?:company|stock)\b/i
+
+body        __PUMPDUMP_07     /\b(?:buy|grab it) for (?:around |about |less than )?\d+ cents\b/i
+
+body        __PUMPDUMP_08     /\b?(:sto[ck]{2}|sotk) of the year/i
+
+body        __PUMPDUMP_09     /\b(?:buy|get|snap up|grab) as many shares (?:of it )?as (?:you|I) can\b/i
+
+body        __PUMPDUMP_10     /\btrading at (?:such )?a (?:bargain|cheap|low)\b/i
+
+body     __RANDOM_PICK    /\b(?:random(?:ly)?\s(?:\w+\s)?(?:select(?:ion|ed)|pick(?:ed)?|computer)|(?:select|pick)ed\s(?:at\s)?random(?:ly)?|(?:esco(?:g|lh)idos|seleccion) (?:aleatoria(?:mente)?|al azar))\b/i
+
+header    __RAND_HEADER                ALL =~ /^(?!Accept-Language|Authentication-Results|Content-|DomainKey-Signature|DKIM-|List-|MIME-|Received-SPF|Return-Path|Thread-|User-Agent|Tracking-Code)(?:[a-z]{4,}-[a-z]{3,}|[a-z]{3,}-[a-z]{4,}):\s+\d(?=\S{6,}\s*$)[\da-f]*(?:[-.]\w+)*\s*$/ism
+tflags    __RAND_HEADER                multiple maxhits=4
+
+meta      __RAND_HEADER_2              __RAND_HEADER > 1
+
+header    __RAND_MKTG_HEADER           ALL =~ /^X-(?:[a-z]{2}){1,2}-(?:EBS|(?:Tracking|Subscriber|Delivery|Customer|Campaign)-[DSU]?id):/ism
+
+header __RATWARE_BOUND_A  ALL =~ /^Message-Id: <....([0-9a-f]{8})\$[0-9a-f]{8}\$.{10,400}boundary="----=_NextPart_000_...._\1\./msi # "
+
+header __RATWARE_BOUND_B  ALL =~ /boundary="----=_NextPart_000_...._([0-9a-f]{8})\..{10,400}^Message-Id: <....\1\$[0-9a-f]{8}\$/msi # "
+
+header __RCD_RDNS_MAIL X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*\bmail[^a-z]/i
+tflags __RCD_RDNS_MAIL nice
+
+header __RCD_RDNS_MAIL_MESSY X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*mail/i
+tflags __RCD_RDNS_MAIL_MESSY nice
+
+header __RCD_RDNS_MTA X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*\bmta[^a-z]/i
+tflags __RCD_RDNS_MTA nice
+
+header __RCD_RDNS_MTA_MESSY X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*mta/i
+tflags __RCD_RDNS_MTA_MESSY nice
+
+header __RCD_RDNS_MX X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*\bmx[^a-z]/i
+tflags __RCD_RDNS_MX nice
+
+header __RCD_RDNS_MX_MESSY X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*mx/
+tflags __RCD_RDNS_MX_MESSY nice
+
+header __RCD_RDNS_OB X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*\boutbounds?[^a-z]/i
+tflags __RCD_RDNS_OB nice
+
+header __RCD_RDNS_SMTP X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*\bsmtps?[^a-z]/i
+tflags __RCD_RDNS_SMTP nice
+
+header __RCD_RDNS_SMTP_MESSY X-Spam-Relays-External =~ /^[^\]]+ rdns=\S*smtp/
+tflags __RCD_RDNS_SMTP_MESSY nice
+
+header     __RCVD_DOTEDU_EXT           X-Spam-Relays-External =~ /\.edu\s/i
+
+meta       __RCVD_DOTEDU_SHORT         __RCVD_DOTEDU_EXT && ( __HTML_IMG_ONLY || __BODY_URI_ONLY || __HTML_LENGTH_1024_1536 )
+
+meta       __RCVD_DOTEDU_SUSP_URI      __RCVD_DOTEDU_EXT && ( __45_ALNUM_URI || __45_ALNUM_URI_O || __64_ANY_URI )
+
+header     __RCVD_DOTGOV_EXT           X-Spam-Relays-External =~ /\.gov\s/i
+
+header         __RCVD_ZIXMAIL        X-Spam-Relays-Untrusted =~ / helo=smtpout\.zixmail\.net /
+
+header __RDNS_LONG     X-Spam-Relays-External =~ /^[^\]]+ rdns=\S{30}/
+
+header __RDNS_NO_SUBDOM        X-Spam-Relays-External =~ /^[^\]]+ rdns=[^. ]*\.\w+ /
+
+header     __RDNS_NUMERIC_TLD          X-Spam-Relays-External =~ /\srdns=\S+\.\d+\s/
+
+header __RDNS_SHORT    X-Spam-Relays-External =~ /^[^\]]+ rdns=\S{4,14} /
+
+body       __RECEIVE_BONUS             /\byou(?:'ll)?(?: also| will)* (?:rec[ei]*ve|get|earn|collect|be (?:awarded|handed|remitted|given|paid|(?:greeted|welcomed|started) with)) (?:an? )?(?:gift|bonus|extra)(?: of|:)? \$[\d,]+/i
+
+header __RELAY_THRU_WWW        Received =~ /from (?:[^ \@]+\@)?www\./
+
+body        __RELEASE_MESSAGES   /\b(?:release messages|(?:retrieve|release|download) your(?: undelivered|unreceived|held|pending)? e?-?mails|(?:e?-?mails|messages).{1,20}download them now)\b/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader # {
+  meta __REMOTE_IMAGE  (__HTML_IMG_ONLY || __HTML_LINK_IMAGE) && !(__SUBSCRIPTION_INFO || __VIA_ML || __SENDER_BOT || __ANY_IMAGE_ATTACH)
+endif
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   __REPLYTO_ADDRLIST_SUSPNTLD eval:check_replyto_in_list('SUSP_NTLD')
+endif
+endif
+
+header      __REPLYTO_NOREPLY          Reply-To =~ /\bno-?reply@/i
+
+header __REPTO_419_FRAUD_AOL_LOOSE Reply-To:addr =~ /^(?=[^\s<>@]+\@aol\.com)(?:(?:a(?:f\.|ljaber)|brownchurchill|c(?:hanprivacy|ristinabruno|ustom_service)|d(?:hodgkins|onald_anderson)|evelynjoshua|f(?:d\.|ernandezfernandez)|george_clifford|hernandezrosemary|k\.doreen|l(?:erynnewest|izcarroll)|m_l\.wanczyk|p(?:aulpollard|eterwong)|r(?:achel_wat|oyalpalace)|s(?:gt\.gillianj|pwalker)|usembassy|webank))\d+\@aol\.com$/i
+
+header __REPTO_419_FRAUD_GM_LOOSE Reply-To:addr =~ /^(?=[^\s<>@]+\@gmail\.com)(?:(?:a(?:bu(?:lkareem|shadi)|c(?:aalzz|e(?:alss|cere))|desilgon|l(?:an\.austin|ber\.yang|ex(?:ander(?:daisy|peterson)|hoffman)|ghafrij|lenholden|ure\.wawrenka)|m(?:ericadeliverycomapny|inaltwaijiri)|n(?:dyfox|na(?:llee|sigurlaug))|radka|s(?:hwestwood|ianbae)|tm(?:mastercard|office)|yevayawovi|zi(?:m(?:\.hpremji|hashim(?:donation)?)|z(?:dake|george)))|b(?:a(?:nkcentralasiahalobca|r(?:bersmadar|r(?:\.charles|isterlordruben)|teld\.huisman))|bongo|e(?:linekra|n(?:ezero|jaminsarah))|ill\.lawrence|mwautomobile|oarddept|r(?:avolpaul|endalaporte|ianmoynih)|uffettwarrene)|c(?:a(?:mluba|reisu)|bnatm|elineroullier|h(?:a(?:ngching|r(?:itylisajohnrobinson|l(?:esluenga|tonnewmanus)))|e(?:mchung|nchung))|iticonsultantjohncg|la(?:imadviser|xtonpaul)|o(?:l(?:\.fakhrialsalabi|inchrisweir|o(?:mbasjuan|nelsaad))|n(?:sultancy|tactad)|operation)|r(?:awfordgillies|istbrun?)|ustomerservicelacaixa)|d(?:a(?:nielzulu|v(?:i(?:d(?:\.loanfirm|ibe|larbi|pere|ramirez\.luis)|scarolyn|yax)|ychan))|e(?:btm|nnis(?:clark|quaid)|partmentofstate)|ipfrancis|ona(?:ldwilliam|tionhelpercare)|r(?:\.wilsonpaul|davidrhama|joesimon|ovieogor)|unsilva)|e(?:benezero|christina|dwinfreeman|l(?:i(?:bethgomez|sabethmaria|zabethedw)|otocashoffice)|m(?:ailpostlink|efieleg?|ilyrichmond)|renakgeorge|ssexlss)|f(?:\.mikhail|a(?:ithdesrie|tme\.mehmed)|blott|laurentdz|r(?:a(?:100dub|nc(?:espatrickconnolly|iscamendoza))|eelottosweepstake)|ulanlan)|g(?:00gleggewinner|a(?:brielkalia|ryakinson)|bill|e(?:neralwilliamstony|orgekwame|r(?:aldjhjh|tjanvlieghe))|iidp|l(?:enmoore|oriachow)|o(?:o(?:golteam|oglegwiinner)|vgodwinemefiele)|r(?:aceobia|e(?:ant|energeoffrey)))|h(?:a(?:r(?:old\.dia|ryebert)|sh(?:imyreem|mireem))|e(?:a(?:dofficecentre|therbrooeke)|ctor(?:castillos|scastillo))|gold|heba\.hhassan|ildad|o(?:lsemeyerole|nmackjohn|rnbeckmajordennis|seoky)|trryt)|i(?:bed|n(?:fo(?:98cbnoffice|aprl)|gridrolle|ternationallppp))|j(?:a(?:cobmaseon|mes(?:husmansdesk|okoh)|vierlesme)|e(?:ff(?:deandk|erydean)|ssikasingh)|imyang|o(?:e(?:dward|kendal)|hn(?:griffn|r(?:awlings|oxfordjr)|sonwilson|tanko|uba|walterlove|a)|nesandassociates|sephacevedo|ymrskone)|rawlings|uliet\.lee?)|k(?:a(?:lstromjames|malnizar|rabo\.ramala|t(?:hilittman|jamess|rinaziako))|e(?:lsawamelia|n(?:mckay|nedy\.sawadogo))|halidbuhazza|kasbu|rnkl|un(?:gwei|ioue))|l(?:a(?:rrytoms|ursent|wrencefoundation)|e(?:ndfair\.co\.uk|rynne(?:0west|west))|i(?:amfinchus|liane\.bettencourt|n(?:elink|glung)|xiungl?)|john|o(?:ttyoffice|u(?:ghreymargaret|isdreyfusmargarita))|u(?:ckywinners|sba\.moored)|y(?:\.cheapiseth|n(?:\.arthur|cmba|nmkl)))|m(?:a(?:ckoliver|incare|jor(?:dennishornbeck|townsend)|nuelfranco(?:foundation)?|r(?:i(?:ahhills|nacoleman|opabl)|k(?:roth|uses)|y(?:franson|jify00aaz))|s(?:onmanny|pencer)|ttwilly|urhinck|viswanczyk(?:(?:foundation|k))?)|c\.cheadychang|dredban|e(?:lvidabullock|nnss)|gfrederick|i(?:c(?:healwuu|w)|khai(?:\.fridman|lfridm))|k(?:ent|untjoro)|o(?:ham(?:edabdul|madraqab)|rienkal)|r(?:\.justinmaxwell|cjames|hanimuhammad|jamesmc|martine|paulfrank|richardanthony|s(?:\.(?:biyufungchi|susanread)|a(?:ishaalqadafi|ngela)|gracewoods|hamima|jackman|maureens|r(?:obinsanders|uthsmith)|sarahbenjamin))|s(?:agent|golaan|smadar)|ustadris)|n(?:aomiiwasaki|eilt(?:rotter)?|obuyuki\.hirano)|o(?:\.peace|fficerricherd|liviemorgan|vieogor)|p(?:\.compton|a(?:storfrancesco|ul(?:eed|n)|ymentofficer)|brookk|eter(?:\.waddell|guggi|kenin|stephen)|hillip\.richead|ieterstevens|resleybathini)|q(?:iquanzhou|nzeng)|r(?:a(?:kidy|lhashimi|ymond(?:aba|damon))|e(?:beccagarang|em(?:has(?:himy|m)|n)|plyback|v(?:\.jamesabel|frankjackson))|i(?:chardw(?:ahl|illis)|tawilliams)|o(?:berthanandez|naldmorris|s(?:a\.gomes|e(?:kipkalya|tam)))|t\.rev\.ericmark)|s(?:a(?:l(?:ehhussienconsult|imzaid)|rfiafarfask)|cottpeters|e(?:cretservicce|rgeantrobertbrown)|h(?:anemissler|e(?:ikhalmaktoum|ry(?:\.gtl|etr))|inawatrathaksin)|imlkheng|krause|ofia\.adams|peelman|sdt|tephentam|u(?:iyang|n\.hor|sanneklatten)|weeneyjohnson)|t(?:ay(?:ebsouami|lorcathy)|erryparkins|h(?:ailandbankoffice|e(?:ara\.choy|bigbiglottowinning|odorosloannis|resawilliams|smithfm))|imothymetheny|lyerdonald|o(?:mc(?:hrist|rist(?:(?:donation|foundation))?)|ny(?:\.chung|zimpro)|shikazusendo))|u(?:marukareem|n(?:claimedfunds|itednation(?:organization|s))|sdepartmentofjustice)|v(?:anderwesthuizen|e(?:enapatel|r(?:a(?:aellen|hollinkvan)|enichekaterinaekaterina))|i(?:ctoriaabraham|dalpamela|ngut))|w(?:a(?:dp|hlr(?:ichard)?|nczykm)|i(?:ge|ll(?:iamrobert|update))|u(?:\.office|mt)|ww\.moneygram)|y(?:\.oguzhan|anghoseok|doo)|z(?:enithbankplconline|kiaslan|minhong)))\d+\@gmail\.com$/i
+
+header __REPTO_419_FRAUD_YH_LOOSE Reply-To:addr =~ /^(?=[^\s<>@]+\@yahoo\.com)(?:(?:a(?:driantongson|gaaintl\-4g5ee\.w|lesiakalina|nn(?:awax|hester\.usa))|b(?:a(?:nk\.phbng|rr(?:ister\.dennis|lawrencefubara))|en(?:jaminb|nicholas)|riceangela)|c(?:\.(?:aroline|coulibaly)|h(?:arlesscharf|jackson)|juan|ollins(?:mattew|wayne)|ythiamiller\.un)|d(?:hamilton|i(?:aanesoto|plomaticagent))|f(?:aizaadama|ederal\.r)|graham\.eddie|infobank|j(?:\.edwards|a(?:ckson\.davis|netemoon)|kimyong)|k(?:elvinmark|im(?:\.leang|leang))|l(?:e(?:a_edem|ge|hman)|isarobinson_|y_cheapiseth)|m(?:arie_avis|dzsesszika|elissalewis|o(?:hammedaahil|keye)|rkellyayi|unny(?:\.sopheap|_sopheap))|n(?:estordaniel|orahuz)|o(?:fficial_franksylvester|legkozyrev|mranshaalan)|peterlee|r(?:alphw(?:\.johnson|johnson)|i(?:chard\.w|taadamsw)|o(?:b(?:ertbailey|orts)|serichard))|s(?:amthong|igurlauganna|leo|mithcolin|pwalker|tevecox\.)|tylerhess\.|u(?:butu|kdebtmanagement)|vanserge|will(?:clark|iamsimon)|xianglongdai))\d+\@yahoo\.com$/i
+
+header    __REPTO_CHN_FREEM             Reply-To =~ /\@(?:sina|aliyun)\.com/i
+
+header    __REPTO_RUS_FREEM             Reply-To =~ /\@mail\.ru/i
+
+if !((version >= 3.003000))
+  meta        __RP_MATCHES_RCVD      0
+endif
+
+if (version >= 3.003000)
+if !plugin(Mail::SpamAssassin::Plugin::WLBLEval)
+  meta        __RP_MATCHES_RCVD      0
+endif
+endif
+
+if (version >= 3.003000)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+  header      __RP_MATCHES_RCVD      eval:check_mailfrom_matches_rcvd()
+endif
+endif
+
+body     __SCAM           /\bscam(?:m?e[dr])?s?\b/i
+
+body        __SECURITY_DEPT      /\bsecurity dep(?:artmen)?t\b/i
+
+header  __SENDER_BOT   ALL =~ /(?:not?\W?repl[yi]|bounce|contact|daemon|subscri|report|respon[ds]e?r?s?\b|\b(?:root|news|nobody|agent|(?:post|web)?master|manag|send(?:er|ing)?|out|(?:bot|web|www)\b))[^\@ >]{0,5}s?\@\w/i
+tflags  __SENDER_BOT   nice
+
+uri        __SENDGRID_REDIR            m,://u\d+\.ct\.sendgrid\.net/ls/click\?upn=,
+
+meta       __SENDGRID_REDIR_NOPHISH    __SENDGRID_REDIR && !__SENDGRID_REDIR_PHISH
+
+meta       __SENDGRID_REDIR_PHISH      __SENDGRID_REDIR && ( __PDS_FROM_NAME_TO_DOMAIN || T_FORGED_RELAY_MUA_TO_MX || __TO_IN_SUBJ )
+
+body     __SHARE_IT       /\b(?:(?:share|allocate|teilen|parteger(?:ez|ons)?|partage)\s(?:th(?:e|is)|das|les?|des)\s(?:proceeds|funds?|money|balance|account|geld|compte|fonds)|partager(?:ez|ons)? (?:avec (?:vous|moi)|ratio|suivant un pourcentage))\b/i
+
+meta       __SHOPIFY_IMG_NOT_RCVD_SFY  __URI_IMG_SHOPIFY && !__HDR_RCVD_SHOPIFY
+
+meta        __SHORTENER_SHORT_SUBJ     __URL_SHORTENER && __SUBJ_SHORT 
+
+uri     __SHORT_URL    /^https?:\/\/[^\/]{3,6}\.\w\w\/[^\/]{3,8}\/?$/
+
+body        __SINGLE_WORD_LINE  /^\s?\S{1,60}\s?$/
+tflags      __SINGLE_WORD_LINE  multiple maxhits=2
+
+header      __SINGLE_WORD_SUBJ  Subject =~ /^\s*\S{1,60}\s*$/
+
+header      __SMIME_MESSAGE    Content-Type =~ /application\/pkcs7-mime;/i
+
+rawbody        __SPAN_BEG_TEXT     /[a-z]{2}<(?i:span)\s/
+tflags         __SPAN_BEG_TEXT     multiple maxhits=5
+
+rawbody        __SPAN_END_TEXT     /[^;>]<\/(?i:span)>[a-z]{3}/
+tflags         __SPAN_END_TEXT     multiple maxhits=5
+
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+  meta            __SPF_FULL_PASS         0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta            __SPF_FULL_PASS         (SPF_PASS && SPF_HELO_PASS)
+  tflags          __SPF_FULL_PASS         net
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+  meta            __SPF_RANDOM_SENDER     0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta            __SPF_RANDOM_SENDER     (SPF_HELO_PASS && !SPF_PASS)
+  tflags          __SPF_RANDOM_SENDER     net
+endif
+
+meta     __SPOOFED_FREEMAIL     !__NOT_SPOOFED && FREEMAIL_FROM
+tflags   __SPOOFED_FREEMAIL     net
+
+meta      __SPOOFED_FREEM_REPTO         __SPOOFED_FREEMAIL && FREEMAIL_REPLYTO
+tflags    __SPOOFED_FREEM_REPTO         net
+
+rawbody  __SPOOFED_URL m/<a\s[^>]{0,2048}\bhref=(?:3D)?.?(https?:[^>"'\# ]{8,29}[^>"'\# :\/?&=])[^>]{0,2048}>(?:[^<]{0,1024}<(?!\/a)[^>]{1,1024}>){0,99}\s{0,10}(?!\1)https?[^\w<]{1,3}[^<]{5}/i
+
+meta        __STATIC_XPRIO_OLE   __XPRIO && __RDNS_STATIC && __HAS_MIMEOLE
+
+body       __STAY_HOME                 /\b(?:going out of|leaving)(?: your)? (?:home|house|residence)\b/i
+
+body        __STOCK_TIP       /\bsto[ck]{2}\s?tip\b/i
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  rawbody   __STY_INVIS                   /\bstyle\s*=\s*"[^">]{0,80}(?:(?<!-)visibility\s*:\s*hidden\s*|display\s*:\s*none\s*)[;"!]/i
+  tflags    __STY_INVIS                   multiple maxhits=6
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __STY_INVIS_1                 __STY_INVIS == 1
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __STY_INVIS_1_MINFP           __STY_INVIS_1 && !MIME_QP_LONG_LINE && !__MOZILLA_MSGID && !__FROM_ADDRLIST_PAYPAL 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __STY_INVIS_2                 __STY_INVIS > 1
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __STY_INVIS_3                 __STY_INVIS > 2
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __STY_INVIS_DIRECT            __STY_INVIS && __DOS_DIRECT_TO_MX_UNTRUSTED 
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __STY_INVIS_MANY              __STY_INVIS > 5
+endif
+
+header     __SUBJECT_EMPTY              Subject:raw =~ /^\s*$/
+
+meta       __SUBJECT_PRESENT_EMPTY      __HAS_SUBJECT && __SUBJECT_EMPTY
+
+header      __SUBJ_ADMIN         Subject =~ /\b(?:(?:sys)?admin(?:istrator)?|server|service|support)\b/i
+
+meta        __SUBJ_BRKN_WORDNUMS   __SUBJ_BROKEN_WORD && __TVD_SUBJ_NUM_OBFU
+
+header      __SUBJ_BROKEN_WORD     Subject =~ /\s(?!i[PTM][aoh][bcdou]|e[MP]a[is])[a-z]{1,3}[A-Z][a-z]{2}/
+tflags      __SUBJ_BROKEN_WORD     multiple maxhits=2
+
+meta        __SUBJ_DOM_ADMIN     __SUBJ_ADMIN && __PDS_FROM_NAME_TO_DOMAIN
+
+header         __SUBJ_HAS_FROM_1    ALL =~ /\nFrom:\s+(?:[^\n<]{0,80}<)?([^\n\s>]+)>?\n(?:[^\n]{1,100}\n)*Subject:\s+[^\n]{0,100}\1[>,:\s\n]/ism
+
+header         __SUBJ_HAS_TO_1      ALL =~ /\nTo:\s+(?:[^\n<]{0,80}<)?([^\n\s>,]+)>?\n(?:[^\n]{1,200}\n)*Subject:\s+[^\n]{0,100}\1[^a-z0-9]/ism
+
+header         __SUBJ_HAS_TO_2      ALL =~ /\nReceived:[^\n]{0,200} for <?([^\n\s>;]+)>?;(?:[^\n]+\n)*Subject:\s+[^\n]{0,100}\1[^a-z0-9]/ism
+
+header         __SUBJ_HAS_TO_3      ALL =~ /\nSubject:(?=[^\n]{0,200}@)[^\n]{0,200}([a-z][a-z0-9_.]{3,80}@(?:[a-z0-9_]{1,80}\.){1,4}[a-z]{2,30})(?:[^\n]+\n)*To:\s+[^\n]{0,100}\1[^a-z0-9.]/ism
+
+header  __SUBJ_NOT_SHORT       Subject =~ /^.{16}/
+
+header      __SUBJ_OBFU_PUNCT      Subject =~ /(?:[-~`"!@\#$%^&*()_+={}|\\\/?<>,.:;][a-z][-~`"!@\#$%^&*()_+={}|\\\/?<>,.:;\s]|(?:[a-z][~`"!@\#$%^&*()_+={}|\\?<>,.:;][a-z](?![a-z])))/i
+tflags      __SUBJ_OBFU_PUNCT      multiple maxhits=4
+
+header   __SUBJ_RE             Subject =~ /^(?:R[eE]|S[vV]|V[sS]|A[wW]):/
+
+header __SUBJ_SHORT    Subject =~ /^.{0,8}$/
+
+header    __SUBJ_UNNEEDED_HTML          Subject =~ /%[0-9a-f][0-9a-f]/i
+tflags    __SUBJ_UNNEEDED_HTML          multiple maxhits=3
+
+header     __SUBJ_USB_DRIVES          Subject =~ /\bUSB (?:[Ff]lash )?[Dd]rives\b/
+
+body    __SUBSCRIPTION_INFO    /\b(?:e?newsletters?|(?:un)?(?:subscrib|register)|you(?:r| are) subscri(?:b|ption)|opt(?:.|ing)?out\b|further info|you do ?n[o']t w(?:ish|ant)|remov\w{1,3}.{1,9}\blists?\b|to your white.?list)/i
+tflags  __SUBSCRIPTION_INFO    nice
+
+body     __SUM_OF_FUND    /\b(?:sum|release|freigabe)\s(?:of|der)\s(?:amount|fund|investment|mittel)\b/i
+
+body        __SURVEY           /\bsurvey\b/i
+
+body     __SURVIVORS      /\b(?:widow|son|daughter|husband|wife|brother|sister|attorney|vi(?:=FA|[\xfa]|[\xc3][\xba])va|esposa|veuve)\s(?:of|to|do|de)\s(?:the\s)?(?:late|falecido|finales|feu|d(?:e|=E9|[\xe9]|[\xc3][\xa9])funt|mr\.?)\s\w+\b/i
+
+body        __SUSPICION_LOGIN    /\bsuspicion login\b/i
+
+body        __SYSADMIN           /\b(?:help?[- ]?desk|(?:(?:web ?)?mail ?|sys(?:tem )?)admin(?:istrator)|local[- ]host|(?:support|upgrade|management|security|admin(?:istrat(?:or|ion))?) (?:team|center)|message from administrator|university mail server copyright|suporte t(?:=E9|[\xe9]|[\xc3][\xa9])cnico|administrador do sistema)\b/i
+
+header         __TB_MIME_BDRY_NO_Z   Content-Type =~ /boundary="-{8,}(?:[1-9]){16}/
+
+rawbody        __TENWORD_GIBBERISH    /^\s*(?:[a-z]+\s+){10}\.$/m
+tflags         __TENWORD_GIBBERISH    multiple maxhits=21
+
+body     __THEY_INHERIT   /\b(?:inherit\sth(?:e|is)\smoney|herede\sest[ea]\sdinero)\b/i
+
+body        __THIS_AD         /(?:\b|_)this[- _]+(?:ad(?:vert[i1l]sement)?|promo(?:tion)?)s?(?:\b|_)/i
+
+meta    __THREADED     (!__MISSING_REPLY && !__NO_INR_YES_REF) || (__MISSING_REPLY && !__MISSING_REF)
+tflags  __THREADED     nice
+
+header __THREAD_INDEX_GOOD  Thread-Index =~ m,^A[a-z0-9][A-Za-z0-9+/]{27}(?:[A-Za-z0-9+/]{20})?(?:[AQgw]==|[A-Za-z0-9+/]{7}|[A-Za-z0-9+/]{13}[AEIMQUYcgkosw048]=)$,
+
+header         __TO_ALL_NUMS        To:addr =~ /^\d+@/
+
+meta           __TO_EQ_FM_DIRECT_MX __TO_EQ_FROM && __DOS_DIRECT_TO_MX
+
+meta           __TO_EQ_FM_DOM_HTML_IMG  __TO_EQ_FROM_DOM && __HTML_LINK_IMAGE
+
+meta           __TO_EQ_FM_DOM_HTML_ONLY __TO_EQ_FROM_DOM && MIME_HTML_ONLY
+
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+  meta           __TO_EQ_FM_DOM_SPF_FAIL  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta           __TO_EQ_FM_DOM_SPF_FAIL  __TO_EQ_FROM_DOM && SPF_FAIL
+  tflags         __TO_EQ_FM_DOM_SPF_FAIL  net
+endif
+
+meta           __TO_EQ_FM_HTML_ONLY __TO_EQ_FROM && MIME_HTML_ONLY
+
+if !plugin(Mail::SpamAssassin::Plugin::SPF)
+  meta           __TO_EQ_FM_SPF_FAIL  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::SPF
+  meta           __TO_EQ_FM_SPF_FAIL  __TO_EQ_FROM && SPF_FAIL
+  tflags         __TO_EQ_FM_SPF_FAIL  net
+endif
+
+meta           __TO_EQ_FROM         (__TO_EQ_FROM_1 || __TO_EQ_FROM_2)
+describe       __TO_EQ_FROM         To: same as From:
+
+header         __TO_EQ_FROM_1       ALL =~ /\nFrom:\s+(?:[^\n<]{0,80}<)?([^\n\s>]+)>?\n(?:[^\n]{1,100}\n)*To:\s+(?:[^\n]{0,80}<)?\1[>,\s\n]/ism
+
+header         __TO_EQ_FROM_2       ALL =~ /\nTo:\s+(?:[^\n<]{0,80}<)?([^\n\s>]+)>?\n(?:[^\n]{1,100}\n)*From:\s+(?:[^\n]{0,80}<)?\1[>,\s\n]/ism
+
+meta           __TO_EQ_FROM_DOM     (__TO_EQ_FROM_DOM_1 || __TO_EQ_FROM_DOM_2)
+describe       __TO_EQ_FROM_DOM     To: domain same as From: domain
+
+header         __TO_EQ_FROM_DOM_1   ALL =~ /\nFrom:\s+[^\n@]{0,80}@([^\n\s>]+)>?\n(?:[^\n]{1,100}\n)*To:\s+[^\n]+@\1[>,\s\n]/ism
+
+header         __TO_EQ_FROM_DOM_2   ALL =~ /\nTo:\s+[^\n@]{0,80}@([^\n\s>]+)>?\n(?:[^\n]{1,100}\n)*From:\s+[^\n]+@\1[>,\s\n]/ism
+
+meta    __TO_EQ_FROM_USR       (__TO_EQ_FROM_USR_1 || __TO_EQ_FROM_USR_2) && !(__FROM_DNS || __FROM_INFO || __SENDER_BOT)
+describe __TO_EQ_FROM_USR      To: username same as From: username
+
+header  __TO_EQ_FROM_USR_1     ALL =~ /\nFrom:\s+(?:[^\n<]{0,80}<)?([^\n\s\@>]+)\@[^\n\s]+>?\n(?:[^\n]{1,100}\n)*To:\s+(?:[^\n]{0,80}<)?\1[\@>,\s\n]/ism
+
+header  __TO_EQ_FROM_USR_2     ALL =~ /\nTo:\s+(?:[^\n<]{0,80}<)?([^\n\s\@>]+)\@[^\n\s]+>?\n(?:[^\n]{1,100}\n)*From:\s+(?:[^\n]{0,80}<)?\1[\@>,\s\n]/ism
+
+meta    __TO_EQ_FROM_USR_NN    (__TO_EQ_FROM_USR_NN_1 || __TO_EQ_FROM_USR_NN_2) && !(__FROM_DNS || __FROM_INFO || __SENDER_BOT)
+describe __TO_EQ_FROM_USR_NN   To: username same as From: username sans trailing nums
+
+header  __TO_EQ_FROM_USR_NN_1  ALL =~ /\nFrom:\s+(?:[^\n<]{0,80}<)?([^\n\s\@>]{4,80}?)\d*\@[^\n\s]+>?\n(?:[^\n]{1,100}\n)*To:\s+(?:[^\n]{0,80}<)?\1\d*[\@>,\s\n]/ism
+
+header  __TO_EQ_FROM_USR_NN_2  ALL =~ /\nTo:\s+(?:[^\n<]{0,80}<)?([^\n\s\@>]{4,80}?)\d*\@[^\n\s]+>?\n(?:[^\n]{1,100}\n)*From:\s+(?:[^\n]{0,80}<)?\1\d*[\@>,\s\n]/ism
+
+meta    __TO_EQ_FROM_USR_NN_MINFP      __TO_EQ_FROM_USR_NN && !__TO_EQ_FROM_USR_1 && !__TO_EQ_FROM && !__TO_EQ_FROM_DOM && !__LCL__ENV_AND_HDR_FROM_MATCH && !__DKIM_EXISTS && !__NOT_SPOOFED && !__RCD_RDNS_SMTP && !__RCD_RDNS_MX_MESSY && !__THREADED
+
+meta           __TO_IN_SUBJ         (__SUBJ_HAS_TO_1 || __SUBJ_HAS_TO_2 || __SUBJ_HAS_TO_3)
+
+header     __TO_NO_ARROWS_R        To !~ /(?:>$|>,)/
+
+if !plugin(Mail::SpamAssassin::Plugin::FreeMail)
+  meta       __TO_NO_BRKTS_FREEMAIL  0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  meta       __TO_NO_BRKTS_FREEMAIL  __TO_NO_ARROWS_R && (FREEMAIL_FROM || FREEMAIL_REPLYTO)
+endif
+
+meta       __TO_NO_BRKTS_FROM_RUNON  __TO_NO_ARROWS_R && !__TO_UNDISCLOSED && __FROM_RUNON
+
+meta       __TO_NO_BRKTS_HTML_IMG  __TO_NO_ARROWS_R && !__TO_UNDISCLOSED && HTML_MESSAGE && __ONE_IMG
+
+meta       __TO_NO_BRKTS_HTML_ONLY __TO_NO_ARROWS_R && !__TO_UNDISCLOSED && MIME_HTML_ONLY
+
+meta       __TO_NO_BRKTS_MSFT       __TO_NO_ARROWS_R && !__TO_UNDISCLOSED && (__ANY_OUTLOOK_MUA || __MIMEOLE_MS)
+
+meta       __TO_NO_BRKTS_NORDNS_HTML    __TO_NO_BRKTS_HTML_ONLY && RDNS_NONE
+
+meta       __TO_NO_BRKTS_PCNT       __TO_NO_ARROWS_R && __FB_NUM_PERCNT
+
+meta       __TO_TOO_MANY_WFH_01        __TO_WAY_TOO_MANY && __WFH_01
+
+header     __TO_UNDISCLOSED        To =~ /\b(?:undisclosed[-\s]recipients|destinataires inconnus|destinatari nascosti)\b/i
+
+header      __TO_WAY_TOO_MANY      ToCc =~ /(?:,[^,]{1,90}){50}/
+
+body     __TO_YOUR_ACCT   /\b(?:(?:f[uo]nds|money|f[uo]ndo|dinheiro|bank)\s(?:\w{1,10}\s){0,4}(?:transfer(?:red)?|transferido|sont)|\d+)\s(?:to|para|en)\s(?:your?|sua|votre)\s(?:account|conta|pos+es+ion)/i
+
+body     __TO_YOUR_ORG       /\b(?:to|for) your organi[sz]ation\b/i
+
+header      __TO___LOWER       ALL =~ /to:\s\S{5}/
+
+body       __TRANSFORM_LIFE            /\b(transform|change) your (?:daily )?life(?:style)?\b/i
+
+body        __TRAVEL_AGENT     /\btravel\sagen(?:t|cy)\b/i
+
+body        __TRAVEL_BUSINESS  /\bbusiness\stravel\b/i
+
+body     __TRAVEL_ITINERARY  /(?:travel|ticketed|your|current) itinerary/i
+
+meta        __TRAVEL_MANY      (__TRAVEL_PROFILE + __TRAVEL_RESERV + __TRAVEL_BUSINESS + __TRAVEL_AGENT) > 2
+
+body        __TRAVEL_PROFILE   /\btravel+er\sprofile\b/i
+
+body        __TRAVEL_RESERV    /\b(?:reservation\s(?:confirmed|number)|travel\sreservations?)\b/i
+
+body     __TRTMT_DEFILED  /\bdefiled\sall\s(?:forms\sof\s)?(?:medical\s)?treatments?\b/i
+
+body     __TRUNK_BOX      /\b(?:(?:trunk|metallic|proof|security|consignment)\sbox(?:es)?|sealed\ssafe|une mallette m(?:e|=E9|[\xe9]|[\xc3][\xa9])tallique)\b/i
+
+body     __TRUSTED_CHECK  /\b(?:cashier'?s?|certified)\sche(?:ck|que)/i
+
+header __TT_BROKEN_VALIUM       Subject =~ /V[:^."%()*\[\\]?A[:^."%()*\[\\]?L[:^."%()*\[\\]?I[:^."%()*\[\\]?U[:^."%()*\[\\]?M/i
+
+header __TT_BROKEN_VIAGRA       Subject =~ /V[:^."%()*\[\\]?I[:^."%()*\[\\]?A[:^."%()*\[\\]?G[:^."%()*\[\\]?R[:^."%()*\[\\]?A/i
+
+header __TT_OBSCURED_VALIUM     Subject =~ /(v|V|\\\/)(a|A|\(a\)|4|@)(l|L|\|)(i|I|1|\xef|\|)(u|U|\(u\))(m|M)/
+
+header __TT_OBSCURED_VIAGRA     Subject =~ /(v|V|\\\/)(i|I|1|\xef|\|)(a|A|\(a\)|4|@)(g|G)(r|R)(a|A|\(a\)|4|@)/
+
+header __TT_VALIUM              Subject =~ /VALIUM/i
+
+header __TT_VIAGRA              Subject =~ /VIAGRA/i
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __TVD_FW_GRAPHIC_ID1 Content-Id =~ /<[0-9a-f]{12}(?:\$[0-9a-f]{8}){2}\@/
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __TVD_MIME_ATT_AOPDF Content-Type =~ /^application\/octet-stream.*\.pdf/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __TVD_MIME_ATT_AP    Content-Type =~ /^application\/pdf/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __TVD_MIME_ATT_TP    Content-Type =~ /^text\/plain/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+mimeheader __TVD_OUTLOOK_IMG    Content-Id =~ /<image\d+\.(?:gif|jpe?g|png)\@/
+endif
+
+body __TVD_PH_BODY_01          /\baccount .{0,20}placed? [io]n restricted status/i
+
+body __TVD_PH_BODY_02          /\brecords (?:[a-z_,-]+ )+?(?:feature|(?:a|re)ward)/i
+
+body __TVD_PH_BODY_03          /\byou(?:'ve| have) been (?:[a-z_,-]+ )+?payment/i
+
+body __TVD_PH_BODY_04          /\bfunds? (?!transfer from)(?!from)(?!in)(?!via)(?:[a-z_,-]+ )+?to your (?:[a-z_,-]+ )*?account/i
+
+body __TVD_PH_BODY_05          /\bthis is (?:[a-z_,-]+ )+?protect (?:[a-z_,-]+ )+?your/i
+
+body __TVD_PH_BODY_06          /Dear [a-z]+ bank (?:member|customer)/i
+
+body __TVD_PH_BODY_07          /\bguarantee the safety of your (?:[a-z_,-]+ )*?account/i
+
+body __TVD_PH_BODY_08          /\bmultiple password failures/i
+
+body __TVD_PH_BODY_ACCOUNTS_POST       /\b(?:(?:[dr]e-?)?activat[a-z]*|(?:re-?)?validate|secure|restore|confirm|update|suspend) (?!your)(?:[a-z_,-]+ )+?accounts?\b/i
+
+body __TVD_PH_BODY_ACCOUNTS_PRE                /\baccounts? (?:[a-z_,-]+ )+?(?:record[a-z]*|suspen[a-z]+|notif(?:y|ication)|updated|verifications?|credited)\b/i
+
+meta __TVD_PH_BODY_META                __TVD_PH_BODY_01 || __TVD_PH_BODY_02 || __TVD_PH_BODY_03 || __TVD_PH_BODY_04 || __TVD_PH_BODY_05 || __TVD_PH_BODY_06 || __TVD_PH_BODY_07 || __TVD_PH_BODY_08
+
+header __TVD_PH_SUBJ_00                Subject =~ /\brewards? survey\b/i
+
+header __TVD_PH_SUBJ_02                Subject =~ /\byour payment has been sent\b/i
+
+header __TVD_PH_SUBJ_04                Subject =~ /\baccounts? profile\b/i
+
+header __TVD_PH_SUBJ_15                Subject =~ /\binvestment for (?:[a-z_,-]+ )*?to(?:morrow|day)\b/i
+
+header __TVD_PH_SUBJ_17                Subject =~ /\bremove limitations?\b/i
+
+header __TVD_PH_SUBJ_18                Subject =~ /\bsecurity (?:[a-z_,-]+ )*?changes\b/i
+
+header __TVD_PH_SUBJ_19                Subject =~ /\bmessage (?:[a-z_,-]+ )*?bank\b/i
+
+header __TVD_PH_SUBJ_29                Subject =~ /^notice(?::|[\s\W]*$)/i
+
+header __TVD_PH_SUBJ_31                Subject =~ /\bsecurity (?:[a-z_,-]+ )*?verification\b/i
+
+header __TVD_PH_SUBJ_36                Subject =~ /\bconsumer notice\b/i
+
+header __TVD_PH_SUBJ_37                Subject =~ /\bvalued member[a-z]*\b/i
+
+header __TVD_PH_SUBJ_38                Subject =~ /\bonline bank[a-z]*\b/i
+
+header __TVD_PH_SUBJ_39                Subject =~ /\bonline department\b/i
+
+header __TVD_PH_SUBJ_41                Subject =~ /\bunusual activity\b/i
+
+header __TVD_PH_SUBJ_52                Subject =~ /\b(?:account|online) profile\b/i
+
+header __TVD_PH_SUBJ_54                Subject =~ /\bun-?authorized access(?:es)?\b/i
+
+header __TVD_PH_SUBJ_56                Subject =~ /\brespond now\b/i
+
+header __TVD_PH_SUBJ_58                Subject =~ /\bbilling service\b/i
+
+header __TVD_PH_SUBJ_59                Subject =~ /\bquestion from (?:[a-z_,-]+ )*?member\b/i
+
+header __TVD_PH_SUBJ_ACCESS_POST       Subject =~ /\b(?:(?:re-?)?activat[a-z]*|secure|verify|restore|flagged|limited|unusual|report|notif(?:y|ication)|suspen(?:d|ded|sion)) (?:[a-z_,-]+ )*?access\b/i
+
+meta __TVD_PH_SUBJ_META                __TVD_PH_SUBJ_00 || __TVD_PH_SUBJ_02 || __TVD_PH_SUBJ_04 || __TVD_PH_SUBJ_15 || __TVD_PH_SUBJ_17 || __TVD_PH_SUBJ_18 || __TVD_PH_SUBJ_19 || __TVD_PH_SUBJ_29 || __TVD_PH_SUBJ_31 || __TVD_PH_SUBJ_36 || __TVD_PH_SUBJ_37 || __TVD_PH_SUBJ_38 || __TVD_PH_SUBJ_39 || __TVD_PH_SUBJ_41 || __TVD_PH_SUBJ_52 || __TVD_PH_SUBJ_54 || __TVD_PH_SUBJ_56 || __TVD_PH_SUBJ_58 || __TVD_PH_SUBJ_59 || __TVD_PH_SUBJ_ACCESS_POST
+
+meta        __TVD_SPACE_ENCODED    (__TVD_SPACE_RATIO && __SUBJECT_ENCODED_B64 && !__SUBJECT_UTF8_B_ENCODED)
+
+if !plugin(Mail::SpamAssassin::Plugin::BodyEval)
+  meta      __TVD_SPACE_RATIO      0
+endif
+
+header      __TVD_SUBJ_NUM_OBFU    Subject =~ /[a-z]{3,}\d+[a-z]{2,}/i
+
+meta     __T_PDS_MSG_512 (__KAM_BODY_LENGTH_LT_512 || __HTML_LENGTH_512 || __PDS_QP_512)
+
+header   __UA_GNUS             User-Agent =~ /^Gnus/
+
+header   __UA_KMAIL            User-Agent =~ /^KMail/
+
+header   __UA_KNODE            User-Agent =~ /^KNode/
+
+header   __UA_MOZ5             User-Agent =~ /^Mozilla\/5/
+
+header   __UA_MSOEMAC          User-Agent =~ /^Microsoft-Outlook-Express-Mac/
+
+header         __UA_MSOMAC           User-Agent =~ /^Microsoft-MacOutlook\/(?:\d+\.){3}/
+
+header   __UA_MUTT             User-Agent =~ /^Mutt/
+
+header   __UA_OPERA7           User-Agent =~ /^Opera7/
+
+header   __UA_PAN              User-Agent =~ /^Pan/
+
+header   __UA_XNEWS            User-Agent =~ /^Xnews/
+
+body        __UC_GIBB_OBFU     /\b[A-Za-z][a-z]{0,20}[,;)]?\s[A-Z]{16,}[a-z]?\s[A-Za-z][a-z]{1,15}\b/
+tflags      __UC_GIBB_OBFU     multiple maxhits=2
+
+body     __UN             /\bunited\snations?\b/i
+
+meta       __UNDISC_FREEM              __TO_UNDISCLOSED && __freemail_replyto 
+
+meta       __UNDISC_MONEY              __TO_UNDISCLOSED && (__ADVANCE_FEE_2_NEW || LOTS_OF_MONEY)
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body       __UNICODE_OBFU_ASC         /[a-z0-9\s](?:\xd0[\xb0\xb5\xbe]|\xd1[\x80\x81])+[a-z0-9]{1,8}(?:\xd0[\xb0\xb5\xbe]|\xd1[\x80\x81])+[a-z0-9\s]/i
+  tflags     __UNICODE_OBFU_ASC         multiple maxhits=10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __UNICODE_OBFU_ASC_MANY    __UNICODE_OBFU_ASC > 9
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  body       __UNICODE_OBFU_ZW          /[a-z0-9\s](?:\x9d|\xe2\x80[\x8b\x8c\x8d]|\xef\xbb\xbf)+(?!\s)[a-z0-9\s]{1,8}(?:\x9d|\xe2\x80[\x8b\x8c\x8d]|\xef\xbb\xbf)+[a-z0-9\s]/i
+  tflags     __UNICODE_OBFU_ZW          multiple maxhits=10
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __UNICODE_OBFU_ZW_10       __UNICODE_OBFU_ZW > 9
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __UNICODE_OBFU_ZW_2        __UNICODE_OBFU_ZW > 1
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __UNICODE_OBFU_ZW_3        __UNICODE_OBFU_ZW > 2
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta       __UNICODE_OBFU_ZW_5        __UNICODE_OBFU_ZW > 4
+endif
+
+body    __UNSUB_EMAIL  /\b(?:(?:un)?subscri(?:ber?|ptions?)|abuses?|opt(?:ing)?.?out)\b[-a-z_0-9.+=]{0,60}\@[a-z0-9][-a-z_0-9.]{4,20}(?:[^a-z_0-9.-]|$)/i
+tflags  __UNSUB_EMAIL  nice
+
+uri     __UNSUB_LINK   /\b(?:(?:un)?subscri(?:ber?|ptions?)|abuses?|opt(?:ing)?.?out)\b/i
+tflags  __UNSUB_LINK   nice
+
+body        __UPGR_MAILBOX       /\b(?:up(?:g[ra]+d(?:e|ing)|date) (?:(?:[hw]as|and)\s(?:[a-z]+\s){1,5})?(?:o[nf] )?(?:your )?(?:mail\s?box|(?:web ?|e-?)mail)|(?:web ?|e-?)mail Upgrade cuenta|atualiz(?:e|ar) (?:a|sua) caixa de correio|click\S{0,10} (?:here(?:[:\.\s]{0,5}\S{0,10}http\S{10,80})?|below)(?: link)? to (?:(?:complete|finish|increase) )?(?:(?:the|this|your)\s)?(?:up(?:date|grade)|(?:web ?|e-?)?mail(?:\s?box)? (?:size|quota|limit))|utrzymania aktywnego konta|request (?:for )additional storage|you (?:have )?(?:failed|refused) to up(?:date|grade))\b/i
+
+uri         __UPPERCASE_URI        /^[^:A-Z]+[A-Z]/
+
+uri            __URI_12LTRDOM      m,://(?:[^./]+\.)*[a-z]{12}\.[^./]+/,i
+
+uri        __URI_ADOBESPARK            m,https?://branchlink\.adobespark\.com/,i
+
+uri        __URI_AZURE_CLOUDAPP        m,://(?:[^./]+\.)+cloudapp\.azure\.com/,
+
+uri        __URI_DASHGOVEDU            m,://[^/]*-(?:gov|edu)\.com/,i
+
+uri         __URI_DATA         /^data:(?!image\/)[a-z]/i
+
+uri         __URI_DBL_DOM      m,^https?://[^.]+\.(?!amazon\.com)([^/]+)/.*https?://[^.]+\.\1/,i
+
+uri         __URI_DOM_DOTDOT      m,://[^/]+\.\.,
+
+uri        __URI_DOTEDU                m;^https?://(?:[^./]+\.)+edu/;i
+
+meta       __URI_DOTEDU_ENTITY         __URI_DOTEDU && __AC_HTML_ENTITY_BONANZA_SHRT_RAW 
+
+uri        __URI_DOTGOV                m;^https?://(?:[^./]+\.)+gov/;i
+
+uri         __URI_DOTTY_HEX            /(?:\.[0-9a-f]{2}){30}/
+
+uri            __URI_DQ_UNSUB   m;^[a-z]+://(?:\d+\.){3}\d+/.*unsubscribe;i
+
+uri        __URI_FIREBASEAPP           m,://[^./]+\.firebaseapp\.com/,
+
+uri         __URI_GOOGLE_DOC     m,^https?://docs\.google\.com/(?:[^/]+/)*(?:view(?:form)?\?(?:[^&]+&)*(?:id|formkey|usp)=|document/),i
+
+uri         __URI_GOOGLE_DRV     m,^https?://(?:drive\.google|googledrive)\.com/,i
+
+uri            __URI_GOOGLE_PROXY     m;^https?://[^.]+\.googleusercontent\.com/proxy/;i
+
+uri        __URI_GOOG_STO_HTML        m,^https?://(?:firebase)?storage\.googleapis\.com/.*\.html?(?:$|\?),i
+tflags     __URI_GOOG_STO_HTML        multiple maxhits=5
+
+uri        __URI_GOOG_STO_IMG         m,^https?://storage\.googleapis\.com/.*\.(?:png|jpe?g|gif)$,i
+tflags     __URI_GOOG_STO_IMG         multiple maxhits=5
+
+uri        __URI_HEX_IP                m;://0x[0-9A-F]{8,}[:/];i
+
+uri        __URI_IMG_ALICDN            m,//(?:[^/.]+\.)*alicdn\.com/.+\.(?:jpe?g|gif|png),i
+
+uri        __URI_IMG_AMAZON            m,://[^/?]+\.(?:ssl-)?images-amazon\.com/,i
+
+uri        __URI_IMG_CHANNYPIC         m,://www\.channypicture\.com/pic/,i
+
+uri        __URI_IMG_EBAY              m,://[^/?]+\.ebayimg\.com/,i
+
+uri        __URI_IMG_JOOMCDN           m,://img\.joomcdn\.net/,i
+
+uri        __URI_IMG_NEWEGG            m,://[^/?]+\.neweggimages\.com/,i
+
+uri        __URI_IMG_SHOPIFY           m,://cdn\.shopify\.com/.+\.(?:jpe?g|gif|png),i
+
+uri        __URI_IMG_STATICBG          m,://imgaz\.staticbg\.com/images/,i
+
+uri        __URI_IMG_WALMART           m,://[^/?]+\.walmartimages\.com/,i
+
+uri        __URI_IMG_WISH              m,://contestimg\.wish\.com/,i
+
+uri        __URI_IMG_WP_REDIR          m;://i[02]\.wp\.com/.*\.(?:jpe?g|gif|png)$;i
+
+uri        __URI_IMG_YTIMG             m,://[^/?]+\.ytimg\.com/,i
+
+uri        __URI_LONG_REPEAT           m;(?:://|@)(?:\w+\.)*(\w{10,}\.)\1;i
+
+uri         __URI_MAILTO              /^mailto:/i
+tflags      __URI_MAILTO              multiple maxhits=16
+
+uri            __URI_MONERO     /buy-monero/i
+
+meta      __URI_ONLY_MSGID_MALF         __BODY_URI_ONLY && __MSGID_NOFQDN2
+
+meta        __URI_PHISH    __HAS_ANY_URI && !__URI_GOOGLE_DOC && !__URI_GOOG_STO_HTML && (__EMAIL_PHISH || __ACCT_PHISH)
+
+uri        __URI_PHP_REDIR             m;/redirect\.php\?;i
+
+uri         __URI_TRY_USME    m,^https?://(?:try|start|get|save|check|act|compare|join|learn|request|visit|my)[^.]*\.[^/]+\.(?:us|me|mobi|club)\b,i
+
+uri        __URI_WEBAPP                m,://[^./]+\.web\.app/,
+
+uri         __URI_WPADMIN      m,/wp-admin/\w+/,i
+
+uri         __URI_WPCONTENT    m,/wp-content/.*\.(?:php|html?)\b,i
+
+uri         __URI_WPDIRINDEX   m,/wp-(?:content|includes)/.*/$,i
+
+uri         __URI_WPINCLUDES   m,/wp-includes/.*\.(?:php|html?)\b,i
+
+uri            __URL_BTC_ID     m;[/.](?:[13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[acdefghjklmnpqrstuvwxyz234567890]{30,90})(?:/|$);
+
+uri      __URL_LTC_ID     m;[/.][LM3][a-km-zA-HJ-NP-Z1-9]{26,33}(?:/|$);
+
+uri     __URL_SHORTENER        /^https?:\/\/(?:bit\.ly|bit\.do|buff\.ly|tinyurl\.com|ow\.ly|owl\.li|is\.gd|tumblr\.com|mysp\.ac|formspring\.me|ff\.im|youtu\.be|tl\.gd|plurk\.com|migre\.me|j\.mp|cli\.gs|goo\.gl|goo\.io|yfrog\.com|lnk\.ms|su\.pr|fb\.me|alturl\.com|wp\.me|ping\.fm|chatter\.com|post\.ly|twurl\.nl|tiny\.cc|4sq\.com|ustre\.am|short\.to|u\.nu|flic\.kr|budurl\.com|digg\.com|twitvid\.com|gowal\.la|om\.ly|justin\.tv|icio\.us|p\.gs|loopt\.us|tcrn\.ch|xrl\.us|wpo\.st|bkite\.com|t\.cn|t\.co|x\.co|hop\.kz|urla\.ru|fw\.to|back\.ly|ecs\.page\.link|cc\.uz|smarturl\.it|s\.apache\.org)\/[^\/]{3}\/?/
+
+header __USING_VERP1 Return-Path =~ /[+-].*=/
+
+header __VACATION Subject =~ /\b(?:vacatio|away|out.of.offic|auto.?re|confirm)/i
+tflags __VACATION nice
+
+body        __VALIDATE_MAILBOX   /\b(?:(?:re-?)?(?:valida(?:te|r)|confirm|set)(?:\S?(?:increase|raise))? (?:your|(?:a )?sua) (?:mail\s?box|(?:e-?)?mail quota|caixa)|confirmar (?:que )?a sua conta (?:de e-?mail|ainda est(?:=E1|[\xe1]|[\xc3][\xa1]) ativa)|wprowadz dane konta ponizej|utrzymania aktywnego konta e-?mail|weryfikacji konta|you (?:have )?(?:failed|refused) to (?:verify|validate)|(?:e-?mail|confirm) verification|verify k?now|logs?in below to (\S+\s){0,10}(?:download|release|retrieve) your (?:messages|e?-?mails))\b/i
+tflags      __VALIDATE_MAILBOX   multiple maxhits=2
+
+body        __VALIDATE_MBOX_SE   /(?:\b=E5|[\xe5]|[\xc3][\xa5])terst(?:=E4|\xe4|[\xc3][\xa4])lla ditt konto\b/i
+
+body        __VERIFY_ACCOUNT     /(?:confirm|updated?|verif(?:y|ied)) (?:your|the) (?:(?:account|current|billing|personal|online)? ?(?:records?|information|account|identity|access|data|login)|"?[^\@\s]+\@\S+"? (?:account|mail ?box)|confirm verification|verify k?now|Ihre Angaben .berpr.ft und best.tigt)/i
+tflags      __VERIFY_ACCOUNT     multiple maxhits=2
+
+meta        __VFY_ACCT_NORDNS    __VERIFY_ACCOUNT && __RDNS_NONE 
+
+if (version >= 3.004002)
+ifplugin Mail::SpamAssassin::Plugin::WLBLEval
+header   __VPSNUMBERONLY_TLD From:addr =~ /\@vps[0-9]{4,}\.[a-z]+$/i
+endif
+endif
+
+meta       __WALMART_IMG_NOT_RCVD_WAL  __URI_IMG_WALMART && !__HDR_RCVD_WALMART
+
+body        __WEBMAIL_ACCT       /\byour web ?mail account/i
+
+body       __WE_PAID                   /\bwe have (?:already )?(?:paid|sent|remitted|issued) \$?\d+(?:,\d+)* (?:thousand )?(?:dollars )?to our (?:users|subscribers|members|clients|affiliates|partners)\b/i
+
+meta       __WFH_01                    ( __PERFECT_BINARY + __WE_PAID + __MAKE_XTRA_DOLLAR + __BONUS_LAST_DAY + __PASSIVE_INCOME + __WITHOUT_EFFORT + __TRANSFORM_LIFE + __STAY_HOME + __RECEIVE_BONUS ) > 2
+
+body     __WIDOW          /\b(?:widow(?:e[rd])'?s?|veuve)\b/i
+
+body     __WILL_LEGAL     /\b(?:codicil|last\stestament|probate|executor|intestate|bequest|mandamus)\b/i
+
+body     __WIRE_XFR       /\b(?:wire|telegraph(?:ic)?|bank)\s?transfer/i
+
+body       __WITHOUT_EFFORT            /\bwith(?:out(?: a(?:ny)?| the)?| no)(?: great| special| extra)? effort\b/i
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  rawbody   __WORD_INVIS                  /<(?!style)[a-z]+\s[^>]{1,80}(?:font(?:-size)?\s*:\s*(?:0*[01](?:\.\d+)?(?:px|pt|Q|vw|vh|vmin)|0+(?:\.\d+)?(?:cm|mm|in|pc|em|ex|ch|rem|lh|vmax))\s*[;'a-z]|['"\s;]color\s*:\s*transparent\s*[;'])[^>]{0,80}>\w{1,20}</i
+  tflags    __WORD_INVIS                  multiple maxhits=6
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __WORD_INVIS_2                __WORD_INVIS > 1
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __WORD_INVIS_5                __WORD_INVIS > 5
+endif
+
+if can(Mail::SpamAssassin::Conf::feature_bug6558_free)
+  meta      __WORD_INVIS_MINFP            __WORD_INVIS && !__SURVEY && !MIME_QP_LONG_LINE && !__FB_TOUR && !__MSGID_GUID 
+endif
+
+header         __XEROXWORKCTR_MUA  X-Mailer =~ /^WorkCentre \D?\d[\d\.]\d+/
+
+meta     __XFER_LOTSA_MONEY      __XFER_MONEY && LOTS_OF_MONEY
+
+meta     __XFER_MONEY     (__WIRE_XFR || __TRUSTED_CHECK || __BANK_DRAFT || __MOVE_MONEY || __TO_YOUR_ACCT || __PAY_YOU || __GIVE_MONEY)
+
+header   __XM_APPLEMAIL                X-Mailer =~ /^Apple Mail/
+
+header   __XM_BALSA            X-Mailer =~ /^Balsa \d/
+
+header   __XM_CALYPSO          X-Mailer =~ /^Calypso/
+
+header     __XM_DIGITS_ONLY            X-Mailer =~ /^\s*\d+\s*$/
+
+header   __XM_FORTE            X-Mailer =~ /^Forte Agent \d/
+
+header   __XM_GNUS             X-Mailer =~ /^Gnus v/
+
+header     __XM_IPHONEMAIL             X-Mailer =~ /^iPhone Mail \([0-9A-F]{4,8}\)/
+
+header     __XM_LIGHT_HEAVY            X-Mailer =~ /\b(?:light|(?<!::)lite|standard|business|pro(?:fessional)?|educational|personal)\b/i
+
+header   __XM_MHE              X-Mailer =~ /^mh-e \d/
+
+header   __XM_MOZ4             X-Mailer =~ /^Mozilla 4/
+
+header   __XM_MSOE5            X-Mailer =~ /^Microsoft Outlook Express 5/
+
+header   __XM_MSOE6            X-Mailer =~ /^Microsoft Outlook Express 6/
+
+header __XM_MS_IN_GENERAL     X-Mailer =~ /\bMSCRM\b|Microsoft (?:CDO|Outlook|Office Outlook)\b/
+
+header __XM_OL_10_0_4115    X-Mailer =~ /^Microsoft Outlook, Build 10.0.4115$/
+
+header __XM_OL_28001441    X-Mailer =~ /^Microsoft Outlook Express 6.00.2800.1441$/
+
+header __XM_OL_28004682    X-Mailer =~ /^Microsoft Outlook Express 6.00.2800.4682$/
+
+header __XM_OL_48072300    X-Mailer =~ /^Microsoft Outlook Express 5.50.4807.2300$/
+
+header __XM_OL_4_72_2106_4  X-Mailer =~ /^Microsoft Outlook Express 4.72.2106.4$/
+
+header __XM_OUTLOOK_EXPRESS    X-Mailer =~ /^Microsoft Outlook Express \d/
+
+header      __XM_PHPMAILER_FORGED  X-Mailer =~ /PHPMailer\s.*version\D+$/
+
+header     __XM_RANDOM                 X-Mailer =~ /q(?!q?mail|boxmail|\d|[-\w]*=+;)[^u]/i
+
+header   __XM_SKYRI            X-Mailer =~ /^SKYRiXgreen/
+
+header   __XM_SQRLMAIL         X-Mailer =~ /^SquirrelMail/
+
+header   __XM_SYLPHEED         X-Mailer =~ /^Sylpheed/
+
+header     __XM_UC_ONLY                X-Mailer =~ /^[^a-z]+$/
+
+header   __XM_VM               X-Mailer =~ /^VM \d/
+
+header   __XM_WWWMAIL          X-Mailer =~ /^WWW-Mail \d/
+
+header   __XM_XIMEVOL          X-Mailer =~ /^Ximian Evolution/
+
+meta        __XPRIO_MINFP      __XPRIO && !__CT_ENCRYPTED && !ALL_TRUSTED && !__HAS_ERRORS_TO && !__HAS_IMG_SRC && !__RCD_RDNS_MAIL_MESSY && !__VIA_ML && !__PHPMAILER_MUA && !__AC_TINY_FONT && !__HAS_PHP_SCRIPT && !__DOS_HAS_LIST_UNSUB && !__HAS_IMG_SRC_ONECASE && !__NAKED_TO && !__HAS_THREAD_INDEX && !__HAS_TNEF && !__HAS_SENDER && !__UNPARSEABLE_RELAY_COUNT && !__PDS_RDNS_MTA && !__RCD_RDNS_SMTP_MESSY && !__RCD_RDNS_MX_MESSY && !__TO___LOWER && !__FROM_WORDY && !__RP_MATCHES_RCVD && !__DKIM_EXISTS && !__FROM_WEB_DAEMON && !__RDNS_SHORT && !__L_BODY_8BITS 
+
+meta        __XPRIO_SHORT_SUBJ __XPRIO_MINFP && __SUBJ_SHORT 
+
+body     __YOUR_BANK      /\byour?\s(?:full\s)?bank(?:ing)?\sinformations?\b/i
+
+body     __YOUR_CONSIGNMENT     /\b(?:received?|pa(?:y|id)|sen[dt]|h[oe]ld|delay(?:ed)?|impound(?:ed)?|released?|ship(?:ped)?)\syour(?:\s\w+)?\sconsignment\b/i
+
+body     __YOUR_FUND      /\b(?:your|ihr)\s(?:unpaid\s|win+ing\s|ap+roved\s|foreign\s|overdue\s|outstanding\s|contract\s|inheritance\s|nicht\sausbezahlten\s){0,3}(?:fund|f\su\sn\sd|payment|geld)\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __YOUR_ONAN            /\b(?:your?|ihrer)\s(?:ma+s+t+[ur]+b+a+t+(?:ion|ing|e)(?:svideo)?|onanism|solitary\ssex|hand\sfucking|Selbstbefriedigung|(?:pleasur(?:e|ing)|satisfy(?:ing)?)\syourself)\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __YOUR_ONAN            /(?:^|\s)(?:<Y><O><U><R>?|<I><H><R><E><R>)\s(?:<M>+<A>+<S>+<T>+(?:<U>|<R>)+<B>+<A>+<T>+(?:<I><O><N>|<I><N><G>|<E>)(?:<S><V><I><D><E><O>)?|<O><N><A><N><I><S><M>|<S><O><L><I><T><A><R><Y>\s<S><E><X>|<H><A><N><D>\s<F><U><C><K><I><N><G>|<S><E><L><B><S><T><B><E><F><R><I><E><D><I><G><U><N><G>|(?:<P><L><E><A><S><U><R>(?:<E>|<I><N><G>)|<S><A><T><I><S><F><Y>(?:<I><N><G>)?)\s<Y><O><U><R><S><E><L><F>)/i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __YOUR_PASSWORD        /\b(?:your|(?:change|modify|update|reset|alter|fix)\sthe)\s(?:account\s|e-?mail\s)?(?:pass[-\s_]?word|pswd)\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __YOUR_PASSWORD        /(?:^|\s)(?:<Y><O><U><R>|(?:<C><H><A><N><G><E>|<M><O><D><I><F><Y>|<U><P><D><A><T><E>|<R><E><S><E><T>|<A><L><T><E><R>|<F><I><X>)\s<T><H><E>)\s(?:<A><C><C><O><U><N><T>\s|<E>-?<M><A><I><L>\s)?(?:<P><A><S><S>[-\s_]?<W><O><R><D>|<P><S><W><D>\s)/i
+endif
+
+body     __YOUR_PERM      /\byour\spermission\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __YOUR_PERSONAL        /\b(?:your\s(?:personal|private|social\scontact|address|friends)\s(?:info(?:rmation)?|data|details|book|secrets)|all\s(?:of\s)?your\s(?:files|contacts|secrets|correspondence))\b/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __YOUR_PERSONAL        /(?:^|\s)(?:<Y><O><U><R>\s(?:<P><E><R><S><O><N><A><L>|<P><R><I><V><A><T><E>|<S><O><C><I><A><L>\s<C><O><N><T><A><C><T>|<A><D><D><R><E><S><S>|<F><R><I><E><N><D><S>)\s(?:<I><N><F><O>(?:<R><M><A><T><I><O><N>)?|<D><A><T><A>|<D><E><T><A><I><L><S>|<B><O><O><K>|<S><E><C><R><E><T><S>)|<A><L><L>\s(?:<O><F>\s)?<Y><O><U><R>\s(?:<F><I><L><E><S>|<C><O><N><T><A><C><T><S>|<S><E><C><R><E><T><S>|<C><O><R><R><E><S><P><O><N><D><E><N><C><E>))[\s\.,]/i
+endif
+
+body     __YOUR_PROFIT    /\byour?\sprofit/i
+
+if !plugin(Mail::SpamAssassin::Plugin::ReplaceTags)
+  body           __YOUR_WEBCAM          /\b(?:from|your|with|and|on)\s(?:(?:screen|desktop|microphone)\sand\s|own\s)?(?:web[-\s]?|front[-\s]?|network\s|your\s)camer+a/i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::ReplaceTags
+  body           __YOUR_WEBCAM          /(?:^|\s)(?:<F><R><O><M>|<Y><O><U><R>|<W><I><T><H>|<A><N><D>|<O><N>)\s(?:(?:<S><C><R><E><E><N>|<D><E><S><K><T><O><P>|<M><I><C><R><O><P><H><O><N><E>)\s<A><N><D>\s|<O><W><N>\s)?(?:<W><E><B>[-\s]?|<F><R><O><N><T>[-\s]?|<N><E><T><W><O><R><K>\s|<Y><O><U><R>\s)<C><A><M><E><R>+<A>/i
+endif
+
+body     __YOU_ASSIST     /\b(?:your\sas+istan(?:ce|t)|votre\s(?:as+istance|aide))\b/i
+
+body     __YOU_INHERIT    /\byour\s[a-z\s]{0,30}inherit+ance\b/i
+
+meta     __YOU_WON       __YOU_WON_01 || __YOU_WON_02 || __YOU_WON_03 || __YOU_WON_04 || __HAS_WON_01 || (__YOU_WON_05 && (__MOVE_MONEY || __GIVE_MONEY))
+
+body     __YOU_WON_01    /\byou(?:r|'re|'ve|'ll|\shave|\sdid)?\s(?:e-?mail\s)?(?:\w+\s){0,2}(?:a\s)?w[io]n+(?:er|ing)?(?!\xe2\x80\x99t)(?![`'\x92]t)\b/i
+
+body     __YOU_WON_02    /\bw[io]n\s(?:(?:for|by)\s)?your?\b/i
+
+body     __YOU_WON_03    /\b(?:your?|win+ing|win+ers?|beneficiaries|participants?|individuals?|address(?:es)?|accounts?|emails?)(?:\s[-a-z\s]{4,40})?\s(?:w(?:ere|as)|ha(?:ve|s) be(?:en)?)\s(?:automatically\s)?(?:(?:randomly|raffly)\s(?:selected|cho+sen|cho+sing|picked)|(?:selected|cho+sen|cho+sing|picked)\s(?:[a-z\s]{2,40}?\srandom(?:ly)?|online|lottery|computer\s(?:ballot|wahlgang))|(?:selected|cho+sen|cho+sing|picked)(?:\sas?|\sthe){0,3}\swin+er)/i 
+
+body     __YOU_WON_04    /\bqu[ei]\s?(?:vous (?:[\xc3][\xaa]|=C3=AA|[\xea]|e)tes\s?gagnant|en\scons(?:e|=E9|[\xe9]|[\xc3][\xa9])quence\sgagne)\b/i
+
+body     __YOU_WON_05    /\bI won(?!\xe2\x80\x99t)(?![`'\x92]t)\b/i
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __ZIP_ATTACH_MT     0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __ZIP_ATTACH_MT     Content-Type =~ m,\bapplication/(?:zip|x-(?:zip-)?compress(?:ed)?)\b,i
+endif
+
+if !plugin(Mail::SpamAssassin::Plugin::MIMEHeader)
+  meta         __ZIP_ATTACH_NOFN   0
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::MIMEHeader
+  mimeheader   __ZIP_ATTACH_NOFN   Content-Type =~ m,\bapplication/(?:zip|x-(?:zip-)?compress(?:ed)?)[;\s]*$,i
+endif
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+  header     __freemail_mailreplyto      eval:check_freemail_header('Mail-Reply-To')
+endif
+
+body           __hk_bigmoney           /(?:EURO?|USD?|GBP|CFA|\&\#163;|[\xa3\xa4]|\$|sum of).{0,4}(?:[0-9]{3}[^0-9a-z]?[0-9]{3}|[0-9.,]{1,4}(?: ?M\b| ?(?:de )?Mil))/i
+
+body           __hk_win_0              /\byour? e-?mail just w[oi]n/i
+
+body           __hk_win_2              /\battn.{0,10}winner/i
+
+body           __hk_win_3              /\bhappily aa?nnounce/i
+
+body           __hk_win_4              /\bpleas(?:ure|ed) to inform/i
+
+body           __hk_win_5              /\b(?:notice the|your) winning/i
+
+body           __hk_win_7              /\bcongratulations? to your/i
+
+body           __hk_win_8              /\bunexpected luck/i
+
+body           __hk_win_9              /\blucky (?:nl )number/i
+
+body           __hk_win_a              /\bwinning (?:e-?mail|numbers|information)/i
+
+body           __hk_win_b              /\byour e-?mail (?:address )?(?:has )?w[io]n/i
+
+body           __hk_win_c              /\bune adresse e-?mail sur internet/i
+
+body           __hk_win_d              /\bcategory (?:\S{0,5} )?winner of our/i
+
+body           __hk_win_i              /\bfunds? transfer/i
+
+body           __hk_win_j              /\b(?:winning|ready for|sum) pay ?out/i
+
+body           __hk_win_l              /\b(?:make|file) (?:for )?your claim/i
+
+body           __hk_win_m              /\br.clamation de votre prix/i
+
+body           __hk_win_n              /\bcollect your prize/i
+
+body           __hk_win_o              /\bclarification and procedure/i
+
+ifplugin Mail::SpamAssassin::Plugin::FreeMail
+header   __smf_freemail_hdr_replyto  eval:check_freemail_header('Reply-To:addr')
+endif
diff --git a/sa-updates/72_scores.cf b/sa-updates/72_scores.cf
new file mode 100644 (file)
index 0000000..eedd72d
--- /dev/null
@@ -0,0 +1,424 @@
+score ACCT_PHISHING_MANY                    2.999 2.999 2.999 2.999
+score AC_BR_BONANZA                         0.001 0.001 0.001 0.001
+score AC_DIV_BONANZA                        0.001 0.001 0.001 0.001
+score AC_FROM_MANY_DOTS                     3.000 2.999 3.000 2.999
+score AC_HTML_NONSENSE_TAGS                 1.999 1.999 1.999 1.999
+score AC_POST_EXTRAS                        1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS1               1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS10              1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS11              1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS12              1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS2               1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS3               1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS4               1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS8               1.000 1.000 1.000 1.000
+score AC_SPAMMY_URI_PATTERNS9               1.000 1.000 1.000 1.000
+score ADMITS_SPAM                           4.099 3.699 4.099 3.699
+score ADVANCE_FEE_2_NEW_FORM                1.000 1.000 1.000 1.000
+score ADVANCE_FEE_2_NEW_FRM_MNY             1.419 2.499 1.419 2.499
+score ADVANCE_FEE_2_NEW_MONEY               0.675 0.001 0.675 0.001
+score ADVANCE_FEE_3_NEW                     2.848 0.586 2.848 0.586
+score ADVANCE_FEE_3_NEW_FRM_MNY             0.001 1.606 0.001 1.606
+score ADVANCE_FEE_3_NEW_MONEY               2.999 2.899 2.999 2.899
+score ADVANCE_FEE_4_NEW                     2.550 2.149 2.550 2.149
+score ADVANCE_FEE_4_NEW_FRM_MNY             0.001 0.001 0.001 0.001
+score ADVANCE_FEE_4_NEW_MONEY               1.690 0.431 1.690 0.431
+score ADVANCE_FEE_5_NEW                     2.801 2.999 2.801 2.999
+score ADVANCE_FEE_5_NEW_FRM_MNY             0.001 0.001 0.001 0.001
+score ADVANCE_FEE_5_NEW_MONEY               0.001 0.001 0.001 0.001
+score AD_PREFS                              0.250 0.250 0.250 0.250
+score ALIBABA_IMG_NOT_RCVD_ALI              2.500 2.499 2.500 2.499
+score AMAZON_IMG_NOT_RCVD_AMZN              2.499 1.780 2.499 1.780
+score APP_DEVELOPMENT_FREEM                 1.000 1.000 1.000 1.000
+score APP_DEVELOPMENT_NORDNS                1.999 1.999 1.999 1.999
+score AXB_XMAILER_MIMEOLE_OL_024C2          0.001 0.001 0.001 0.001
+score AXB_XMAILER_MIMEOLE_OL_1ECD5          1.097 0.558 1.097 0.558
+score BIGNUM_EMAILS_FREEM                   0.001 0.001 0.001 0.001
+score BIGNUM_EMAILS_MANY                    2.999 2.999 2.999 2.999
+score BITCOIN_BOMB                          1.000 1.000 1.000 1.000
+score BITCOIN_DEADLINE                      0.001 0.001 0.001 0.001
+score BITCOIN_EXTORT_01                     0.001 0.714 0.001 0.714
+score BITCOIN_EXTORT_02                     1.000 1.000 1.000 1.000
+score BITCOIN_IMGUR                         3.499 3.499 3.499 3.499
+score BITCOIN_MALF_HTML                     3.499 3.499 3.499 3.499
+score BITCOIN_MALWARE                       2.021 0.001 2.021 0.001
+score BITCOIN_OBFU_SUBJ                     0.055 2.966 0.055 2.966
+score BITCOIN_ONAN                          2.599 2.999 2.599 2.999
+score BITCOIN_PAY_ME                        1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_01                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_02                       2.480 1.790 2.480 1.790
+score BITCOIN_SPAM_03                       1.000 1.911 1.000 1.911
+score BITCOIN_SPAM_04                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_05                       0.001 0.001 0.001 0.001
+score BITCOIN_SPAM_06                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_07                       3.499 3.499 3.499 3.499
+score BITCOIN_SPAM_08                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_09                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_10                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_11                       1.000 1.000 1.000 1.000
+score BITCOIN_SPAM_12                       1.000 1.000 1.000 1.000
+score BITCOIN_SPF_ONLYALL                   0.001 1.000 0.001 1.000
+score BITCOIN_XPRIO                         0.309 0.867 0.309 0.867
+score BITCOIN_YOUR_INFO                     2.113 0.001 2.113 0.001
+score BODY_EMPTY                            1.999 0.986 1.999 0.986
+score BODY_SINGLE_URI                       2.499 0.001 2.499 0.001
+score BODY_SINGLE_WORD                      0.245 0.964 0.245 0.964
+score BODY_URI_ONLY                         2.608 1.905 2.608 1.905
+score BOGUS_MIME_VERSION                    3.500 3.499 3.500 3.499
+score BOGUS_MSM_HDRS                        1.000 1.000 1.000 1.000
+score BOMB_FREEM                            1.999 1.373 1.999 1.373
+score BOMB_MONEY                            1.855 2.142 1.855 2.142
+score BTC_ORG                               1.000 1.000 1.000 1.000
+score BULK_RE_SUSP_NTLD                     1.000 1.000 1.000 1.000
+score CANT_SEE_AD                           1.000 1.000 1.000 1.000
+score CK_HELO_GENERIC                       0.249 0.250 0.249 0.250
+score COMMENT_GIBBERISH                     1.000 1.000 1.000 1.000
+score COMPENSATION                          1.126 1.000 1.126 1.000
+score CONTENT_AFTER_HTML                    2.499 2.499 2.499 2.499
+score CTE_8BIT_MISMATCH                     0.999 0.999 0.999 0.999
+score DAY_I_EARNED                          1.000 1.000 1.000 1.000
+score DEAR_BENEFICIARY                      0.001 0.001 0.001 0.001
+score DKIMWL_BL                             0.001 2.999 0.001 2.999
+score DKIMWL_BLOCKED                        0.001 0.001 0.001 0.001
+score DKIMWL_WL_HIGH                        0.001 -0.001 0.001 -0.001
+score DKIMWL_WL_MED                         0.001 -0.001 0.001 -0.001
+score DKIMWL_WL_MEDHI                       0.001 -1.000 0.001 -1.000
+score DOTGOV_IMAGE                          1.000 1.000 1.000 1.000
+score DSN_NO_MIMEVERSION                    1.999 1.999 1.999 1.999
+score DYNAMIC_IMGUR                         3.106 3.999 3.106 3.999
+score EBAY_IMG_NOT_RCVD_EBAY                2.320 2.999 2.320 2.999
+score ENCRYPTED_MESSAGE                     -1.000 -1.000 -1.000 -1.000
+score END_FUTURE_EMAILS                     2.100 1.571 2.100 1.571
+score ENVFROM_GOOG_TRIX                     1.000 1.000 1.000 1.000
+score FAKE_REPLY_A1                         3.099 2.600 3.099 2.600
+score FBI_MONEY                             1.000 1.000 1.000 1.000
+score FBI_SPOOF                             1.000 1.000 1.000 1.000
+score FILL_THIS_FORM                        1.199 0.001 1.199 0.001
+score FONT_INVIS_DIRECT                     1.445 2.946 1.445 2.946
+score FONT_INVIS_DOTGOV                     1.000 1.000 1.000 1.000
+score FONT_INVIS_HTML_NOHTML                1.759 1.631 1.759 1.631
+score FONT_INVIS_LONG_LINE                  1.000 1.000 1.000 1.000
+score FONT_INVIS_MSGID                      2.425 1.710 2.425 1.710
+score FONT_INVIS_NORDNS                     2.499 2.500 2.499 2.500
+score FONT_INVIS_POSTEXTRAS                 1.000 1.000 1.000 1.000
+score FORM_FRAUD                            0.999 0.999 0.999 0.999
+score FORM_FRAUD_3                          0.001 0.001 0.001 0.001
+score FORM_FRAUD_5                          0.001 0.001 0.001 0.001
+score FORM_LOW_CONTRAST                     1.000 1.000 1.000 1.000
+score FOUND_YOU                             2.991 3.249 2.991 3.249
+score FREEMAIL_FORGED_FROMDOMAIN            0.249 0.249 0.249 0.249
+score FREEM_FRNUM_UNICD_EMPTY               1.000 1.000 1.000 1.000
+score FRNAME_IN_MSG_XPRIO_NO_SUB            1.000 1.000 1.000 1.000
+score FROM_2_EMAILS_SHORT                   2.999 2.999 2.999 2.999
+score FROM_ADDR_WS                          2.999 2.999 2.999 2.999
+score FROM_BANK_NOAUTH                      0.001 1.000 0.001 1.000
+score FROM_FMBLA_NDBLOCKED                  0.001 0.001 0.001 0.001
+score FROM_FMBLA_NEWDOM                     0.001 1.499 0.001 1.499
+score FROM_FMBLA_NEWDOM14                   0.001 1.000 0.001 1.000
+score FROM_FMBLA_NEWDOM28                   0.001 0.799 0.001 0.799
+score FROM_GOV_DKIM_AU                      0.001 -0.001 0.001 -0.001
+score FROM_GOV_REPLYTO_FREEMAIL             0.001 1.000 0.001 1.000
+score FROM_GOV_SPOOF                        0.001 0.999 0.001 0.999
+score FROM_IN_TO_AND_SUBJ                   2.399 2.199 2.399 2.199
+score FROM_MISSPACED                        0.001 0.001 0.001 0.001
+score FROM_MISSP_DYNIP                      1.582 2.299 1.582 2.299
+score FROM_MISSP_EH_MATCH                   0.001 0.001 0.001 0.001
+score FROM_MISSP_FREEMAIL                   0.397 0.001 0.397 0.001
+score FROM_MISSP_MSFT                       0.001 0.001 0.001 0.001
+score FROM_MISSP_REPLYTO                    0.001 0.001 0.001 0.001
+score FROM_MISSP_SPF_FAIL                   0.001 0.001 0.001 0.001
+score FROM_MISSP_TO_UNDISC                  1.457 1.981 1.457 1.981
+score FROM_MISSP_USER                       0.001 0.001 0.001 0.001
+score FROM_MULTI_NORDNS                     0.348 0.971 0.348 0.971
+score FROM_NEWDOM_BTC                       0.001 1.000 0.001 1.000
+score FROM_NTLD_LINKBAIT                    1.000 0.418 1.000 0.418
+score FROM_NTLD_REPLY_FREEMAIL              1.484 1.999 1.484 1.999
+score FROM_NUMBERO_NEWDOMAIN                0.001 1.000 0.001 1.000
+score FROM_NUMERIC_TLD                      1.000 1.000 1.000 1.000
+score FROM_PAYPAL_SPOOF                     0.001 0.434 0.001 0.434
+score FROM_SUSPICIOUS_NTLD                  0.499 0.500 0.499 0.500
+score FROM_SUSPICIOUS_NTLD_FP               1.999 0.001 1.999 0.001
+score FROM_WEBSITE                          2.599 2.399 2.599 2.399
+score FROM_WSP_TRAIL                        2.131 2.299 2.131 2.299
+score FSL_BULK_SIG                          0.001 0.001 0.001 0.001
+score FSL_CTYPE_WIN1251                     0.001 0.001 0.001 0.001
+score FSL_NEW_HELO_USER                     0.001 0.001 0.001 0.001
+score FUZZY_AMAZON                          2.699 2.599 2.699 2.599
+score FUZZY_BITCOIN                         2.399 0.092 2.399 0.092
+score GAPPY_SALES_LEADS_FREEM               1.000 1.000 1.000 1.000
+score GB_FAKE_RF_SHORT                      1.999 1.999 1.999 1.999
+score GB_FORGED_MUA_POSTFIX                 1.000 1.000 1.000 1.000
+score GB_FREEMAIL_DISPTO                    0.499 0.001 0.499 0.001
+score GB_FREEMAIL_DISPTO_NOTFREEM           0.500 0.499 0.500 0.499
+score GB_GOOGLE_OBFUR                       0.750 0.750 0.750 0.750
+score GB_GOOGLE_OBFUS                       0.749 0.391 0.749 0.391
+score GOOGLE_DOCS_PHISH                     1.000 1.000 1.000 1.000
+score GOOGLE_DOCS_PHISH_MANY                1.000 1.000 1.000 1.000
+score GOOGLE_DOC_SUSP                       2.999 2.999 2.999 2.999
+score GOOGLE_DRIVE_REPLY_BAD_NTLD           1.000 1.000 1.000 1.000
+score GOOG_MALWARE_DNLD                     1.000 1.000 1.000 1.000
+score GOOG_REDIR_NORDNS                     2.601 2.211 2.601 2.211
+score GOOG_STO_HTML_PHISH                   2.391 2.999 2.391 2.999
+score GOOG_STO_HTML_PHISH_MANY              3.695 1.000 3.695 1.000
+score GOOG_STO_IMG_HTML                     3.000 2.999 3.000 2.999
+score GOOG_STO_IMG_NOHTML                   2.499 2.499 2.499 2.499
+score GOOG_STO_NOIMG_HTML                   2.999 2.999 2.999 2.999
+score HAS_X_NO_RELAY                        1.000 1.000 1.000 1.000
+score HAS_X_OUTGOING_SPAM_STAT              2.151 2.562 2.151 2.562
+score HDRS_LCASE                            0.100 0.099 0.100 0.099
+score HDRS_LCASE_IMGONLY                    0.100 0.099 0.100 0.099
+score HDRS_MISSP                            2.447 1.939 2.447 1.939
+score HDR_ORDER_FTSDMCXX_DIRECT             1.999 0.073 1.999 0.073
+score HDR_ORDER_FTSDMCXX_NORDNS             0.001 0.001 0.001 0.001
+score HEADER_FROM_DIFFERENT_DOMAINS         0.250 0.249 0.250 0.249
+score HELO_MISC_IP                          0.080 0.174 0.080 0.174
+score HELO_NO_DOMAIN                        0.001 0.001 0.001 0.001
+score HEXHASH_WORD                          1.000 1.000 1.000 1.000
+score HK_CTE_RAW                            1.000 1.000 1.000 1.000
+score HK_NAME_FM_MR_MRS                     1.499 1.499 1.499 1.499
+score HK_NAME_MR_MRS                        0.999 0.999 0.999 0.999
+score HK_RANDOM_FROM                        0.999 0.999 0.999 0.999
+score HK_RANDOM_REPLYTO                     0.001 0.001 0.001 0.001
+score HK_RCVD_IP_MULTICAST                  1.000 1.000 1.000 1.000
+score HK_SCAM                               0.001 0.001 0.001 0.001
+score HK_WIN                                0.999 0.999 0.999 0.999
+score HOSTED_IMG_DIRECT_MX                  3.297 2.351 3.297 2.351
+score HOSTED_IMG_DQ_UNSUB                   1.000 1.000 1.000 1.000
+score HOSTED_IMG_FREEM                      3.499 3.437 3.499 3.437
+score HOSTED_IMG_MULTI                      1.552 1.755 1.552 1.755
+score HOSTED_IMG_MULTI_PUB_01               1.200 2.196 1.200 2.196
+score HTML_ENTITY_ASCII                     2.999 2.948 2.999 2.948
+score HTML_ENTITY_ASCII_TINY                1.000 1.000 1.000 1.000
+score HTML_OFF_PAGE                         2.999 2.999 2.999 2.999
+score HTML_SHRT_CMNT_OBFU_MANY              0.849 1.220 0.849 1.220
+score HTML_SINGLET_MANY                     0.780 1.331 0.780 1.331
+score HTML_TEXT_INVISIBLE_FONT              1.999 1.999 1.999 1.999
+score HTML_TEXT_INVISIBLE_STYLE             1.830 1.424 1.830 1.424
+score IMG_ONLY_FM_DOM_INFO                  0.001 0.712 0.001 0.712
+score JH_SPAMMY_HEADERS                     3.499 3.499 3.499 3.499
+score JH_SPAMMY_PATTERN01                   2.864 0.047 2.864 0.047
+score JH_SPAMMY_PATTERN02                   1.000 1.000 1.000 1.000
+score KHOP_FAKE_EBAY                        0.299 0.135 0.299 0.135
+score KHOP_HELO_FCRDNS                      0.400 0.399 0.400 0.399
+score LIST_PRTL_PUMPDUMP                    1.000 1.000 1.000 1.000
+score LIST_PRTL_SAME_USER                   0.001 0.697 0.001 0.697
+score LONG_HEX_URI                          2.844 1.887 2.844 1.887
+score LONG_IMG_URI                          1.688 1.178 1.688 1.178
+score LONG_INVISIBLE_TEXT                   0.588 1.326 0.588 1.326
+score LOTS_OF_MONEY                         0.010 0.010 0.010 0.010
+score LOTTO_AGENT                           0.001 0.001 0.001 0.001
+score LUCRATIVE                             1.000 1.000 1.000 1.000
+score MALFORMED_FREEMAIL                    3.099 1.003 3.099 1.003
+score MALF_HTML_B64                         1.000 1.000 1.000 1.000
+score MALWARE_NORDNS                        0.001 1.263 0.001 1.263
+score MALWARE_PASSWORD                      1.000 1.000 1.000 1.000
+score MANY_HDRS_LCASE                       0.100 0.100 0.100 0.100
+score MANY_SPAN_IN_TEXT                     2.399 2.299 2.399 2.299
+score MAY_BE_FORGED                         2.529 2.600 2.529 2.600
+score MILLION_HUNDRED                       0.001 0.001 0.001 0.001
+score MILLION_USD                           0.001 0.001 0.001 0.001
+score MIMEOLE_DIRECT_TO_MX                  0.001 0.001 0.001 0.001
+score MIME_NO_TEXT                          1.000 1.000 1.000 1.000
+score MIXED_AREA_CASE                       0.727 0.910 0.727 0.910
+score MIXED_CENTER_CASE                     2.499 2.499 2.499 2.499
+score MIXED_CTYPE_CASE                      0.965 1.479 0.965 1.479
+score MIXED_ES                              2.399 2.299 2.399 2.299
+score MIXED_FONT_CASE                       2.499 2.499 2.499 2.499
+score MIXED_HREF_CASE                       1.999 1.999 1.999 1.999
+score MIXED_IMG_CASE                        2.999 2.583 2.999 2.583
+score MONERO_DEADLINE                       1.000 1.000 1.000 1.000
+score MONERO_EXTORT_01                      1.000 1.000 1.000 1.000
+score MONERO_MALWARE                        1.000 1.000 1.000 1.000
+score MONERO_PAY_ME                         1.000 1.000 1.000 1.000
+score MONEY_ATM_CARD                        0.001 0.001 0.001 0.001
+score MONEY_FORM                            0.001 0.001 0.001 0.001
+score MONEY_FORM_SHORT                      0.001 0.001 0.001 0.001
+score MONEY_FRAUD_3                         2.799 2.699 2.799 2.699
+score MONEY_FRAUD_5                         0.001 0.001 0.001 0.001
+score MONEY_FRAUD_8                         0.001 0.001 0.001 0.001
+score MONEY_FREEMAIL_REPTO                  2.993 1.640 2.993 1.640
+score MONEY_FROM_41                         1.999 1.999 1.999 1.999
+score MONEY_FROM_MISSP                      0.001 0.001 0.001 0.001
+score MONEY_NOHTML                          1.246 0.590 1.246 0.590
+score MSGID_DOLLARS_URI_IMG                 1.000 1.000 1.000 1.000
+score MSGID_HDR_MALF                        2.359 3.499 2.359 3.499
+score MSGID_NOFQDN1                         0.498 0.001 0.498 0.001
+score MSMAIL_PRI_ABNORMAL                   0.517 0.671 0.517 0.671
+score MSM_PRIO_REPTO                        1.000 1.000 1.000 1.000
+score NAME_EMAIL_DIFF                       2.002 0.632 2.002 0.632
+score NA_DOLLARS                            1.499 1.499 1.499 1.499
+score NEWEGG_IMG_NOT_RCVD_NEGG              1.000 1.000 1.000 1.000
+score NICE_REPLY_A                          -0.001 -0.001 -0.001 -0.001
+score NORDNS_LOW_CONTRAST                   1.784 2.301 1.784 2.301
+score NO_FM_NAME_IP_HOSTN                   0.001 0.001 0.001 0.001
+score NSL_RCVD_FROM_USER                    0.001 0.001 0.001 0.001
+score NSL_RCVD_HELO_USER                    0.001 0.001 0.001 0.001
+score NUMBEREND_LINKBAIT                    0.582 0.001 0.582 0.001
+score OBFU_BITCOIN                          0.001 0.001 0.001 0.001
+score OBFU_UNSUB_UL                         2.400 2.199 2.400 2.199
+score ODD_FREEM_REPTO                       2.999 2.670 2.999 2.670
+score OFFER_ONLY_AMERICA                    1.310 1.999 1.310 1.999
+score ONLINE_MKTG_CNSLT                     2.599 0.001 2.599 0.001
+score ORDER_TODAY                           2.499 0.429 2.499 0.429
+score PDS_BAD_THREAD_QP_64                  1.000 0.999 1.000 0.999
+score PDS_BTC_ID                            0.500 0.499 0.500 0.499
+score PDS_BTC_MSGID                         0.001 0.001 0.001 0.001
+score PDS_DBL_URL_TNB_RUNON                 0.900 0.554 0.900 0.554
+score PDS_EMPTYSUBJ_URISHRT                 0.302 0.001 0.302 0.001
+score PDS_FRNOM_TODOM_DBL_URL               1.499 1.499 1.499 1.499
+score PDS_FRNOM_TODOM_NAKED_TO              1.499 1.499 1.499 1.499
+score PDS_FROM_2_EMAILS                     1.635 2.648 1.635 2.648
+score PDS_FROM_2_EMAILS_SHRTNER             0.396 1.499 0.396 1.499
+score PDS_FROM_NAME_TO_DOMAIN               1.999 1.999 1.999 1.999
+score PDS_HELO_SPF_FAIL                     0.001 1.000 0.001 1.000
+score PDS_NO_FULL_NAME_SPOOFED_URL          0.284 0.344 0.284 0.344
+score PDS_OTHER_BAD_TLD                     1.999 1.999 1.999 1.999
+score PDS_SHORTFWD_URISHRT_QP               1.499 1.079 1.499 1.079
+score PDS_SHORT_SPOOFED_URL                 0.989 1.999 0.989 1.999
+score PDS_TINYSUBJ_URISHRT                  1.499 0.001 1.499 0.001
+score PDS_TONAME_EQ_TOLOCAL_FREEM_FORGE     1.999 1.999 1.999 1.999
+score PDS_TONAME_EQ_TOLOCAL_HDRS_LCASE      1.999 1.999 1.999 1.999
+score PDS_TONAME_EQ_TOLOCAL_SHORT           2.000 1.999 2.000 1.999
+score PDS_TONAME_EQ_TOLOCAL_VSHORT          0.999 1.000 0.999 1.000
+score PDS_TO_EQ_FROM_NAME                   3.199 2.385 3.199 2.385
+score PDS_URISHRT_LOCALPART_SUBJ            0.999 0.790 0.999 0.790
+score PHISH_AZURE_CLOUDAPP                  3.500 3.500 3.500 3.500
+score PHISH_FBASEAPP                        0.965 1.000 0.965 1.000
+score PHOTO_EDITING_DIRECT                  2.999 1.290 2.999 1.290
+score PHOTO_EDITING_FREEM                   1.000 1.000 1.000 1.000
+score PHP_NOVER_MUA                         1.000 1.000 1.000 1.000
+score PHP_ORIG_SCRIPT                       0.001 0.001 0.001 0.001
+score PHP_SCRIPT                            2.499 2.500 2.499 2.500
+score PHP_SCRIPT_MUA                        1.000 1.000 1.000 1.000
+score PP_MIME_FAKE_ASCII_TEXT               1.000 0.233 1.000 0.233
+score PP_TOO_MUCH_UNICODE02                 0.500 0.500 0.500 0.500
+score PP_TOO_MUCH_UNICODE05                 1.000 1.000 1.000 1.000
+score PUMPDUMP                              1.000 1.000 1.000 1.000
+score PUMPDUMP_MULTI                        1.000 1.000 1.000 1.000
+score RAND_HEADER_LIST_SPOOF                2.999 2.999 2.999 2.999
+score RAND_HEADER_MANY                      1.000 1.000 1.000 1.000
+score RAND_MKTG_HEADER                      1.999 1.999 1.999 1.999
+score RATWARE_NO_RDNS                       2.136 1.961 2.136 1.961
+score RCVD_DOTEDU_SHORT                     1.000 1.000 1.000 1.000
+score RCVD_DOTEDU_SUSP_URI                  2.999 2.999 2.999 2.999
+score RCVD_IN_MSPIKE_BL                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_H2                     0.001 -0.001 0.001 -0.001
+score RCVD_IN_MSPIKE_H3                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_H4                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_H5                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_L2                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_L3                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_L4                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_L5                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_WL                     0.001 0.001 0.001 0.001
+score RCVD_IN_MSPIKE_ZBI                    0.001 0.001 0.001 0.001
+score RDNS_NUM_TLD_ATCHNX                   1.000 1.000 1.000 1.000
+score RDNS_NUM_TLD_XM                       2.075 0.640 2.075 0.640
+score READY_TO_SHIP                         0.657 0.575 0.657 0.575
+score REPTO_419_FRAUD                       2.999 2.139 2.999 2.139
+score REPTO_419_FRAUD_AOL                   1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_AOL_LOOSE             1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_CNS                   1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_GM                    2.999 2.999 2.999 2.999
+score REPTO_419_FRAUD_GM_LOOSE              0.999 1.000 0.999 1.000
+score REPTO_419_FRAUD_HM                    1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_OL                    1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_PM                    1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_QQ                    2.999 2.999 2.999 2.999
+score REPTO_419_FRAUD_YH                    1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_YH_LOOSE              1.000 1.000 1.000 1.000
+score REPTO_419_FRAUD_YJ                    0.001 0.001 0.001 0.001
+score REPTO_419_FRAUD_YN                    1.000 1.000 1.000 1.000
+score RISK_FREE                             3.199 3.100 3.199 3.100
+score SENDGRID_REDIR                        1.499 1.499 1.499 1.499
+score SENDGRID_REDIR_PHISH                  1.000 1.000 1.000 1.000
+score SEO_SUSP_NTLD                         1.199 1.000 1.199 1.000
+score SERGIO_SUBJECT_VIAGRA01               3.398 4.099 3.398 4.099
+score SHOPIFY_IMG_NOT_RCVD_SFY              2.499 2.500 2.499 2.500
+score SHORTENER_SHORT_IMG                   1.000 1.000 1.000 1.000
+score SHORTENER_SHORT_SUBJ                  2.999 2.706 2.999 2.706
+score SHORT_IMG_SUSP_NTLD                   0.001 0.001 0.001 0.001
+score SHORT_SHORTNER                        1.999 1.999 1.999 1.999
+score SINGLETS_LOW_CONTRAST                 0.001 0.001 0.001 0.001
+score SPOOFED_FREEMAIL                      0.001 1.564 0.001 1.564
+score SPOOFED_FREEMAIL_NO_RDNS              1.500 0.332 1.500 0.332
+score SPOOFED_FREEM_REPTO                   0.001 2.433 0.001 2.433
+score SPOOFED_FREEM_REPTO_CHN               0.001 1.000 0.001 1.000
+score SPOOFED_FREEM_REPTO_RUS               0.001 1.000 0.001 1.000
+score SPOOF_GMAIL_MID                       1.499 0.001 1.499 0.001
+score STATIC_XPRIO_OLE                      0.001 0.001 0.001 0.001
+score STOCK_LOW_CONTRAST                    1.127 0.001 1.127 0.001
+score STOCK_TIP                             1.000 1.000 1.000 1.000
+score SURBL_BLOCKED                         0.001 0.001 0.001 0.001
+score SYSADMIN                              1.000 1.000 1.000 1.000
+score THIS_AD                               1.100 1.099 1.100 1.099
+score THIS_IS_ADV_SUSP_NTLD                 0.001 0.001 0.001 0.001
+score TONLINE_FAKE_DKIM                     1.000 1.000 1.000 1.000
+score TONOM_EQ_TOLOC_SHRT_SHRTNER           1.499 1.499 1.499 1.499
+score TO_EQ_FM_DIRECT_MX                    0.001 0.001 0.001 0.001
+score TO_EQ_FM_DOM_HTML_IMG                 0.001 0.899 0.001 0.899
+score TO_EQ_FM_DOM_HTML_ONLY                1.999 0.688 1.999 0.688
+score TO_EQ_FM_DOM_SPF_FAIL                 0.001 0.001 0.001 0.001
+score TO_EQ_FM_HTML_ONLY                    1.299 1.299 1.299 1.299
+score TO_EQ_FM_SPF_FAIL                     0.001 0.001 0.001 0.001
+score TO_IN_SUBJ                            0.100 0.100 0.100 0.100
+score TO_NAME_SUBJ_NO_RDNS                  2.497 2.238 2.497 2.238
+score TO_NO_BRKTS_FROM_MSSP                 2.499 0.001 2.499 0.001
+score TO_NO_BRKTS_HTML_IMG                  1.999 1.999 1.999 1.999
+score TO_NO_BRKTS_HTML_ONLY                 1.999 1.999 1.999 1.999
+score TO_NO_BRKTS_MSFT                      0.001 0.001 0.001 0.001
+score TO_NO_BRKTS_NORDNS_HTML               1.999 1.999 1.999 1.999
+score TO_NO_BRKTS_PCNT                      2.499 2.499 2.499 2.499
+score TRANSFORM_LIFE                        2.500 2.499 2.500 2.499
+score TVD_IP_HEX                            1.652 2.992 1.652 2.992
+score TVD_IP_SING_HEX                       0.082 1.325 0.082 1.325
+score TVD_RCVD_SPACE_BRACKET                2.699 0.869 2.699 0.869
+score TVD_SPACE_ENCODED                     2.499 0.618 2.499 0.618
+score TVD_SPACE_RATIO_MINFP                 2.500 2.499 2.500 2.499
+score TW_GIBBERISH_MANY                     1.000 1.000 1.000 1.000
+score UC_GIBBERISH_OBFU                     1.000 1.000 1.000 1.000
+score UNDISC_FREEM                          3.099 2.999 3.099 2.999
+score UNDISC_MONEY                          3.299 3.199 3.299 3.199
+score UNICODE_OBFU_ASC                      1.000 1.000 1.000 1.000
+score UNICODE_OBFU_ZW                       1.000 1.000 1.000 1.000
+score UPGRADE_MAILBOX                       1.099 0.001 1.099 0.001
+score URI_ADOBESPARK                        1.000 1.000 1.000 1.000
+score URI_AZURE_CLOUDAPP                    1.000 1.000 1.000 1.000
+score URI_DASHGOVEDU                        1.000 1.000 1.000 1.000
+score URI_DATA                              1.000 1.000 1.000 1.000
+score URI_DOTDOT_LOW_CNTRST                 1.369 2.054 1.369 2.054
+score URI_DOTEDU                            1.316 1.074 1.316 1.074
+score URI_DOTEDU_ENTITY                     1.000 1.000 1.000 1.000
+score URI_FIREBASEAPP                       2.999 2.999 2.999 2.999
+score URI_GOOGLE_PROXY                      2.999 1.611 2.999 1.611
+score URI_GOOG_STO_SPAMMY                   1.434 0.001 1.434 0.001
+score URI_HEX_IP                            2.104 1.669 2.104 1.669
+score URI_IMG_WP_REDIR                      1.000 1.000 1.000 1.000
+score URI_LONG_REPEAT                       2.104 1.055 2.104 1.055
+score URI_ONLY_MSGID_MALF                   1.676 1.999 1.676 1.999
+score URI_OPTOUT_3LD                        1.000 1.000 1.000 1.000
+score URI_PHISH                             3.999 0.844 3.999 0.844
+score URI_PHP_REDIR                         3.499 3.499 3.499 3.499
+score URI_TRY_3LD                           1.936 1.999 1.936 1.999
+score URI_WPADMIN                           2.899 2.699 2.899 2.699
+score URI_WP_DIRINDEX                       2.300 2.299 2.300 2.299
+score URI_WP_HACKED                         3.499 3.499 3.499 3.499
+score URI_WP_HACKED_2                       2.499 2.499 2.499 2.499
+score USB_DRIVES                            1.000 1.000 1.000 1.000
+score VFY_ACCT_NORDNS                       2.500 2.904 2.500 2.904
+score VPS_NO_NTLD                           1.000 1.000 1.000 1.000
+score WALMART_IMG_NOT_RCVD_WAL              1.000 1.000 1.000 1.000
+score WANT_TO_ORDER                         1.499 1.435 1.499 1.435
+score WIKI_IMG                              3.099 2.999 3.099 2.999
+score WORD_INVIS                            1.000 1.000 1.000 1.000
+score WORD_INVIS_MANY                       1.000 2.898 1.000 2.898
+score XFER_LOTSA_MONEY                      0.999 0.543 0.999 0.543
+score XM_DIGITS_ONLY                        2.202 2.411 2.202 2.411
+score XM_LIGHT_HEAVY                        0.001 0.101 0.001 0.101
+score XM_RANDOM                             2.551 2.999 2.551 2.999
+score XM_RECPTID                            3.000 1.994 3.000 1.994
+score XPRIO                                 0.690 1.000 0.690 1.000
+score XPRIO_SHORT_SUBJ                      1.000 1.000 1.000 1.000
+score XPRIO_URL_SHORTNER                    0.999 0.741 0.999 0.741
+score YOUR_DELIVERY_ADDRESS                 1.499 0.001 1.499 0.001
+score YOU_INHERIT                           2.799 2.499 2.799 2.499
diff --git a/sa-updates/73_sandbox_manual_scores.cf b/sa-updates/73_sandbox_manual_scores.cf
new file mode 100644 (file)
index 0000000..3dea981
--- /dev/null
@@ -0,0 +1,115 @@
+# SpamAssassin rules file
+#
+# Manual override of the automatically-generated scores
+# for automatically-published sandbox rules
+#
+# <@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 3.004005
+
+# jhardin
+# things depend on these
+# score as informative just for the hits header
+score LOTS_OF_MONEY            0.001
+score FILL_THIS_FORM           0.001
+
+# jhardin
+# reevolved Advance Fee rules
+# scores are cumulative (i.e. 3 hits 2, 4 hits 3 and 2)
+# Commented out if GA is scoring reasonably
+#score ADVANCE_FEE_2_NEW_MONEY  0.50
+#score ADVANCE_FEE_2_NEW_FORM   0.75
+#score ADVANCE_FEE_3_NEW        0.50
+#score ADVANCE_FEE_3_NEW_MONEY  1.00
+#score ADVANCE_FEE_3_NEW_FORM   1.00
+#score ADVANCE_FEE_4_NEW        1.00
+#score ADVANCE_FEE_5_NEW        1.50
+
+# jhardin
+# metas using Advance Fee component rules
+# Commented out if GA is scoring reasonably
+#score FORM_FRAUD_3             0.50
+#score FORM_FRAUD_5             0.50
+#score MONEY_FRAUD_3            1.00
+#score MONEY_FRAUD_5            0.50
+#score MONEY_FRAUD_8            0.50
+
+# jhardin
+# GA scores this unreasonably high, and
+# the fact that this is defined in an #ifplugin
+# appears to be preventing score limiting from working
+score FILL_THIS_FORM_LONG      2.00
+
+# jhardin
+# misc rules
+# Commented out if GA is scoring reasonably
+#score FROM_MISSP_MSFT          0.50
+#score TO_NO_BRKTS_DYNIP        0.50
+#score LOTTO_AGENT              0.50
+
+# jhardin
+# 1.000 S/O, hits only <= 6 points, but GA is not publishing it!
+# perhaps because very few examples in spam corpus
+# 12/24/12 GA likes it now
+#score GOOGLE_DOCS_PHISH        3.00
+# similar: .990 S/O, hits primarily spam <= 5 points
+# 01/07/13 GA likes it now
+#score EMAIL_URI_PHISH                 2.50
+# Reliable but not widespread (low corpus count, ahead of the curve?), boost the score
+score PHISH_AZURE_CLOUDAPP     3.50
+score URI_GOOG_STO_SPAMMY      3.50
+
+# jhardin
+# double-extension file attachments, low corpus count
+score PHISH_ATTACH             3.50
+score MALW_ATTACH              3.50
+
+# hege
+# FPs reported [bug 6417], GA assigning 3+ points
+# reduce score until that's resolved
+# score HK_FAKENAME_MICROSOFT    2.50
+# RULE DISABLED IN 20_hk.cf
+
+# jhardin for mmartinec
+# Lots of hate; score as informative hammy, may override locally
+score RP_MATCHES_RCVD           -0.001
+
+# until rule or rescoring issues sorted, hits 20%+ ham
+# too problematic, disabled entirely
+#score STYLE_GIBBERISH 0.1
+
+# jhardin
+# Limit some network scores until rule changes can be evaluated by weekly net masscheck
+# Dangit, relative scores are broken - see bug#7721
+#score FROM_IN_TO_AND_SUBJ    (0) 0.001 (0) 0.001
+#score OBFU_TEXT_ATTACH       (0) 0.001 (0) 0.001
+#score MIME_NO_TEXT           (0) 0.001 (0) 0.001
+#score AD_PREFS               (0) 0.001 (0) 0.001
+score AD_PREFS               0.250
+#score URI_WP_HACKED_2        (0) 0.001 (0) 0.001
+#score STYLE_GIBBERISH        (0) 0.001 (0) 0.001
+#score UC_GIBBERISH_OBFU      (0) 0.001 (0) 0.001
+#score LUCRATIVE              (0) 0.001 (0) 0.001
+#score HEXHASH_WORD           (0) 0.001 (0) 0.001
+#score FROM_WORDY             (0) 0.001 (0) 0.001
+#score AC_HTML_NONSENSE_TAGS  (0) 0.001 (0) 0.001
+#score LONG_HEX_URI           (0) 0.001 (0) 0.001
+#score FROM_PAYPAL_SPOOF      (0) 0.001 (0) 0.001
+
diff --git a/sa-updates/languages b/sa-updates/languages
new file mode 100644 (file)
index 0000000..a53ef67
Binary files /dev/null and b/sa-updates/languages differ
diff --git a/sa-updates/user_prefs.template b/sa-updates/user_prefs.template
new file mode 100644 (file)
index 0000000..74ed3b4
--- /dev/null
@@ -0,0 +1,43 @@
+# SpamAssassin user preferences file.  See 'perldoc Mail::SpamAssassin::Conf'
+# for details of what can be tweaked.
+#* 
+#* Note: this file is not read by SpamAssassin until copied into the user
+#* directory. At runtime, if a user has no preferences in their home directory
+#* already, it will be copied for them, allowing them to perform personalised
+#* customisation.  If you want to make changes to the site-wide defaults,
+#* create a file in /etc/spamassassin or /etc/mail/spamassassin instead.
+###########################################################################
+
+# How many points before a mail is considered spam.
+# required_score               5
+
+# Welcomelist and blocklist addresses are now file-glob-style patterns, so
+# "friend@somewhere.com", "*@isp.com", or "*.domain.net" will all work.
+# welcomelist_from     someone@somewhere.com
+# welcomelist_to       someone@mydomain.com
+
+# Add your own customised scores for some tests below.  The default scores are
+# read from the installed spamassassin rules files, but you can override them
+# here.  To see the list of tests and their default scores, go to
+# https://spamassassin.apache.org/tests.html .
+#
+# score SYMBOLIC_TEST_NAME n.nn
+
+# Speakers of Asian languages, like Chinese, Japanese and Korean, will almost
+# definitely want to uncomment the following lines.  They will switch off some
+# rules that detect 8-bit characters, which commonly trigger on mails using CJK
+# character sets, or that assume a western-style charset is in use. 
+# 
+# score HTML_COMMENT_8BITS     0
+# score UPPERCASE_25_50                0
+# score UPPERCASE_50_75                0
+# score UPPERCASE_75_100       0
+# score OBSCURED_EMAIL          0
+
+# Speakers of any language that uses non-English, accented characters may wish
+# to uncomment the following lines.   They turn off rules that fire on
+# misformatted messages generated by common mail apps in contravention of the
+# email RFCs.
+
+# score SUBJ_ILLEGAL_CHARS      0
+