Перейти до основного вмісту

Контрольний список для успішного надсилання пошти та перевірки доставки

Для подальших перевірок знадобиться таке програмне забезпечення:

  • Утиліта host

    • Debian/Ubuntu: apt-get install bind9-host
    • CentOS: yum install bind9-host
  • Утиліта telnet

    • Debian/Ubuntu: apt-get install telnet
    • CentOS: yum install telnet

Запис MX

MX-запис — це тип DNS-запису, призначений для реєстрації поштових серверів, що використовують протокол SMTP. Цей запис відповідає за визначення сервера, на який має бути доставлено електронний лист поштовим агентом відправника. Для одного домену може існувати кілька типів записів із різними пріоритетами.

Ви можете перевірити, чи пошта працює локально, чи використовує сторонній поштовий сервер, за допомогою команди host:

host -t MX example.com

Під час роботи з локальним поштовим сервером вивід матиме такий вигляд:

Пошта для example.com обробляється через 10 mail.example.com.

Варто зазначити, що запис mail.example.com також може вказувати на інший сервер. Крім того, необхідно зазначити, що mail.example.com має бути наявним A-записом, який вказує на сервер, з якого ви надсилаєте пошту.

Ви також можете виконати такі команди для перевірки:

host example.com
host mail.example.com

І порівняти IP-адреси, на які вказують основний домен, у цьому випадку example.com, і mail.example.com.

важливо

MX-запис має бути налаштований, щоб поштові сервери могли приймати вашу електронну пошту.

Приклад MX-запису:

Ім’я: example.com.
Тип: MX
Значення: mail.example.com.
Пріоритет: 10

DKIM-підпис

За допомогою FASTPANEL® DKIM-підпис можна отримати в меню керування → розділ "Mail", натиснувши "DKIM" навпроти потрібного поштового домену

Увімкнення DKIM у FASTPANEL

З боку DNS запис потрібно додати таким чином:

Ім’я: dkim._domainkey
Тип: TXT
Значення: v=DKIM1; k=rsa; p=public_key

Ось приклад правильного DKIM-запису

dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB

Більше інформації про DKIM можна знайти за адресою https://wikipedia.org/wiki/DomainKeys_Identified_Mail

SPF-запис

Наявність SPF-запису можна перевірити, виконавши команду host. У цьому випадку команда матиме такий вигляд:

host -t TXT example.com

З таким виводом:

example.com descriptive text "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"

Зверніть увагу, що ipv6 може бути відсутнім у цьому записі. У цьому випадку SPF-підпис матиме такий вигляд:

example.com descriptive text "v=spf1 ip4:ipv4_of_your_server a mx ~all"

примітка

Необхідно зазначити, що має бути лише один SPF-запис

З боку DNS запис слід додати таким чином:

Ім’я: example.com.
Type: TXT
Value:
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
або (якщо ipv6 не використовується)
v=spf1 ip4:ipv4_of_your_server a mx ~all

Наприклад:

example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all

Більше інформації про SPF можна знайти за адресою https://wikipedia.org/wiki/Sender_Policy_Framework

DMARC-запис

У більшості випадків значення запису DMARC буде однаковим.

З боку DNS запис потрібно додати таким чином:

Ім’я: _dmarc
Тип: TXT
Значення: v=DMARC1; p=none

Наприклад:

_dmarc.example.com. TXT v=DMARC1; p=none

Більше інформації про DMARC можна знайти за адресою https://wikipedia.org/wiki/DMARC

PTR-запис і hostname сервера

PTR-запис — це зворотний DNS-запис, який перетворює IP-адресу на ім'я. Основне призначення цього запису для поштового сервера — усунення більшості спаму. Цей запис дає змогу визначити ім'я хоста, з якого надходить електронний лист. Найчастіше PTR-запис містить доменне ім'я, що використовується на сервері.

PTR-запис пов'язує ip-адресу з іменем хоста. Якщо PTR-запис вказано неправильно, ваші листи буде відхилено і вони не дійдуть до адресата.

Hostname слід вказати як ім'я фактичного домену, що вказує на сервер, а PTR має вказувати на домен, який, своєю чергою, вказує на сервер.

Наприклад, у вас на сервері є домен example.com.

Виконавши команду:

host example.com

ви можете отримати такий вивід:

example.com має адресу 1.2.3.4
пошта для example.com обробляється через 10 mail.example.com.

Щоб уникнути можливих проблем, рекомендується встановити hostname і PTR-запис як наявний субдомен другого рівня, наприклад mail.example.com

Доступність SMTP-портів

Деякі хостинг-провайдери закривають можливість використання портів, які застосовуються для надсилання або отримання пошти. Портами для поштових сервісів можуть бути 25, 587, 465, 143 і 993.

Один із найпростіших способів перевірити доступність цих портів — використати команду telnet.

Щоб перевірити вхідне з'єднання зі стороннього сервера

Виконайте команду:

telnet ip_adress port

Наприклад, якщо ви намагаєтеся підключитися через telnet до порту 25 на 1.2.3.4, команда для виконання буде такою:

telnet 1.2.3.4 25

Якщо з'єднання успішне, ви побачите такий вивід:

Спроба з’єднання з 1.2.3.4...
З’єднано з 1.2.3.4.
Escape character is '^]'.

Якщо з'єднання не вдасться, вивід матиме такий вигляд:

Підключення до 1.2.3.4 ...
Не вдалося відкрити з’єднання з хостом на порту some_port: помилка підключення

Або:

telnet: Не вдалося підключитися до віддаленого хоста: час очікування з’єднання минув

Для вихідного з'єднання

На своєму сервері виконайте команду:

telnet smtp.gmail.com 25

Якщо з'єднання успішне, ви побачите такий вивід:

Спроба з’єднання з 2a00:1450:4010:c0b::6c...
З’єднано з smtp.gmail.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp

Зверніть увагу, що якщо ви використовуєте хмарний хостинг і порт 25 для свого SMTP-сервера, велика ймовірність, що ваш хостинг-провайдер за замовчуванням блокує вихідні з'єднання на порту 25. Нижче ви можете переглянути посилання з інструкціями щодо вирішення цієї проблеми:

Окрім блокування портів вашим хостинг-провайдером, потрібно перевірити, чи не закриті порти на вашому сервері. Розглянемо для прикладу iptables, який працює як брандмауер, у панелі керування FASTPANEL. Команда для перевірки наявності правила для певного порту, у цьому випадку 25, така:

iptables-save | grep 25

Якщо для порту, який ви хочете перевірити, немає правила, жодної інформації не буде виведено. Якщо ви бачите, що існує правило, яке блокує порт поштового сервісу, тоді потрібно видалити це правило командою:

iptables -D rule chain

Наприклад, ви виконали команду та виявили таке:

iptables-save | grep 25

-A INPUT -p tcp -m tcp --dport 25 -j DROP

Це правило не дозволяє жодного доступу до вашого сервера через порт 25, що перешкоджатиме надсиланню пошти

Щоб видалити правило, використайте команду:

iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP

Цей приклад команди дає змогу перевірити кожен порт, що використовується для надсилання пошти

Вплив IPv6 на надсилання пошти

Якщо вам потрібно використовувати ipv6 для поштових сервісів, перше, що потрібно зробити, — перевірити, чи існує PTR-запис для ipv6 і чи прослуховують поштові сервіси ipv6 на певних портах.

Ви можете виконати перевірку за допомогою команди:

netstat -nltpp | grep tcp6

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

Якщо, перевіривши журнали поштового сервісу, ви з'ясували, що помилка пов'язана з ipv6 і вся конфігурація правильна, ви можете вимкнути використання ipv6 для поштового сервісу.

На прикладі exim4 вимкнення ipv6 виглядає так:

  1. Перевірте, чи використовується для сервісу адреса ipv6, командою

    netstat -nltp | grep exim

    Перевірка, чи використовується адреса ipv6 exim

  2. У конфігураційному файлі /etc/exim4/exim4.conf.template у самий верх файлу потрібно додати такий рядок:

    disable_ipv6=true

  3. Збережіть зміни у файлі, а потім перезапустіть сервіс командою на кшталт:

    systemctl restart exim4
  4. Виконайте команду:

    netstat -nltp | grep exim

    щоб перевірити, чи сервісу більше немає у списку

    Перевірка, чи вимкнено ipv6 для exim

Перевірка надсилання пошти за допомогою сторонніх сервісів

Після того як ви перевірили всі наведені вище пункти, ви можете перевірити надсилання пошти з вашого сервера за допомогою сторонніх ресурсів.

Одним із найзручніших та найінформативніших сервісів є https://www.mail-tester.com

За його допомогою ви можете перевірити поточний рейтинг вашої пошти, отримати інформацію про те, чи правильні наведені вище дані, а також отримати рекомендації щодо покращення рейтингу.

Для цього просто надішліть електронний лист на адресу, зазначену на сайті, а потім натисніть "Then check your score".

Перевірте свою пошту за допомогою mail-tester