• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/blacklist.php
  • Класс: BitrixMailBlacklistTable
  • Вызов: BlacklistTable::addMailsBatch
static function addMailsBatch(array $list, $userId = null)
{
	if (empty($list))
	{
		return 0;
	}
	if (is_null($userId))
	{
		$userId = 0;
	}
	$sqlHelper = Application::getConnection()->getSqlHelper();
	$addList = [];
	foreach ($list as $index => $item)
	{
		$itemToAdd = [
			'SITE_ID' => SITE_ID,
			'MAILBOX_ID' => 0,
			'USER_ID' => $userId,
			'ITEM_TYPE' => BlacklistItemType::resolveByValue($item),
			'ITEM_VALUE' => $item,
		];
		$addList[] = $itemToAdd;
	}

	if (count($addList) === 0)
	{
		return 0;
	}
	$keys = implode(', ', array_keys(current($addList)));
	$values = [];
	foreach ($addList as $item)
	{
		$values[] = implode(
			", ",
			[
				"'" . $sqlHelper->forSql($item['SITE_ID']) . "'",
				(int)$item['MAILBOX_ID'],
				(int)$item['USER_ID'],
				$item['ITEM_TYPE'],
				"'" . $sqlHelper->forSql($item['ITEM_VALUE']) . "'",
			]
		);
	}
	$values = implode('), (', $values);

	$tableName = static::getTableName();
	$sql = $sqlHelper->getInsertIgnore($tableName, "($keys)", " VALUES($values)");
	Application::getConnection()->query($sql);
	return Application::getConnection()->getAffectedRowsCount();
}