wiki/Почта.md
2026-09-22 16:05:17 +04:00

5.2 KiB
Raw Permalink Blame History

Почта — 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]: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

Управление

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 перенёс два ящика:

  1. Admin (173:143) → vladislav@pankin.info (107:993): 5 папок, 38 писем
  2. 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/).