- Updates mailer task to store mailer instance

This commit is contained in:
Vlad
2016-06-22 11:15:40 -04:00
parent e5f3fabcda
commit f524ffcb28
2 changed files with 13 additions and 21 deletions

View File

@ -21,7 +21,7 @@ class SendingQueue {
function __construct($timer = false) {
$this->mailer_task = new MailerTask();
$this->newsletter_task = new NewsletterTask($this->mailer_task);
$this->newsletter_task = new NewsletterTask();
$this->timer = ($timer) ? $timer : microtime(true);
}
@ -34,6 +34,8 @@ class SendingQueue {
$queue->delete();
continue;
}
// configure mailer
$this->mailer_task->configureMailer($newsletter);
if(is_null($queue->newsletter_rendered_body)) {
$queue->newsletter_rendered_body = json_encode($newsletter['rendered_body']);
$queue->save();
@ -98,7 +100,6 @@ class SendingQueue {
if($processing_method === 'individual') {
$queue = $this->sendNewsletters(
$queue,
$newsletter,
$prepared_subscribers_ids,
$prepared_newsletters[0],
$prepared_subscribers[0],
@ -112,7 +113,6 @@ class SendingQueue {
if($processing_method === 'bulk') {
$queue = $this->sendNewsletters(
$queue,
$newsletter,
$prepared_subscribers_ids,
$prepared_newsletters,
$prepared_subscribers,
@ -123,12 +123,11 @@ class SendingQueue {
}
function sendNewsletters(
$queue, $newsletter_object, $prepared_subscribers_ids, $prepared_newsletters,
$queue, $prepared_subscribers_ids, $prepared_newsletters,
$prepared_subscribers, $statistics
) {
// send newsletter
$send_result = $this->mailer_task->send(
$newsletter_object,
$prepared_newsletters,
$prepared_subscribers
);

View File

@ -9,14 +9,14 @@ if(!defined('ABSPATH')) exit;
class Mailer {
public $mta_config;
public $mta_log;
public $mailer = null;
function __construct() {
$this->mta_config = $this->getMailerConfig();
$this->mta_log = $this->getMailerLog();
$this->mailer = $this->configureMailer();
}
function configureMailer(array $newsletter = null, $mailer = false) {
function configureMailer(array $newsletter = null) {
$sender['address'] = (!empty($newsletter['sender_address'])) ?
$newsletter['sender_address'] :
false;
@ -35,14 +35,8 @@ class Mailer {
if(!$reply_to['address']) {
$reply_to = false;
}
if (!$mailer) {
$mailer = new MailerFactory($method = false, $sender, $reply_to);
}
else {
$mailer->mailer_instance->sender = $mailer->getSender($sender);
$mailer->mailer_instance->reply_to = $mailer->getReplyTo($reply_to);
}
return $mailer;
$this->mailer = new MailerFactory($method = false, $sender, $reply_to);
return $this->mailer;
}
function getMailerConfig() {
@ -80,11 +74,10 @@ class Mailer {
return $this->mailer->transformSubscriber($subscriber);
}
function send(array $newsletter_object, $prepared_newsletters,
$prepared_subscribers
) {
$mailer = $this->configureMailer($newsletter_object, $this->mailer);
return $mailer->mailer_instance->send($prepared_newsletters, $prepared_subscribers);
function send($prepared_newsletters, $prepared_subscribers) {
return ($this->mailer) ?
$this->mailer->mailer_instance->send($prepared_newsletters, $prepared_subscribers) :
false;
}
function checkSendingLimit() {