Этот проект распространяется под лицензией MIT. Подробности см. в LICENSE.
Скрипт для автоматического уведомления по email о приближающихся днях рождения сотрудников через API Bitrix24.
- Получение списка сотрудников через Bitrix24 API
- Фильтрация по предстоящим дням рождения (с настраиваемым периодом)
- Кэширование данных пользователей для уменьшения нагрузки на API
- Отправка email-уведомлений с информацией о предстоящих ДР
- Поддержка нескольких получателей уведомлений
- Логирование всех операций
- Автоматический запуск по расписанию через systemd timer
- Python 3.7+
- Доступ к Bitrix24 API (вебхук)
- SMTP сервер для отправки email (поддерживается Gmail Yandex и другие, в спам улетать не будет)
- Скопируйте файлы скрипта на сервер (по FTP или SSH), предварительно скачав или склонировав репозиторий себе.
- Запустите установочный скрипт с правами суперпользователя:
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
)
- Получение списка активных пользователей из Bitrix24
- Кэширование данных пользователей (TTL = 48 часа)
- Фильтрация пользователей с предстоящими днями рождения
- Формирование читаемого сообщения с информацией о ДР
- Отправка email-уведомления указанным получателям
Сделано для автоматизации уведомлений через и на почту, по данным из портала Битрикс-24.