• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/imap.php
  • Класс: BitrixMailImap
  • Вызов: Imap::encodeUtf7Imap
protected function encodeUtf7Imap($data)
{
	if (!$data)
		return $data;

	$result = Encoding::convertEncoding($data, $this->options['encoding'], 'UTF7-IMAP');

	if ($result === false)
	{
		$result = $data;

		$result = Encoding::convertEncoding($result, $this->options['encoding'], 'UTF-8');
		$result = str_replace('&', '&-', $result);

		$result = preg_replace_callback('/[x00-x1fx7f-xff]+/', function($matches)
		{
			$result = $matches[0];

			$result = Encoding::convertEncoding($result, 'UTF-8', 'UTF-16BE');
			$result = base64_encode($result);
			$result = str_replace('/', ',', $result);
			$result = str_replace('=', '', $result);
			$result = '&' . $result . '-';

			return $result;
		}, $result);
	}

	return $result;
}