Как ограничить отправку уведомлений на почту в битрикс?

Рейтинг: 1Ответов: 1Опубликовано: 21.03.2023

В настройках главного модуля указан список почт, на которые дублируются сообщения.

На сайте есть форма связи с директором, которая предполагает возможность анонимно пожаловаться на сотрудников, т.е письма не должны дублироваться.

Как это реализовать?

Ответы

▲ 2

При отправке сообщения из этой формы выполняется метод отправки - CEvent::send() для старого ядра, либо \Bitrix\Main\Mail\Event::send() для нового ядра D7 - в обоих случаях есть возможность указать флаг дублирования email на адреса, заданные в настройках главного модуля.

Другими словами, эта настройка учитывается программистом при отправке сообщения. По умолчанию это не используется, поэтому всегда отправляются дубликаты. Нужно для CEvent::send() использовать четвёртый аргумент, указав там "N", а для \Bitrix\Main\Mail\Event::send() в передаваемом массиве указать "DUPLICATE" => "N".

Если код отправки формы менять нежелательно, или просто сложно, то можно попробовать использовать дополнительные события при добавлении сообщения в очередь на отправку, меняющие в нужных случаях этот флаг DUPLICATE, например событие OnBeforeEventAdd.