Sendimmediate. Отправить письмо с вложением в битрикс.

Сегодня рассмотрим задачу о том как отправить письмо с вложением в битрикс.
Для этого будем использовать метод Sendimmediate. Sendimmediate принадлежит классу cevent.
Описание cevent sendimmediate:
Описание возьму из документации, т.к. нечего особо добавить.
- Sendimmediate отправляет сообщение немедленно.
- В отличие от CEvent::Send не возвращает идентификатор созданного сообщения.
- При отправке сообщения данным методом запись в таблицу b_event не производится.
Рассмотрим пример отправки письма с вложением в битрикс:
// файл, который будет приложен к письму
$sendFilePath = '/file.doc';
// чтобы отправить файл с использованием шаблона в битрикс необходимо получить id этого файла, т.е. сделать так чтобы битрикс знал о его существовании
$fileId = CFile::SaveFile(
array(
"name" => "file.doc",
"tmp_name" => $sendFilePath,
"old_file" => "0",
"del" => "N",
"MODULE_ID" => "",
"description" => "",
),
'sendfile',
false,
false
);
$event = new CEvent;
$event->SendImmediate($eventName, $arrSite, $arFields, "N", '', array($fileId)); // отправляем сообщение немедленно
CFile::Delete($fileId); // удаляем файл и.к. на сервере он нам не неужен
Вот второй вариант с помощью CEvent::Send, который также имеет место быть:
$files=array();
foreach ($_FILES as $file){
if (!empty($file['tmp_name']) {
$files[]=CFile::SaveFile($file);
}
}
CEvent::Send('NAME_SEND_TEMPLATE', SITE_ID, $eventFields, 'Y','',$files);
На этом все, теперь мы знаем что можно отправлять письма в битрикс с помощью cevent sendimmediate, если возникнут вопросы или пожелания, рассмотреть реализацию какой-либо задачи - пишите в комментарии, разберем её выполнение в ближайшее время! Всем удачи и успехов в работе!
Помочь в развитии проекта: