• Модуль: 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;
}