• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/imap.php
  • Класс: BitrixMailImap
  • Вызов: Imap::append
public function append($mailbox, array $flags, DateTime $internaldate, $data, &$error)
{
	$error = null;

	if (!$this->authenticate($error))
	{
		return false;
	}

	foreach ($flags as $k => $item)
	{
		if (!preg_match(sprintf('/ ^ x5c? %s $ /ix', self::$atomRegex), $item))
		{
			unset($flags[$k]);
		}
	}

	$response = $this->executeCommand(sprintf(
		'APPEND "%s" (%s) "%26s" %s',
		static::escapeQuoted($this->encodeUtf7Imap($mailbox)),
		join(' ', $flags),
		$internaldate->format('j-M-Y H:i:s O'),
		static::prepareString($data)
	), $error);

	if ($error)
	{
		$error = $error == Imap::ERR_COMMAND_REJECTED ? null : $error;
		$error = $this->errorMessage(array(Imap::ERR_APPEND, $error), $response);

		return false;
	}

	$regex = sprintf('/^ OK x20 [ APPENDUID x20 ( d+ ) x20 ( d+ ) ] /ix', $this->getTag());
	if (preg_match($regex, $response, $matches))
	{
		return sprintf('%u:%u', $matches[1], $matches[2]);
	}

	return true;
}