Как написать пользовательскую функцию для отправки электронной почты в Битриксе?

Каким образом функция определена в файле init.php?
  • 24 октября 2023 г. 8:51
Ответы на вопрос 1
Чтобы написать пользовательскую функцию для отправки электронной почты в Битриксе, вы можете использовать следующий код:

```php
<?php
function sendEmail($to, $subject, $message, $additionalHeaders = [])
{
    $event = new CEvent;
    
    $arFields = [
        "EMAIL" => $to,
        "SUBJECT" => $subject,
        "MESSAGE" => $message,
    ];
    
    return $event->Send("YOUR_EVENT_TYPE", SITE_ID, $arFields, "N", "", $additionalHeaders);
}
?>
```

В данном примере `sendEmail` - это название функции для отправки электронной почты. Она принимает следующие параметры:
- `$to` - адрес электронной почты получателя;
- `$subject` - заголовок письма;
- `$message` - сообщение письма;
- `$additionalHeaders` (необязательный параметр) - дополнительные заголовки для письма.

Эта функция использует встроенный класс `CEvent` в Битриксе для отправки электронной почты через заданный тип события (`YOUR_EVENT_TYPE`). Тип события можно создать в административной панели Битрикса (Раздел "Почта > Типы событий"). Параметр `SITE_ID` указывает на идентификатор сайта.

Чтобы определить эту функцию в файле `init.php`, вам необходимо вставить указанный код в этот файл:

```php
<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

function sendEmail($to, $subject, $message, $additionalHeaders = [])
{
    $event = new CEvent;
    
    $arFields = [
        "EMAIL" => $to,
        "SUBJECT" => $subject,
        "MESSAGE" => $message,
    ];
    
    return $event->Send("YOUR_EVENT_TYPE", SITE_ID, $arFields, "N", "", $additionalHeaders);
}
?>
```

Обратите внимание, что перед объявлением функции мы используем `require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");` для загрузки необходимых файлов Битрикса и инициализации окружения. Это необходимо, чтобы функция правильно работала.
Похожие вопросы