diff -urN lib.orig/Mail/SpamAssassin/EvalTests.pm lib/Mail/SpamAssassin/EvalTests.pm --- lib.orig/Mail/SpamAssassin/EvalTests.pm 2004-01-18 01:56:08.000000000 +0200 +++ lib/Mail/SpamAssassin/EvalTests.pm 2004-09-30 18:13:46.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) = @_;