mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-07 00:17:03 +03:00
Properly backslash escape IMAP folder flags
This commit is contained in:
parent
544d2272c8
commit
34efa2205c
3 changed files with 39 additions and 41 deletions
|
|
@ -18,10 +18,10 @@ namespace MailSo\Imap\Enumerations;
|
||||||
*/
|
*/
|
||||||
abstract class MessageFlag
|
abstract class MessageFlag
|
||||||
{
|
{
|
||||||
const RECENT = '\Recent';
|
const RECENT = '\\Recent';
|
||||||
const SEEN = '\Seen';
|
const SEEN = '\\Seen';
|
||||||
const DELETED = '\Deleted';
|
const DELETED = '\\Deleted';
|
||||||
const FLAGGED = '\Flagged';
|
const FLAGGED = '\\Flagged';
|
||||||
const ANSWERED = '\Answered';
|
const ANSWERED = '\\Answered';
|
||||||
const DRAFT = '\Draft';
|
const DRAFT = '\\Draft';
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -116,12 +116,12 @@ class Folder
|
||||||
|
|
||||||
public function IsSelectable() : bool
|
public function IsSelectable() : bool
|
||||||
{
|
{
|
||||||
return !\in_array('\noselect', $this->aFlagsLowerCase);
|
return !\in_array('\\noselect', $this->aFlagsLowerCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function IsInbox() : bool
|
public function IsInbox() : bool
|
||||||
{
|
{
|
||||||
return 'INBOX' === \strtoupper($this->sFullNameRaw) || \in_array('\inbox', $this->aFlagsLowerCase);
|
return 'INBOX' === \strtoupper($this->sFullNameRaw) || \in_array('\\inbox', $this->aFlagsLowerCase);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ class Folder implements \JsonSerializable
|
||||||
public static function NewNonExistenInstance(string $sFullNameRaw, string $sDelimiter) : self
|
public static function NewNonExistenInstance(string $sFullNameRaw, string $sDelimiter) : self
|
||||||
{
|
{
|
||||||
return new self(
|
return new self(
|
||||||
new \MailSo\Imap\Folder($sFullNameRaw, $sDelimiter, array('\NoSelect')), true, false);
|
new \MailSo\Imap\Folder($sFullNameRaw, $sDelimiter, array('\\Noselect')), true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function Name() : string
|
public function Name() : string
|
||||||
|
|
@ -188,43 +188,41 @@ class Folder implements \JsonSerializable
|
||||||
public function GetFolderListType() : int
|
public function GetFolderListType() : int
|
||||||
{
|
{
|
||||||
$aFlags = $this->oImapFolder->FlagsLowerCase();
|
$aFlags = $this->oImapFolder->FlagsLowerCase();
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::USER;
|
|
||||||
|
|
||||||
switch (true)
|
switch (true)
|
||||||
{
|
{
|
||||||
case \in_array('\inbox', $aFlags) || 'INBOX' === \strtoupper($this->FullNameRaw()):
|
case \in_array('\\inbox', $aFlags) || 'INBOX' === \strtoupper($this->FullNameRaw()):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::INBOX;
|
return \MailSo\Imap\Enumerations\FolderType::INBOX;
|
||||||
break;
|
|
||||||
case \in_array('\sent', $aFlags):
|
case \in_array('\\sent', $aFlags):
|
||||||
case \in_array('\sentmail', $aFlags):
|
case \in_array('\\sentmail', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::SENT;
|
return \MailSo\Imap\Enumerations\FolderType::SENT;
|
||||||
break;
|
|
||||||
case \in_array('\drafts', $aFlags):
|
case \in_array('\\drafts', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::DRAFTS;
|
return \MailSo\Imap\Enumerations\FolderType::DRAFTS;
|
||||||
break;
|
|
||||||
case \in_array('\junk', $aFlags):
|
case \in_array('\\junk', $aFlags):
|
||||||
case \in_array('\spam', $aFlags):
|
case \in_array('\\spam', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::JUNK;
|
return \MailSo\Imap\Enumerations\FolderType::JUNK;
|
||||||
break;
|
|
||||||
case \in_array('\trash', $aFlags):
|
case \in_array('\\trash', $aFlags):
|
||||||
case \in_array('\bin', $aFlags):
|
case \in_array('\\bin', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::TRASH;
|
return \MailSo\Imap\Enumerations\FolderType::TRASH;
|
||||||
break;
|
|
||||||
case \in_array('\important', $aFlags):
|
case \in_array('\\important', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::IMPORTANT;
|
return \MailSo\Imap\Enumerations\FolderType::IMPORTANT;
|
||||||
break;
|
|
||||||
case \in_array('\flagged', $aFlags):
|
case \in_array('\\flagged', $aFlags):
|
||||||
case \in_array('\starred', $aFlags):
|
case \in_array('\\starred', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::FLAGGED;
|
return \MailSo\Imap\Enumerations\FolderType::FLAGGED;
|
||||||
break;
|
|
||||||
case \in_array('\all', $aFlags):
|
case \in_array('\\all', $aFlags):
|
||||||
case \in_array('\allmail', $aFlags):
|
case \in_array('\\allmail', $aFlags):
|
||||||
case \in_array('\archive', $aFlags):
|
case \in_array('\\archive', $aFlags):
|
||||||
$iListType = \MailSo\Imap\Enumerations\FolderType::ALL;
|
return \MailSo\Imap\Enumerations\FolderType::ALL;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $iListType;
|
return \MailSo\Imap\Enumerations\FolderType::USER;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function jsonSerialize()
|
public function jsonSerialize()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue