Skip to content

Communill/B-24-HappyBirthdayNotify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version 3.1.1

📜 Лицензия

Этот проект распространяется под лицензией MIT. Подробности см. в LICENSE.

Уведомления о днях рождения сотрудников Bitrix24

Скрипт для автоматического уведомления по email о приближающихся днях рождения сотрудников через API Bitrix24.

📌 Основные возможности

  • Получение списка сотрудников через Bitrix24 API
  • Фильтрация по предстоящим дням рождения (с настраиваемым периодом)
  • Кэширование данных пользователей для уменьшения нагрузки на API
  • Отправка email-уведомлений с информацией о предстоящих ДР
  • Поддержка нескольких получателей уведомлений
  • Логирование всех операций
  • Автоматический запуск по расписанию через systemd timer

⚙️ Установка и настройка

Предварительные требования

  • Python 3.7+
  • Доступ к Bitrix24 API (вебхук)
  • SMTP сервер для отправки email (поддерживается Gmail Yandex и другие, в спам улетать не будет)

Установка

  1. Скопируйте файлы скрипта на сервер (по FTP или SSH), предварительно скачав или склонировав репозиторий себе.
  2. Запустите установочный скрипт с правами суперпользователя:
chmod +x install.sh #Cделает файл исполняемым
sudo ./install.sh # Запустит исполняемый файл, он всё в идеале должен сделать сам. (установит виртуальное окружение, необходимые библиотеки и настроит юниты для демона)

Настройка окружения

Создайте файл .env в той же директории, что и скрипт, со следующими параметрами:

# Обязательные параметры
WEBHOOK_URL=https://your-portal.bitrix24.ru/rest/1/webhook/
EMAIL_FROM=your.email@gmail.com
EMAIL_PASSWORD=your_email_password_or_app_specific_password #< Пароля может не быть, но он точно потребуется, если решено использовать личную почту
EMAIL_TO=recipient1@example.com;recipient2@example.com

# Опциональные параметры (можно оставить значения по умолчанию)
DAYS_BEFORE=1 # За сколько дней отправлять уведомление о дне рождении
SMTP_SERVER=smtp.gmail.com # должен соответствовать почтовому серверу, на чем крутится почта 
SMTP_PORT=587 # База, работает чаще всего

🛠 Использование

Ручной запуск

python3 notify.py

Автоматический запуск

После установки скрипт будет автоматически запускаться каждый будний день в 9:30 утра.

Для проверки статуса:

systemctl list-timers --all | grep b24-HappyBirthdayNotify

Просмотр логов

Логи сохраняются в директории logs/:

  • notify.log - основной лог скрипта
  • notify.stdout.log - стандартный вывод
  • notify.stderr.log - ошибки
  • cache/users_cache.json - хранится кеш, полученный из Битрикс-24, чтобы не опрашивать каждый раз сам портал Битрикса

🔧 Кастомизация

Вы можете настроить следующие параметры:

  • DAYS_BEFORE - за сколько дней до ДР отправлять уведомление (по умолчанию 1)
  • Формат и содержимое email-уведомления (функция format_birthday_message в скрипте)
  • Периодичность запуска (изменив таймер в install.sh)

📄 Логика работы

  1. Получение списка активных пользователей из Bitrix24
  2. Кэширование данных пользователей (TTL = 48 часа)
  3. Фильтрация пользователей с предстоящими днями рождения
  4. Формирование читаемого сообщения с информацией о ДР
  5. Отправка email-уведомления указанным получателям

Сделано для автоматизации уведомлений через и на почту, по данным из портала Битрикс-24.

About

Уведомление о ДР сотрудников Bitrix24

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published