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

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

Сегодня рассмотрим задачу о том как отправить письмо с вложением в битрикс.

Для этого будем использовать метод Sendimmediate. Sendimmediate принадлежит классу cevent.

Описание cevent sendimmediate:

Описание возьму из документации, т.к. нечего особо добавить.

  1. Sendimmediate отправляет сообщение немедленно.
  2. В отличие от CEvent::Send не возвращает идентификатор созданного сообщения.
  3. При отправке сообщения данным методом запись в таблицу b_event не производится.

Рассмотрим пример отправки письма с вложением в битрикс:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
	// файл, который будет приложен к письму
	$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, который также имеет место быть:

1
2
3
4
5
6
7
	$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, если возникнут вопросы или пожелания, рассмотреть реализацию какой-либо задачи — пишите в комментарии, разберем её выполнение в ближайшее время! Всем удачи и успехов в работе!