15 return sprintf(
'/mail/message/%u',
$messageId);
20 return self::getMessageStorage()->getMessage($id);
25 return self::getMessageUrl(
$messageId, Message::ENTITY_TYPE_IM_CHAT, $chatId);
30 return self::getMessageUrl(
$messageId, Message::ENTITY_TYPE_CALENDAR_EVENT, $eventId);
40 $mailboxId = MailMessageTable::getList([
49 if(isset($mailboxId[0][
'MAILBOX_ID']))
51 return (
int)$mailboxId[0][
'MAILBOX_ID'];
59 $message = MailMessageTable::getList([
62 'MAILBOX_EMAIL' =>
'MAILBOX.EMAIL',
63 'MAILBOX_NAME' =>
'MAILBOX.NAME',
64 'MAILBOX_LOGIN' =>
'MAILBOX.LOGIN',
77 '=MAILBOX_ID' =>
$message[
'MAILBOX_ID'],
84 $filter[
'=ENTITY_TYPE'] = $entityType;
88 $access = MessageAccessTable::getList([
98 \Bitrix\Mail\Helper\Message::prepare(
$message);
100 $signer = new \Bitrix\Main\Security\Sign\Signer(
new \
Bitrix\
Main\
Security\Sign\HmacAlgorithm(
'md5'));
105 'mail_uf_message_token' => sprintf(
121 $message = MailMessageTable::getList([
126 '=ID' => $mailMessageId,
133 MessageAccessTable::add([
135 'MAILBOX_ID' =>
$message[
'MAILBOX_ID'],
136 'MESSAGE_ID' => $mailMessageId,
137 'ENTITY_UF_ID' =>
'0',
138 'ENTITY_TYPE' => $entityType,
152 $messageAccessQuery = MessageAccessTable::query()
159 '=ENTITY_TYPE' => MessageAccessTable::ENTITY_TYPE_TASKS_TASK,
160 '=ENTITY_ID' => $taskId,
163 while ($messageAccess = $messageAccessQuery->fetch())
166 $mailboxId = $messageAccess[
'MAILBOX_ID'];
167 MessageAccessTable::delete([
'TOKEN' => $messageAccess[
'TOKEN']]);
169 if (Loader::includeModule(
'pull'))
173 \CPullWatch::addToStack(
174 'mail_mailbox_' . $mailboxId,
176 'module_id' =>
'mail',
177 'command' =>
'messageBindingDeleted',
180 'mailboxId' => $mailboxId,
181 'entityType' => MessageAccessTable::ENTITY_TYPE_TASKS_TASK,
182 'entityId' => $taskId,
193 return new \Bitrix\Mail\Storage\Message();
if(!is_array($deviceNotifyCodes)) $access