wiki/Почта.md

75 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Почта — Mailcow + SOGo
Домен **pankin.info**, сервер **nab27node** (192.168.27.107).
## Доступ
| Куда | Как |
|---|---|
| Webmail (SOGo) | https://mail.pankin.info/SOGo/ (из LAN: http://192.168.27.107:8443/SOGo/) |
| Админ-панель | https://mail.pankin.info/admin/ (из LAN: http://192.168.27.107:8080/admin/) |
| SMTP (отправка) | mail.pankin.info:587 (STARTTLS) или :465 (SMTPS) |
| IMAP (получение) | mail.pankin.info:143 (STARTTLS) или :993 (IMAPS) |
| POP3 | mail.pankin.info:110 или :995 |
**Ящик:** `vladislav@pankin.info` (пароль в `.env` mailcow)
## Архитектура
- 18 контейнеров Docker: nginx, php-fpm, mysql, postfix, dovecot, sogo, rspamd, unbound, redis, memcached, watchdog, clamd, ofelia, netfilter, dockerapi, acme, olefy, postfix-tlspol
- Compose: `/mnt/disk/docker-compose/mailcow/`
- Данные: `/mnt/disk/docker-compose/mailcow/data/`
- Reverse-proxy: nginx `mail.pankin.info` (443) → mailcow 8443
- DNS: A `mail.pankin.info` → 80.234.91.82; MX/SPF/DKIM/DMARC выданы
## Порты (LAN 192.168.27.107)
| Порт | Протокол | Назначение |
|---|---|---|
| 25 | SMTP | входящая почта |
| 465 | SMTPS | исходящая (implicit TLS) |
| 587 | SUBMISSION | исходящая (STARTTLS) |
| 143 | IMAP | получение (STARTTLS) |
| 993 | IMAPS | получение (implicit TLS) |
| 110 | POP3 | получение |
| 995 | POPS | получение (implicit TLS) |
| 8080 | HTTP | webmail + админка (LAN) |
| 8443 | HTTPS | webmail + админка (LAN) |
| 4190 | SIEVE | правила обработки |
| 13306 | MySQL | БД mailcow |
| 7654 | Redis | кэш/очереди |
| 19991 | Doveadm | утилиты dovecot |
## Yandex SMTP relay (18.09.2026)
Исходящая почта ходит через **Yandex** (`smtp.yandex.ru:587`) — обходит проблему PTR/HELO с Gmail.
- Учётка: `vladislav-pankin@yandex.ru`
- Пароль приложения: `lrmjfroshcelywet` (создан в id.yandex.ru → Пароли приложений)
- Конфиг postfix (`extra.cf`):
- `relayhost = [smtp.yandex.ru]:587`
- `smtp_sasl_auth_enable = yes`
- `smtp_sasl_password_maps = hash:/opt/postfix/conf/sasl_passwd`
- `mynetworks = 127.0.0.0/8 172.22.1.0/24 192.168.27.0/24`
- `canonical_maps = hash:/opt/postfix/conf/canonical`
- `canonical` мапит `@pankin.info` → `vladislav-pankin@yandex.ru` (иначе Yandex отклоняет невалидный отправитель)
- IMAP/POP3-доступ в Yandex включён (mail.yandex.ru → Настройки → Почтовые программы)
## Локальная доставка
- Postfix → Dovecot (maildir)
- `virtual_uid_maps = static:5000`, `virtual_gid_maps = static:5000`
- Maildir: `/var/vmail/pankin.info/vladislav/` (в контейнере postfix)
- SOGo → postfix (порт 588, `588 inet n - - - - smtpd` в master.cf)
## API
- Ключ: `8914bcfac817f76e9dec6e04bdde787f-rw` (access=rw)
- Использование: `curl -sk -H "Host: mail.pankin.info" -H "X-Api-Key: <key>" http://192.168.27.107:8080/api/v1/...`
- `add/mailbox` требует `local_part` + `password` + `password2`
## Управление
```bash
cd /mnt/disk/docker-compose/mailcow
docker compose ps # статус контейнеров
docker compose logs # логи
docker compose restart postfix-mailcow # перезапуск postfix
```
## Проброс SMTP в роутере
Проброс 25/587/465 на 80.234.91.82 **сделан** — входящая почта из интернета работает.