Przejdź do treści
correct.email
Infrastruktura pocztowa

Problemy z rekordami MX — jak je znaleźć i naprawić

Jak rekordy MX kierują przychodzącą pocztę, jak je sprawdzić i jak naprawić typowe problemy: brak rekordów, cele CNAME lub IP, martwe hosty i migracje.

Autor: Exmoor Software3 min czytania

Rekordy MX (mail exchanger) mówią reszcie internetu, które serwery przyjmują pocztę dla Twojej domeny. Gdy są błędne, poczta do Ciebie wraca do nadawców albo przepada — zwykle bez żadnego błędu po Twojej stronie, bo to nadawcy nie mogą jej doręczyć.

Jak działają rekordy MX

example.com.  3600  IN  MX  10  mx1.mail.example.net.
example.com.  3600  IN  MX  20  mx2.mail.example.net.

Każdy rekord ma preferencję (priorytet) i nazwę hosta. Serwer wysyłający pobiera rekordy MX domeny odbiorcy, najpierw próbuje hosta z najniższym numerem, a jeśli nie może się z nim połączyć, przechodzi do wyższych numerów. Rekordy z równymi numerami dzielą się ruchem.

Nazwa hosta sama musi rozwiązywać się na adres (rekord A lub AAAA). Jeśli domena nie ma żadnych rekordów MX, nadawcy używają jej własnego adresu A/AAAA — to tzw. niejawny MX (implicit MX) z RFC 5321, sekcja 5.1.

Jak je sprawdzić

Najszybciej zrobisz to narzędziem Wyszukiwanie MX, które dodatkowo rozwiązuje każdy host i oznacza problemy. Z terminala:

dig +short MX example.com
dig +short A mx1.mail.example.net

W systemie Windows:

Resolve-DnsName example.com -Type MX
nslookup -type=mx example.com

Odpytaj zarówno publiczny resolwer (dig @1.1.1.1 …), jak i lokalny. Jeśli zwracają różne odpowiedzi, widzisz skutki pamięci podręcznej albo niedawnej zmiany.

Typowe problemy i jak je naprawić

Brak rekordów MX

Domena zdaje się wtedy na niejawny MX, który działa tylko, gdy serwer WWW pod rekordem A domeny obsługuje też pocztę — a prawie nigdy tak nie jest. Dodaj rekordy MX zgodnie z dokumentacją Twojego dostawcy poczty.

Jeśli domena celowo nie przyjmuje poczty, zadeklaruj to rekordem null MX (RFC 7505):

parked.example.  IN  MX  0  .

Nadawcy od razu dostają wtedy błąd, zamiast ponawiać próby przez kilka dni. Nie wysyłaj poczty z takiej domeny: odbicia i odpowiedzi nie mogą do niej trafić, a serwery odbiorców mogą taką pocztę odrzucać (RFC 7505, sekcja 4.2). Więcej w poradniku Null MX: jak ogłosić, że domena nie przyjmuje poczty.

MX wskazuje na CNAME

example.com.       IN  MX     10  mail.example.com.
mail.example.com.  IN  CNAME  mx.provider.example.

Cel rekordu MX nie może być aliasem (RFC 2181, sekcja 10.3). Wielu nadawców sobie z tym radzi, ale nie wszyscy. Skieruj MX bezpośrednio na host dostawcy.

MX wskazuje na adres IP

MX 10 192.0.2.25 jest niepoprawne: to pole przyjmuje nazwę hosta, więc nadawcy próbują rozwiązać host o nazwie dosłownie „192.0.2.25” i im się to nie udaje. Utwórz rekord A (mail.example.com → 192.0.2.25) i skieruj MX na tę nazwę.

Host się nie rozwiązuje albo rozwiązuje się na adres prywatny

Przyczyną bywa literówka w nazwie hosta, wyłączony serwer albo adres wewnętrzny, np. 10.0.0.5, który działa w biurze, ale nie z internetu. Wyszukiwanie MX pokazuje adresy każdego hosta i oznacza adresy prywatne lub zarezerwowane.

Nazwy względne w plikach strefy

W pliku strefy w stylu BIND nazwa bez kropki na końcu jest względna wobec strefy:

; w strefie example.com
@  IN  MX  10  mx1.mail.example.net     ; zamienia się w mx1.mail.example.net.example.com.
@  IN  MX  10  mx1.mail.example.net.    ; poprawnie

Panele DNS w przeglądarce zwykle robią to za Ciebie; pliki strefy i niektóre API — nie.

Stary i nowy dostawca jednocześnie po migracji

Rekordy MX wskazujące jednocześnie na starego i nowego dostawcę dzielą przychodzącą pocztę między nich. Część wiadomości trafia wtedy do skrzynek, których nikt już nie czyta. Wyszukiwanie MX ostrzega, gdy hosty należą do różnych dostawców.

Migracja do nowego dostawcy poczty

  1. Z odpowiednim wyprzedzeniem — co najmniej takim, jak obecny TTL, często dzień — obniż TTL rekordów MX (np. do 300 sekund), żeby po przełączeniu kopie w pamięci podręcznej szybko wygasły.
  2. Utwórz skrzynki u nowego dostawcy i zweryfikuj u niego domenę.
  3. Zastąp rekordy MX rekordami nowego dostawcy — nie dodawaj ich obok starych.
  4. Zachowaj stare skrzynki przez kilka dni: nadawcy, którzy mają w pamięci podręcznej stare rekordy, mogą jeszcze tam doręczać pocztę.
  5. Zaktualizuj SPF i DKIM pod nowego dostawcę, jeśli on również wysyła Twoją pocztę.
  6. Gdy wszystko działa, ponownie podnieś TTL.

Gdy MX jest w porządku, a poczta i tak nie dochodzi

Jeśli każdy host rozwiązuje się poprawnie, problem leży dalej:

  • Serwer nie przyjmuje połączeń na porcie 25 — sprawdź, czy działa i czy zapora sieciowa albo dostawca hostingu nie blokuje przychodzącego ruchu SMTP. Wiele sieci domowych i chmurowych blokuje port 25 dla ruchu wychodzącego, co utrudnia testy z laptopa.
  • Problemy z TLS — wygasły certyfikat może sprawić, że nadawcy wymagający TLS odłożą doręczenie.
  • Wiadomość jest odrzucana albo filtrowana — nadawca dostaje odbicie (NDR) z podaną przyczyną; poproś go o tę informację.
  • Adres nie istnieje — poprawna składnia i działający MX nic nie mówią o konkretnej skrzynce.

Szybki ręczny test usługi SMTP z komputera, który może korzystać z portu 25:

openssl s_client -starttls smtp -connect mx1.mail.example.net:25 -crlf

W odpowiedzi powinien pojawić się łańcuch certyfikatów serwera i szczegóły sesji TLS, a na końcu — jeśli łańcuch jest zaufany — Verify return code: 0 (ok). Powitanie 220, EHLO i STARTTLS openssl obsługuje sam, więc nie zobaczysz ich na ekranie.

Źródła