• Модуль: mail
  • Путь к файлу: ~/bitrix/modules/mail/lib/helper/recipient.php
  • Класс: BitrixMailHelperRecipient
  • Вызов: Recipient::loadMailContacts
static function loadMailContacts($filter = [], $limit = 20)
{
	global $APPLICATION;

	$result = array();

	$mailContacts = BitrixMainUserTable::getList(array(
		'select' => array(
			'ID',
			'NAME',
			'LAST_NAME',
			'SECOND_NAME',
			'EMAIL',
			'PERSONAL_PHOTO',
		),
		'filter' => array_merge(
			array(
				'=ACTIVE' => 'Y',
				'=EXTERNAL_AUTH_ID' => 'email',
			),
			$filter
		),
		'order' => array(
			'LAST_NAME' => 'ASC',
		),
		'limit' => $limit,
	));

	$contactAvatars = array();
	while ($mailContact = $mailContacts->fetch())
	{
		$email = $mailContact['EMAIL'];
		if ($contactAvatars[$email] === null)
		{
			ob_start();
			$APPLICATION->includeComponent('bitrix:mail.contact.avatar', '',
				[
					'mailContact' => array(
						'FILE_ID' => $mailContact['PERSONAL_PHOTO'],
						'name' => CUser::formatName(CSite::getNameFormat(), $mailContact),
						'email' => $mailContact['EMAIL'],
					),
				]);
			$contactAvatars[$email] = ob_get_clean();
		}

		$id = static::buildUniqueEmailCode($email);
		$result[$id] = array(
			'id' => $id,
			'entityType' => 'mailContacts',
			'entityId' => $mailContact['ID'],
			'name' => CUser::formatName(CSite::getNameFormat(), $mailContact, true, true),
			'iconCustom' => $contactAvatars[$email],
			'email' => htmlspecialcharsbx($mailContact['EMAIL']),
			'desc' => htmlspecialcharsbx($mailContact['EMAIL']),
			'isEmail' => 'Y',
		);
	}

	return $result;
}