Skill: Himalaya Email (IMAP/SMTP)

Trigger: пользователь просит проверить почту, прочитать письма, отправить email, "что мне написали", "напиши письмо на ...", "новые письма"

Зачем

В контейнере установлен himalaya — CLI для IMAP/SMTP. Конфиг автоматически генерируется entrypoint'ом из HIMALAYA_EMAIL + HIMALAYA_PASSWORD (см. extra_creds.md).

Аккаунт по умолчанию называется default, поэтому флаг -a обычно не нужен.

Проверка готовности

terminal: himalaya account list

Если показывает default — конфиг есть. Если пусто — попроси юзера выставить переменные HIMALAYA_EMAIL и HIMALAYA_PASSWORD (для Яндекса — app password с id.yandex.ru/security/app-passwords, не основной пароль).

Чтение

Список папок:

terminal: himalaya folder list

Последние письма в INBOX:

terminal: himalaya envelope list --page-size 20

Поиск (IMAP SEARCH синтаксис):

terminal: himalaya envelope list -- FROM "boss@example.com" UNSEEN
terminal: himalaya envelope list -- SUBJECT "invoice"

Прочитать письмо по ID:

terminal: himalaya message read 1234

ID — это число из колонки envelope list. Дополнительно: --no-headers для чистого текста, --raw для исходника.

Скачать вложения:

terminal: himalaya attachment download 1234

Файлы лягут в ~/.local/share/himalaya/. Можно перенести в vault: mv ~/.local/share/himalaya/* /opt/data/secondbrain/data/.

Отправка

Простое письмо одной командой:

terminal: printf 'From: %s\nTo: addr@example.com\nSubject: Тема\n\nТекст письма.\n' "$HIMALAYA_EMAIL" \
  | himalaya message send

С Markdown-телом из файла:

terminal: cat > /tmp/mail.eml << EOF
From: $HIMALAYA_EMAIL
To: addr@example.com
Subject: Тема
Content-Type: text/plain; charset=utf-8

Привет!

Текст письма.
EOF
himalaya message send < /tmp/mail.eml

Ответ на письмо:

terminal: himalaya message reply 1234 --all  # потом редактор; для non-interactive см. ниже

Для скриптуемого ответа собирай EML вручную с In-Reply-To: и References: заголовками из исходного письма.

Управление

Действие Команда
Пометить прочитанным himalaya flag add 1234 seen
Снять флаг himalaya flag remove 1234 seen
Удалить himalaya message delete 1234
Перенести в папку himalaya message move 1234 Archive
Скопировать himalaya message copy 1234 Archive

Запись в vault

Когда юзер просит "сохрани это письмо" или "запиши что писали":

  1. Создай заметку в inbox/email-YYYY-MM-DD-краткая-тема.md с фронтматтером:
    ---
    from: sender@example.com
    subject: Original subject
    date: 2026-05-20T14:30:00
    ---
    
    <тело письма>
    
  2. Залогируй в daily note: HH:MM получено письмо от X → [[inbox/email-...]]
  3. Если важное — добавь [[wikilink]] в подходящую wiki-заметку.

Утренняя проверка почты

Trigger: "что нового в почте", "проверь почту", "брифинг по письмам"

  1. himalaya envelope list --page-size 30 -- UNSEEN — непрочитанные
  2. Сгруппируй по отправителю, краткое резюме каждой группы (1 строка)
  3. Спроси: "Какие открыть полностью? Какие удалить? Какие сохранить в vault?"
  4. Залогируй итог в daily note: ## Email секция

Важно

  • Никогда не печатай HIMALAYA_PASSWORD в чат или vault. Используй переменную окружения в командах.
  • Яндекс: пароль приложения нужен с правами "IMAP" и "SMTP" по отдельности. Основной пароль аккаунта не работает.
  • Большие письма: не загружай в чат целиком — сохрани в vault и дай ссылку.
  • Спам: если письмо явно спам — himalaya message move <id> Spam без вопросов.