Содержание
- 1. Что понадобится
- 2. Настроить DNS
- 3. Установить Docker
- 4. Создать каталоги R7 Mailserver
- 5. Подготовить SSL-сертификат
- 6. Скачать архив R7 Mailserver
- 7. Распаковать архив
- 8. Настроить .env
- 9. Запустить почтовый сервер
- 10. Проверить контейнеры
- 11. Проверить открытые порты
- 12. Создать первый почтовый ящик
- 13. Настроить SPF
- 14. Настроить DKIM
- 15. Настроить DMARC
1. Что понадобится
- Сервер: ОС Linux;
- Домен: ru;
- Имя почтового сервера: primer-site.ru;
- IP сервера: 2.3.4.
В дальнейшем замените primer-site.ru на свой домен, а mx1.primer-site.ru на своё имя почтового сервера.
2. Настроить DNS
До установки желательно создать DNS-записи.
A-запись
Создайте:
mx1.primer-site.ru → 1.2.3.4
То есть:
primer-site.ru
└── mx1.primer-site.ru → IP сервера
MX-запись
Для домена:
primer-site.ru
создайте:
primer-site.ru. MX 10 mx1.primer-site.ru.
Важно: mx1.primer-site.ru должен иметь A-запись на IP сервера.
Настроить PTR
У провайдера/VPS-провайдера установите обратную DNS-запись:
1.2.3.4 → mx1.primer-site.ru
Проверить можно:
dig -x 1.2.3.4
Результат должен содержать:
mx1.primer-site.ru
Для почтового сервера PTR очень желательно настроить до начала отправки писем.
3. Установить Docker
Если Docker ещё не установлен:
apt update
Затем:
apt install -y docker.io docker-compose
Проверьте:
docker --version
и:
docker-compose --version
Например:
Docker version 26.x.x docker-compose version 1.x.x
Также включим Docker при загрузке:
systemctl enable --now docker
Проверим:
systemctl status docker
Должно быть:
Active: active (running)
4. Создать каталоги R7 Mailserver
Создайте необходимые каталоги:
mkdir -p /opt/r7/mailserver/ssl mkdir -p /opt/r7/mailserver/mail mkdir -p /opt/r7/mailserver/logs mkdir -p /opt/r7/postgresql/data mkdir -p /opt/r7/postgresql/logs
В архиве R7 именно эти каталоги используются для хранения данных.
Теперь установите владельца почты:
chown 1100:1100 /opt/r7/mailserver/mail
Проверьте:
ls -ld /opt/r7/mailserver/mail
5. Подготовить SSL-сертификат
Для работы почтового сервера нужны два файла:
mail_cert.pem mail_key.pem
Положить их нужно сюда:
/opt/r7/mailserver/ssl/
Если у вас Let’s Encrypt
Например:
/etc/letsencrypt/live/mx1.primer-site.ru/fullchain.pem
/etc/letsencrypt/live/mx1.primer-site.ru/privkey.pem
можно скопировать:
cp /etc/letsencrypt/live/mx1.primer-site.ru/fullchain.pem \ /opt/r7/mailserver/ssl/mail_cert.pem
и:
cp /etc/letsencrypt/live/mx1.primer-site.ru/privkey.pem \ /opt/r7/mailserver/ssl/mail_key.pem
6. Скачать архив R7 Mailserver
Можно скачать архив непосредственно на сервер:
cd /opt/r7 wget https://download.r7-office.ru/mailserver/mailserver-1.4.zip
7. Распаковать архив
Установите unzip:
apt install -y unzip
Распакуйте:
cd /opt/r7 unzip mailserver-1.4.zip
После этого появится каталог:
/opt/r7/mailserver-1.4/
Там должны быть:
- .env
- docker-compose.yml
- init-database.sh
- README.md
Именно такие файлы находятся в загруженном вами архиве.
8. Настроить .env
Откройте файл:
nano .env
Сейчас там шаблон:
MY_HOSTNAME=mx1.your-domain.ru MY_DOMAIN=your-domain.ru PGSQL_PASSWORD=password POSTGRES_PASSWORD=password
Например, если ваш домен primer-site.ru, а сервер mx1.primer-site.ru, сделайте:
MY_HOSTNAME=mx1.primer-site.ru MY_DOMAIN=primer-site.ru PGSQL_PASSWORD=СЛОЖНЫЙ_ПАРОЛЬ POSTGRES_PASSWORD=ЕЩЕ_ОДИН_СЛОЖНЫЙ_ПАРОЛЬ
Не используйте эти пароли буквально — придумайте свои.
Если нужен Relay
В .env есть ещё:
#RELAY_DOMAINS=mx1.your-domain.ru #RELAYHOST=[mx1.your-domain.ru]:25
Если relay вам не нужен, оставьте эти строки закомментированными.
9. Запустить почтовый сервер
Находясь в /opt/r7/mailserver-1.4/mailserver-compose-main, выполните:
docker-compose up -d
Docker начнёт скачивать необходимые образы, это может занять некоторое время.
10. Проверить контейнеры
Выполните:
docker ps
Должны появиться, примерно:
postgres-server mail-server opendkim
Все должны иметь статус:
Up
Например:
postgres-server Up mail-server Up opendkim Up
11. Проверить открытые порты
R7 Mailserver из docker-compose.yml публикует следующие порты:
| Порт | Назначение |
|---|---|
| 25 | SMTP |
| 143 | IMAP |
| 465 | SMTPS |
| 587 | Submission |
| 993 | IMAPS |
| 8084 | API |
Это непосредственно указано в Compose-файле из архива.
Проверить:
ss -lntp
Можно отдельно:
ss -lntp | grep -E ':25|:143|:465|:587|:993|:8084'
12. Создать первый почтовый ящик
После запуска R7 предоставляет скрипт:
/scripts/create_user.sh
Например, создаём user@primer-site.ru с паролем StrongPassword123!
Команда:
docker exec mail-server /scripts/create_user.sh user@primer-site.ru 'StrongPassword123!'
13. Настроить SPF
Для primer-site.ru создайте TXT:
v=spf1 +a +mx -all
То есть DNS:
primer-site.ru TXT "v=spf1 +a +mx -all"
14. Настроить DKIM
После запуска OpenDKIM получите публичный ключ:
docker exec -it opendkim cat /etc/opendkim/keys/primer-site.ru/dkim.txt
Если домен другой, вместо primer-site.ru используйте свой. Команда выдаст что-то вроде:
"v=DKIM1; k=rsa; " "p=MIGfMA0GCSq..."
В DNS нужно создать TXT-запись с соответствующим DKIM-значением.
Имя записи обычно будет связано с selector, который можно узнать из вывода:
docker exec opendkim find /etc/opendkim/keys -type f
15. Настроить DMARC
Создайте DNS TXT:
_dmarc.primer-site.ru
со значением:
v=DMARC1; p=none; rua=mailto:admin@primer-site.ru
На первом этапе p=none — безопасный вариант для мониторинга.












