• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/mail/task.php
  • Класс: BitrixTasksIntegrationMailTask
  • Вызов: Task::onForwardReceived
static function onForwardReceived(Event $event)
{
	$userId = intval($event->getParameter('from'));
	$message = trim($event->getParameter('content'));
	$subject = trim($event->getParameter('subject'));
	$attachments = $event->getParameter('attachments');
	$siteId = $event->getParameter('site_id');

	if (
		$userId <= 0
		|| $siteId == ''
	)
	{
		return false;
	}

	list($message, $files) = static::processAttachments($message, $attachments, $userId);

	try
	{
		if (Loader::includeModule('disk'))
		{
			BitrixDiskUfFileUserType::setValueForAllowEdit("TASKS_TASK", true);
		}

		$task = CTaskItem::add(
			[
				'TITLE' => ($subject == ''? Loc::getMessage('TASKS_MAIL_NEW_TASK') : $subject),
				'DESCRIPTION' => $message,
				'CREATED_BY' => $userId,
				'RESPONSIBLE_ID' => $userId,
				BitrixTasksIntegrationDiskUserField::getMainSysUFCode() => $files
			],
			$userId,
			['SPAWNED_BY_AGENT' => true]
		);
	}
	catch(TasksException $e) // todo: get rid of this annoying catch by making BitrixTasks*Exception classes inherited from TasksException (dont forget about code)
	{
		if($e->checkOfType(TasksException::TE_TASK_NOT_FOUND_OR_NOT_ACCESSIBLE))
		{
			return false;
		}
		else
		{
			throw $e; // let it log
		}
	}

	return $task->getId(); // required, dont remove
}