diff --git a/lib/Mail/SpamAssassin/Plugin/DKIM.pm b/lib/Mail/SpamAssassin/Plugin/DKIM.pm index b7db21d67..bb3a979b7 100644 --- a/lib/Mail/SpamAssassin/Plugin/DKIM.pm +++ b/lib/Mail/SpamAssassin/Plugin/DKIM.pm @@ -561,9 +561,10 @@ sub check_dkim_valid_author_sig { sub check_dkim_valid_envelopefrom { my ($self, $pms, $full_ref) = @_; my $result = 0; - my $envfrom=$self->{'main'}->{'registryboundaries'}->uri_to_domain($pms->get("EnvelopeFrom")); + my ( $envfrom ) = $pms->get("EnvelopeFrom") =~ /@([a-z0-9\-\.]*)/i; # if no envelopeFrom, it cannot be valid return $result if !$envfrom; + $envfrom = lc $envfrom; $self->_check_dkim_signature($pms) if !$pms->{dkim_checked_signature}; if (!$pms->{dkim_valid}) { # don't bother @@ -720,7 +721,7 @@ sub _check_dkim_signed_by { next if $minimum_key_bits && $sig->{_spamassassin_key_size} && $sig->{_spamassassin_key_size} < $minimum_key_bits; } - my $sdid = $sig->domain; + my ( $sdid ) = $sig->identity =~ /@(.*)/; next if !defined $sdid; # a signature with a missing required tag 'd' ? $sdid = lc $sdid; if ($must_be_author_domain_signature) { @@ -909,7 +910,7 @@ sub _check_dkim_signature { push(@valid_signatures, $signature) if $valid && !$expired; # check if we have a potential Author Domain Signature, valid or not - my $d = $signature->domain; + my ( $d ) = $signature->identity =~ /@(.*)/; if (!defined $d) { # can be undefined on a broken signature with missing required tags } else { @@ -1261,7 +1262,7 @@ sub _wlcheck_list { } } - my $sdid = $signature->domain; + my ( $sdid ) = $signature->identity =~ /@(.*)/; $sdid = lc $sdid if defined $sdid; my %tried_authors;