- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
- Класс: CSiteCheckerTest
- Вызов: CSiteCheckerTest::check_mail_push
function check_mail_push()
{
$site = BitrixMainSiteTable::getList(array(
'select' => array('LID', 'NAME', 'SERVER_NAME'),
'order' => array('DEF' => 'DESC', 'SORT' => 'ASC'),
))->fetch();
$context = BitrixMainApplication::getInstance()->getContext();
$domain = $site['SERVER_NAME'] ?: COption::getOptionString('main', 'server_name', '');
if (preg_match('/^(?.+):(?d+)$/', $domain, $matches))
$domain = $matches['domain'];
if (!getmxrr($domain, $mxhosts) || !count($mxhosts))
return $this->Result(null ,GetMessage('SC_ERR_DNS', array('#DOMAIN#' => $domain)));
foreach($mxhosts as $mx)
{
if ($mx != 'mail-001.bitrix24.com')
{
print_r($mxhosts);
return $this->Result(null, GetMessage('SC_ERR_DNS_WRONG', array('#DOMAIN#' => $mx)));
}
}
if (!$res = $this->ConnectToHost('mail-001.bitrix24.com', 25))
return $this->Result(null, GetMessage('SC_ERR_CONNECT_MAIL001'));
echo fgets($res);
fwrite($res, "HELO ".$domain."rn");
echo fgets($res);
fwrite($res, "MAIL FROM: sitecheckerfrom@".$domain."rn");
echo fgets($res);
fwrite($res, "RCPT TO: rplsitecheckerto@".$domain."rn");
echo fgets($res);
fwrite($res, "DATArn");
echo fgets($res);
fwrite($res,
"From: sitecheckerfrom@".$domain."rn".
"To: rplsitecheckerto@".$domain."rn".
"Subject: Site checker mail testrn".
"Content-type: text/plainrn".
"MIME-Version: 1.0rn".
"rn".
".rn");
echo ($str = fgets($res));
fclose($res);
if (preg_match('#(Bad Request 400)#i', $str))
{
echo "Successn";
return true;
}
return $this->Result(null, GetMessage('SC_ERR_TEST_MAIL_PUSH', array('#DOMAIN#' => $domain)));
}