Mail-DMARC
view release on metacpan or search on metacpan
- test: mock DNS during testing #213
- ci: restore CI tests to working order
- Force lower case for SPF domain input #212
### 1.20230215
- Fix error when logging a report which was skipped for size
### 1.20211209
- Properly delete sent reports when the database does not support cascade
### 1.20210927
- Fix reporting for selectors whose name evaluates to false
- Use maybestarttls for opportunistic encryption when sending reports using Email::Sender v2.0 or greater
- Remove dead domain dmarc-qa.com from tests
- Print full syntax guide with "--help" option (Jeremiah Morris)
### 1.20210427
lib/Mail/DMARC/Report/Store/SQL.pm view on Meta::CPAN
push @reports_todo, $agg;
}
return \@reports_todo;
}
sub delete_report {
my $self = shift;
my $report_id = shift or croak "missing report ID";
print "deleting report $report_id\n" if $self->verbose;
# deletes with FK don't cascade in SQLite? Clean each table manually
my $rows = $self->query( $self->grammar->report_record_id, [$report_id] );
my @row_ids = map { $_->{id} } @$rows;
if (scalar @row_ids) {
foreach my $table (qw/ report_record_spf report_record_dkim report_record_reason /) {
print "deleting $table rows " . join(',', @row_ids) . "\n" if $self->verbose;
eval { $self->query( $self->grammar->delete_from_where_record_in($table), \@row_ids); };
# warn $@ if $@;
}
}
foreach my $table (qw/ report_policy_published report_record report_error /) {
print "deleting $table rows for report $report_id\n" if $self->verbose;
eval { $self->query( $self->grammar->delete_from_where_report($table), [$report_id] ); };
# warn $@ if $@;
}
# In MySQL, where FK constraints DO cascade, this is the only query needed
$self->query( $self->grammar->delete_report, [$report_id] );
return 1;
}
sub get_domain_id {
my ( $self, $domain ) = @_;
croak "missing domain calling " . ( caller(0) )[3] if !$domain;
my $r = $self->query( $self->grammar->select_domain_id, [$domain] );
if ( $r && scalar @$r ) {
return $r->[0]{id};
( run in 0.520 second using v1.01-cache-2.11-cpan-49f99fa48dc )