mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 20:19:22 +03:00
A solution for #365
This commit is contained in:
parent
fb95174f67
commit
06c0666b93
4 changed files with 16 additions and 13 deletions
|
|
@ -105,9 +105,6 @@ class Folder
|
|||
return 'INBOX' === \strtoupper($this->sFullName) || \in_array('\\inbox', $this->aFlagsLowerCase);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $mData
|
||||
*/
|
||||
public function SetMetadata(string $sName, string $sData) : void
|
||||
{
|
||||
$this->aMetadata[$sName] = $sData;
|
||||
|
|
@ -118,17 +115,11 @@ class Folder
|
|||
$this->aMetadata = $aMetadata;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
*/
|
||||
public function GetMetadata(string $sName) : ?string
|
||||
{
|
||||
return isset($this->aMetadata[$sName]) ? $this->aMetadata[$sName] : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function Metadata() : array
|
||||
{
|
||||
return $this->aMetadata;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
* @var bool
|
||||
*/
|
||||
public $__FORCE_SELECT_ON_EXAMINE__ = false;
|
||||
public $__DISABLE_METADATA = false;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
|
|
@ -92,7 +93,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
|
||||
parent::Connect($sServerName, $iPort, $iSecurityType, $bVerifySsl, $bAllowSelfSigned, $sClientCert);
|
||||
|
||||
$this->aCapabilityItems = $this->getResponse('*')->getCapabilityResult();
|
||||
$this->setCapabilities($this->getResponse('*'));
|
||||
|
||||
if ($this->IsSupported('STARTTLS') && \MailSo\Net\Enumerations\ConnectionSecurityType::UseStartTLS($this->iSecurityType))
|
||||
{
|
||||
|
|
@ -225,7 +226,7 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
));
|
||||
}
|
||||
|
||||
$this->aCapabilityItems = $oResponse->getCapabilityResult();
|
||||
$this->setCapabilities($oResponse);
|
||||
|
||||
if (\strlen($sProxyAuthUser))
|
||||
{
|
||||
|
|
@ -285,12 +286,21 @@ class ImapClient extends \MailSo\Net\NetClient
|
|||
public function Capability() : ?array
|
||||
{
|
||||
if (!$this->aCapabilityItems) {
|
||||
$this->aCapabilityItems = $this->SendRequestGetResponse('CAPABILITY')
|
||||
->getCapabilityResult();
|
||||
$this->setCapabilities($this->SendRequestGetResponse('CAPABILITY'));
|
||||
}
|
||||
return $this->aCapabilityItems;
|
||||
}
|
||||
|
||||
private function setCapabilities(ResponseCollection $oResponseCollection) : void
|
||||
{
|
||||
$aList = $oResponseCollection->getCapabilityResult();
|
||||
if ($aList && $this->__DISABLE_METADATA) {
|
||||
// Issue #365: Many folders on Cyrus IMAP breaks login
|
||||
$aList = \array_diff($aList, ['METADATA']);
|
||||
}
|
||||
$this->aCapabilityItems = $aList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test support for things like:
|
||||
* IMAP4rev1 IMAP4rev2 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY
|
||||
|
|
|
|||
|
|
@ -1234,6 +1234,7 @@ class Actions
|
|||
}
|
||||
|
||||
$this->MailClient()->ImapClient()->__FORCE_SELECT_ON_EXAMINE__ = !!$this->oConfig->Get('labs', 'use_imap_force_selection');
|
||||
$this->MailClient()->ImapClient()->__DISABLE_METADATA = !!$this->oConfig->Get('labs', 'imap_disable_metadata');
|
||||
}
|
||||
|
||||
return $oAccount;
|
||||
|
|
|
|||
|
|
@ -369,6 +369,7 @@ Enables caching in the system'),
|
|||
'imap_show_login_alert' => array(true),
|
||||
'imap_use_list_status' => array(true),
|
||||
'imap_timeout' => array(300),
|
||||
'imap_disable_metadata' => array(false),
|
||||
'smtp_show_server_errors' => array(false),
|
||||
'smtp_timeout' => array(60),
|
||||
'sieve_auth_plain_initial' => array(true),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue