Bitrix\Main\EventManager::getInstance()->addEventHandler(
"main",
"OnBeforeEventAdd",
["MailEventHandler", "onBeforeEventAddHandler"]
);
class MailEventHandler
{
static function onBeforeEventAddHandler(&$event, &$lid, &$arFields, &$message_id, &$files)
{
$pos = strripos($event, 'FORM_FILLING_');
if ($pos !== false) {
if (!is_array($files)) $files = array();
foreach ($arFields as $key => $field) {
if ($link = self::getLinkFromField($field)) {
if ($arFile = self::getFileFromLink($link)) {
$files[] = $arFile['FILE_ID'];
}
}
}
}
}
static function getLinkFromField($field)
{
$pos = strripos($field, 'form_show_file');
if ($pos !== false) {
$str=strpos($field, "http");
$out=substr($field, $str);
return ($out ?: false);
}
}
static function getFileFromLink($link)
{
$uri = new \Bitrix\Main\Web\Uri($link);
parse_str($uri->getQuery(), $query);
return CFormResult::GetFileByHash($query["rid"], $query["hash"]);
}
}[/QUOTE]
Здравствуйте Дмитрий.
Ваш код работает на нашем сайте, однако у меня к Вам возник следующий вопрос. Дело в том, что в виде вложения в письме приходит только один файл, а остальные файлы приходят в виде ссылок. Можно ли сделать так чтобы в виде вложений в письме были все файлы, которые прикреплены к форме?