• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/smtp.php
  • Класс: BitrixMailSmtp
  • Вызов: Smtp::starttls
protected function starttls(&$error)
{
	$error = null;

	if (!$this->stream)
	{
		$error = $this->errorMessage(Smtp::ERR_STARTTLS);
		return false;
	}

	$response = $this->executeCommand('STARTTLS', $error);

	if ($error)
	{
		$error = $error == Smtp::ERR_COMMAND_REJECTED ? null : $error;
		$error = $this->errorMessage(array(Smtp::ERR_STARTTLS, $error), $response ? trim(end($response)) : null);

		return false;
	}

	if (stream_socket_enable_crypto($this->stream, true, STREAM_CRYPTO_METHOD_ANY_CLIENT))
	{
		if (!$this->capability($error))
		{
			return false;
		}
	}
	else
	{
		$this->reset();

		$error = $this->errorMessage(Smtp::ERR_STARTTLS);
		return false;
	}

	return true;
}