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

	$result = array();

	$currentUser = BitrixMainEngineCurrentUser::get();

	$lastRcptResult = BitrixMainFinderDestTable::getList(array(
		'filter' => array(
			'=USER_ID' => $currentUser->getId(),
			'=CONTEXT' => 'MAIL_LAST_RCPT',
		),
		'select' => array('CODE'),
		'order' => array('LAST_USE_DATE' => 'DESC'),
		'limit' => $limit,
	));

	$emailUsersIds = array();
	while ($item = $lastRcptResult->fetch())
	{
		$emailUsersIds[] = (int) str_replace('MC', '', $item['CODE']);
	}

	if (count($emailUsersIds) > 0)
	{
		$mailContacts = MailInternalsMailContactTable::getList([
			'filter' => array(
				'@ID' => $emailUsersIds,
				'=USER_ID' => $currentUser->getId(),
			),
			'select' => ['ID', 'NAME', 'EMAIL', 'ICON'],
			'limit' => $limit,
		])->fetchAll();

		$contactAvatars = $resultsMailContacts = [];
		foreach ($mailContacts as $mailContact)
		{
			$resultsMailContacts[$mailContact['EMAIL']] = $mailContact;
		}
		foreach ($resultsMailContacts as $mailContact)
		{
			$email = $mailContact['EMAIL'];
			if ($contactAvatars[$email] === null)
			{
				ob_start();
				$APPLICATION->includeComponent('bitrix:mail.contact.avatar', '', array(
					'mailContact' => $mailContact,
				));
				$contactAvatars[$email] = ob_get_clean();
			}
			$id = static::buildUniqueEmailCode($email);
			$result[$id] = [
				'id' => $id,
				'entityType' => 'email',
				'entityId' => $mailContact['ID'],
				'name' => htmlspecialcharsbx($mailContact['NAME']),
				'iconCustom' => $contactAvatars[$email],
				'email' => htmlspecialcharsbx($mailContact['EMAIL']),
				'desc' => htmlspecialcharsbx($mailContact['EMAIL']),
				'isEmail' => 'Y',
			];
		}
	}

	return $result;
}