Weryfikacja adresu bez wysyłania maila
Weryfikacja adresu bez wysyłania maila to nie jedno zapytanie do jednego API. To sekwencja testów: składnia, DNS, rekordy MX, dialog SMTP przerwany przed komendą DATA. Każdy etap odsiewa inną klasę błędów i żaden nie zastępuje pozostałych. Rozdzielamy walidację od wysyłki, bo twardy bounce kosztuje reputację nadawcy szybciej niż niska otwieralność. Duzi filtrujący liczą odrzuty na poziomie IP i całej domeny, więc jedna brudna lista potrafi popsuć dostarczalność kampanii, które z nią nie mają nic wspólnego. Piszemy z pozycji operatora własnej floty serwerów wysyłkowych, nie pośrednika odsprzedającego cudzą infrastrukturę. I od razu stawiam sprawę jasno: pewności stuprocentowej nie ma. Nikt uczciwy jej nie obieca.
Co naprawdę sprawdzasz, zanim wyjdzie pierwsza wiadomość
Bez wysyłania czegokolwiek da się ustalić zaskakująco dużo. Poprawność zapisu adresu, istnienie domeny, jej gotowość do przyjmowania poczty, reakcję serwera odbiorcy na konkretnego odbiorcę oraz sygnały jakości samego adresu. To wystarcza, żeby odciąć większość śmieci z formularzy i importów.
A czego nie ustalisz? Czy skrzynka jest czytana. Czy właściciel zmienił pracę. Czy domena stoi na catch-all i przyjmie dowolny ciąg znaków przed małpą. Czy adres jest pułapką spamową założoną specjalnie po to, żeby wyłapywać nadawców kupujących bazy.
Dlatego wynik weryfikacji nie jest binarny. Traktujemy go jako cztery stany, nie dwa. Adres poprawny idzie na listę. Ryzykowny do osobnego segmentu, z ostrożną wysyłką. Nierozstrzygnięty zostaje oznaczony i czeka na dowód z realnej wysyłki. Odrzucony wypada od razu.
Tip: jeśli narzędzie zwraca ci tylko „valid” i „invalid”, ukrywa przed tobą stan nierozstrzygnięty. Te adresy i tak trafią do wysyłki, tylko bez ostrzeżenia.
Składnia i normalizacja: najtańszy filtr w całym łańcuchu
Zacznij od walidacji zapisu, bo kosztuje ułamek milisekundy i nie wymaga sieci. Sprawdzaj adres zgodnie z realnym użyciem, nie z pełnym RFC 5322. Standard dopuszcza konstrukcje, których żaden serwer pocztowy w praktyce nie obsłuży. Regexy kopiowane z forów mają odwrotną wadę: przepuszczają oczywiste śmieci i odrzucają poprawne adresy z myślnikiem albo długim TLD.
Potem normalizacja. Zawsze przed porównaniem. Przytnij białe znaki, sprowadź domenę do małych liter, usuń niewidoczne znaki wklejone z arkusza. Domeny z polskimi znakami przekonwertuj do punycode, zanim wyślesz jakiekolwiek zapytanie DNS. Bez tego resolver zwróci błąd, a ty uznasz poprawny adres za martwy.
Plus-adresowanie i kropki w lokalnej części to decyzja biznesowa, nie techniczna. U części dostawców jan.kowalski+sklep i jankowalski lądują w jednej skrzynce. Chcesz liczyć unikalnych odbiorców? Zwiń te warianty. Respektujesz zgody per adres? Nie zwijaj, bo pozbawisz człowieka kontroli nad tym, co dostaje.
Deduplikuj po formie znormalizowanej, nigdy po surowym stringu. Inaczej ta sama osoba dostanie trzy kopie mailingu i zgłosi skargę.
Typowe pułapki z importu CSV, które widujemy najczęściej:
- średnik zamiast przecinka jako separator, przez co cały wiersz ląduje w jednej kolumnie,
- dwa adresy w jednej komórce, rozdzielone przecinkiem albo ukośnikiem,
- cudzysłowy i nawiasy z klienta pocztowego w formacie Jan Kowalski <jan@…>,
- spacja na końcu adresu, niewidoczna w arkuszu.
Większość z nich znika, jeśli wgrywasz plik z mapowaniem pól zamiast liczyć na to, że kolumny same trafią we właściwe miejsca.
DNS i rekordy MX: czy domena w ogóle przyjmuje pocztę
Drugi krok to zapytanie o rekordy MX. Brak MX i brak rekordu A oznacza adres nie do dostarczenia. Koniec tematu. Sprawdzanie takiego adresu dalej to marnowanie czasu i połączeń.
Domena widoczna w WHOIS nie znaczy, że obsługuje pocztę. Parkingi, strony wizytówki i domeny kupione pod przyszły projekt zwykle nie mają skonfigurowanego MX. Właściciel ma stronę, nie ma skrzynki.
Standard SMTP dopuszcza fallback na rekord A, gdy MX nie istnieje. Formalnie taki adres bywa dostarczalny. My oznaczamy go jako ryzykowny, nie poprawny, bo w praktyce to najczęściej niedokończona konfiguracja, a nie świadoma decyzja administratora.
Wyniki DNS trzymaj w cache razem z datą sprawdzenia. Odpytywanie tych samych domen przy każdym imporcie wydłuża proces i obciąża resolwery bez powodu. Szanuj TTL, ale nie trzymaj wyniku sprzed pół roku jako aktualnego.
Dwie kategorie zasługują na osobne oznaczenie: domeny zarejestrowane kilka dni temu oraz literówki w adresach popularnych dostawców. Pierwsze bywają jednorazówkami pod rejestrację. Drugie to zwykły błąd człowieka, który warto naprawić, a nie wyrzucić.
Lista kontrolna na tym etapie: rekordy MX, rekord A jako fallback, poprawna konwersja punycode, wiek wpisu w cache.
Dialog SMTP bez wysyłki: dokąd sięga i gdzie się kończy
Najwięcej mówi test polegający na rozmowie z serwerem odbiorcy, przerwanej zanim cokolwiek zostanie nadane. Otwierasz połączenie, przedstawiasz się przez EHLO, podajesz MAIL FROM, potem RCPT TO z weryfikowanym adresem. Czytasz odpowiedź, wysyłasz RSET i QUIT. Komenda DATA nigdy nie pada, więc nie ma treści i nie ma maila w skrzynce.
Jak czytać kody odpowiedzi
Odpowiedź 250 na RCPT TO znaczy, że serwer przyjmuje adresata. Kod 550 to jawne odrzucenie, najczęściej nieistniejące konto. A kody z rodziny 4xx nie są odrzutem, tylko prośbą o powrót później. Greylisting i tarpitting działają dokładnie tak: pierwsza próba dostaje odmowę tymczasową, kolejna po rozsądnym odstępie przechodzi.
Gdzie test przestaje działać
Catch-all odpowiada 250 na każdy adres w domenie, także na losowy ciąg znaków. Wynik jest wtedy nierozstrzygnięty i tak trzeba go zapisać, zamiast udawać sukces. Duzi dostawcy skrzynek często nie ujawniają istnienia konta na tym etapie, a część blokuje sondowanie po adresie IP.
Sonda wymaga też porządku po twojej stronie. Poprawny rekord PTR, spójny Return-Path, IP z historią. Bez tego rozmowa kończy się blokadą, a ty zinterpretujesz ją jako błąd adresu.
Tip: nie sonduj całej bazy z jednego IP w jednej serii. Rozłóż w czasie i trzymaj adresację weryfikacyjną z dala od IP produkcyjnych, żeby ewentualna blokada nie dotknęła realnej wysyłki.
Sygnały jakości adresu poza samym istnieniem konta
Adres może działać i mimo to szkodzić. Adresy rolowe (biuro, kontakt, info, sprzedaz) technicznie przyjmują pocztę, ale czyta je kilka osób, nikt nie czuje się adresatem i skargi pojawiają się szybciej niż kliknięcia.
Domeny jednorazowe wymagają aktualizowanej listy, nie pliku sprzed lat. Nowe powstają codziennie, a statyczny słownik starzeje się w tygodnie.
Najgorsza kategoria to pułapki spamowe. Recyklingowane, czyli stare skrzynki reaktywowane po latach ciszy, bywają wykrywalne po braku aktywności. Czystych, założonych wyłącznie jako przynęta, nie odróżnisz żadną sondą SMTP. Odpowiedzą 250 jak każdy poprawny adres.
Literówki w domenach dużych dostawców lepiej naprawiać niż odrzucać po cichu. Pokaż użytkownikowi propozycję korekty w formularzu i pozwól potwierdzić.
Bywa też, że problem widać w strukturze pliku, nie w odpowiedzi serwera. Baza posortowana alfabetycznie, same adresy rolowe z jednej branży, brak jakichkolwiek dat zapisu – to nie jest lista zebrana za zgodą.
Kategorie wyniku, których używamy w praktyce:
- Poprawny – składnia w porządku, MX obecny, serwer przyjmuje adresata.
- Ryzykowny – adres rolowy, fallback na rekord A, świeża domena, podejrzenie literówki.
- Nierozstrzygnięty – catch-all, blokada sondy, uporczywe 4xx.
- Odrzucony – błędna składnia, brak MX i A, jawne 550.
Walidacja przy zapisie zamiast czyszczenia bazy po fakcie
Najtańsza weryfikacja dzieje się w momencie zapisu. Sprawdzenie składni i obecności MX w formularzu trwa ułamek sekundy i zdejmuje większość problemu, zanim adres w ogóle wejdzie do bazy. Czyszczenie stutysięcznej listy rok później kosztuje wielokrotnie więcej.
Potwierdzenie zapisu podwójną zgodą wygląda na sprzeczne z tytułem tego tekstu, ale sprzeczność jest pozorna. Wiadomość potwierdzająca nie sprawdza istnienia skrzynki, tylko intencję człowieka. Dwie różne rzeczy. Obie potrzebne. Warto przy tym wiedzieć, kiedy podwójna zgoda jest naprawdę konieczna, a kiedy tylko obniża konwersję zapisu.
Przeciw botom zasypującym formularz działa ukryte pole honeypot oraz minimalny czas wypełnienia. Automat wypełnia wszystko, w tym pola niewidoczne, i robi to w ułamku sekundy. Bez tej bariery na listę trafiają adresy z pułapek, celowo wstrzykiwane przez skrypty.
Formularz zapisu rzadko stoi osobno – najczęściej dane lecą ze sklepu, CRM-u albo landing page’a, więc warto sprawdzić dostępne integracje z systemami zewnętrznymi i przenieść walidację na sam moment przekazania kontaktu.
Świeże kontakty trzymaj w osobnym segmencie i obserwuj bounce rate na pierwszych wysyłkach, zamiast strzelać całą bazą naraz. Adresy zebrane lata temu wymagają ponownego sprawdzenia przed reaktywacją, nawet jeśli kiedyś były czyste.
Jeśli planujesz przeniesienie listy, zajrzyj na stronę platformy do email marketingu MailCraft i sprawdź, jak wygląda import oraz obsługa odrzutów.
Tip: bounce z pierwszej realnej wysyłki jest cenniejszy niż każdy test wstępny. Oznaczaj i wyłączaj takie adresy od razu, automatycznie, bez ręcznej decyzji.
Weryfikacja a przepisy: RODO i PKE artykuł 398
Adres e-mail to dane osobowe. Sprawdzanie go jest przetwarzaniem i potrzebuje podstawy prawnej, tak samo jak wysyłka. Zewnętrzny dostawca weryfikacji oznacza powierzenie danych, czyli umowę powierzenia, a przy przetwarzaniu poza EOG dodatkowe zabezpieczenia transferu.
Zgoda na komunikację handlową jest wymagana także wobec firm. Adres podany na stronie kontaktowej nie jest zgodą, tylko kanałem kontaktu w sprawach, których dotyczy. Prawo komunikacji elektronicznej w artykule 398 nie robi tu wyjątku dla B2B.
Weryfikacja techniczna nie zastępuje zgody. Adres może istnieć, odpowiadać 250 i nadal nie wolno na niego wysyłać oferty. To dwa niezależne warunki i oba muszą być spełnione.
Trzymaj rejestr zgód z datą, źródłem i dokładną treścią klauzuli, która była wtedy wyświetlona. Przy skardze to jedyny dowód, jaki się liczy.
Nasze podejście: dane list trzymamy na własnej infrastrukturze, bez przekazywania ich pośrednikom w tle. O tym, czego jeszcze nie mamy gotowego, mówimy wprost i pokazujemy plan zamiast opisu funkcji, której nie zobaczysz w panelu.
Podsumowanie
Kolejność testów prowadź od najtańszego do najdroższego: składnia, DNS, MX, dialog SMTP, sygnały jakości. Każdy etap wychwytuje inną klasę błędów i żaden nie zastępuje pozostałych. Pomijanie pierwszych kroków oznacza wysyłanie sond dla adresów, które odpadłyby na regexie.
Wynik nierozstrzygnięty to normalny stan przy catch-all i u dużych dostawców. Raportuj go uczciwie, zamiast dopisywać do puli poprawnych, żeby wykres wyglądał lepiej.
Reputacja nadawcy stoi na trzech rzeczach: czystej liście, rozsądnym warmupie i stabilnych rekordach uwierzytelniających. SPF, DKIM i DMARC muszą być spójne z Return-Path, a PTR zgodny z nazwą hosta. Zmiany w tych rekordach rób ostrożnie, bo filtry reagują na nagłe różnice.
Zgodność z prawem wpleć w proces, nie doklejaj na końcu. Rejestr zgód i umowy powierzenia są łatwe, gdy powstają razem z systemem, i bolesne, gdy trzeba je odtwarzać wstecz.
Nie obiecujemy omijania filtrów i nie znamy sposobu, który by to robił. Cel jest prostszy: wysyłać do ludzi, którzy tego chcą, na adresy, które istnieją. Jeśli chcesz zobaczyć, jak te elementy wyglądają w gotowym systemie, sprawdź funkcje platformy MailCraft i porównaj je z tym, czego wymaga twój proces.


