Skip addresses that exceed bounce score threshold.
This commit is contained in:
parent
2e27fd5c21
commit
1167a11ba7
4 changed files with 31 additions and 1 deletions
|
|
@ -85,6 +85,11 @@ sub www_settings {
|
||||||
value => $setting->get( 'newsletterReturnDomain' ),
|
value => $setting->get( 'newsletterReturnDomain' ),
|
||||||
label => 'Newsletter domain name',
|
label => 'Newsletter domain name',
|
||||||
);
|
);
|
||||||
|
$f->integer(
|
||||||
|
name => 'newsletterBounceScoreThreshold',
|
||||||
|
value => $setting->get( 'newsletterBounceScoreThreshold' ),
|
||||||
|
label => 'Bounce score threshold',
|
||||||
|
);
|
||||||
$f->submit;
|
$f->submit;
|
||||||
|
|
||||||
return $self->getAdminConsole->render($f->print, 'Newsletter settings')
|
return $self->getAdminConsole->render($f->print, 'Newsletter settings')
|
||||||
|
|
@ -98,6 +103,7 @@ sub www_settingsSave {
|
||||||
my ($setting, $form) = $session->quick( 'setting', 'form' );
|
my ($setting, $form) = $session->quick( 'setting', 'form' );
|
||||||
|
|
||||||
$setting->set( 'newsletterReturnDomain', $form->get('newsletterReturnDomain') );
|
$setting->set( 'newsletterReturnDomain', $form->get('newsletterReturnDomain') );
|
||||||
|
$setting->set( 'newsletterBounceScoreThreshold', $form->integer('newsletterBounceScoreThreshold') );
|
||||||
|
|
||||||
return $self->www_settings;
|
return $self->www_settings;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,17 @@ use warnings;
|
||||||
|
|
||||||
use WebGUI::Mailing::Admin;
|
use WebGUI::Mailing::Admin;
|
||||||
|
|
||||||
|
sub bounceScoreOk {
|
||||||
|
my $self = shift;
|
||||||
|
my $address = shift;
|
||||||
|
my $setting = $self->session->setting;
|
||||||
|
|
||||||
|
my $threshold = $setting->get('newsletterBounceScoreThreshold');
|
||||||
|
return 1 unless $threshold;
|
||||||
|
|
||||||
|
return $self->getBounceScore( $address ) < $threshold;
|
||||||
|
}
|
||||||
|
|
||||||
sub getBounceScore {
|
sub getBounceScore {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $address = shift;
|
my $address = shift;
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,18 @@ sub send {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check bounce score
|
||||||
|
my $bounceScoreOk = WebGUI::Mailing::Bounce->new( $session )->bounceScoreOk( $to );
|
||||||
|
if ( !$self->get( 'isTest' ) && !$bounceScoreOk ) {
|
||||||
|
$self->update( {
|
||||||
|
status => 'skipped',
|
||||||
|
sendDate => time,
|
||||||
|
errorMessage => "Bounce score for $to too high",
|
||||||
|
} );
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
# Fetch subject
|
# Fetch subject
|
||||||
my $subject = $asset->getSubject( $configuration );
|
my $subject = $asset->getSubject( $configuration );
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,8 @@ sub installNewsletterSettings {
|
||||||
|
|
||||||
print "\tInstalling newsletter setting slots...";
|
print "\tInstalling newsletter setting slots...";
|
||||||
|
|
||||||
$setting->add( 'newsletterReturnDomain', undef ) unless $setting->has( 'newsletterReturnDomain' );
|
$setting->add( 'newsletterReturnDomain', undef ) unless $setting->has( 'newsletterReturnDomain' );
|
||||||
|
$setting->add( 'newsletterBounceScoreThreshold', 0 ) unless $setting->has( 'newsletterBounceScoreThreshold' );
|
||||||
|
|
||||||
print "Done.\n";
|
print "Done.\n";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue