- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/helper.php
- Класс: BitrixMailHelper
- Вызов: Helper::updateImapMessage
static function updateImapMessage($userId, $hash, $data, &$error)
{
$error = null;
$res = MailMessageUidTable::getList(array(
'select' => array(
'ID', 'MAILBOX_ID', 'IS_SEEN',
'MAILBOX_USER_ID' => 'MAILBOX.USER_ID',
'MAILBOX_OPTIONS' => 'MAILBOX.OPTIONS',
),
'filter' => array(
'=HEADER_MD5' => $hash,
'==DELETE_TIME' => 0,
),
));
while ($item = $res->fetch())
{
$isOwner = $item['MAILBOX_USER_ID'] == $userId;
$isPublic = in_array('crm_public_bind', (array) $item['MAILBOX_OPTIONS']['flags']);
$inQueue = in_array($userId, (array) $item['MAILBOX_OPTIONS']['crm_lead_resp']);
if (!$isOwner && !$isPublic && !$inQueue)
{
continue;
}
if (in_array($item['IS_SEEN'], array('Y', 'S')) != $data['seen'])
{
MailMessageUidTable::update(
array(
'ID' => $item['ID'],
'MAILBOX_ID' => $item['MAILBOX_ID'],
),
array(
'IS_SEEN' => $data['seen'] ? 'S' : 'U',
)
);
}
}
}