diff --git a/lib/Cron/Workers/SendingQueue/SendingQueue.php b/lib/Cron/Workers/SendingQueue/SendingQueue.php index 2f14d9e758..d2ddf7ac17 100644 --- a/lib/Cron/Workers/SendingQueue/SendingQueue.php +++ b/lib/Cron/Workers/SendingQueue/SendingQueue.php @@ -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 ); diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Mailer.php b/lib/Cron/Workers/SendingQueue/Tasks/Mailer.php index 61bbc26777..dbafb33bd4 100644 --- a/lib/Cron/Workers/SendingQueue/Tasks/Mailer.php +++ b/lib/Cron/Workers/SendingQueue/Tasks/Mailer.php @@ -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() { @@ -77,14 +71,13 @@ class Mailer { } function prepareSubscriberForSending(array $subscriber) { - return $this->mailer->transformSubscriber($subscriber); + 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() {