- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/lib/user.php
- Класс: BitrixMailUser
- Вызов: User::onEmailReceived
static function onEmailReceived($to, $message, $recipient, $userRelation, &$error)
{
$type = $recipient['type'];
$token = $recipient['token'];
$message['secret'] = $token;
switch ($type)
{
case 'rpl':
$content = Message::parseReply($message);
break;
case 'fwd':
$content = Message::parseForward($message);
break;
}
if (empty($content) && empty($message['files']))
{
$error = sprintf('Empty message (rcpt: %s)', $to);
return false;
}
$attachments = array_filter(
array_combine(
array_column((array) $message['files'], 'name'),
array_column((array) $message['files'], 'tmp_name')
)
);
$addResult = UserMessageTable::add(array(
'TYPE' => $type,
'SITE_ID' => $userRelation['SITE_ID'],
'ENTITY_TYPE' => $userRelation['ENTITY_TYPE'],
'ENTITY_ID' => $userRelation['ENTITY_ID'],
'USER_ID' => $userRelation['USER_ID'],
'SUBJECT' => $message['subject'],
'CONTENT' => $content,
'ATTACHMENTS' => serialize($attachments),
));
if ($addResult->isSuccess())
{
CAgent::addAgent(
"\Bitrix\Mail\User::sendEventAgent(".$addResult->getId().");",
"mail", //module
"N", //period
10 //interval
);
return true;
}
return false;
}