HELPER VPS

Надсилання пошти з VPS: підключення SMTP сервісу через порти 587 і 465

На всіх серверах HELPER VPS вихідний порт 25 закритий для захисту від спаму, і завдяки цьому репутація IP усіх серверів у спільній мережі лишається чистою. Якщо надсилати пошту через порт 587 чи 465 сервісу надсилання, листи краще доходять до теки «Вхідні».

Чому надсилати через порти 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. Встановлення

Ubuntu, Debian
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. Для початку використовуйте налаштування, яке лише надсилає звіти, як нижче.
DNS TXT
_dmarc.example.com  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

Коли за кілька тижнів зі звітів стане видно, що всі листи проходять перевірку, підніміть політику до p=quarantine, а потім до p=reject, щоб захистити домен від підробки.

Отримання пошти й наступні кроки

Щоб отримувати листи на свій домен, додайте до домену MX записи сервісу поштового хостингу. Якщо вхідну пошту веде поштовий хостинг, а вихідні сповіщення сервіс надсилання, сервер може займатися лише сайтами й застосунками.

Надсилання через сервіс і далі працює під час перенесення чи створення нового сервера: досить перенести кілька рядків налаштувань. Навіть якщо IP сервера змінюється, репутація надсилання лишається в сервісу, тож доставлення не страждає й під час переїзду сайту в інший регіон.

Інші порти відкривайте вільно під потреби свого сервісу. Як відкрити лише потрібні порти, описано в посібнику з базового файрвола, правила використання серверів у політиці використання.

Корисні посібники на тему

Налаштування, які варто зробити слідом за цим посібником.

Усі посібники