mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-02-27 15:53:19 +01:00
for mailservers reporting BADCHARSET on search; remember and act upon it (avoid it in the near future)
This commit is contained in:
parent
9a3c3b83b2
commit
3c3e684552
@ -2943,16 +2943,34 @@ class felamimail_bo
|
|||||||
if (self::$debug) error_log(__METHOD__.print_r($sortResult,true));
|
if (self::$debug) error_log(__METHOD__.print_r($sortResult,true));
|
||||||
} else {
|
} else {
|
||||||
if (self::$debug) error_log(__METHOD__." Mailserver has NO SORT Capability");
|
if (self::$debug) error_log(__METHOD__." Mailserver has NO SORT Capability");
|
||||||
|
static $supportsCharset;
|
||||||
|
if (is_null($supportsCharset) || !isset($supportsCharset[$this->profileID]))
|
||||||
|
{
|
||||||
|
$supportsCharset = egw_cache::getCache(egw_cache::INSTANCE,'email','supportsCharset'.trim($GLOBALS['egw_info']['user']['account_id']),$callback=null,$callback_params=array(),$expiration=60*60*10);
|
||||||
|
if (!isset($supportsCharset[$this->profileID])) $supportsCharset[$this->profileID]=true;
|
||||||
|
}
|
||||||
$advFilter = 'CHARSET '. strtoupper(self::$displayCharset) .' '.$filter;
|
$advFilter = 'CHARSET '. strtoupper(self::$displayCharset) .' '.$filter;
|
||||||
|
// if server replies with BAD CHARSET we skip that for the near future
|
||||||
|
if ($supportsCharset[$this->profileID]==false) $advFilter=$filter;
|
||||||
$sortResult = $this->icServer->search($advFilter, $resultByUid);
|
$sortResult = $this->icServer->search($advFilter, $resultByUid);
|
||||||
if (PEAR::isError($sortResult))
|
if (PEAR::isError($sortResult))
|
||||||
{
|
{
|
||||||
|
if (stripos(array2string($sortResult->message),'BADCHARSET')!==false)
|
||||||
|
{
|
||||||
|
$supportsCharset[$this->profileID]=false;
|
||||||
|
egw_cache::setCache(egw_cache::INSTANCE,'email','supportsCharset'.trim($GLOBALS['egw_info']['user']['account_id']),self::$supportsCharset,$expiration=60*60*10);
|
||||||
|
if (self::$debug) error_log(__METHOD__." Mailserver has NO CHARSET Capability:".$sortResult->message);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$filter='*';
|
||||||
|
}
|
||||||
$sortResult = $this->icServer->search($filter, $resultByUid);
|
$sortResult = $this->icServer->search($filter, $resultByUid);
|
||||||
if (PEAR::isError($sortResult))
|
if (PEAR::isError($sortResult))
|
||||||
{
|
{
|
||||||
// some servers are not replying on a search for uids, so try this one
|
// some servers are not replying on a search for uids, so try this one
|
||||||
$resultByUid = false;
|
$resultByUid = false;
|
||||||
$sortResult = $this->icServer->search('*', $resultByUid);
|
if ($filter!='*') $sortResult = $this->icServer->search('*', $resultByUid);
|
||||||
if (PEAR::isError($sortResult))
|
if (PEAR::isError($sortResult))
|
||||||
{
|
{
|
||||||
error_log(__METHOD__.__LINE__.' PEAR_Error:'.array2string($sortResult->message));
|
error_log(__METHOD__.__LINE__.' PEAR_Error:'.array2string($sortResult->message));
|
||||||
|
Loading…
Reference in New Issue
Block a user