- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/imap.php
- Класс: BitrixMailImap
- Вызов: Imap::updateMessageFlags
public function updateMessageFlags($mailbox, $id, $flags, &$error)
{
$error = null;
$response = '';
if (!$this->select($mailbox, $error))
{
return false;
}
$addFlags = array();
$delFlags = array();
foreach ($flags as $name => $value)
{
if (preg_match(sprintf('/ ^ x5c? %s $ /ix', self::$atomRegex), $name))
{
if ($value)
{
$addFlags[] = $name;
}
else
{
$delFlags[] = $name;
}
}
}
if ($addFlags)
{
$response = $this->store($id, $addFlags, $error, false);
}
if (!$error && $delFlags)
{
$response = $this->store($id, $delFlags, $error, false, true);
}
if ($error)
{
$error = $error == Imap::ERR_COMMAND_REJECTED ? null : $error;
$error = $this->errorMessage(array(Imap::ERR_STORE, $error), $response);
return false;
}
$this->getUntagged(sprintf('/^ * x20 %u x20 FETCH x20 ( .+ ) rn $/isx', $id), true);
return true;
}