mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 09:15:09 +00:00
docs: анализ Nylas CLI — не подходит (отклонено)
Nylas — облачный SaaS, а не локальный CLI для произвольного IMAP. Проблемы: утечка корпоративной почты третьей стороне, платность, гибель IMAP-гранта при ротации пароля, платный Contacts API. Вывод: продолжаем с Himalaya; для отправки — SMTP в himalaya/msmtp.
This commit is contained in:
@@ -0,0 +1,103 @@
|
|||||||
|
# Анализ: 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)**:
|
||||||
|
```bash
|
||||||
|
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.
|
||||||
@@ -7,3 +7,7 @@
|
|||||||
**Статус:** Фаза 1.5 — Индексация, поиск, дайджесты + Адресная книга (в работе)
|
**Статус:** Фаза 1.5 — Индексация, поиск, дайджесты + Адресная книга (в работе)
|
||||||
|
|
||||||
Подробнее: [STATUS.md](STATUS.md)
|
Подробнее: [STATUS.md](STATUS.md)
|
||||||
|
|
||||||
|
## Оценка альтернатив
|
||||||
|
|
||||||
|
- [Анализ Nylas CLI](NYLAS_ANALYSIS.md) — почему Nylas **не подходит** для локального архива (2026-09-11)
|
||||||
Reference in New Issue
Block a user