Документация для разработчиков
Темная тема

send

\Bitrix\Main\Entity\AddResult public static
\Bitrix\Main\Mail\Event::send(
	array $data
);

Статический метод отсылает почтовое событие. Возвращает объект Main\Entity\AddResult.

Аналог метода CEvent::Send старого ядра.

В отличие от старого ядра параметр LID - строка, то есть массив идентификаторов сайтов нужно передавать через запятую.

Параметры

ПараметрОписаниеВерсия
$dataМассив параметров события.

Примеры

// D7
use Bitrix\Main\Mail\Event;
Event::send(array(
	"EVENT_NAME" => "NEW_USER",
	"LID" => "s1",
	"C_FIELDS" => array(
		"EMAIL" => "info@intervolga.ru",
		"USER_ID" => 42
	),
)); 

Пример отправки файла во вложении:

$fileId = false;

if($_FILES['file'])

	$fileId = \CFile::SaveFile($_FILES['file'],"mailatt");

    

\Bitrix\Main\Mail\Event::sendImmediate(array( // or send

	"EVENT_NAME" => "VM_SERVICE_REQUEST", 

	"LID" => "s2", 

	"C_FIELDS" => array( 

		"EMAIL" => $arCompany["PROPERTIES"]["EMAIL"]["VALUE"], 

		"COMPANY_NAME" => $arCompany["NAME"],

		"MESSAGE" => $request->getPost("MESSAGE"),

		"USER_NAME" => $USER->GetFullName(), 

		"USER_EMAIL" => $USER->GetEmail(), 

    ),

	"FILE" => array($fileId), // нужно сохранять сначала, из документации к CEvent::send: 
                              //Массив id файлов, которые используются классом CFile. 
                              //Либо можно передать массив абсолютных путей до файлов.
));    



if($fileId)

	CFile::Delete($fileId);

Для отправки конкретного почтового шаблона нужно передавать (int)MESSAGE_ID:

\Bitrix\Main\Mail\Event::send([    
	"EVENT_NAME" => "LOCAL_CORE_FORM_ADD_FAQ",
	'MESSAGE_ID' => 64,
	"LID" => "s1",
	"C_FIELDS" => [
		'ID' => $arFields['ID'],
	]
]);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Андрей Чурсин
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
А ещё оно не обрабатывает старое событие вроде "OnBeforeEventAdd" только \Bitrix\Main\Mail\Internal\EventTable::OnBeforeAdd($event)
у меня ошибка в определении типа события:
Код
\Bitrix\Main\Mail\Internal\Event::OnBeforeAdd
0
Андрей Чурсин
Сообщение не промодерировано, возможны ошибки и неточности.
А ещё оно не обрабатывает старое событие вроде "OnBeforeEventAdd" только \Bitrix\Main\Mail\Internal\EventTable::OnBeforeAdd($event)
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх