Postal е мощна open-source платформа за изпращане на имейли, която ви позволява да управлявате собствен SMTP сървър за изпращане на транзакционни и масови имейли. Тя предоставя уеб интерфейс, API и SMTP достъп подобно на услуги като SendGrid или Mailgun.
Това ръководство показва как да инсталирате Postal на VPS сървър, използвайки Docker, както и как да конфигурирате DNS записи за правилна доставка на имейли.
Минимални системни изисквания
- Ubuntu 22.04 сървър
- Минимум 4 GB RAM
- 2 CPU ядра
- Публичен IP адрес
- Домейн с DNS достъп
Стъпка 1 – Подготовка на сървъра
ssh root@SERVER_IP
apt update && apt upgrade -y
apt install git curl jq -y
Стъпка 2 – Инсталиране на Docker
curl -fsSL https://get.docker.com | sh
docker --version
Postal работи изцяло с Docker и не може да бъде използван без него.
Стъпка 3 – Конфигуриране на Hostname, A запис и Reverse DNS (PTR)
Правилната конфигурация на hostname и DNS е критично важна за доставката на имейли и издаването на SSL сертификат.
Задаване на hostname
hostnamectl set-hostname postal.example.com
Редактирайте hosts файла:
nano /etc/hosts
127.0.0.1 localhost
SERVER_IP postal.example.com postal
Конфигуриране на A запис
postal.example.com → SERVER_IP
Конфигуриране на PTR (Reverse DNS)
SERVER_IP → postal.example.com
Важно: Hostname, A записът и PTR записът трябва да съвпадат напълно.
Стъпка 4 – Инсталиране на Postal helper
git clone https://github.com/postalserver/install /opt/postal/install
ln -s /opt/postal/install/bin/postal /usr/bin/postal
Стъпка 5 – Стартиране на MariaDB (Docker)
docker run -d \
--name postal-mariadb \
-p 127.0.0.1:3306:3306 \
--restart always \
-e MARIADB_DATABASE=postal \
-e MARIADB_ROOT_PASSWORD=StrongPassword \
mariadb
Стъпка 6 – Генериране на конфигурация
postal bootstrap postal.example.com
Стъпка 7 – Конфигуриране на Postal
nano /opt/postal/config/postal.yml
main_db:
host: 127.0.0.1
username: root
password: StrongPassword
database: postal
Стъпка 8 – Инициализиране на Postal
postal initialize
postal make-user
Стъпка 9 – Стартиране на Postal
postal start
postal status
Стъпка 10 – Стартиране на Caddy (Docker)
docker run -d \
--name postal-caddy \
--restart always \
--network host \
-v /opt/postal/config/Caddyfile:/etc/caddy/Caddyfile \
-v /opt/postal/caddy-data:/data \
caddy
Стъпка 11 – DNS конфигурация
MX запис
postal.example.com → postal.example.com
SPF запис
v=spf1 ip4:SERVER_IP ~all
DKIM запис
Ще бъде генериран в Postal интерфейса.
Return-Path домейн
rp.postal.example.com → SERVER_IP
Стъпка 12 – Достъп до Postal
https://postal.example.com
Стъпка 13 – Създаване на SMTP сървър
- Създайте Organization
- Създайте Mail Server
- Добавете домейн
- Генерирайте SMTP данни
Примерна SMTP конфигурация
SMTP Host: postal.example.com
SMTP Port: 587
Encryption: TLS
Username: your_username
Password: your_password
Стъпка 14 – Ъпгрейд на Postal
cd /opt/postal/install
git pull
postal update
postal restart
Заключение
Postal работи изцяло с Docker и използва контейнери за MariaDB и Caddy. С правилна DNS конфигурация и коректно зададен hostname можете да постигнете надеждна доставка на имейли.