# Cock.li + Thunderbird: гайд при проблемном коннекте

Проверено: с прокси (149.154.64.19) и с DO (hunab-prod) до mail.cock.li открыт только **IMAP 993**. SMTP 465/587 — таймаут. Ниже — как выстроить сетап, чтобы легко отправлять и получать письма из Thunderbird.

---

## Оглавление

1. [Проверенные настройки cock.li](#проверенные-настройки-cockli)
2. [Проверка доступа с серверов](#проверка-доступа-с-серверов)
3. [Приём писем (IMAP) через туннель](#приём-писем-imap-через-туннель)
4. [Отправка (SMTP) — варианты](#отправка-smtp--варианты)
5. [Настройки в Thunderbird](#настройки-в-thunderbird)
6. [Команды для копирования](#команды-для-копирования)

---

## Проверенные настройки cock.li

**Сервер:** `mail.cock.li` (для прокси без DNS использовать IP: `37.120.193.124`).

### SMTP (отправка)

| Параметр        | Значение |
|-----------------|----------|
| Сервер          | `mail.cock.li` |
| Порт SSL        | **465** (SSL/TLS) |
| Порт STARTTLS   | **587** (STARTTLS) |
| Шифрование      | Обязательно SSL/TLS или STARTTLS |
| Логин           | Полный адрес `user@domain.cock.li` |

### IMAP (приём)

| Параметр        | Значение |
|-----------------|----------|
| Сервер          | `mail.cock.li` (или `37.120.193.124` с прокси) |
| Порт SSL        | **993** (SSL/TLS) ✅ доступен с прокси и DO |
| Порт STARTTLS   | **143** (STARTTLS) |
| Шифрование      | Обязательно |
| Логин           | Полный адрес `user@domain.cock.li` |

---

## Проверка доступа с серверов

### Валидация одной командой (с DO)

Скрипт проверяет IMAP 993 и SMTP 465/587. Запуск **с твоей машины** (скрипт выполнится на DO):

```bash
ssh hunab-prod 'bash -s' < docs/firemail/validate_mail_from_do.sh
```

**Ожидаемый результат с DO (2026-03-07):**

| Сервис        | Результат | Комментарий |
|---------------|-----------|-------------|
| IMAP 993      | OK        | Приём почты через туннель возможен |
| SMTP 587      | FAIL      | Таймаут с хостинга; не мешает туннелю IMAP |
| SMTP 465      | FAIL      | Таймаут с хостинга |

Итог: **почта по IMAP с DO работает.** SMTP с DO до cock.li недоступен — отправка только с машины (если 587 открыт) или через webmail.

### С прокси (149.154.64.19)

```bash
# IMAP 993 — OK
ssh -o StrictHostKeyChecking=accept-new -i "$HOME/.ssh/id_ed25519" ahau@149.154.64.19 \
  "echo 'Q' | timeout 12 openssl s_client -connect 37.120.193.124:993 -servername mail.cock.li -brief 2>&1"

# SMTP 465 / 587 — таймаут с прокси
```

На прокси нет DNS для `mail.cock.li` (NXDOMAIN), поэтому подключаться по IP: `37.120.193.124`, с `-servername mail.cock.li` для SNI.

### С Digital Ocean (hunab-prod)

```bash
# IMAP 993 — OK
ssh hunab-prod "timeout 12 openssl s_client -connect 37.120.193.124:993 -servername mail.cock.li -brief </dev/null 2>&1"

# SMTP 465 / 587 — таймаут с DO
```

### Локальная проверка SMTP (если у тебя открыт cock.li)

```bash
openssl s_client -connect mail.cock.li:587 -starttls smtp -servername mail.cock.li -brief </dev/null
```

Если видишь `CONNECTION ESTABLISHED` — в Thunderbird можно использовать прямой SMTP `mail.cock.li:587`.

---

## Приём писем (IMAP) через туннель

Туннель поднимаешь в терминале (сессия должна быть открыта или в фоне).

### Через прокси (из РФ быстрее)

```bash
ssh -o StrictHostKeyChecking=accept-new -i ~/.ssh/id_ed25519 \
  -L 9143:37.120.193.124:993 \
  ahau@149.154.64.19 -N
```

Или с алиасом из `~/.ssh/config`:

```bash
ssh -L 9143:37.120.193.124:993 hsites-ahau -N
```

### Через DO (если прокси недоступен)

```bash
ssh -L 9143:37.120.193.124:993 hunab-prod -N
```

### В фоне (опционально)

```bash
ssh -f -L 9143:37.120.193.124:993 hsites-ahau -N
# или
ssh -f -L 9143:37.120.193.124:993 hunab-prod -N
```

В Thunderbird: входящий сервер **127.0.0.1**, порт **9143**, без SSL, логин — полный email @cock.li.

---

## Отправка (SMTP) — варианты

- **Вариант A:** С твоей сети до mail.cock.li:587 достучаться можно → в Thunderbird SMTP: `mail.cock.li`, порт **587**, STARTTLS, логин — полный адрес.
- **Вариант B:** С твоей сети 587 не открыт → поднять SMTP-релей на машине, откуда cock.li отвечает (домашний ПК, другой VPS), и в Thunderbird слать через туннель на этот релей.
- **Вариант C:** Отправка только через webmail cock.li, приём — в Thunderbird по туннелю.

---

## Настройки в Thunderbird

Перед настройкой: поднять туннель IMAP (см. [Команды](#команды-для-копирования)), затем в Thunderbird добавить учётную запись или изменить существующую.

### Шаг 1: Туннель IMAP

В терминале запусти один из туннелей (сессия должна оставаться открытой или использовать `-f` для фона):

```bash
ssh -L 9143:37.120.193.124:993 hunab-prod -N
```

Или через прокси: `ssh -L 9143:37.120.193.124:993 hsites-ahau -N`

### Шаг 2: Учётная запись в Thunderbird

**Параметры входящей почты (IMAP через туннель):**

| Поле           | Значение      |
|----------------|---------------|
| Тип сервера    | IMAP          |
| Сервер         | `127.0.0.1`   |
| Порт           | `9143`        |
| SSL/TLS        | **Нет** (трафик уже в SSH) |
| Обычная аутентификация | Вкл |
| Логин          | полный email (например `user@cock.li`) |
| Пароль         | пароль от почты cock.li |

**Параметры исходящей почты (SMTP):**

**Вариант 1 — прямой доступ к cock.li с твоей сети:**

| Поле           | Значение        |
|----------------|------------------|
| Сервер         | `mail.cock.li`   |
| Порт           | `587`            |
| Безопасность   | STARTTLS         |
| Аутентификация| Обычный пароль   |
| Логин          | полный email     |

**Вариант 2 — SMTP через свой релей по туннелю:** сервер `127.0.0.1`, порт локального туннеля (например `1587`).

**Вариант 3 — отправка только через webmail:** в Thunderbird исходящий не настраивать; приём — по туннелю.

### Шаг 3: Проверка

- Получение: Thunderbird должен показать папки и письма (если туннель поднят и порт 9143 свободен).
- Отправка: отправить тестовое письмо себе; при варианте 1 проверь, что с твоей сети открыт порт 587 до `mail.cock.li` (см. [локальная проверка SMTP](#локальная-проверка-smtp-если-у-тебя-открыт-cockli)).

### Краткая сводка полей

| Направление | Сервер     | Порт  | SSL   | Логин       |
|-------------|------------|-------|-------|-------------|
| Входящий    | `127.0.0.1`| `9143`| Нет   | user@cock.li |
| Исходящий (прямой) | `mail.cock.li` | `587` | STARTTLS | user@cock.li |

---

## Команды для копирования

### 0. Валидация IMAP/SMTP с DO (проверить, что всё работает)

```bash
ssh hunab-prod 'bash -s' < docs/firemail/validate_mail_from_do.sh
```

Ожидается: `OK IMAP 993`, `FAIL` для SMTP 587/465 — этого достаточно для приёма по туннелю.

### 1. Туннель IMAP через прокси (основной)

```bash
ssh -o StrictHostKeyChecking=accept-new -i ~/.ssh/id_ed25519 -L 9143:37.120.193.124:993 ahau@149.154.64.19 -N
```

### 2. Туннель IMAP через прокси (алиас hsites-ahau)

```bash
ssh -L 9143:37.120.193.124:993 hsites-ahau -N
```

### 3. Туннель IMAP через DO

```bash
ssh -L 9143:37.120.193.124:993 hunab-prod -N
```

### 4. Туннель IMAP в фоне (прокси)

```bash
ssh -f -o StrictHostKeyChecking=accept-new -i ~/.ssh/id_ed25519 -L 9143:37.120.193.124:993 ahau@149.154.64.19 -N
```

### 5. Туннель IMAP в фоне (DO)

```bash
ssh -f -L 9143:37.120.193.124:993 hunab-prod -N
```

### 6. Проверка IMAP 993 с прокси

```bash
ssh -o StrictHostKeyChecking=accept-new -i "$HOME/.ssh/id_ed25519" ahau@149.154.64.19 "echo 'Q' | timeout 12 openssl s_client -connect 37.120.193.124:993 -servername mail.cock.li -brief 2>&1"
```

### 7. Проверка IMAP 993 с DO

```bash
ssh hunab-prod "timeout 12 openssl s_client -connect 37.120.193.124:993 -servername mail.cock.li -brief </dev/null 2>&1"
```

### 8. Проверка SMTP 587 локально

```bash
openssl s_client -connect mail.cock.li:587 -starttls smtp -servername mail.cock.li -brief </dev/null
```

### 9. Убить фоновый туннель на порту 9143

```bash
# Найти процесс
lsof -i :9143

# Завершить (подставить PID из вывода)
kill <PID>
```

---

## Итог

| Направление | Как сделать |
|-------------|-------------|
| **Приём (IMAP)** | Туннель `-L 9143:37.120.193.124:993` на прокси или DO; в Thunderbird — 127.0.0.1:9143, без SSL. |
| **Отправка (SMTP)** | Либо прямой mail.cock.li:587 (если доступен), либо свой SMTP-релей + туннель, либо только webmail. |

Дата гайда: 2026-03-07. Валидация с DO: `validate_mail_from_do.sh` — IMAP 993 OK, SMTP 465/587 недоступны с хостинга.
