Poradnik: weryfikacja adresu e-mail
Jak sprawdzić, czy mail istnieje
Pewność daje tylko odpowiedź serwera odbiorcy, a i ona bywa myląca. Poniżej cztery sposoby, od najprostszego, z tym, co każdy naprawdę mówi o adresie. List Desk to darmowe narzędzie do walidacji listy mailingowej od Przemysława Zalewskiego, niezależnego inżyniera.
Autor: Przemysław Zalewski ·
1. Składnia: czy adres w ogóle może działać
Najpierw sam zapis: jedna małpa, część przed nią i domena po niej, bez spacji i bez znaków, których serwery poczty nie przyjmują. Część przed @ może mieć do 64 znaków, a domena do 255 (RFC 5321).
Typowe błędy z formularzy to przecinek zamiast kropki (jan@firma,pl), spacja na końcu, podwójna kropka i literówki w popularnych domenach: gmial.com, wp.pll, onet.p.
Co to mówi: że adres jest zapisany poprawnie. Czego nie mówi: czy domena przyjmuje pocztę i czy skrzynka istnieje.
2. Domena: rekord MX i null MX
Poczta trafia na serwery wskazane w rekordzie MX domeny. Sprawdzisz go w terminalu:
dig +short MX gmail.com # macOS i Linux
nslookup -type=mx gmail.com # Windows
Są trzy wyniki, które warto rozróżnić:
- Domena nie istnieje (NXDOMAIN): adres na pewno nie działa.
- Rekord MX wskazuje „.” z priorytetem 0: to null MX (RFC 7505), czyli jawna deklaracja, że domena nie przyjmuje żadnej poczty. Tak jest na przykład dla example.com.
- Brak rekordu MX, ale jest rekord A: serwer nadawcy spróbuje dostarczyć pocztę na adres z rekordu A (RFC 5321). Bywa, że działa, ale częściej to domena bez skonfigurowanej poczty.
Co to mówi: czy domena w ogóle przyjmuje pocztę. Czego nie mówi: czy jest w niej skrzynka jan.kowalski.
3. Rozmowa SMTP: zapytaj serwer, ale nie wierz mu na słowo
Można połączyć się z serwerem z rekordu MX na porcie 25 i zacząć wysyłkę, ale przerwać ją przed treścią wiadomości. Odpowiedź na polecenie RCPT TO mówi, czy serwer przyjmie pocztę dla tego adresu. Tak w uproszczeniu wygląda rozmowa (adresy zmyślone):
220 mx.firma.example ESMTP
EHLO moja-domena.example
250 mx.firma.example
MAIL FROM:<ja@moja-domena.example>
250 2.1.0 Ok
RCPT TO:<jan.kowalski@firma.example>
550 5.1.1 Recipient address rejected: User unknown
QUIT
Kod 550 z rozszerzeniem 5.1.1 znaczy „nie ma takiej skrzynki”. Odpowiedź 250 znaczy tylko, że serwer przyjąłby wiadomość. Tu zaczynają się kłopoty:
- Domeny catch-all. Domena catch-all przyjmuje pocztę na każdy adres, także nieistniejący, więc odpowiada 250 na wszystko. Wynik „istnieje” nic wtedy nie znaczy.
- Greylisting. Część serwerów przy pierwszej próbie od nieznanego nadawcy odpowiada kodem tymczasowym 4xx i każe spróbować później. Jednorazowe zapytanie kończy się wynikiem „nie wiadomo”.
- Odrzucenie po fakcie. Niektóre serwery przyjmują każdy adres na etapie RCPT TO, a odbicie wysyłają dopiero po dostarczeniu treści.
- Port 25 i reputacja. Wielu dostawców internetu i chmur blokuje połączenia wychodzące na port 25, a serwery odbiorców ograniczają lub blokują adresy IP, które zadają dużo takich pytań. Ręcznie sprawdzisz w ten sposób kilka adresów, listy już nie.
Co to mówi: często, czy skrzynka istnieje. Czego nie mówi: nic pewnego o domenach catch-all i serwerach, które nie chcą odpowiadać.
4. Wysyłka testowa: najpewniejsza, ale kosztowna
Wyślij zwykłą wiadomość i poczekaj na odbicie (DSN). Zwrot z kodem 5.1.1 to twarde odbicie: adres nie istnieje i trzeba go usunąć z listy.
Brak odbicia nie jest dowodem: domena catch-all przyjmie wiadomość na nieistniejący adres, a wiadomość mogła trafić do spamu. Ten sposób ma sens dla pojedynczych adresów. Wysyłka na całą niesprawdzoną listę z głównej domeny to prosty sposób na serię twardych odbić i gorszą reputację nadawcy.
Cała lista naraz: List Desk
Przy setkach albo tysiącach adresów robisz to samo automatycznie. List Desk wczytuje plik CSV, XLSX albo wklejone adresy i sprawdza składnię, duplikaty (także kropki i +etykiety w Gmailu), domeny w DNS (MX, null MX, rekord A), adresy jednorazowe, literówki w popularnych domenach i adresy funkcyjne. Adresy zostają w Twojej przeglądarce; na serwer trafiają tylko unikalne domeny.
Uczciwie: List Desk nie prowadzi jeszcze rozmowy SMTP, więc nie powie, czy istnieje konkretna skrzynka. Usunie to, co da się wykryć bez pytania serwera odbiorcy: martwe domeny, literówki i adresy jednorazowe. Jeśli potrzebujesz sprawdzenia skrzynka po skrzynce, użyj płatnego weryfikatora SMTP, a List Desk potraktuj jako darmowe pierwsze przejście.
Sprawdź swoją listę albo zleć resztę
Sprawdzenie listy jest za darmo i bez rejestracji. Jeśli wysyłasz dużo, buduję stronę zgodności: wypisanie jednym kliknięciem, listy wykluczeń, obsługę odbić i zgłoszeń spamu oraz wyrównane SPF, DKIM i DMARC.
Pytania
Czy da się sprawdzić, czy mail istnieje, bez wysyłania wiadomości?
Częściowo. Składnię i domenę (rekord MX) sprawdzisz zawsze. Rozmowa SMTP kończy się przed treścią wiadomości, więc nic nie trafia do odbiorcy, ale przy domenach catch-all i greylistingu wynik bywa niepewny.
Czy odpowiedź 250 na RCPT TO oznacza, że skrzynka istnieje?
Nie zawsze. Domena catch-all odpowiada 250 na każdy adres, a niektóre serwery odrzucają nieistniejące adresy dopiero po przyjęciu wiadomości. Pewny jest tylko wynik negatywny z kodem 5.1.1.
Dlaczego z mojego komputera nie mogę połączyć się z serwerem poczty na porcie 25?
Wielu dostawców internetu i platform chmurowych blokuje połączenia wychodzące na port 25, żeby ograniczyć spam. Do ręcznych prób potrzebny jest serwer z odblokowanym portem i dobrą reputacją adresu IP.
Czy List Desk sprawdza, czy skrzynka istnieje?
Jeszcze nie. Sprawdza składnię, duplikaty, domeny w DNS, adresy jednorazowe, literówki i adresy funkcyjne, a adresy zostawia w przeglądarce. Sprawdzanie skrzynek przez SMTP to następny krok; na stronie narzędzia możesz zostawić adres, żeby dostać wiadomość, gdy będzie gotowe.
