Adding sending of batches and bounce processing.

This commit is contained in:
Martin Kamerbeek 2010-05-19 15:42:39 +02:00
parent d62f56a635
commit f8cb8cd05a
5 changed files with 134 additions and 10 deletions

View file

@ -104,6 +104,73 @@ sub queueTestEmails {
return;
}
sub queueEmails {
my $self = shift;
my $userIds = shift;
my $session = $self->session;
croak "User ids must be an array ref" unless ( ref $userIds eq 'ARRAY' );
foreach my $userId ( @{ $userIds } ) {
WebGUI::Mailing::Email->create( $session, {
mailingId => $self->getId,
userId => $userId,
recipientEmail => undef,
isTest => 0,
} );
}
return;
}
sub www_sendBatch {
my $self = shift;
my $session = $self->session;
my $f = WebGUI::HTMLForm->new( $session );
$f->hidden(
name => 'newsletter',
value => 'mailing',
);
$f->hidden(
name => 'func',
value => 'sendBatchConfirm',
);
$f->hidden(
name => 'id',
value => $self->getId,
);
$f->dateTime(
name => 'schedule',
label => 'Send batch at',
);
$f->submit;
return WebGUI::Mailing::Admin->new($session)->getAdminConsole->render( $f->print, 'Send batch' );
}
sub www_sendBatchConfirm {
my $self = shift;
my $session = $self->session;
my $form = $session->form;
my $scheduled = $form->dateTime( 'scheduled' );
return $self->www_sendBatch unless $scheduled;
my $asset = WebGUI::Asset->newByDynamicClass( $session, $self->get('assetId') );
croak "Cannot instaciate asset " . $self->get('assetId') unless $asset;
my $userIds = $asset->getRecipients;
$self->queueEmails( $userIds );
$self->update( {
sendDate => $scheduled,
active => 1,
} );
return WebGUI::Mailing::Admin->new( $session )->www_view;
}
sub www_sendTestEmails {
my $self = shift;
my $session = $self->session;