# SpamAssassin - FreeMail rules
#
# 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>
#
###########################################################################

ifplugin Mail::SpamAssassin::Plugin::FreeMail

body     __freemail_safe_fwd  /---\s?(?:(?:Forwarded|Original) message|Alkuper.inen viesti)/i
header   __freemail_safe_ml1  exists:List-Id
header   __freemail_safe_ml2  exists:Mailing-List
header   __freemail_safe_ml3  exists:X-Mailing-List
header   __freemail_safe_rls  X-Spam-Relays-External =~ /^[^\]]+ rdns=\S+\.(?:tfbnw\.net|ebay\.com|tieto\.com) /
meta     __freemail_safe      __freemail_safe_fwd || __freemail_safe_ml1 || __freemail_safe_ml2 || __freemail_safe_ml3 || __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 freemail
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

