You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by km...@apache.org on 2020/12/29 21:06:20 UTC

svn commit: r1884922 [1/2] - in /spamassassin/trunk: ./ lib/Mail/SpamAssassin/ lib/Mail/SpamAssassin/Plugin/ rules/ t/ t/data/

Author: kmcgrail
Date: Tue Dec 29 21:06:20 2020
New Revision: 1884922

URL: http://svn.apache.org/viewvc?rev=1884922&view=rev
Log:
whitelist_auth to welcomelist_auth, 
unwhitelist_auth to unwelcomelist_auth,
def_whitelist_auth to def_welcomelist_auth, 
check_forged_in_whitelist to check_forged_in_welcomelist, 
check_from_in_default_whitelist to check_from_in_default_welcomelist, 
check_uri_host_in_whitelist to check_uri_host_in_welcomelist, 
check_from_in_blacklist to check_from_in_blocklist,
check_to_in_blacklist to check_from_in_blocklist, 
check_to_in_blacklist to check_to_in_blocklist,
and whitelist_bounce_relays to welcomelist_bounce_relays for bug 7826

Added:
    spamassassin/trunk/t/blocklist_autolearn.t   (with props)
    spamassassin/trunk/t/freemail_welcome_block.t   (with props)
    spamassassin/trunk/t/spf_welcome_block.t   (with props)
Modified:
    spamassassin/trunk/MANIFEST
    spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/VBounce.pm
    spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm
    spamassassin/trunk/rules/20_vbounce.cf
    spamassassin/trunk/rules/50_scores.cf
    spamassassin/trunk/rules/60_whitelist.cf
    spamassassin/trunk/rules/60_whitelist_auth.cf
    spamassassin/trunk/t/data/01_test_rules.cf

Modified: spamassassin/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST (original)
+++ spamassassin/trunk/MANIFEST Tue Dec 29 21:06:20 2020
@@ -253,6 +253,7 @@ t/bayessdbm.t
 t/bayessdbm_seen_delete.t
 t/bayessql.t
 t/blacklist_autolearn.t
+t/blocklist_autolearn.t
 t/body_mod.t
 t/body_str.t
 t/check_implemented.t
@@ -535,6 +536,8 @@ t/rule_types.t
 t/sa_awl.t
 t/sa_check_spamd.t
 t/sa_compile.t
+t/freemail_welcome_block.t
+t/spf_welcome_block.t
 t/sha1.t
 t/shortcircuit.t
 t/shortcircuit_before_dns.t

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Conf.pm Tue Dec 29 21:06:20 2020
@@ -297,7 +297,7 @@ Used to whitelist sender addresses which
 
 Use of this setting is not recommended, since it blindly trusts the message,
 which is routinely and easily forged by spammers and phish senders. The
-recommended solution is to instead use C<whitelist_auth> or other authenticated
+recommended solution is to instead use C<welcomelist_auth> or other authenticated
 whitelisting methods, or C<welcomelist_from_rcvd>.
 
 Whitelist and blacklist addresses are now file-glob-style patterns, so
@@ -624,7 +624,9 @@ be blacklisted.  Same format as C<blackl
     type => $CONF_TYPE_ADDRLIST,
   });
 
-=item whitelist_auth user@example.com
+=item welcomelist_auth user@example.com
+
+Previously whitelist_auth which will work interchangeably until 4.1.
 
 Used to specify addresses which send mail that is often tagged (incorrectly) as
 spam.  This is different from C<welcomelist_from> and C<welcomelist_from_rcvd> in
@@ -636,47 +638,54 @@ schemes: SPF (using C<Mail::SpamAssassin
 C<Mail::SpamAssassin::Plugin::DKIM>).  Note that those plugins must be active,
 and working, for this to operate.
 
-Using C<whitelist_auth> is roughly equivalent to specifying duplicate
+Using C<welcomelist_auth> is roughly equivalent to specifying duplicate
 C<whitelist_from_spf>, C<whitelist_from_dk>, and C<whitelist_from_dkim> lines
 for each of the addresses specified.
 
 e.g.
 
-  whitelist_auth joe@example.com fred@example.com
-  whitelist_auth *@example.com
+  welcomelist_auth joe@example.com fred@example.com
+  welcomelist_auth *@example.com
+
+=item def_welcomelist_auth user@example.com
 
-=item def_whitelist_auth user@example.com
+Previously def_whitelist_auth which will work interchangeably until 4.1.
 
-Same as C<whitelist_auth>, but used for the default whitelist entries
-in the SpamAssassin distribution.  The whitelist score is lower, because
+Same as C<welcomelist_auth>, but used for the default welcomelist entries
+in the SpamAssassin distribution.  The welcomelist score is lower, because
 these are often targets for spammer spoofing.
 
 =cut
 
   push (@cmds, {
-    setting => 'whitelist_auth',
+    setting => 'welcomelist_auth',
+    aliases => ['whitelist_auth'], # backward compatible - to be removed for 4.1
     type => $CONF_TYPE_ADDRLIST,
   });
 
   push (@cmds, {
-    setting => 'def_whitelist_auth',
+    setting => 'def_welcomelist_auth',
+    aliases => ['def_whitelist_auth'], # backward compatible - to be removed for 4.1
     type => $CONF_TYPE_ADDRLIST,
   });
 
 =item unwhitelist_auth user@example.com
 
-Used to remove a C<whitelist_auth> or C<def_whitelist_auth> entry. The
+Previously unwhitelist_auth which will work interchangeably until 4.1.
+
+Used to remove a C<welcomelist_auth> or C<def_welcomelist_auth> entry. The
 specified email address has to match exactly the address previously used.
 
 e.g.
 
-  unwhitelist_auth joe@example.com fred@example.com
-  unwhitelist_auth *@example.com
+  unwelcomelist_auth joe@example.com fred@example.com
+  unwelcomelist_auth *@example.com
 
 =cut
 
   push (@cmds, {
-    setting => 'unwhitelist_auth',
+    setting => 'unwelcomelist_auth',
+    aliases => ['unwhitelist_auth'],
     type => $CONF_TYPE_ADDRLIST,
     code => sub {
       my ($self, $key, $value, $line) = @_;
@@ -686,9 +695,9 @@ e.g.
       unless ($value =~ /^(?:\S+(?:\s+\S+)*)$/) {
         return $INVALID_VALUE;
       }
-      $self->{parser}->remove_from_addrlist('whitelist_auth',
+      $self->{parser}->remove_from_addrlist('welcomelist_auth',
                                         split (/\s+/, $value));
-      $self->{parser}->remove_from_addrlist('def_whitelist_auth',
+      $self->{parser}->remove_from_addrlist('def_welcomelist_auth',
                                         split (/\s+/, $value));
     }
   });
@@ -4821,8 +4830,8 @@ sub new {
   $self->{bayes_ignore_from} = { };
   $self->{bayes_ignore_to} = { };
 
-  $self->{whitelist_auth} = { };
-  $self->{def_whitelist_auth} = { };
+  $self->{welcomelist_auth} = { };
+  $self->{def_welcomelist_auth} = { };
   $self->{welcomelist_from} = { };
   $self->{whitelist_allows_relays} = { };
   $self->{blacklist_from} = { };

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/DKIM.pm Tue Dec 29 21:06:20 2020
@@ -659,7 +659,7 @@ sub check_for_def_dkim_whitelist_from {
   my ($self, $pms) = @_;
   $self->_check_dkim_whitelist($pms)  if !$pms->{whitelist_checked};
   return $pms->{dkim_match_in_def_whitelist_from_dkim} || 
-         $pms->{dkim_match_in_def_whitelist_auth};
+         $pms->{dkim_match_in_def_welcomelist_auth};
 }
 
 # ---------------------------------------------------------------------------
@@ -1152,11 +1152,11 @@ sub _check_dkim_whitelist {
   $self->_wlcheck_acceptable_signature($pms, \@acceptable_sdid_tuples,
                                        'def_whitelist_from_dkim');
   $self->_wlcheck_author_signature($pms, \@acceptable_sdid_tuples,
-                                       'def_whitelist_auth');
+                                       'def_welcomelist_auth');
   $self->_wlcheck_acceptable_signature($pms, \@acceptable_sdid_tuples,
                                        'whitelist_from_dkim');
   $self->_wlcheck_author_signature($pms, \@acceptable_sdid_tuples,
-                                       'whitelist_auth');
+                                       'welcomelist_auth');
   if (!@acceptable_sdid_tuples) {
     dbg("dkim: no wl entries match author %s, no need to verify sigs",
         $authors_str);

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/FreeMail.pm Tue Dec 29 21:06:20 2020
@@ -53,14 +53,14 @@ freemail_whitelist email/domain ...
    Emails or domains listed here are ignored (pretend they aren't
    freemail). No wildcards!
 
-freemail_import_whitelist_auth 1/0
+freemail_import_welcomelist_auth 1/0
 
-   Entries in whitelist_auth will also be used to whitelist emails
+   Entries in welcomelist_auth will also be used to welcomelist emails
    or domains from being freemail.  Default is 0.
 
-freemail_import_def_whitelist_auth 1/0
+freemail_import_def_welcomelist_auth 1/0
 
-   Entries in def_whitelist_auth will also be used to whitelist emails
+   Entries in def_welcomelist_auth will also be used to whitelist emails
    or domains from being freemail.  Default is 0.
 
 header FREEMAIL_REPLYTO eval:check_freemail_replyto(['option'])
@@ -215,15 +215,17 @@ sub set_config {
         }
     );
     push(@cmds, {
-        setting => 'freemail_import_whitelist_auth',
+        setting => 'freemail_import_welcomelist_auth',
         default => 0,
         type => $Mail::SpamAssassin::Conf::CONF_TYPE_NUMERIC,
+	aliases => ['freemail_import_whitelist_auth'],
         }
     );
     push(@cmds, {
-        setting => 'freemail_import_def_whitelist_auth',
+        setting => 'freemail_import_def_welcomelist_auth',
         default => 0,
         type => $Mail::SpamAssassin::Conf::CONF_TYPE_NUMERIC,
+	alias => ['freemail_import_def_welcomelist_auth']
         }
     );
     $conf->{parser}->register_commands(\@cmds);
@@ -333,7 +335,7 @@ sub _is_freemail {
         return 0;
     }
 
-    foreach my $list ('whitelist_auth','def_whitelist_auth') {
+    foreach my $list ('welcomelist_auth','def_welcomelist_auth') {
         if ($pms->{conf}->{"freemail_import_$list"}) {
             foreach my $regexp (values %{$pms->{conf}->{$list}}) {
                 if ($email =~ /$regexp/o) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/SPF.pm Tue Dec 29 21:06:20 2020
@@ -763,7 +763,7 @@ sub _check_spf_whitelist {
 
   $scanner->{spf_whitelist_from} =
     $self->_wlcheck($scanner, 'whitelist_from_spf') ||
-    $self->_wlcheck($scanner, 'whitelist_auth');
+    $self->_wlcheck($scanner, 'welcomelist_auth');
 
   # if the message doesn't pass SPF validation, it can't pass an SPF whitelist
   if ($scanner->{spf_whitelist_from}) {
@@ -798,7 +798,7 @@ sub _check_def_spf_whitelist {
 
   $scanner->{def_spf_whitelist_from} =
     $self->_wlcheck($scanner, 'def_whitelist_from_spf') ||
-    $self->_wlcheck($scanner, 'def_whitelist_auth');
+    $self->_wlcheck($scanner, 'def_welcomelist_auth');
 
   # if the message doesn't pass SPF validation, it can't pass an SPF whitelist
   if ($scanner->{def_spf_whitelist_from}) {

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/VBounce.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/VBounce.pm?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/VBounce.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/VBounce.pm Tue Dec 29 21:06:20 2020
@@ -44,7 +44,7 @@ sub new {
   bless ($self, $class);
 
   $self->register_eval_rule("have_any_bounce_relays"); # type does not matter
-  $self->register_eval_rule("check_whitelist_bounce_relays"); # type does not matter
+  $self->register_eval_rule("check_welcomelist_bounce_relays"); # type does not matter
 
   $self->set_config($mailsaobject->{conf});
 
@@ -63,7 +63,8 @@ SpamAssassin handles incoming email mess
 
 =over 4
 
-=item whitelist_bounce_relays hostname [hostname2 ...]
+=item welcomelist_bounce_relays hostname [hostname2 ...]
+Previously whitelist_bounce_relays which will work interchangeably until 4.1.
 
 This is used to 'rescue' legitimate bounce messages that were generated in
 response to mail you really *did* send. List the MTA relay hostnames that
@@ -76,14 +77,15 @@ Specifically, C<*> and C<?> are allowed,
 Regular expressions are not used for security reasons.
 
 Multiple addresses per line, separated by spaces, is OK.  Multiple
-C<whitelist_bounce_relays> lines are also OK.
+C<welcomelist_bounce_relays> lines are also OK.
 
 =back
 
 =cut
 
   push (@cmds, {
-      setting => 'whitelist_bounce_relays',
+      setting => 'welcomelist_bounce_relays',
+      aliases => ['whitelist_bounce_relays'], # backward compatible - to be removed for 4.1
       type => $Mail::SpamAssassin::Conf::CONF_TYPE_ADDRLIST
     });
 
@@ -92,11 +94,16 @@ C<whitelist_bounce_relays> lines are als
 
 sub have_any_bounce_relays {
   my ($self, $pms) = @_;
-  return $pms->{conf}->{whitelist_bounce_relays} &&
-         %{$pms->{conf}->{whitelist_bounce_relays}} ? 1 : 0;
+  return $pms->{conf}->{welcomelist_bounce_relays} &&
+         %{$pms->{conf}->{welcomelist_bounce_relays}} ? 1 : 0;
 }
 
+#Stub for backwards compatibility - Remove in SA 4.1
 sub check_whitelist_bounce_relays {
+  return check_welcomelist_bounce_relays(@_);
+}
+
+sub check_welcomelist_bounce_relays {
   my ($self, $pms) = @_;
 
   return 0  if !$self->have_any_bounce_relays($pms);
@@ -111,7 +118,7 @@ sub check_whitelist_bounce_relays {
   foreach my $line (@{$body}) {
     next unless ($line =~ /^[> ]*Received:/i);
     while ($line =~ / (\S+\.\S+) /g) {
-      return 1 if $self->_relay_is_in_whitelist_bounce_relays($pms, $1);
+      return 1 if $self->_relay_is_in_welcomelist_bounce_relays($pms, $1);
     }
   }
 
@@ -143,17 +150,17 @@ sub check_whitelist_bounce_relays {
 
     next unless ($fullhdr =~ /^[> ]*Received:/i);
     while ($fullhdr =~ /\s(\S+\.\S+)\s/gs) {
-      return 1 if $self->_relay_is_in_whitelist_bounce_relays($pms, $1);
+      return 1 if $self->_relay_is_in_welcomelist_bounce_relays($pms, $1);
     }
   }
 
   return 0;
 }
 
-sub _relay_is_in_whitelist_bounce_relays {
+sub _relay_is_in_welcomelist_bounce_relays {
   my ($self, $pms, $relay) = @_;
   return 1 if $self->_relay_is_in_list(
-        $pms->{conf}->{whitelist_bounce_relays}, $pms, $relay);
+        $pms->{conf}->{welcomelist_bounce_relays}, $pms, $relay);
   dbg("rules: relay $relay doesn't match any whitelist");
 
   return 0;

Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Plugin/WLBLEval.pm Tue Dec 29 21:06:20 2020
@@ -40,8 +40,10 @@ sub new {
   bless ($self, $class);
 
   # the important bit!
-  $self->register_eval_rule("check_from_in_blacklist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
-  $self->register_eval_rule("check_to_in_blacklist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_from_in_blocklist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_from_in_blacklist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
+  $self->register_eval_rule("check_to_in_blocklist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_to_in_blacklist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
   $self->register_eval_rule("check_to_in_welcomelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
   $self->register_eval_rule("check_to_in_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
   $self->register_eval_rule("check_to_in_more_spam", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
@@ -51,20 +53,30 @@ sub new {
   $self->register_eval_rule("check_to_in_list", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
   $self->register_eval_rule("check_from_in_welcomelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
   $self->register_eval_rule("check_from_in_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
-  $self->register_eval_rule("check_forged_in_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
-  $self->register_eval_rule("check_from_in_default_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
-  $self->register_eval_rule("check_forged_in_default_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_forged_in_welcomelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_forged_in_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
+  $self->register_eval_rule("check_from_in_default_welcomelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_from_in_default_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
+  $self->register_eval_rule("check_forged_in_default_welcomelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
+  $self->register_eval_rule("check_forged_in_default_whitelist", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS); #Stub - Remove in SA 4.1
   $self->register_eval_rule("check_mailfrom_matches_rcvd", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
   $self->register_eval_rule("check_uri_host_listed", $Mail::SpamAssassin::Conf::TYPE_HEAD_EVALS);
   # same as: eval:check_uri_host_listed('BLACK') :
-  $self->register_eval_rule("check_uri_host_in_blacklist"); # type does not matter
+  $self->register_eval_rule("check_uri_host_in_blocklist"); # type does not matter
+  $self->register_eval_rule("check_uri_host_in_blacklist"); # type does not matter #Stub - Remove in SA 4.1
   # same as: eval:check_uri_host_listed('WHITE') :
-  $self->register_eval_rule("check_uri_host_in_whitelist"); # type does not matter
+  $self->register_eval_rule("check_uri_host_in_welcomelist"); # type does not matter
+  $self->register_eval_rule("check_uri_host_in_whitelist"); # type does not matter #Stub - Remove in SA 4.1
 
   return $self;
 }
 
+#Stub for backwards compatibility - Remove in SA 4.1
 sub check_from_in_blacklist {
+  return check_from_in_blocklist(@_);
+}
+
+sub check_from_in_blocklist {
   my ($self, $pms) = @_;
   foreach ($pms->all_from_addrs()) {
     if ($self->_check_welcomelist ($self->{main}->{conf}->{blacklist_from}, $_)) {
@@ -73,7 +85,12 @@ sub check_from_in_blacklist {
   }
 }
 
+#Stub for backwards compatibility - Remove in SA 4.1
 sub check_to_in_blacklist {
+  return check_to_in_blocklist(@_);
+}
+
+sub check_to_in_blocklist {
   my ($self, $pms) = @_;
   foreach ($pms->all_to_addrs()) {
     if ($self->_check_welcomelist ($self->{main}->{conf}->{blacklist_to}, $_)) {
@@ -186,6 +203,11 @@ sub check_to_in_list {
 }
 
 ###########################################################################
+#
+#Stub for backwards compatibility - Remove in SA 4.1
+sub check_from_in_whitelist {
+  return check_from_in_welcomelist(@_);
+} 
 
 sub check_from_in_welcomelist {
   my ($self, $pms) = @_;
@@ -194,28 +216,38 @@ sub check_from_in_welcomelist {
 }
 
 #Stub for backwards compatibility - Remove in SA 4.1
-sub check_from_in_whitelist {
-  return check_from_in_welcomelist(@_);
-} 
-
 sub check_forged_in_whitelist {
+  return check_forged_in_welcomelist(@_);
+}
+
+sub check_forged_in_welcomelist {
   my ($self, $pms) = @_;
   $self->_check_from_in_welcomelist($pms) unless exists $pms->{from_in_welcomelist};
-  $self->_check_from_in_default_whitelist($pms) unless exists $pms->{from_in_default_whitelist};
-  return ($pms->{from_in_welcomelist} < 0) && ($pms->{from_in_default_whitelist} == 0);
+  $self->_check_from_in_default_welcomelist($pms) unless exists $pms->{from_in_default_welcomelist};
+  return ($pms->{from_in_welcomelist} < 0) && ($pms->{from_in_default_welcomelist} == 0);
 }
 
+#Stub for backwards compatibility - Remove in SA 4.1
 sub check_from_in_default_whitelist {
+  return check_from_in_default_welcomelist(@_);
+}
+
+sub check_from_in_default_welcomelist {
   my ($self, $pms) = @_;
-  $self->_check_from_in_default_whitelist($pms) unless exists $pms->{from_in_default_whitelist};
-  return ($pms->{from_in_default_whitelist} > 0);
+  $self->_check_from_in_default_welcomelist($pms) unless exists $pms->{from_in_default_welcomelist};
+  return ($pms->{from_in_default_welcomelist} > 0);
 }
 
+#Stub for backwards compatibility - Remove in SA 4.1
 sub check_forged_in_default_whitelist {
+  return check_forged_in_default_welcomelist(@_);
+}
+
+sub check_forged_in_default_welcomelist {
   my ($self, $pms) = @_;
-  $self->_check_from_in_default_whitelist($pms) unless exists $pms->{from_in_default_whitelist};
+  $self->_check_from_in_default_welcomelist($pms) unless exists $pms->{from_in_default_welcomelist};
   $self->_check_from_in_welcomelist($pms) unless exists $pms->{from_in_welcomelist};
-  return ($pms->{from_in_default_whitelist} < 0) && ($pms->{from_in_welcomelist} == 0);
+  return ($pms->{from_in_default_welcomelist} < 0) && ($pms->{from_in_welcomelist} == 0);
 }
 
 ###########################################################################
@@ -228,7 +260,7 @@ sub _check_from_in_welcomelist {
       $pms->{from_in_welcomelist} = 1;
       return;
     }
-    my $wh = $self->_check_whitelist_rcvd ($pms, $self->{main}->{conf}->{welcomelist_from_rcvd}, $_);
+    my $wh = $self->_check_welcomelist_rcvd ($pms, $self->{main}->{conf}->{welcomelist_from_rcvd}, $_);
     if ($wh == 1) {
       $pms->{from_in_welcomelist} = 1;
       return;
@@ -244,13 +276,13 @@ sub _check_from_in_welcomelist {
 
 ###########################################################################
 
-sub _check_from_in_default_whitelist {
+sub _check_from_in_default_welcomelist {
   my ($self, $pms) = @_;
   my $found_match = 0;
   foreach ($pms->all_from_addrs()) {
-    my $wh = $self->_check_whitelist_rcvd ($pms, $self->{main}->{conf}->{def_welcomelist_from_rcvd}, $_);
+    my $wh = $self->_check_welcomelist_rcvd ($pms, $self->{main}->{conf}->{def_welcomelist_from_rcvd}, $_);
     if ($wh == 1) {
-      $pms->{from_in_default_whitelist} = 1;
+      $pms->{from_in_default_welcomelist} = 1;
       return;
     }
     elsif ($wh == -1) {
@@ -258,7 +290,7 @@ sub _check_from_in_default_whitelist {
     }
   }
 
-  $pms->{from_in_default_whitelist} = $found_match;
+  $pms->{from_in_default_welcomelist} = $found_match;
   return;
 }
 
@@ -319,7 +351,8 @@ sub _check_addr_matches_rcvd {
 
 # look up $addr and trusted relays in a whitelist with rcvd
 # note if it appears to be a forgery and $addr is not in any-relay list
-sub _check_whitelist_rcvd {
+# changed from _check_whitelist_rcvd to _check_welcomelist_rcvd
+sub _check_welcomelist_rcvd {
   my ($self, $pms, $list, $addr) = @_;
 
   # we can only match this if we have at least 1 trusted or untrusted header
@@ -430,13 +463,20 @@ sub _check_welcomelist {
 }
 
 ###########################################################################
-
+#Stub for backwards compatibility - Remove in SA 4.1
 sub check_uri_host_in_blacklist {
+  return check_uri_host_in_blocklist(@_);
+}
+
+sub check_uri_host_in_blocklist {
   my ($self, $pms) = @_;
   $self->check_uri_host_listed($pms, 'BLACK');
 }
 
 sub check_uri_host_in_whitelist {
+  return check_uri_host_in_welcomelist(@_);
+}
+sub check_uri_host_in_welcomelist {
   my ($self, $pms) = @_;
   $self->check_uri_host_listed($pms, 'WHITE');
 }

Modified: spamassassin/trunk/rules/20_vbounce.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/rules/20_vbounce.cf?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/rules/20_vbounce.cf (original)
+++ spamassassin/trunk/rules/20_vbounce.cf Tue Dec 29 21:06:20 2020
@@ -28,10 +28,10 @@
 # "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 'whitelist_bounce_relays' lines, describing the names of
+# You should also add 'welcomelist_bounce_relays' lines, describing the names of
 # your own outgoing mail relays, like so:
 #
-#   whitelist_bounce_relays       dogma.boxhost.net
+#   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
@@ -50,7 +50,7 @@
 
 ifplugin Mail::SpamAssassin::Plugin::VBounce
 
-body __MY_SERVERS_FOUND       eval:check_whitelist_bounce_relays()
+body __MY_SERVERS_FOUND       eval:check_welcomelist_bounce_relays()
 body __HAVE_BOUNCE_RELAYS     eval:have_any_bounce_relays()
 
 endif

Modified: spamassassin/trunk/rules/50_scores.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/rules/50_scores.cf?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/rules/50_scores.cf (original)
+++ spamassassin/trunk/rules/50_scores.cf Tue Dec 29 21:06:20 2020
@@ -701,10 +701,10 @@ 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 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
@@ -712,8 +712,7 @@ score URI_HOST_IN_WHITELIST -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_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
@@ -988,7 +987,7 @@ if (version >= 3.004000)
 # </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.)
+  # (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

Modified: spamassassin/trunk/rules/60_whitelist.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/rules/60_whitelist.cf?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/rules/60_whitelist.cf (original)
+++ spamassassin/trunk/rules/60_whitelist.cf Tue Dec 29 21:06:20 2020
@@ -31,10 +31,31 @@
 
 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
-
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  #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
+else
+  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_BLACKLIST)
+  describe USER_IN_BLACKLIST     	DEPRECATED: See USER_IN_BLOCKLIST 
+  tflags USER_IN_BLACKLIST       	userconf nice noautolearn
+  score USER_IN_BLACKLIST		100.0
+endif
 
 if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
   #bz7826 renames whitelist to welcomelist
@@ -62,13 +83,57 @@ else
   score USER_IN_WHITELIST		-100.0
 endif
 
-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
-
-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
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  #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
+else
+  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
+  
+if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
+  #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
+else
+  header USER_IN_BLOCKLIST_TO	 	eval:check_from_in_blacklist_to()
+  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_BLACKLIST_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
 
 if can(Mail::SpamAssassin::Conf::feature_blocklist_welcomelist)
   #bz7826 renames whitelist to welcomelist
@@ -137,7 +202,7 @@ endif
 # 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_whitelist_auth if possible.
+# Should really not be used these days, use def_welcomelist_auth if possible.
 
 # def_welcomelist_from_rcvd  *@foo.com  foo.com
 

Modified: spamassassin/trunk/rules/60_whitelist_auth.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/rules/60_whitelist_auth.cf?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/rules/60_whitelist_auth.cf (original)
+++ spamassassin/trunk/rules/60_whitelist_auth.cf Tue Dec 29 21:06:20 2020
@@ -28,6 +28,8 @@ 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
@@ -36,8 +38,991 @@ ifplugin Mail::SpamAssassin::Plugin::SPF
 # opt-out practices, publish abuse reporting procedures, and handle reports
 # of abuse promptly.
 #
-# Whitelist and blacklist addresses are now file-glob-style patterns, so
+# 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 *@*.vizio.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
@@ -1013,6 +1998,8 @@ 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

Added: spamassassin/trunk/t/blocklist_autolearn.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/blocklist_autolearn.t?rev=1884922&view=auto
==============================================================================
--- spamassassin/trunk/t/blocklist_autolearn.t (added)
+++ spamassassin/trunk/t/blocklist_autolearn.t Tue Dec 29 21:06:20 2020
@@ -0,0 +1,27 @@
+#!/usr/bin/perl -T
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("blocklist_autolearn");
+use Test::More tests => 3;
+
+# ---------------------------------------------------------------------------
+
+%patterns = (
+
+q{ USER_IN_BLOCKLIST }, 'blocklisted',
+
+
+);
+
+%anti_patterns = (
+q{ autolearn=ham } => 'autolearned as ham'
+);
+
+tstprefs ('
+
+blacklist_from *@ximian.com
+
+');
+
+ok (sarun ("-L -t < data/nice/001", \&patterns_run_cb));
+ok_all_patterns();

Propchange: spamassassin/trunk/t/blocklist_autolearn.t
------------------------------------------------------------------------------
    svn:executable = *

Modified: spamassassin/trunk/t/data/01_test_rules.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/data/01_test_rules.cf?rev=1884922&r1=1884921&r2=1884922&view=diff
==============================================================================
--- spamassassin/trunk/t/data/01_test_rules.cf (original)
+++ spamassassin/trunk/t/data/01_test_rules.cf Tue Dec 29 21:06:20 2020
@@ -127,18 +127,18 @@ ifplugin Mail::SpamAssassin::Plugin::WLB
 #header USER_IN_WHITELIST	eval:check_from_in_whitelist()
 #tflags USER_IN_WHITELIST	userconf nice noautolearn
 #score  USER_IN_WHITELIST -100.000
-header USER_IN_DEF_WHITELIST	eval:check_from_in_default_whitelist()
-tflags USER_IN_DEF_WHITELIST	userconf nice noautolearn
-score  USER_IN_DEF_WHITELIST -15.000
+#header USER_IN_DEF_WHITELIST	eval:check_from_in_default_whitelist()
+#tflags USER_IN_DEF_WHITELIST	userconf nice noautolearn
+#score  USER_IN_DEF_WHITELIST -15.000
 #header USER_IN_WHITELIST_TO     eval:check_to_in_whitelist()
 #tflags USER_IN_WHITELIST_TO     userconf nice noautolearn
 #score  USER_IN_WHITELIST_TO -6.000
-header USER_IN_BLACKLIST	eval:check_from_in_blacklist()
-tflags USER_IN_BLACKLIST	userconf noautolearn
-score  USER_IN_BLACKLIST 100.000
-header USER_IN_BLACKLIST_TO     eval:check_to_in_blacklist()
-tflags USER_IN_BLACKLIST_TO     userconf noautolearn
-score  USER_IN_BLACKLIST_TO 10.000
+#header USER_IN_BLACKLIST	eval:check_from_in_blacklist()
+#tflags USER_IN_BLACKLIST	userconf noautolearn
+#score  USER_IN_BLACKLIST 100.000
+#header USER_IN_BLACKLIST_TO     eval:check_to_in_blacklist()
+#tflags USER_IN_BLACKLIST_TO     userconf noautolearn
+#score  USER_IN_BLACKLIST_TO 10.000
 endif # Mail::SpamAssassin::Plugin::WLBLEval
 
 ifplugin Mail::SpamAssassin::Plugin::WhiteListSubject

Added: spamassassin/trunk/t/freemail_welcome_block.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/freemail_welcome_block.t?rev=1884922&view=auto
==============================================================================
--- spamassassin/trunk/t/freemail_welcome_block.t (added)
+++ spamassassin/trunk/t/freemail_welcome_block.t Tue Dec 29 21:06:20 2020
@@ -0,0 +1,57 @@
+#!/usr/bin/perl -T
+
+BEGIN {
+  if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
+    chdir 't';
+  }
+
+  if (-e 'test_dir') {            # running from test directory, not ..
+    unshift(@INC, '../blib/lib');
+    unshift(@INC, '../lib');
+  }
+}
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("freemail");
+
+use Test::More;
+
+plan tests => 4;
+
+# ---------------------------------------------------------------------------
+
+tstpre ("
+loadplugin Mail::SpamAssassin::Plugin::FreeMail
+");
+
+tstprefs ("
+        header FREEMAIL_FROM eval:check_freemail_from()
+        freemail_domains gmail.com
+        freemail_import_welcomelist_auth 0
+        welcomelist_auth test\@gmail.com
+");
+
+%patterns = (
+        q{ FREEMAIL_FROM }, 'FREEMAIL_FROM',
+            );
+
+ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
+ok_all_patterns();
+clear_pattern_counters();
+
+## Now test with freemail_import_welcomelist_auth, should not hit
+
+%patterns = ();
+%anti_patterns = (
+        q{ FREEMAIL_FROM }, 'FREEMAIL_FROM',
+            );
+
+tstprefs ("
+        header FREEMAIL_FROM eval:check_freemail_from()
+        freemail_domains gmail.com
+        freemail_import_welcomelist_auth 1
+        welcomelist_auth test\@gmail.com
+");
+
+ok sarun ("-L -t < data/spam/relayUS.eml", \&patterns_run_cb);
+ok_all_patterns();

Propchange: spamassassin/trunk/t/freemail_welcome_block.t
------------------------------------------------------------------------------
    svn:executable = *