diff --git a/lib/WebGUI/Mailing/Bounce.pm b/lib/WebGUI/Mailing/Bounce.pm
index 7a4fe33..c76b572 100644
--- a/lib/WebGUI/Mailing/Bounce.pm
+++ b/lib/WebGUI/Mailing/Bounce.pm
@@ -57,13 +57,45 @@ sub session {
sub www_bounceReport {
my $self = shift;
my $session = $self->session;
+ my $db = $session->db;
my $i18n = WebGUI::International->new( $session, 'MailingManager' );
- my $sth = $session->db->read( 'select distinct sentTo from Mailing_email where sentTo is not null' );
-
- my $output = '
| '.$i18n->get('email').' | '.$i18n->get('bounce score').' |
';
- while ( my ($email) = $sth->array ) {
- my $score = $self->getBounceScore( $email );
- $output .= "| $email | $score |
";
+
+ my $windowSize = 10;
+
+ my $sql = <read( $sql, [ $windowSize, $windowSize - 1 ] );
+
+ my $output = '| '
+ . join( ' | ',
+ $i18n->get('email'),
+ $i18n->get('bounce score'),
+ $i18n->get('bounce reason'),
+ $i18n->get('bounce message')
+ )
+ . ' |
';
+ while ( my $values = $sth->arrayRef ) {
+ $output .= '| '. join( ' | ', @$values ) . ' |
';
}
$output .= '
';
diff --git a/lib/WebGUI/i18n/Dutch/MailingManager.pm b/lib/WebGUI/i18n/Dutch/MailingManager.pm
index 4dc165b..31892b7 100644
--- a/lib/WebGUI/i18n/Dutch/MailingManager.pm
+++ b/lib/WebGUI/i18n/Dutch/MailingManager.pm
@@ -26,7 +26,7 @@ our $I18N = {
'bounce score' => {
message => 'Bounce score',
},
-
+
'cannot cancel' => {
message => 'Mailing \'%s\' kan niet worden afgebroken.',
},
@@ -100,6 +100,14 @@ our $I18N = {
'generate mailing' => {
message => 'Genereer mailing',
},
+
+ 'bounce reason' => {
+ message => 'Laatste bounce oorzaak',
+ },
+
+ 'bounce message' => {
+ message => 'Laatste bounce omschrijving',
+ },
};
1;
diff --git a/lib/WebGUI/i18n/English/MailingManager.pm b/lib/WebGUI/i18n/English/MailingManager.pm
index 51798f1..e8aebca 100644
--- a/lib/WebGUI/i18n/English/MailingManager.pm
+++ b/lib/WebGUI/i18n/English/MailingManager.pm
@@ -26,7 +26,7 @@ our $I18N = {
'bounce score' => {
message => 'Bounce score',
},
-
+
'error' => {
message => 'An error occurred',
},
@@ -100,6 +100,14 @@ our $I18N = {
'generate mailing' => {
message => 'Generate mailing',
},
+
+ 'bounce reason' => {
+ message => 'Latest bounce reason',
+ },
+
+ 'bounce message' => {
+ message => 'Latest bounce message',
+ },
};
1;
diff --git a/sbin/install_newsletter.pl b/sbin/install_newsletter.pl
index 2d07aea..39b8d37 100644
--- a/sbin/install_newsletter.pl
+++ b/sbin/install_newsletter.pl
@@ -34,9 +34,25 @@ renamespaceTemplates( $session );
addSpecialStateTable( $session );
addListNameColumn( $session );
addRegistrationSteps( $session );
+addSentToIndex( $session );
finish($session);
+#----------------------------------------------------------------------------
+sub addSentToIndex {
+ my $session = shift;
+ my $db = $session->db;
+
+ print "\tAdding index to column Mailing_email.sentTo...";
+
+ my @indexes = $db->buildArray('show indexes from Mailing_email where Column_name=?',['sentTo']);
+
+ if ( @indexes == 0 ) {
+ $db->write('alter table Mailing_email add index(sentTo)');
+ }
+
+ print "Done.\n";
+}
#----------------------------------------------------------------------------
sub addListNameColumn {