Чому надсилати через порти 587 і 465
Порт 25 слугує для передавання пошти між поштовими серверами. Якщо надсилати листи із сервера просто на поштовий сервер одержувача, доведеться самим стежити за репутацією IP, зворотним записом DNS і обсягами надсилання, а листи з IP нового сервера легко потрапляють у спам.
Порти 587 і 465 це порти надсилання, через які авторизований користувач передає пошту. Ви входите до сервісу надсилання пошти за логіном і паролем і передаєте йому листи, а його сервери з керованою репутацією доставляють їх за вас. Це найнадійніший спосіб, щоб листи про реєстрацію, відновлення пароля й замовлення доходили до теки «Вхідні».
- Порт 587: з'єднання відкривається без шифрування, а потім шифрування вмикається через STARTTLS. Цей порт за замовчуванням використовують більшість сервісів і програм.
- Порт 465: з'єднання від самого початку шифрується через TLS. У налаштуваннях він часто позначений як SSL або SSL/TLS.
Як обрати сервіс надсилання пошти
Сервіси надсилання пошти бувають двох основних видів. Перший це сервіси транзакційної пошти для масового надсилання сповіщень сайтів і застосунків, другий це функція SMTP у робочій чи особистій пошті, якою ви вже користуєтеся. У будь-якому разі, отримавши чотири параметри нижче, ви готові до налаштування.
- Адреса SMTP сервера: наприклад, smtp.example.com
- Порт: 587 (STARTTLS) або 465 (SSL/TLS)
- Ім'я користувача: логін або адреса пошти, видані сервісом
- Пароль: окремий пароль SMTP або ключ API сервісу
Інтернет-магазинам і сервісам з великим обсягом розсилки зручніша транзакційна пошта: вона веде журнал надсилань, обробляє повернення й відписки. Для кількох сповіщень вистачить і SMTP поштового акаунта.
Перевірка SMTP підключення із сервера
Перед налаштуванням перевірте, що сервер може підключитися до сервісу надсилання. Команди нижче лише перевіряють з'єднання й не надсилають листів.
nc -vz smtp.example.com 587
openssl s_client -starttls smtp -connect smtp.example.com:587 -crlf -quiet
openssl s_client -connect smtp.example.com:465 -crlf -quietЯкщо перший рядок показує succeeded або open, а команда openssl виводить привітання сервера, що починається з 220, усе готово. Вихід через Ctrl+C. Якщо команди nc немає, встановіть її: в Ubuntu і Debian apt install -y netcat-openbsd, в AlmaLinux dnf install -y nmap-ncat.
Підключення Postfix до сервісу надсилання
Щоб зібрати в одному місці пошту від програм на сервері, сповіщень cron і команди mail, налаштуйте Postfix як ретранслятор, що передає листи сервісу надсилання. Уся пошта із сервера йтиме через порт 587 з авторизацією.
Крок 1. Встановлення
apt install -y postfix libsasl2-modules mailutilsЯкщо під час встановлення запитають тип налаштування пошти, оберіть Internet Site, а як поштове ім'я вкажіть свій домен. В AlmaLinux 10 встановіть командою dnf install -y postfix cyrus-sasl-plain s-nail і ввімкніть командою systemctl enable --now postfix.
Крок 2. Налаштування ретрансляції
postconf -e 'relayhost = [smtp.example.com]:587'
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_password_maps = texthash:/etc/postfix/sasl_passwd'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_tls_security_level = encrypt'
postconf -e 'inet_interfaces = loopback-only'inet_interfaces = loopback-only приймає лише листи, надіслані із самого сервера, тож ззовні цей сервер не можна використати як поштовий ретранслятор.
Крок 3. Збережіть дані для входу
echo '[smtp.example.com]:587 SMTP_USER:SMTP_PASSWORD' > /etc/postfix/sasl_passwd
chmod 600 /etc/postfix/sasl_passwd
systemctl restart postfixЯкщо сервіс працює через порт 465, замініть порт у relayhost і sasl_passwd на 465 і додайте рядок postconf -e 'smtp_tls_wrappermode = yes'.
Крок 4. Тестове надсилання й перевірка логів
echo "VPS mail test" | mail -s "Test from VPS" you@example.com
postqueue -p
journalctl -t postfix/smtp -n 20Якщо в лозі видно status=sent, сервіс надсилання прийняв лист. postqueue -p показує листи, які ще не пішли. Якщо ви виправили дані для входу, виконайте systemctl restart postfix, а потім надішліть їх повторно командою postqueue -f.
Налаштування SMTP у WordPress і застосунках
У більшості сайтів і застосунків є поля налаштування SMTP, тож їх можна підключити просто до сервісу надсилання, без Postfix на сервері. У WordPress встановіть SMTP плагін і вкажіть значення нижче, і листи про реєстрацію та відновлення пароля йтимуть через цей сервіс.
- SMTP хост: адреса сервісу надсилання
- Шифрування: TLS (STARTTLS) для порту 587, SSL для порту 465
- Порт: 587 або 465
- Авторизація: увімкнути, вказати ім'я користувача й пароль
- Адреса відправника: адреса на вашому домені (наприклад, no-reply@example.com)
Застосунки на Node.js, PHP і Python налаштовуються з тими самими значеннями в поштовій бібліотеці. Не прописуйте пароль просто в коді, а зберігайте його в змінній середовища чи файлі налаштувань. Встановлення WordPress описано в посібнику зі встановлення WordPress.
Записи SPF, DKIM і DMARC у DNS домену
Поштовий сервер одержувача за DNS записами перевіряє, чи справді лист прийшов з місця, дозволеного вашим доменом. Якщо додати три записи, листи значно частіше потраплятимуть у «Вхідні».
- SPF: список серверів, яким дозволено надсилати пошту від вашого домену. Додайте значення include, яке дає сервіс надсилання, в один TXT запис.
- DKIM: електронний підпис листа. Додайте TXT або CNAME запис, який створює сервіс надсилання, без змін.
- DMARC: визначає, що робити з листами, які не пройшли перевірку SPF і DKIM. Для початку використовуйте налаштування, яке лише надсилає звіти, як нижче.
_dmarc.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"Коли за кілька тижнів зі звітів стане видно, що всі листи проходять перевірку, підніміть політику до p=quarantine, а потім до p=reject, щоб захистити домен від підробки.
Отримання пошти й наступні кроки
Щоб отримувати листи на свій домен, додайте до домену MX записи сервісу поштового хостингу. Якщо вхідну пошту веде поштовий хостинг, а вихідні сповіщення сервіс надсилання, сервер може займатися лише сайтами й застосунками.
Надсилання через сервіс і далі працює під час перенесення чи створення нового сервера: досить перенести кілька рядків налаштувань. Навіть якщо IP сервера змінюється, репутація надсилання лишається в сервісу, тож доставлення не страждає й під час переїзду сайту в інший регіон.
Інші порти відкривайте вільно під потреби свого сервісу. Як відкрити лише потрібні порти, описано в посібнику з базового файрвола, правила використання серверів у політиці використання.
