# SpamAssassin score file
#
# Please don't modify this file as your changes will be overwritten with
# the next update. Use @@LOCAL_RULES_DIR@@/local.cf instead.
# See 'perldoc Mail::SpamAssassin::Conf' for details.
#
# <@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
#score USER_IN_WELCOMELIST -100.000 - Moved to 60_whitelist.cf
score USER_IN_DEF_WHITELIST -15.000
score USER_IN_BLACKLIST_TO   10.000
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!
#bz7826 renames whitelist to welcomelist
#score USER_IN_WELCOMELIST_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: Whitelists 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
