5.2 KiB
Почта — Mailcow + SOGo
Домен pankin.info, сервер nab27node (192.168.27.107).
Доступ
| Куда | Как |
|---|---|
| Webmail (SOGo) | https://mail.pankin.info/SOGo/ (из LAN: https://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]:587smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/opt/postfix/conf/sasl_passwdmynetworks = 127.0.0.0/8 172.22.1.0/24 192.168.27.0/24canonical_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
Управление
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 сделан — входящая почта из интернета работает.
SOGo-авторизация (патч 22.09.2026)
Проблема: SOGo-логин читает _sogo_static_view.c_password, а не mailbox.password. Функция update_sogo_static_view() в functions.inc.php при создании/смене пароля ящика вставляла случайный {SSHA256}-хеш → webmail-логин падал с 403 /SOGo/connect, хотя IMAP и админка работали.
Патч: functions.inc.php модифицирован — update_sogo_static_view() теперь кладёт mailbox.password (bcrypt) вместо случайного SHA256. Бэкап: functions.inc.php.bak.
Проверка: sogo_access=1, force_pw_update=0 → SOGo получает реальный пароль. Совпадает с upstream (mailcow PR #5183).
Импорт почты с 192.168.27.173 (завершён 20.09.2026)
imapsync 2.314 перенёс два ящика:
Admin(173:143) →vladislav@pankin.info(107:993): 5 папок, 38 писемvladislav(173:143) →vladislav@pankin.info(107:993): 22 папки, 159 090 писем, 16.638 GiB, 10 505 дубликатов пропущено, время ~7.2 часа
Итого на 107: ~159 128 писем.
SSL-сертификат dovecot (20.09.2026)
Заменён self-signed → Let's Encrypt (C = US, O = Let's Encrypt, CN = YE1, до 17.12.2026). Файлы: data/assets/ssl/{cert.pem,key.pem} (скопированы из /etc/letsencrypt/live/mail.pankin.info/).