Как изменить адрес электронной почты, на который будет отправлено почтовое событие в Битриксе?

Как я могу подменить email для отправки почтового сообщения на разные адреса в зависимости от услуги в форме на инфоблоке Аспро allcorp 2? Я предполагаю использовать событие OnBeforeEventSend для замены email, но не знаю, где именно это сделать. Можете помочь мне с этим, предоставив пример кода?
  • 11 октября 2023 г. 6:50
Ответы на вопрос 2
Да, вы можете использовать событие OnBeforeEventSend для замены адреса электронной почты, на который будет отправлено почтовое событие в Битриксе.

Ниже приведен пример кода, который вы можете использовать:

```php
AddEventHandler("main", "OnBeforeEventSend", "changeEmail");

function changeEmail(&$arFields, &$arTemplate)
{
    if ($arFields["EVENT_NAME"] == "FEEDBACK_FORM")
    {
        // Получаем ID услуги из формы на инфоблоке
        $serviceId = $_REQUEST['SERVICE_ID'];
        
        // Определяем email в зависимости от услуги
        $email = "";
        if ($serviceId == 1)
        {
            $email = "[email protected]";
        }
        elseif ($serviceId == 2)
        {
            $email = "[email protected]";
        }
        // Можете добавить еще условия для других услуг
        
        // Заменяем адрес электронной почты
        if ($email)
        {
            $arFields["EMAIL_TO"] = $email;
        }
    }
}
```

В этом примере мы проверяем, что событие является "FEEDBACK_FORM" (которое может быть заменено на ваше событие), а затем получаем ID выбранной услуги из формы на инфоблоке. Затем определяем адрес электронной почты в зависимости от этого ID и заменяем его в поле "EMAIL_TO" массива $arFields.

Убедитесь, что вы заменили "FEEDBACK_FORM" на ваше событие и добавили условия для всех необходимых вам услуг.

Надеюсь, это помогло!
AddEventHandler('main', 'OnBeforeEventSend', 'setEmailTo'); 
function setEmailTo(&$arFields, &$arTemplate) {
$arTemplate['EMAIL_TO'] = 'новая_почта';
return true;
}

Совет: Для изменения почты необходимо добавить данный код в файл и указать новый адрес почты в переменной `$arTemplate['EMAIL_TO']`.
Похожие вопросы