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

В настоящее время я работаю над реализацией функции в нашем форуме, которая включает программную отправку или отключение уведомлений по электронной почте для пользователей, подписанных на определённые категории. К таким категориям относятся «наблюдение», «отслеживание», «наблюдение за первым сообщением», «обычный» и «заглушённый», особенно когда пользователи публикуют тему или сообщение, требующее одобрения перед публикацией.

Я ищу информацию о программных функциях, используемых плагинами на различных этапах процесса: при создании темы или сообщения, пока оно находится в очереди на модерацию, и после одобрения. Моя цель — отправлять пользователям уведомления по электронной почте в соответствии с их настройками подписки.

Не могли бы вы предоставить информацию или направить к соответствующим ресурсам, объясняющим, как определить, какие пользователи должны получать электронные письма, а какие — нет, в ходе этого процесса?

Любая помощь или предложения будут крайне полезны. Заранее благодарю за вашу поддержку!