From 622f40c06cf9d3dbe170416498c4906dd1314318 Mon Sep 17 00:00:00 2001 From: Eric Espie Date: Wed, 25 May 2022 08:21:16 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B03169=20-=20Add=20feature=20to=20connect?= =?UTF-8?q?=20Gsuite=20mail=20box=20with=20OAuth=20N=C2=B02504=20-=20Add?= =?UTF-8?q?=20feature=20to=20connect=20Office=20mail=20box=20with=20OAuth2?= =?UTF-8?q?=20for=20Microsoft=20Graph=20=20*=20Fix=20legacy=20mailboxes=20?= =?UTF-8?q?compatibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/email.class.inc.php | 2 +- sources/Core/Email/EmailFactory.php | 7 +++---- sources/Core/Email/EmailLaminas.php | 14 ++++++-------- sources/Core/Email/EmailSwiftMailer.php | 18 ++++++++---------- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/core/email.class.inc.php b/core/email.class.inc.php index 4b3f0a052..669e79bd5 100644 --- a/core/email.class.inc.php +++ b/core/email.class.inc.php @@ -43,7 +43,7 @@ class EMail implements iEMail public function __construct() { - $this->oMailer = EmailFactory::GetMailer($this); + $this->oMailer = EmailFactory::GetMailer(); } /** diff --git a/sources/Core/Email/EmailFactory.php b/sources/Core/Email/EmailFactory.php index 7ee132ee6..6d1354d9b 100644 --- a/sources/Core/Email/EmailFactory.php +++ b/sources/Core/Email/EmailFactory.php @@ -2,20 +2,19 @@ namespace Combodo\iTop\Core\Email; -use EMail; use EMailLaminas; use EmailSwiftMailer; use utils; class EmailFactory { - public static function GetMailer(EMail $oEMail) + public static function GetMailer() { $sTransport = utils::GetConfig()->Get('email_transport'); if ($sTransport == 'SMTP_OAuth') { - return EMailLaminas::GetMailer($oEMail); + return EMailLaminas::GetMailer(); } - return EmailSwiftMailer::GetMailer($oEMail); + return EmailSwiftMailer::GetMailer(); } } \ No newline at end of file diff --git a/sources/Core/Email/EmailLaminas.php b/sources/Core/Email/EmailLaminas.php index a13e8f674..3c2a48d6e 100644 --- a/sources/Core/Email/EmailLaminas.php +++ b/sources/Core/Email/EmailLaminas.php @@ -26,7 +26,6 @@ @include APPROOT."/core/oauth.php"; use Combodo\iTop\Core\Authentication\Client\OAuth\OAuthClientProviderFactory; -use Combodo\iTop\Core\Email\iEMail; use Laminas\Mail\Header\ContentType; use Laminas\Mail\Message; use Laminas\Mail\Transport\File; @@ -39,7 +38,7 @@ use Pelago\Emogrifier\CssInliner; use Pelago\Emogrifier\HtmlProcessor\CssToAttributeConverter; use Pelago\Emogrifier\HtmlProcessor\HtmlPruner; -class EMailLaminas implements iEMail +class EMailLaminas extends Email { // Serialization formats const ORIGINAL_FORMAT = 1; // Original format, consisting in serializing the whole object, inculding the Swift Mailer's object. @@ -57,11 +56,10 @@ class EMailLaminas implements iEMail } protected $m_oMessage; - protected $oEMail; - public function __construct(EMail $oEMail) + /** @noinspection PhpMissingParentConstructorInspection */ + public function __construct() { - $this->oEMail = $oEMail; $this->m_aData = array(); $this->m_oMessage = new Message(); $this->m_oMessage->setEncoding('UTF-8'); @@ -141,7 +139,7 @@ class EMailLaminas implements iEMail protected function SendAsynchronous(&$aIssues, $oLog = null) { try { - AsyncSendEmail::AddToQueue($this->oEMail, $oLog); + AsyncSendEmail::AddToQueue($this, $oLog); } catch (Exception $e) { $aIssues = array($e->GetMessage()); @@ -153,9 +151,9 @@ class EMailLaminas implements iEMail return EMAIL_SEND_PENDING; } - public static function GetMailer(EMail $oEMail) + public static function GetMailer() { - return new EMailLaminas($oEMail); + return new EMailLaminas(); } /** diff --git a/sources/Core/Email/EmailSwiftMailer.php b/sources/Core/Email/EmailSwiftMailer.php index d86624b7b..08edf28d7 100644 --- a/sources/Core/Email/EmailSwiftMailer.php +++ b/sources/Core/Email/EmailSwiftMailer.php @@ -24,14 +24,13 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -use Combodo\iTop\Core\Email\iEMail; use Pelago\Emogrifier\CssInliner; use Pelago\Emogrifier\HtmlProcessor\CssToAttributeConverter; use Pelago\Emogrifier\HtmlProcessor\HtmlPruner; Swift_Preferences::getInstance()->setCharset('UTF-8'); -class EmailSwiftMailer implements iEMail +class EmailSwiftMailer extends EMail { protected static $m_oConfig = null; protected $m_aData; // For storing data to serialize @@ -45,11 +44,10 @@ class EmailSwiftMailer implements iEMail } protected $m_oMessage; - protected $oEMail; - public function __construct(EMail $oEMail) + /** @noinspection PhpMissingParentConstructorInspection */ + public function __construct() { - $this->oEMail = $oEMail; $this->m_aData = array(); $this->m_oMessage = new Swift_Message(); $this->SetRecipientFrom(MetaModel::GetConfig()->Get('email_default_sender_address'), MetaModel::GetConfig()->Get('email_default_sender_label')); @@ -137,7 +135,7 @@ class EmailSwiftMailer implements iEMail { try { - AsyncSendEmail::AddToQueue($this->oEMail, $oLog); + AsyncSendEmail::AddToQueue($this, $oLog); } catch(Exception $e) { @@ -148,9 +146,9 @@ class EmailSwiftMailer implements iEMail return EMAIL_SEND_PENDING; } - public static function GetMailer(EMail $oEMail) + public static function GetMailer() { - return new EmailSwiftMailer($oEMail); + return new EmailSwiftMailer(); } protected function SendSynchronous(&$aIssues, $oLog = null) @@ -183,7 +181,7 @@ class EmailSwiftMailer implements iEMail break; case 'LogFile': - $oTransport = new Swift_LogFileTransport(); + $oTransport = new Swift_LogFileTransport(new Swift_Events_SimpleEventDispatcher()); $oTransport->setLogFile(APPROOT.'log/mail.log'); break; @@ -543,6 +541,6 @@ class Swift_LogFileTransport extends Swift_Transport_LogFileTransport */ public static function newInstance() { - return new self(); + return new self(new Swift_Events_SimpleEventDispatcher()); } } \ No newline at end of file