• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/mailmanager.php
  • Класс: Bitrix\Crm\Integration\MailManager
  • Вызов: MailManager::canSendMessageViaChannel
static function canSendMessageViaChannel(Channel $channel): Result
{
	$result = new Result();

	if (!self::canUse())
	{
		return $result->addError(Channel\ErrorCode::getNotEnoughModulesError());
	}

	if (!self::isAvailable($channel->getUserId()))
	{
		return $result->addError(Channel\ErrorCode::getNotAvailableError());
	}

	if (!self::isConnected($channel->getUserId()))
	{
		return $result->addError(Channel\ErrorCode::getNotConnectedError());
	}

	$fromListAvailable = array_filter($channel->getFromList(), fn($from) => $from->isAvailable());
	if (empty($fromListAvailable))
	{
		return $result->addError(
			new Error(
				Loc::getMessage('CRM_INTEGRATION_MAIL_MANAGER_ERROR_NO_FROM'),
				Channel\ErrorCode::NOT_CONNECTED
			)
		);
	}

	$errors = self::getUsageErrors();
	if (!empty($errors))
	{
		foreach ($errors as $errorMessage)
		{
			$result->addError(
				new Error($errorMessage, Channel\ErrorCode::USAGE_ERROR),
			);
		}
	}

	return $result;
}