Подписываемся на событие OnBeforeEventAdd
(брал из очень старого рабочего кода, вырезая часть кода не для общего обозрения, но идея должна быть понятна)
AddEventHandler("main", "OnBeforeEventAdd", array("NewOrderWithPdf", "OnBeforeEventAddHandler"));
class NewOrderWithPdf
{
public function OnBeforeEventAddHandler($event, $lid, $arFields)
{
if ($event == "SALE_NEW_ORDER" && $arFields['ORDER_ID'] > 0) {
$arrMailProps["EVENT_NAME"] = $event;
$arrMailProps["LID"] = $lid;
$arrMailProps["C_FIELDS"] = $arFields;
$arrMailProps['FILE'] = [$pathToFile];
\Bitrix\Main\Mail\Event::send($arrMailProps);
return false;
}
return true;
}
}