Notifly из CMS
CMS, в которых работают десятки и сотни сайтов, обычно сами рассылают почту, но это медленно и часто не доходит. Notifly даёт мгновенный канал для админа сайта: новый комментарий — push, новый заказ — push, ошибка PHP — push.
Доступные рецепты
Заголовок раздела «Доступные рецепты»| CMS / платформа | Что покрываем |
|---|---|
| WordPress | Комментарии, регистрации, обновления, заказы WooCommerce |
| 1С-Битрикс | Заказы, формы, ошибки, работа агента |
| Drupal | Hook-и узлов, watchdog, новые пользователи |
| MODX | События формы, ресурсов, плагины |
Универсальная функция-helper для PHP
Заголовок раздела «Универсальная функция-helper для PHP»Все четыре рецепта используют одну и ту же микро-функцию. Положите её в системный скрипт автозагрузки CMS:
<?phpfunction notifly_send(string $title, string $message, int $priority = 5): void { $url = getenv('NOTIFLY_URL') ?: 'https://your-notifly.example.com'; $token = getenv('NOTIFLY_TOKEN') ?: 'AGdjfk_L.dKe8q'; $body = json_encode([ 'title' => mb_substr($title, 0, 200), 'message' => mb_substr($message, 0, 1500), 'priority' => $priority, ], JSON_UNESCAPED_UNICODE);
$ch = curl_init("$url/message?token=$token"); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_HTTPHEADER => ['Content-Type: application/json'], CURLOPT_POSTFIELDS => $body, CURLOPT_TIMEOUT => 5, CURLOPT_CONNECTTIMEOUT => 3, ]); curl_exec($ch); curl_close($ch);}Лучше всего — задать NOTIFLY_URL и NOTIFLY_TOKEN через PHP-FPM environment
или .htaccess/SetEnv, чтобы не хранить токен в коде.
Общие принципы
Заголовок раздела «Общие принципы»- Никаких уведомлений с фронтенда. Все вызовы — только из серверного PHP.
- Не отправляйте PII (имена, email, адреса) лишний раз. Покажите краткую ссылку на админку CMS.
- Тротлинг. При спам-волне комментариев не превращайте Notifly в Telegram-канал.
Подойдёт простой кэш в
wp_cache/bx_cache.