# These rules are from SpamAssasin project! (but might be modified)
# 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.

ifplugin Mail::SpamAssassin::Plugin::FreeMail

freemail_domains	qq.com yahoo.com outlook.com
freemail_domains	lycosmail.com hotmail.com

header   FREEMAIL_FROM  eval:check_freemail_from()
describe FREEMAIL_FROM  Sender email is commonly abused enduser mail provider
score    FREEMAIL_FROM  1.0

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  1.0

header   FREEMAIL_SUBJECT  eval:check_freemail_header('Subject')
describe FREEMAIL_SUBJECT  Subject contains freemail
score    FREEMAIL_SUBJECT  1.0

endif

ifplugin Mail::SpamAssassin::Plugin::WLBLEval

header	USER_IN_BLACKLIST       eval:check_from_in_blacklist()
describe USER_IN_BLACKLIST      From: address is in the user's black-list
tflags USER_IN_BLACKLIST        userconf noautolearn
score USER_IN_BLACKLIST         10.0

header USER_IN_WHITELIST	eval:check_from_in_whitelist()
describe USER_IN_WHITELIST	From: address is in the user's white-list
tflags USER_IN_WHITELIST	userconf nice noautolearn
score USER_IN_WHITELIST         -10.0

header USER_IN_BLACKLIST_TO     eval:check_to_in_blacklist()
describe USER_IN_BLACKLIST_TO   User is listed in 'blacklist_to'
tflags USER_IN_BLACKLIST_TO     userconf noautolearn
score USER_IN_BLACKLIST_TO      10.0

header USER_IN_WHITELIST_TO     eval:check_to_in_whitelist()
describe USER_IN_WHITELIST_TO   User is listed in 'whitelist_to'
tflags USER_IN_WHITELIST_TO     userconf nice noautolearn
score USER_IN_WHITELIST_TO      -10.0

# not implemented
#header USER_IN_DEF_WHITELIST	eval:check_from_in_default_whitelist()
#describe USER_IN_DEF_WHITELIST	From: address is in the default white-list
#tflags USER_IN_DEF_WHITELIST	userconf nice noautolearn
#score USER_IN_DEF_WHITELIST     -10.0

# not implemented
#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

# not implemented
#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

blacklist_to xxx@example.com
blacklist_from yy@example.com
whitelist_from nasutkadqw@esumare.ru
whitelist_to zelen@megafonkavkaz.ru
# not implemented
#whitelist_from example@example.net yy@example.com
# not implemented
#whitelist_from *@example.com
# not implemented
#whitelist_from_rcvd *@example.org
# not implemented
#def_whitelist_from  rspamd.com
endif

# These rules are /not/ from SpamAssassin project

header	TEST_XFOO	X-Foo =~ /.{1,50}/
score	TEST_XFOO	1
header	TEST_XBAR	X-Bar =~ /.{1,50}/
score	TEST_XBAR	1
meta	TEST_META1	TEST_XFOO && TEST_XBAR
meta	TEST_META2	TEST_META1 && SIMPLE_TEST
meta	TEST_META3	TEST_META1 && TEST_META2
meta	TEST_META4	TEST_META3 && TEST_XBAR
