Files
email-assistant/NYLAS_ANALYSIS.md
T
hermes d4bf3ed1ad docs: анализ Nylas CLI — не подходит (отклонено)
Nylas — облачный SaaS, а не локальный CLI для произвольного IMAP.
Проблемы: утечка корпоративной почты третьей стороне, платность,
гибель IMAP-гранта при ротации пароля, платный Contacts API.
Вывод: продолжаем с Himalaya; для отправки — SMTP в himalaya/msmtp.
2026-09-11 12:54:11 +00:00

6.9 KiB
Raw Blame History

Анализ: Nylas CLI как альтернатива текущему стеку

Дата: 2026-09-11 Статус: ❌ Не подходит — отклонено. Инициатор: Вопрос пользователя «может этот проект поможет упростить получение и отправку писем?»


TL;DR

Nylas — это облачный SaaS (данные идут через серверы Nylas), а не локальный CLI для работы с произвольным IMAP. Для нашего сценария (локальный архив корпоративной почты + LLM-ассистент на bigbox) он добавляет зависимость от провайдера, плату и утечку данных третьей стороне — без выигрыша в функциональности.


Что такое Nylas на самом деле

  • Облачный платформенный сервис: api.us.nylas.com
  • Три продукта за одним API-ключом: Connect (Email/Calendar/Contacts/Scheduler API), Notetaker (транскрибация встреч), Agent Accounts (API-провижинг почтовых ящиков)
  • Есть CLI (cli.nylas.com) — но он работает только через облако Nylas: нужен API-ключ, OAuth или BYO-грант, аккаунт в Dashboard. Это НЕ локальный инструмент уровня himalaya, который ходит напрямую по IMAP
  • Поддерживаемые провайдеры: Google, Microsoft, Exchange (EWS), iCloud, Yahoo, generic IMAP, Zoom

Как подключается IMAP (наш случай mail.corpoffice.tech)

  1. Создать аккаунт Nylas, приложение, получить API-ключ (платно в проде)
  2. Подключить аккаунт через Hosted OAuth (пользователь вводит пароль в браузере/форме Nylas) или Bring Your Own (BYO):
    curl -X POST 'https://api.us.nylas.com/v3/connect/custom' \
      -H 'Authorization: Bearer <API_KEY>' \
      -H 'Content-Type: application/json' \
      -d '{
        "provider": "imap",
        "settings": {
          "imap_username": "e.storozhenko",
          "imap_password": "...",
          "imap_host": "mail.corpoffice.tech",
          "imap_port": 143,
          "smtp_host": "...",
          "smtp_port": 465
        }
      }'
    
  3. Дальше работать через nylas email list / REST API api.us.nylas.com

Проблемы Nylas для нашего проекта

# Проблема Детали
1 Приватность Все письма копируются на серверы Nylas (US/EU). Корпоративная почта vinogorod у третьей стороны — неприемлемо
2 Стоимость Платная подписка + регистрация домена на Nylas. Локальный стек бесплатен
3 Contacts API для generic IMAP Требует активации по контракту (платно). У нас контакты уже работают локально через LLM (81 контакт)
4 Ротация IMAP-пароля У нас пароль IMAP ротируется (уже документировано в памяти). Грант Nylas при смене пароля умирает → реавторизация через OAuth
5 SMTP Для отправки нужно явно настраивать SMTP в гранте (опция smtp_required), всё равно через облако
6 UIDVALIDITY re-index Nylas пере-индексирует папку при смене UIDVALIDITY — на медленных корпоративных IMAP это «не поддерживается» (по их же докам)
7 Нет выигрыша Поиск (SQLite FTS5), контакты (LLM), индексация (Qdrant в планах) — всё уже есть или планируется локально

Сравнение с текущим стеком

Критерий Himаlaya + наш пайплайн (сейчас) Nylas CLI
Локальность Прямой IMAP с bigbox, всё на диске Облако Nylas (письма идут через них)
Стоимость Бесплатно Платная подписка + домен
Отправка Нужен SMTP-конфиг (у нас только чтение) SMTP в гранте, но через облако
Контакты Локальный LLM-экстрактор (работает) Платный контракт для generic IMAP
Пароль Ротация → правка конфига (5 сек) Ротация → грант умирает, реавторизация
Поиск Локальный SQLite FTS5 Облачный API
Приватность Полная (данные на bigbox) Письма копируются Nylas

Когда Nylas имел бы смысл

  • Строим мультипровайдерный SaaS (подключение Gmail/Outlook/iCloud пользователей через OAuth)
  • Нужна транскрибация встреч (Notetaker) или API-провижинг ящиков (Agent Accounts) без своей инфраструктуры
  • Облачное хранение почты не проблема (не корпоративная/чувствительная)

Что может упростить отправку вместо Nylas

  1. Himalaya message send — SMTP уже почти настроен (в ~/.config/himalaya/config.toml есть аккаунт hermes с SMTP jino.ru; для vinogorod добавить [accounts.vinogorod.message.send] с smtp.corpoffice.tech:465)
  2. msmtp/ssmtp + mail — классика для крон-скриптов
  3. Python smtplib — если нужна программная отправка с вложениями

Вывод

Nylas CLI не подходит: добавляет облачную зависимость, плату и утечку корпоративной почты третьей стороне, при этом не даёт ничего, чего бы у нас уже не было локально. Текущий стек (Himalaya → Python → SQLite → Ollama → Yandex Disk) закрывает задачу полностью и бесплатно.

Решение: продолжать с Himalaya; при необходимости отправки — настроить SMTP в himalaya-конфиге или использовать msmtp.