• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/helper/messageeventmanager.php
  • Класс: BitrixMailHelperMessageEventManager
  • Вызов: MessageEventManager::processOnMailMessageModified
private function processOnMailMessageModified(Event $event)
{
	$params = $event->getParameters();
	$updatedFieldValues = empty($params['UPDATED_FIELDS_VALUES']) ? [] : $params['UPDATED_FIELDS_VALUES'];
	$fieldsData = empty($params['MAIL_FIELDS_DATA']) ? [] : $params['MAIL_FIELDS_DATA'];
	$filter = empty($params['UPDATED_BY_FILTER']) ? [] : $params['UPDATED_BY_FILTER'];

	if (!empty($updatedFieldValues) && isset($updatedFieldValues['IS_SEEN']))
	{
		$fieldsData = $this->getMailsFieldsData($fieldsData, ['HEADER_MD5', 'MAILBOX_USER_ID', 'IS_SEEN'], $filter);
		$this->sendMessageModifiedEvent($fieldsData);
	}

	if (!empty($updatedFieldValues) && isset($updatedFieldValues['DIR_MD5']) && isset($filter['=MAILBOX_ID']))
	{
		$dirHash = empty($updatedFieldValues['DIR_MD5']) ? null : $updatedFieldValues['DIR_MD5'];
		$dir = MailboxDirectory::fetchOneByHash($filter['=MAILBOX_ID'], $dirHash);

		if (!empty($dirHash) && $dir != null)
		{
			if ($dir->isTrash() || $dir->isSpam() || $dir->isDisabled())
			{
				$this->handleRemovedEvent($fieldsData, $filter);
			}
		}
	}
}