Initial commit: Hermes skill email-local-archive

This commit is contained in:
estorozhenko
2026-09-06 13:51:14 +00:00
commit b123d2d3b4
7 changed files with 1386 additions and 0 deletions
+124
View File
@@ -0,0 +1,124 @@
# Jino (jino.ru) — настройка почтового ящика в Himalaya
## Серверы
| Протокол | Сервер | Порт | Шифрование | Аутентификация |
|----------|--------|------|------------|----------------|
| IMAP | mail.jino.ru | 143 | STARTTLS | PLAIN, CRAM-MD5 |
| IMAP SSL | mail.jino.ru | 993 | TLS | PLAIN, CRAM-MD5 |
| POP3 SSL | mail.jino.ru | 995 | TLS | USER/PASS |
| SMTP | smtp.jino.ru | 587 | STARTTLS | PLAIN, LOGIN, CRAM-MD5 |
| SMTP SSL | smtp.jino.ru | 465 | TLS | PLAIN, LOGIN, CRAM-MD5 |
**Логин:** полный email `hermes@nixg.ru` (не local-part без домена — сервер вернёт "Email not valid").
## Himalaya config
```toml
[accounts.jino-hermes]
email = "hermes@nixg.ru"
display-name = "Hermes Agent"
default = false
backend.type = "imap"
backend.host = "mail.jino.ru"
backend.port = 993
backend.encryption.type = "tls"
backend.login = "hermes@nixg.ru"
backend.auth.type = "password"
backend.auth.raw = "PASSWORD_HERE"
folder.aliases.inbox = "INBOX"
[accounts.jino-hermes.message.send]
backend.type = "smtp"
backend.host = "smtp.jino.ru"
backend.port = 465
backend.encryption.type = "tls"
backend.login = "hermes@nixg.ru"
backend.auth.type = "password"
backend.auth.raw = "PASSWORD_HERE"
```
## Диагностика
### Быстрая проверка IMAP (Python)
```python
import imaplib
M = imaplib.IMAP4_SSL('mail.jino.ru', 993)
try:
M.login('hermes@nixg.ru', 'PASSWORD')
print('OK')
M.logout()
except Exception as e:
print(f'Login failed: {e}')
```
### Быстрая проверка SMTP (Python)
```python
import smtplib
S = smtplib.SMTP('smtp.jino.ru', 587, timeout=15)
S.ehlo()
S.starttls()
S.ehlo()
try:
S.login('hermes@nixg.ru', 'PASSWORD')
print('SMTP OK')
except Exception as e:
print(f'SMTP login error: {e}')
S.quit()
```
### Проверка POP3
```python
import poplib
P = poplib.POP3_SSL('mail.jino.ru', 995, timeout=15)
try:
P.user('hermes@nixg.ru')
P.pass_('PASSWORD')
msgs, _ = P.stat()
print(f'POP3 OK, {msgs} messages')
P.quit()
except Exception as e:
print(f'POP3 error: {e}')
```
### Просмотр IMAP-возможностей сервера
```python
M = imaplib.IMAP4_SSL('mail.jino.ru', 993)
M.capability()
print(M.capabilities) # выведет: IMAP4 IMAP4REV1 UIDPLUS CHILDREN NAMESPACE QUOTA IDLE AUTH=PLAIN AUTH=CRAM-MD5
M.shutdown()
```
## Типовые проблемы
### "Login failed" на всех протоколах
1. **Ящик не активирован** — Jino (и особенно хостинг-аккаунты на nixg.ru) могут требовать первый вход через панель управления или webmail
2. **Неправильный пароль** — сбросить в cp.jino.ru → Почта → нужный ящик → Изменить пароль
3. **Доступ по протоколам отключён** — в панели Jino нужно проверить, что IMAP/POP3/SMTP включены для ящика
4. **Сервер ждёт активации** — на новых доменах почта может не работать до завершения регистрации/верификации
Если логин не проходит через `himalaya` — **проверить вручную через Python** (см. выше). Python показывает ту же ошибку, но без дополнительных слоёв (Rust-клиент himalaya может добавить свою обёртку).
### "Email not valid"
Логин передан без доменной части (только `hermes`, а не `hermes@nixg.ru`). Jino IMAP требует полный email.
## Множественные аккаунты в Himalaya
Конфиг может содержать сколько угодно аккаунтов. Для переключения:
```bash
# Через --account (порядок аргументов важен):
himalaya --account hermes envelope list --limit 10
# Или временно сделать default и вернуть обратно:
vim ~/.config/himalaya/config.toml
# выставить default = true у нужного аккаунта
```