diff --git a/lib/Config/TaskScheduler.php b/lib/Config/TaskScheduler.php index 4b4301238d..80a2f34994 100644 --- a/lib/Config/TaskScheduler.php +++ b/lib/Config/TaskScheduler.php @@ -19,28 +19,29 @@ class TaskScheduler { } function init() { - // configure task scheduler only outside of cli environment - if(php_sapi_name() === 'cli') return; - switch($this->method) { - case self::METHOD_MAILPOET: - return $this->configureMailpoetScheduler(); - break; - case self::METHOD_WORDPRESS: - return $this->configureWordpressScheduler(); - break; - default: - throw new \Exception(__("Task scheduler is not configured")); - break; - }; + try { + // configure task scheduler only outside of cli environment + if(php_sapi_name() === 'cli') return; + switch($this->method) { + case self::METHOD_MAILPOET: + return $this->configureMailpoetScheduler(); + break; + case self::METHOD_WORDPRESS: + return $this->configureWordpressScheduler(); + break; + default: + throw new \Exception(__("Task scheduler is not configured")); + break; + }; + } catch(\Exception $e) { + // ignore exceptions as they should not prevent the rest of the site from loading + } } function configureMailpoetScheduler() { - try { - $supervisor = new Supervisor(); - $supervisor->checkDaemon(); - } catch(\Exception $e) { - // exceptions should not prevent the rest of the site loading - } + $supervisor = new Supervisor(); + $supervisor->checkDaemon(); + return; } function configureWordpressScheduler() { diff --git a/lib/Mailer/Mailer.php b/lib/Mailer/Mailer.php index 3f0ce5361e..ec4f862f84 100644 --- a/lib/Mailer/Mailer.php +++ b/lib/Mailer/Mailer.php @@ -44,14 +44,14 @@ class Mailer { $this->sender, $this->reply_to ); - break; + break; case self::METHOD_ELASTICEMAIL: $mailer_instance = new $this->mailer['class']( $this->mailer['api_key'], $this->sender, $this->reply_to ); - break; + break; case self::METHOD_MAILGUN: $mailer_instance = new $this->mailer['class']( $this->mailer['domain'], @@ -59,27 +59,27 @@ class Mailer { $this->sender, $this->reply_to ); - break; + break; case self::METHOD_MAILPOET: $mailer_instance = new $this->mailer['class']( $this->mailer['mailpoet_api_key'], $this->sender, $this->reply_to ); - break; + break; case self::METHOD_SENDGRID: $mailer_instance = new $this->mailer['class']( $this->mailer['api_key'], $this->sender, $this->reply_to ); - break; + break; case self::METHOD_PHPMAIL: $mailer_instance = new $this->mailer['class']( $this->sender, $this->reply_to ); - break; + break; case self::METHOD_SMTP: $mailer_instance = new $this->mailer['class']( $this->mailer['host'], @@ -91,7 +91,7 @@ class Mailer { $this->sender, $this->reply_to ); - break; + break; default: throw new \Exception(__('Mailing method does not exist')); } @@ -103,6 +103,11 @@ class Mailer { $mailer = Setting::getValue(self::MAILER_CONFIG); if(!$mailer || !isset($mailer['method'])) throw new \Exception(__('Mailer is not configured')); } + if(empty($mailer['frequency'])) { + $default_settings = Setting::getDefaults(); + $mailer['frequency'] = $default_settings['mta']['frequency']; + } + // add additional variables to the mailer object $mailer['class'] = 'MailPoet\\Mailer\\Methods\\' . $mailer['method']; $mailer['frequency_interval'] = (int)$mailer['frequency']['interval'] * self::SENDING_LIMIT_INTERVAL_MULTIPLIER;