Server IP : 85.193.89.191 / Your IP : 3.145.60.154 Web Server : Apache System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : bitrix ( 600) PHP Version : 8.1.27 Disable Function : NONE MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/bitrix/www/bitrix/components/bitrix/mail.client.message.new/ |
Upload File : |
<?php if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die(); use Bitrix\Main; use Bitrix\Main\Localization\Loc; use Bitrix\Mail; use Bitrix\Mail\Integration\AI; Loc::loadMessages(__DIR__ . '/../mail.client/class.php'); Main\Loader::includeModule('mail'); class CMailClientMessageNewComponent extends CBitrixComponent { /** @var bool */ private $isCrmEnable = false; /** * @return mixed|void * @throws Main\ArgumentException * @throws Main\ObjectPropertyException * @throws Main\SystemException */ public function executeComponent($level = 1) { global $USER, $APPLICATION; if (!is_object($USER) || !$USER->isAuthorized()) { $APPLICATION->authForm(''); return; } $this->isCrmEnable = Main\Loader::includeModule('crm') && \CCrmPerms::isAccessEnabled(); $this->arResult['CRM_ENABLE'] = ($this->isCrmEnable ? 'Y' : 'N'); $messageId = 0; if (!empty($_REQUEST['forward']) && $_REQUEST['forward'] > 0) { $messageType = 'forward'; $messageId = (int) $_REQUEST['forward']; $subjectPrefix = 'Fwd'; } else if (!empty($_REQUEST['reply']) && $_REQUEST['reply'] > 0) { $messageType = 'reply'; $messageId = (int) $_REQUEST['reply']; $subjectPrefix = 'Re'; } $message = array(); $this->arResult['TO_PLUG_EXTENSION_SALES_LETTER_TEMPLATE'] = false; if (!empty($_REQUEST['sales_letter']) && $_REQUEST['sales_letter']) { $this->arResult['TO_PLUG_EXTENSION_SALES_LETTER_TEMPLATE'] = true; } if (!empty($_REQUEST['id']) && $_REQUEST['id'] > 0) { if ($mailbox = Mail\MailboxTable::getUserMailbox($_REQUEST['id'])) { $message = array( 'MAILBOX_ID' => $mailbox['ID'], 'MAILBOX_EMAIL' => $mailbox['EMAIL'], 'MAILBOX_NAME' => 'MAILBOX.NAME', 'MAILBOX_LOGIN' => 'MAILBOX.LOGIN', ); } } if ($messageId > 0) { $message = Mail\MailMessageTable::getList(array( 'runtime' => array( new Main\ORM\Fields\Relations\Reference( 'MESSAGE_UID', 'Bitrix\Mail\MailMessageUidTable', array( '=this.MAILBOX_ID' => 'ref.MAILBOX_ID', '=this.ID' => 'ref.MESSAGE_ID', ), array( 'join_type' => 'INNER', ) ), ), 'select' => array( '*', 'MAILBOX_EMAIL' => 'MAILBOX.EMAIL', 'MAILBOX_NAME' => 'MAILBOX.NAME', 'MAILBOX_LOGIN' => 'MAILBOX.LOGIN', 'DIR_MD5' => 'MESSAGE_UID.DIR_MD5', 'MSG_UID' => 'MESSAGE_UID.MSG_UID', ), 'filter' => array( '=ID' => $messageId, ), ))->fetch(); if (empty($message)) { showError(Loc::getMessage('MAIL_CLIENT_ELEMENT_NOT_FOUND')); return; } if (!Mail\Helper\Message::hasAccess($message)) { showError(Loc::getMessage('MAIL_CLIENT_ELEMENT_DENIED')); return; } $message['ORIGINAL_SUBJECT'] = $message['SUBJECT']; if (!empty($subjectPrefix)) { $message['SUBJECT'] = preg_replace( sprintf('/^(%s:\s*)?/i', preg_quote($subjectPrefix)), sprintf('%s: ', $subjectPrefix), $message['SUBJECT'] ); } if ($level <= 1 && Mail\Helper\Message::ensureAttachments($message) > 0) { return $this->executeComponent($level + 1); } $message['__files'] = array(); if ($message['ATTACHMENTS'] > 0) { $message['__files'] = Mail\Internals\MailMessageAttachmentTable::getList(array( 'select' => array( 'ID', 'FILE_ID', 'FILE_NAME', 'FILE_SIZE', 'CONTENT_TYPE', ), 'filter' => array( '=MESSAGE_ID' => $message['ID'], ), ))->fetchAll(); } $message['ID'] = 0; $message['__type'] = $messageType; $message['__parent'] = $messageId; } if (!empty($_REQUEST['email'])) { $message['FIELD_RCPT'] = $_REQUEST['email']; } Mail\Helper\Message::prepare($message); $this->arResult['MESSAGE'] = $message; $this->arResult['LAST_RCPT'] = Mail\Helper\Recipient::loadLastRcpt(); $this->arResult['EMAILS'] = array();//Mail\Helper\Recipient::loadMailContacts(); $this->arResult['COPILOT_PARAMS'] = self::prepareCopilotParams(); $this->includeComponentTemplate(); } private static function prepareCopilotParams(): array { return AI\Settings::instance()->getMailCopilotParams(AI\Settings::MAIL_NEW_MESSAGE_CONTEXT_ID); } }