75 lines
3.6 KiB
Markdown
75 lines
3.6 KiB
Markdown
# Почта — 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 **сделан** — входящая почта из интернета работает.
|