From 2ef9b22385982edc515cbae728af2becbf9b6d03 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 31 Oct 2022 11:50:29 +0100 Subject: [PATCH] Cleanup MailSo MailClient using __call() --- .../app/libraries/MailSo/Mail/MailClient.php | 67 +++---------------- .../libraries/RainLoop/Actions/Folders.php | 4 +- 2 files changed, 11 insertions(+), 60 deletions(-) diff --git a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php index 349bba8b2..dc8e191e0 100644 --- a/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php +++ b/snappymail/v/0.0.0/app/libraries/MailSo/Mail/MailClient.php @@ -28,7 +28,7 @@ class MailClient /** * @var \MailSo\Log\Logger */ - private $oLogger; + private $oLogger = null; /** * @var \MailSo\Imap\ImapClient @@ -37,8 +37,6 @@ class MailClient function __construct() { - $this->oLogger = null; - $this->oImapClient = new \MailSo\Imap\ImapClient; $this->oImapClient->SetTimeOuts(10, \MailSo\Config::$ImapTimeout); } @@ -48,31 +46,6 @@ class MailClient return $this->oImapClient; } - /** - * @throws \MailSo\RuntimeException - * @throws \MailSo\Net\Exceptions\* - */ - public function Disconnect() : self - { - $this->oImapClient->Disconnect(); - return $this; - } - - public function IsConnected() : bool - { - return $this->oImapClient->IsConnected(); - } - - public function IsLoggined() : bool - { - return $this->oImapClient->IsLoggined(); - } - - public function Capabilities() : array - { - return $this->oImapClient->Capability(); - } - private function getEnvelopeOrHeadersRequestString() : string { if (\MailSo\Config::$MessageAllHeaders) @@ -1016,16 +989,6 @@ class MailClient return $oMessageCollection; } - public function Quota(string $sRootName = '') : ?array - { - return $this->oImapClient->Quota($sRootName); - } - - public function QuotaRoot(string $sFolderName = 'INBOX') : ?array - { - return $this->oImapClient->QuotaRoot($sFolderName); - } - public function FindMessageUidByMessageId(string $sFolderName, string $sMessageId) : ?int { if (!\strlen($sMessageId)) @@ -1297,39 +1260,27 @@ class MailClient /** * @throws \InvalidArgumentException */ - public function SetLogger(\MailSo\Log\Logger $oLogger) : self + public function SetLogger(\MailSo\Log\Logger $oLogger) : void { $this->oLogger = $oLogger; - $this->oImapClient->SetLogger($this->oLogger); - - return $this; + $this->oImapClient->SetLogger($oLogger); } - public function GetNamespace() : string + public function GetPersonalNamespace() : string { $oNamespace = $this->oImapClient->GetNamespace(); return $oNamespace ? $oNamespace->GetPersonalNamespace() : ''; } + public function __call(string $name, array $arguments) /*: mixed*/ + { + return $this->oImapClient->{$name}(...$arguments); + } + /** * RFC 5464 */ - public function ServerGetMetadata(array $aEntries, array $aOptions = []) : array - { - return $this->oImapClient->ServerGetMetadata($aEntries, $aOptions); - } - - public function FolderGetMetadata(string $sFolderName, array $aEntries, array $aOptions = []) : array - { - return $this->oImapClient->FolderGetMetadata($sFolderName, $aEntries, $aOptions); - } - - public function FolderSetMetadata(string $sFolderName, array $aEntries) : void - { - $this->oImapClient->FolderSetMetadata($sFolderName, $aEntries); - } - public function FolderDeleteMetadata($sFolderName, array $aEntries) : void { $this->oImapClient->FolderSetMetadata($sFolderName, \array_fill_keys(\array_keys($aEntries), null)); diff --git a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php index 36c4e223e..41323ec88 100644 --- a/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php +++ b/snappymail/v/0.0.0/app/libraries/RainLoop/Actions/Folders.php @@ -64,7 +64,7 @@ trait Folders if ($oFolderCollection) { - $sNamespace = $this->MailClient()->GetNamespace(); + $sNamespace = $this->MailClient()->GetPersonalNamespace(); $this->Plugins()->RunHook('filter.folders-post', array($oAccount, $oFolderCollection)); @@ -186,7 +186,7 @@ trait Folders } } - $aCapabilities = \array_filter($this->MailClient()->Capabilities(), function($item){ + $aCapabilities = \array_filter($this->MailClient()->Capability(), function($item){ return !\preg_match('/^(IMAP|AUTH|LOGIN|SASL)/', $item); }); if (!$this->Config()->Get('imap', 'use_list_status', true)) {