• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/integration/calendar/ical/icalmaileventmanager.php
  • Класс: BitrixMailIntegrationCalendarICalICalMailEventManager
  • Вызов: ICalMailEventManager::onMailMessageNew
static function onMailMessageNew(Event $event)
{
	$message = $event->getParameter('message');
	$attachments = $event->getParameter('attachments');
	$userId = $event->getParameter('userId');

	if (ICalMailManager::hasICalAttachments($attachments))
	{
		Message::ensureAttachments($message);
		$files = static::getFiles($message);

		foreach ($files as $file)
		{
			$data = ICalMailManager::getFileContent($file['FILE_ID']);
			$icalComponent = ICalMailManager::parseRequest($data);

			if (!($icalComponent instanceof Calendar))
			{
				continue;
			}

			if (empty($message['OPTIONS']['iCal']))
			{
				$message['OPTIONS']['iCal'] = $data;

				MailMessageTable::update($message['ID'], [
					'OPTIONS' => $message['OPTIONS'],
				]);
			}

			if ($icalComponent->getMethod() === Dictionary::METHOD['reply']
				&& $icalComponent->hasOneEvent()
			)
			{
				ICalMailManager::handleReply($icalComponent);

				break;
			}
		}
	}
}