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