- Updates Mailer class to use default values from Settings

This commit is contained in:
Vlad
2016-07-21 10:29:16 -04:00
parent 9b9cb1455a
commit 067b3ff3e6
2 changed files with 32 additions and 26 deletions

View File

@ -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() {

View File

@ -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;