- Модуль: 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;
}