Introduce an use_sendmail option

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2018-05-25 15:50:35 +02:00
parent 7305c0f89c
commit d6c2f01457
No known key found for this signature in database
GPG Key ID: A061B9DDE0CA0773
9 changed files with 36 additions and 10 deletions

View File

@ -42,7 +42,7 @@ $is_admin = false;
$logService = new LogService(); $logService = new LogService();
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$inputService = new InputService(); $inputService = new InputService();
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$notificationService = new NotificationService($mailService); $notificationService = new NotificationService($mailService);
$securityService = new SecurityService(); $securityService = new SecurityService();

View File

@ -28,7 +28,7 @@ include_once __DIR__ . '/../app/inc/init.php';
$logService = new LogService(); $logService = new LogService();
$sessionService = new SessionService(); $sessionService = new SessionService();
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$result = false; $result = false;

View File

@ -50,7 +50,7 @@ $logService = new LogService();
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$adminPollService = new AdminPollService($connect, $pollService, $logService); $adminPollService = new AdminPollService($connect, $pollService, $logService);
$inputService = new InputService(); $inputService = new InputService();
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$notificationService = new NotificationService($mailService); $notificationService = new NotificationService($mailService);
$sessionService = new SessionService(); $sessionService = new SessionService();

View File

@ -8,18 +8,39 @@ class MailService {
const MAILSERVICE_KEY = 'mailservice'; const MAILSERVICE_KEY = 'mailservice';
/**
* @var bool
*/
private $smtp_allowed; private $smtp_allowed;
/**
* @var array
*/
private $smtp_options = []; private $smtp_options = [];
/**
* @var bool
*/
private $use_sendmail;
/**
* @var LogService
*/
private $logService; private $logService;
function __construct($smtp_allowed, $smtp_options = []) { /**
* MailService constructor.
* @param $smtp_allowed
* @param array $smtp_options
* @param bool $use_sendmail
*/
public function __construct($smtp_allowed, $smtp_options = [], $use_sendmail = false) {
$this->logService = new LogService(); $this->logService = new LogService();
$this->smtp_allowed = $smtp_allowed; $this->smtp_allowed = $smtp_allowed;
if (true === is_array($smtp_options)) { if (true === is_array($smtp_options)) {
$this->smtp_options = $smtp_options; $this->smtp_options = $smtp_options;
} }
$this->use_sendmail = $use_sendmail;
} }
public function isValidEmail($email) { public function isValidEmail($email) {
@ -82,7 +103,11 @@ class MailService {
* @param PHPMailer $mailer * @param PHPMailer $mailer
*/ */
private function configureMailer(PHPMailer $mailer) { private function configureMailer(PHPMailer $mailer) {
$mailer->isSMTP(); if ($this->use_sendmail) {
$mailer->isSendmail();
} else {
$mailer->isSMTP();
}
$available_options = [ $available_options = [
'host' => 'Host', 'host' => 'Host',

View File

@ -31,7 +31,7 @@ include_once __DIR__ . '/app/inc/init.php';
/*---------*/ /*---------*/
$logService = new LogService(); $logService = new LogService();
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$purgeService = new PurgeService($connect, $logService); $purgeService = new PurgeService($connect, $logService);
$sessionService = new SessionService(); $sessionService = new SessionService();

View File

@ -31,7 +31,7 @@ include_once __DIR__ . '/app/inc/init.php';
/*---------*/ /*---------*/
$logService = new LogService(); $logService = new LogService();
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$purgeService = new PurgeService($connect, $logService); $purgeService = new PurgeService($connect, $logService);
$inputService = new InputService(); $inputService = new InputService();
$sessionService = new SessionService(); $sessionService = new SessionService();

View File

@ -28,7 +28,7 @@ include_once __DIR__ . '/app/inc/init.php';
/* -------- */ /* -------- */
$logService = new LogService(); $logService = new LogService();
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
/* PAGE */ /* PAGE */
/* ---- */ /* ---- */

View File

@ -58,7 +58,7 @@ $selectedNewVotes = [];
$logService = new LogService(); $logService = new LogService();
$pollService = new PollService($connect, $logService); $pollService = new PollService($connect, $logService);
$inputService = new InputService(); $inputService = new InputService();
$mailService = new MailService($config['use_smtp'], $config['smtp_options']); $mailService = new MailService($config['use_smtp'], $config['smtp_options'], $config['use_sendmail']);
$notificationService = new NotificationService($mailService); $notificationService = new NotificationService($mailService);
$securityService = new SecurityService(); $securityService = new SecurityService();
$sessionService = new SessionService(); $sessionService = new SessionService();

View File

@ -101,7 +101,8 @@ const DEMO_POLL_NUMBER_VOTES = 10;
// Config // Config
$config = [ $config = [
/* general config */ /* general config */
'use_smtp' => true, // use email for polls creation/modification/responses notification 'use_smtp' => true, // use email for polls creation/modification/responses notification (uses smtp only if `use_sendmail` is disabled)
'use_sendmail' => false, // use sendmail instead of smtp
'smtp_options' => [ 'smtp_options' => [
'host' => 'localhost', // SMTP server (you could add many servers (main and backup for example) : use ";" like separator 'host' => 'localhost', // SMTP server (you could add many servers (main and backup for example) : use ";" like separator
'auth' => false, // Enable SMTP authentication 'auth' => false, // Enable SMTP authentication