Projects
home:rottame:mail
perl-spamassassin-dmarc
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 5
View file
dmarc.cf
Changed
@@ -1,37 +1,40 @@ ifplugin Mail::SpamAssassin::Plugin::Dmarc ifplugin Mail::SpamAssassin::Plugin::DKIM ifplugin Mail::SpamAssassin::Plugin::SPF - dmarc_save_reports 1 + ifplugin Mail::SpamAssassin::Plugin::AskDNS - meta __DKIM_FAIL ( DKIM_INVALID ) - meta __SPF_FAIL ( SPF_FAIL || SPF_SOFTFAIL ) + dmarc_save_reports 1 + + askdns __DMARC_HAS_POLICY _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;/ - header __DMARC_REJECT eval:check_dmarc_reject() - meta DMARC_FAIL_POLICY_REJECT ( ( __DKIM_FAIL || __SPF_FAIL ) && __DMARC_REJECT ) - describe DMARC_FAIL_POLICY_REJECT Dmarc reject policy - score DMARC_FAIL_POLICY_REJECT 10 + meta __DKIM_FAIL ( DKIM_INVALID ) + meta __SPF_FAIL ( SPF_FAIL || SPF_SOFTFAIL ) - header __DMARC_QUAR eval:check_dmarc_quarantine() - meta DMARC_FAIL_POLICY_QUAR ( ( __DKIM_FAIL || __SPF_FAIL ) && __DMARC_QUAR ) - describe DMARC_FAIL_POLICY_QUAR Dmarc quarantine policy - score DMARC_FAIL_POLICY_QUAR 7 + header __DMARC_REJECT eval:check_dmarc_reject() + meta DMARC_FAIL_POLICY_REJECT ( __DMARC_REJECT ) + describe DMARC_FAIL_POLICY_REJECT Dmarc reject policy + score DMARC_FAIL_POLICY_REJECT 10 - header __DMARC_NONE eval:check_dmarc_none() - meta DMARC_FAIL_POLICY_NONE ( ( __DKIM_FAIL || __SPF_FAIL ) && __DMARC_NONE ) - describe DMARC_FAIL_POLICY_NONE Dmarc none policy - score DMARC_FAIL_POLICY_NONE 0.1 + header __DMARC_QUAR eval:check_dmarc_quarantine() + meta DMARC_FAIL_POLICY_QUAR ( __DMARC_QUAR ) + describe DMARC_FAIL_POLICY_QUAR Dmarc quarantine policy + score DMARC_FAIL_POLICY_QUAR 7 + header __DMARC_NONE eval:check_dmarc_none() + meta DMARC_FAIL_POLICY_NONE ( __DMARC_NONE ) + describe DMARC_FAIL_POLICY_NONE Dmarc none policy + score DMARC_FAIL_POLICY_NONE 0.1 + meta DMARC_PASS __DMARC_HAS_POLICY && !(__DMARC_REJECT || __DMARC_QUAR || __DMARC_NONE) + score DMARC_PASS -0.01 - meta DMARC_PASS (DKIM_VALID || SPF_PASS) && (__DMARC_REJECT || __DMARC_QUAR || __DMARC_NONE) - score DMARC_PASS -0.01 + meta SPF_AUTH_FAILED !__DMARC_HAS_POLICY && !(__DMARC_REJECT || __DMARC_QUAR || __DMARC_NONE) && __SPF_FAIL && !DKIM_VALID + score SPF_AUTH_FAILED 7 - meta SPF_AUTH_FAILED !(__DMARC_REJECT || __DMARC_QUAR || __DMARC_NONE) && __SPF_FAIL - score SPF_AUTH_FAILED 7 - - meta DKIM_AUTH_FAILED !(__DMARC_REJECT || __DMARC_QUAR || __DMARC_NONE) && __DKIM_FAIL - score DKIM_AUTH_FAILED 7 + meta DKIM_AUTH_FAILED !__DMARC_HAS_POLICY && !(__DMARC_REJECT || __DMARC_QUAR || __DMARC_NONE) && __DKIM_FAIL + score DKIM_AUTH_FAILED 7 + endif endif endif endif
View file
perl-spamassassin-dmarc-1.0.0.tar.gz/.git
Deleted
@@ -1,1 +0,0 @@ -gitdir: ../.git/modules/spamassassin-dmarc
View file
perl-spamassassin-dmarc-1.0.0.tar.gz/dmarc.pm
Changed
@@ -182,7 +182,7 @@ return 0; } - if((defined $self->{dmarc_checked}) and ($self->{dmarc_checked} eq 1)) { + if((defined $pms->{dmarc_checked}) and ($pms->{dmarc_checked} eq 1)) { return; } $dmarc = Mail::DMARC::PurePerl->new(); @@ -193,28 +193,46 @@ $pms->{spf_sender} = $pms->get('EnvelopeFrom:addr') unless defined $pms->{spf_sender}; return if (not defined $lasthop->{ip}); - return if (not defined $pms->{dkim_verifier}); + + my $dkim = $pms->{dkim_verifier}; + + if(not defined $pms->{dkim_verifier}) { + $dkim = {}; + for (keys %{$pms->{dkim_author_domains}}){ + $dkim->{$_} = { domain => $_, result => 'neutral' }; + } + if(defined $pms->{dkim_signatures}) { + foreach (@{$pms->{dkim_signatures}}) { + $dkim->{$_->domain}->{result} = $_->result; + $dkim->{$_->domain}->{human_result} = $_->result_detail; + $dkim->{$_->domain}->{selector} = $_->selector; + } + } + $dkim = [values %{$dkim}]; + } + $spf_status = 'pass' if ((defined $pms->{spf_pass}) and ($pms->{spf_pass} eq 1)); $spf_status = 'fail' if ((defined $pms->{spf_fail}) and ($pms->{spf_fail} eq 1)); - $spf_status = 'fail' if ((defined $pms->{spf_none}) and ($pms->{spf_none} eq 1)); + $spf_status = 'none' if ((defined $pms->{spf_none}) and ($pms->{spf_none} eq 1)); $spf_status = 'fail' if ((defined $pms->{spf_permerror}) and ($pms->{spf_permerror} eq 1)); $spf_status = 'neutral' if ((defined $pms->{spf_neutral}) and ($pms->{spf_neutral} eq 1)); $spf_status = 'softfail' if ((defined $pms->{spf_softfail}) and ($pms->{spf_softfail} eq 1)); $spf_helo_status = 'pass' if ((defined $pms->{spf_helo_pass}) and ($pms->{spf_helo_pass} eq 1)); $spf_helo_status = 'fail' if ((defined $pms->{spf_helo_fail}) and ($pms->{spf_helo_fail} eq 1)); $spf_helo_status = 'fail' if ((defined $pms->{spf_helo_permerror}) and ($pms->{spf_helo_permerror} eq 1)); - $spf_helo_status = 'fail' if ((defined $pms->{spf_helo_none}) and ($pms->{spf_helo_none} eq 1)); + $spf_helo_status = 'none' if ((defined $pms->{spf_helo_none}) and ($pms->{spf_helo_none} eq 1)); $spf_helo_status = 'neutral' if ((defined $pms->{spf_helo_neutral}) and ($pms->{spf_helo_neutral} eq 1)); $spf_helo_status = 'softfail' if ((defined $pms->{spf_helo_softfail}) and ($pms->{spf_helo_softfail} eq 1)); $dmarc->source_ip($lasthop->{ip}); $dmarc->header_from_raw($pms->get('From:addr')); - $dmarc->dkim($pms->{dkim_verifier}); + $dmarc->dkim($dkim); + my $domain_from = $self->uri_to_domain($pms->{spf_sender}); $dmarc->spf([ { scope => 'mfrom', - domain => "$self->uri_to_domain($pms->{spf_sender})", + domain => "$domain_from", result => "$spf_status", }, { @@ -249,6 +267,8 @@ $pms->{dmarc_checked} = 1; undef $result; undef $dmarc; + undef $dkim; + undef $domain_from; } 1;
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.