Тестирование почтовой системы для Битрикса

тест отправки писем без админки битрикса

Возникала как то проблема с работой почтовой системы на виртуалке битрикса bitrixVM, обратились к специалистам по настройке серверов и попросили сделать настройку получше, чтобы и письма уходили и все это было быстро...
Но возник вопрос, тестировать из битрикса отправку писем и смотреть время отправки. А доступы давать все подряд не хотелось в панели "Проверка системы", поэтому был выбран код который в тестах отвечает за проверку почтовой системы
и выведен в отдельный файл, что специалисты могли простым вызовом url смотреть результаты своей работы.

Создаем (где Вам угодно) файлик ваше_название.php
и делаем такое содержимое:
Код
<?
@ini_set("track_errors", "1");
@ini_set('display_errors', 1);
require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/classes/general/site_checker.php');
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT);
\Bitrix\Main\Diag\Debug::startTimeLabel('test');
check_mail(false);
\Bitrix\Main\Diag\Debug::endTimeLabel('test');
$result=Bitrix\Main\Diag\Debug::getTimeLabels();
printf ("Отправка обычного письма за %f секунд !", $result['test']['time']);
echo '<br/>';
\Bitrix\Main\Diag\Debug::startTimeLabel('test1');
check_mail(true);
\Bitrix\Main\Diag\Debug::endTimeLabel('test1');
$result=Bitrix\Main\Diag\Debug::getTimeLabels();
printf ("<br/>Отправка письма более 64Кб за %f секунд !", $result['test1']['time']);
echo '<br/>';

function check_mail($big = false)
        {
                $body = "Test message.\nDelete it.";
                if ($big)
                {
                        $str = file_get_contents($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/classes/general/site_checker.php");
                        if (!$str)
                                echo 'Невозможно открыть файл с контентом<br/>';

                        $body = str_repeat($str, 10);
                }

                list($usec0, $sec0) = explode(" ", microtime());
                if($big)
                {
                        $eol = \Bitrix\Main\Mail\Mail::getMailEol();
                        $val = mail("hosting_test@bitrixsoft.com", "Bitrix site checker".$eol."\tmultiline subject", $body, 'BCC: noreply@bitrixsoft.com');
                }
                else
                {
                        $val = mail("hosting_test@bitrixsoft.com", "Bitrix site checker", $body);
                }
                list($usec1, $sec1) = explode(" ", microtime());
                $time = round($sec1 + $usec1 - $sec0 - $usec0, 2);
                if ($val)
                {
                        if ($time > 1)
                                echo '<br/>Отправлено за '.$time.' секунд';
                }
                else
                        return false;

                return true;
        }

        function check_mail_big()
        {
                return $this->check_mail(true);
        }

Вызываем из браузера и вот результат:
Цитата
Отправка обычного письма за 0.117897 секунд !

Отправка письма более 64Кб за 0.234039 секунд !

IT-Round

Поможем автоматизировать бизнес
Внедрим программы лояльности
Внедрим CRM
CRM + сайт + ...
Уважаемые клиенты сайт находится в стадии наполнения контентом и увеличения функционала. Если Вы не нашли необходимой информации - напишите нам!
×