MX-записи домену визначають сервери, на які має надходити вхідна електронна пошта. Якщо листи не доходять після зміни провайдера або налаштувань DNS, спочатку перевірте, які записи повертає DNS.
Перевірка через nslookup
У командному рядку виконайте:
nslookup -type=MX example.com
Замість example.com вкажіть свій домен. Щоб запитати конкретний DNS-сервер, додайте його адресу другим аргументом:
nslookup -type=MX example.com 1.1.1.1
Порівняйте результат із записами, які вимагає ваш поштовий провайдер. Зверніть увагу на імена серверів і пріоритети. Відповіді різних DNS-серверів після зміни налаштувань можуть тимчасово відрізнятися через кешування.
Інтерактивний режим і порівняння DNS-серверів
Якщо потрібно виконати кілька запитів поспіль, запустіть інтерактивний режим. Команди нижче вводяться по одній; символ запрошення > набирати не потрібно:
nslookup
set type=mx
example.com
server 1.1.1.1
set type=mx
example.com
exit
Перший запит використовує типовий DNS-сервер комп'ютера, другий — явно вказаний резолвер. Щоб перевірити сервер, який обслуговує зону вашого домену, замість 1.1.1.1 вкажіть його адресу. Так можна порівняти відповіді, а не робити висновок за одним кешованим результатом.
DNS і робота поштового сервера — різні перевірки
Правильний MX-запис ще не доводить, що сервер приймає листи або що вони потрапляють у скриньку адресата. Окремо перевірте налаштування поштового сервісу, доступність потрібних з’єднань та журнали доставки.
У дописі 2007 року я розділяв перевірку DNS, вихідного SMTP-з'єднання з поштового сервера та вхідного з'єднання до нього. Для діагностики TCP-порту 25 використовувався Telnet:
telnet <ім'я_зовнішнього_smtp_сервера> 25
telnet <ім'я_вашого_поштового_сервера> 25
Другу перевірку виконують із зовнішньої мережі. Сам факт відкритого TCP-з'єднання показує доступність порту, але ще не підтверджує доставку листа. Відповідь 220 — привітання SMTP-сервера, після якого потрібно аналізувати відповіді на команди.
Фрагмент SMTP-прикладу з нотаток 2007 року
У процитованому тоді матеріалі форуму networkdoc.ru був такий приклад. Назви серверів і дата в привітанні належать саме тому прикладу:
telnet smtp.mail.ru 25
220 mail.ru ESMTP Wed, 01 Dec 2004 20:57:02 +0300
ehlo test.test.ru
mail from: a@b.com
rcpt to: m@il.ru
data
Subj: Test
this is a test message.
Це скорочений фрагмент діалогу, а не повне готове повідомлення: стандартний заголовок теми має вигляд Subject: Test, заголовки відділяються від тіла порожнім рядком, а дані завершуються окремим рядком із крапкою. Для завершення сеансу використовується QUIT. У інструкції Microsoft з перевірки SMTP через Telnet наведено послідовність команд і відповідей.
Перевіряйте лише власний або дозволений для діагностики сервер та використовуйте власні тестові адреси. Параметри підключення, автентифікації та шифрування визначає поштовий провайдер; Telnet не шифрує сеанс, тому вводити в ньому пароль не слід. Перевірка серверного SMTP на порту 25 і налаштування поштового клієнта — різні завдання.
Що додати до звернення про помилку
Вкажіть домен, час перевірки, використаний DNS-сервер, версії операційної системи й поштового ПЗ, схему підключення через маршрутизатор, результат команди та точний текст помилки доставки. Так буде простіше відокремити проблему DNS від налаштувань сервісу.
Документація Microsoft: nslookup