• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/registrar/regru.php
  • Класс: BitrixMailRegistrarRegRu
  • Вызов: RegRu::updateDns
static function updateDns(string $user, string $password, string $domain, array $params, ?string &$error): ?bool
{
	$domain = mb_strtolower($domain);
	$domain = Encoding::convertEncoding($domain, SITE_CHARSET, 'UTF-8');
	$params = Encoding::convertEncoding($params, SITE_CHARSET, 'UTF-8');

	foreach ($params as $k => $record)
	{
		switch ($record['type'])
		{
			case 'a':
				$params[$k] = array(
					'action' => 'add_alias',
					'subdomain' => '@',
					'ipaddr' => $record['value']
				);
				break;
			case 'alias':
				$params[$k] = array(
					'action' => 'add_alias',
					'subdomain' => $record['name'],
					'ipaddr' => $record['value']
				);
				break;
			case 'cname':
				$params[$k] = array(
					'action'         => 'add_cname',
					'subdomain'      => $record['name'],
					'canonical_name' => $record['value']
				);
				break;
			case 'mx':
				$params[$k] = array(
					'action'      => 'add_mx',
					'subdomain'   => $record['name'],
					'mail_server' => $record['value'],
					'priority'    => $record['priority']
				);
				break;
		}
	}

	$result = CMailRegru::updateDns($user, $password, $domain, $params, $error);

	if ($result !== false)
	{
		if (isset($result['dname']) && $result['dname'] == $domain)
		{
			if (isset($result['result']) && $result['result'] == 'success')
			{
				return true;
			}
			else
			{
				$error = $result['error_code'] ?? 'unknown';
			}
		}
		else
		{
			$error = 'unknown';
		}
	}

	return null;
}