mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
Resolve #1186
This commit is contained in:
parent
841fca17cd
commit
47e3fc90f2
6 changed files with 46 additions and 14 deletions
|
|
@ -35,6 +35,7 @@ const
|
||||||
imapDisable_move: false,
|
imapDisable_move: false,
|
||||||
imapDisable_sort: false,
|
imapDisable_sort: false,
|
||||||
imapDisable_thread: false,
|
imapDisable_thread: false,
|
||||||
|
imapDisable_binary: false,
|
||||||
imapExpunge_all_on_delete: false,
|
imapExpunge_all_on_delete: false,
|
||||||
imapFast_simple_search: true,
|
imapFast_simple_search: true,
|
||||||
imapFetch_new_messages: true,
|
imapFetch_new_messages: true,
|
||||||
|
|
@ -84,6 +85,7 @@ const
|
||||||
disable_move: !!oDomain.imapDisable_move(),
|
disable_move: !!oDomain.imapDisable_move(),
|
||||||
disable_sort: !!oDomain.imapDisable_sort(),
|
disable_sort: !!oDomain.imapDisable_sort(),
|
||||||
disable_thread: !!oDomain.imapDisable_thread(),
|
disable_thread: !!oDomain.imapDisable_thread(),
|
||||||
|
disable_binary: !!oDomain.imapDisable_binary(),
|
||||||
folder_list_limit: pInt(oDomain.imapFolder_list_limit()),
|
folder_list_limit: pInt(oDomain.imapFolder_list_limit()),
|
||||||
message_list_limit: pInt(oDomain.imapMessage_list_limit())
|
message_list_limit: pInt(oDomain.imapMessage_list_limit())
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@
|
||||||
"disable_move": false,
|
"disable_move": false,
|
||||||
"disable_sort": false,
|
"disable_sort": false,
|
||||||
"disable_thread": false,
|
"disable_thread": false,
|
||||||
|
"disable_binary": false,
|
||||||
"use_expunge_all_on_delete": false,
|
"use_expunge_all_on_delete": false,
|
||||||
"fast_simple_search": true,
|
"fast_simple_search": true,
|
||||||
"force_select": false,
|
"force_select": false,
|
||||||
|
|
|
||||||
|
|
@ -317,6 +317,9 @@ class ImapClient extends \MailSo\Net\NetClient
|
||||||
if ($this->Settings->disable_list_status) {
|
if ($this->Settings->disable_list_status) {
|
||||||
$aList = \array_diff($aList, ['LIST-STATUS']);
|
$aList = \array_diff($aList, ['LIST-STATUS']);
|
||||||
}
|
}
|
||||||
|
if ($this->Settings->disable_binary) {
|
||||||
|
$aList = \array_diff($aList, ['BINARY']);
|
||||||
|
}
|
||||||
if (8 > PHP_INT_SIZE) {
|
if (8 > PHP_INT_SIZE) {
|
||||||
$aList = \array_diff($aList, ['CONDSTORE']);
|
$aList = \array_diff($aList, ['CONDSTORE']);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ class Settings extends \MailSo\Net\ConnectSettings
|
||||||
$disable_move = false,
|
$disable_move = false,
|
||||||
$disable_sort = false,
|
$disable_sort = false,
|
||||||
$disable_thread = false,
|
$disable_thread = false,
|
||||||
|
$disable_binary = false,
|
||||||
$expunge_all_on_delete = false,
|
$expunge_all_on_delete = false,
|
||||||
$fast_simple_search = true,
|
$fast_simple_search = true,
|
||||||
$fetch_new_messages = true,
|
$fetch_new_messages = true,
|
||||||
|
|
@ -51,6 +52,7 @@ class Settings extends \MailSo\Net\ConnectSettings
|
||||||
'disable_move',
|
'disable_move',
|
||||||
'disable_sort',
|
'disable_sort',
|
||||||
'disable_thread',
|
'disable_thread',
|
||||||
|
'disable_binary',
|
||||||
'expunge_all_on_delete',
|
'expunge_all_on_delete',
|
||||||
'fast_simple_search',
|
'fast_simple_search',
|
||||||
'fetch_new_messages',
|
'fetch_new_messages',
|
||||||
|
|
@ -88,6 +90,7 @@ class Settings extends \MailSo\Net\ConnectSettings
|
||||||
'disable_move' => $this->disable_move,
|
'disable_move' => $this->disable_move,
|
||||||
'disable_sort' => $this->disable_sort,
|
'disable_sort' => $this->disable_sort,
|
||||||
'disable_thread' => $this->disable_thread,
|
'disable_thread' => $this->disable_thread,
|
||||||
|
'disable_binary' => $this->disable_binary,
|
||||||
'use_expunge_all_on_delete' => $this->expunge_all_on_delete,
|
'use_expunge_all_on_delete' => $this->expunge_all_on_delete,
|
||||||
// 'body_text_limit' => $this->body_text_limit,
|
// 'body_text_limit' => $this->body_text_limit,
|
||||||
'fast_simple_search' => $this->fast_simple_search,
|
'fast_simple_search' => $this->fast_simple_search,
|
||||||
|
|
|
||||||
|
|
@ -239,21 +239,37 @@ class MailClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$aFetchResponse = $this->oImapClient->Fetch(array(
|
$callback = function ($sParent, $sLiteralAtomUpperCase, $rImapLiteralStream)
|
||||||
// FetchType::BINARY_SIZE.'['.$sMimeIndex.']',
|
use ($mCallback, $sMimeIndex, $sMailEncoding, $sContentType, $sFileName)
|
||||||
// Push in the aFetchCallbacks array and then called by \MailSo\Imap\Traits\ResponseParser::partialResponseLiteralCallbackCallable
|
{
|
||||||
array(
|
if (\strlen($sLiteralAtomUpperCase) && \is_resource($rImapLiteralStream) && 'FETCH' === $sParent) {
|
||||||
$sPeek.'['.$sMimeIndex.']',
|
$mCallback($sMailEncoding
|
||||||
function ($sParent, $sLiteralAtomUpperCase, $rImapLiteralStream) use ($mCallback, $sMimeIndex, $sMailEncoding, $sContentType, $sFileName)
|
? \MailSo\Base\StreamWrappers\Binary::CreateStream($rImapLiteralStream, $sMailEncoding)
|
||||||
{
|
: $rImapLiteralStream,
|
||||||
if (\strlen($sLiteralAtomUpperCase) && \is_resource($rImapLiteralStream) && 'FETCH' === $sParent) {
|
$sContentType, $sFileName, $sMimeIndex);
|
||||||
$mCallback($sMailEncoding
|
|
||||||
? \MailSo\Base\StreamWrappers\Binary::CreateStream($rImapLiteralStream, $sMailEncoding)
|
|
||||||
: $rImapLiteralStream,
|
|
||||||
$sContentType, $sFileName, $sMimeIndex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)), $iIndex, true);
|
};
|
||||||
|
|
||||||
|
try {
|
||||||
|
$aFetchResponse = $this->oImapClient->Fetch(array(
|
||||||
|
// FetchType::BINARY_SIZE.'['.$sMimeIndex.']',
|
||||||
|
// Push in the aFetchCallbacks array and then called by \MailSo\Imap\Traits\ResponseParser::partialResponseLiteralCallbackCallable
|
||||||
|
array(
|
||||||
|
$sPeek.'['.$sMimeIndex.']',
|
||||||
|
$callback
|
||||||
|
)), $iIndex, true);
|
||||||
|
} catch (\MailSo\Imap\Exceptions\NegativeResponseException $oException) {
|
||||||
|
if (FetchType::BINARY_PEEK === $sPeek && \preg_match('/UNKNOWN-CTE|PARSE/', $oException->getMessage())) {
|
||||||
|
$this->logException($oException, \LOG_WARNING);
|
||||||
|
$aFetchResponse = $this->oImapClient->Fetch(array(
|
||||||
|
array(
|
||||||
|
FetchType::BODY_PEEK . '[' . $sMimeIndex . ']',
|
||||||
|
$callback
|
||||||
|
)), $iIndex, true);
|
||||||
|
} else {
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return ($aFetchResponse && 1 === \count($aFetchResponse));
|
return ($aFetchResponse && 1 === \count($aFetchResponse));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,13 @@
|
||||||
label: 'THREAD'
|
label: 'THREAD'
|
||||||
}
|
}
|
||||||
}"></div>
|
}"></div>
|
||||||
|
<div data-bind="component: {
|
||||||
|
name: 'Checkbox',
|
||||||
|
params: {
|
||||||
|
value: imapDisable_binary,
|
||||||
|
label: 'BINARY'
|
||||||
|
}
|
||||||
|
}"></div>
|
||||||
|
|
||||||
<h4 data-i18n="POPUPS_DOMAIN/LIMITS"></h4>
|
<h4 data-i18n="POPUPS_DOMAIN/LIMITS"></h4>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue