diff -urN lib.orig/Mail/SpamAssassin/EvalTests.pm lib/Mail/SpamAssassin/EvalTests.pm --- lib.orig/Mail/SpamAssassin/EvalTests.pm 2004-08-05 04:48:33.000000000 +0300 +++ lib/Mail/SpamAssassin/EvalTests.pm 2004-10-02 15:15:30.000000000 +0300 @@ -79,6 +79,51 @@ # HEAD TESTS: ########################################################################### +sub check_underscored_From { + my ($self) = @_; + local ($_); + $_ = $self->get('From'); + if (/^(\s*\S+)(\s*<.+>)/) { + my $realname = $1; + my $addr = $2; + $realname =~ s/_//g; + $addr = $realname.$addr; + return($addr =~ /^\s*(\S+)\s*<\1\@.+>/i ? 1 : 0); + } else { + return 0; + } +} + +sub check_dotted_From { + my ($self) = @_; + local ($_); + $_ = $self->get('From'); + if (/^(\s*\S+)(\s*<.+>)/) { + my $realname = $1; + my $addr = $2; + $realname =~ s/\.//g; + $addr = $realname.$addr; + return($addr =~ /^\s*"?(\S+)"?\s*<\1\@.+>/i ? 1 : 0); + } else { + return 0; + } +} + +sub check_minus_From { + my ($self) = @_; + local ($_); + $_ = $self->get('From'); + if (/^(\s*\S+)(\s*<.+>)/) { + my $realname = $1; + my $addr = $2; + $realname =~ s/\-//g; + $addr = $realname.$addr; + return($addr =~ /^\s*"?(\S+)"?\s*<\1\@.+>/i ? 1 : 0); + } else { + return 0; + } +} + sub check_for_from_dns { my ($self) = @_;