Это API предоставляет функциональность для отправки электронных писем и личных сообщений (ЛС) пользователям в системе DLE Billing. Состоит из двух основных классов:
Email — базовый класс для работы с emailMessage — расширяет Email, добавляет функционаً отправки личных сообщений (ЛС)
Оба класса находятся в namespace Billing\Api.
Billing\Api\EmailБазовый класс для работы с email-уведомлениями.
| Свойство | Тип | Описание |
|---|---|---|
$UserConnect |
array |
Контактная информация пользователя (id, name, email или group_id) |
$message_title |
string |
Заголовок сообщения |
$message_body |
string |
Содержимое сообщения |
$lastResult |
mixed |
Результат последнего операции |
$global |
array |
Глобальные переменные DLE (config, db, time, dle_mail) |
public function __construct(
?int $userId = 0,
?string $name = '',
?string $email = '',
?int $group_id = 0
)
Параметры:
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
$userId |
int |
Нет | ID пользователя |
$name |
string |
Нет | Имя пользователя |
$email |
string |
Нет | Email пользователя |
$group_id |
int |
Нет | ID группы пользователя |
Примечания:
\Exception с сообщением 'UserConnect', если не передан ни один параметрsetTitle(string $title): selfУстановить заголовок сообщения.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$title |
string |
Заголовок сообщения |
Возвращает: Текущий экземпляр
setBody(string $text): selfУстановить содержимое сообщения.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$text |
string |
Содержимое сообщения |
Возвращает: Текущий экземпляр
loadTemplate(string $filename): selfЗагрузить содержимое уведомления из файла шаблона.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$filename |
string |
Имя файла шаблона (без расширения .tpl) |
Путь к шаблону:
/templates/{skin}/billing/mail/{filename}.tpl
Формат шаблона:
[title]Заголовок сообщения[/title]
Содержимое сообщения здесь
Возвращает: Текущий экземпляр
Исключения:
'Load template' — Файл не найден'Message title' — Заголовок не найден в шаблоне'Message body' — Содержимое не найдено в шаблонеbuildTemplate(?array $data = []): selfЗаменить теги в содержимом сообщения на переданные данные.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$data |
array |
Пары ключ-значение для замены тегов |
Действие:
htmlspecialchars()$message_body (дважды, для безопасности)Возвращает: Текущий экземпляр
send(): selfОтправить email получателям.
Возвращает: Текущий экземпляр для chaining
Действие:
$UserConnect$lastResult[] для каждого получателяgetResult(): mixedПолучить результат последней операции.
Возвращает: Значение $lastResult (массив результатов или информация об ошибке)
pm(?string $from = ''): self (deprecated)Отправить личные сообщения через старую систему PM DLE.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$from |
string |
Имя отправителя (опционально) |
Возвращает: Текущий экземпляр для chaining
Примечание: Этот метод deprecated. Используйте вместо него Message::send().
Billing\Api\MessageРасширяет Email для поддержки отправки личных сообщений (ЛС) на сайте.
send(?string $from = ''): selfОтправить личное сообщение получателям.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$from |
string |
Имя отправителя (опционально). Если пустое, используется admin из конфиг billing |
Возвращает: Текущий экземпляр
Действие:
getUserSender()$message_body и $message_title были установленыgetConversion()sendMessage()Исключения:
"error_search_sender {from}" — Отправитель не найден"body and title is required" — Содержимое сообщения не установлено"conversion is not found" — Диалог не найденОбработка ошибок:
$lastResult:
[
'status' => 'error',
'message' => $exception_message
]use Billing\Api\Email;
$email = new Email(email: 'user@example.com');
$email->setTitle('Добро пожаловать')
->setBody('Привет, добро пожаловать в наш сервис!')
->send();
$results = $email->getResult();
use Billing\Api\Email;
$email = new Email(group_id: 5);
$email->loadTemplate('welcome_notification')
->buildTemplate(['name' => 'John', 'date' => '2026-01-01'])
->send();
use Billing\Api\Message;
$message = new Message(email: 'recipient@example.com');
$message->setTitle('Новое сообщение')
->setBody('Это тестовое личное сообщение')
->send(from: 'admin');
$result = $message->getResult();
Документация сгенерирована автоматически из кода класса Billing\Api\Message