Dokumentacja / Przewodniki

Walidacja email

3 min czytania

Walidacja email wyłapuje nieprawidłowe adresy zanim wyślesz, chroniąc Twoją reputację nadawcy i redukując odbicia.

Dlaczego warto walidować emaile

Każdy odbity email szkodzi Twojej reputacji:

  • Wysokie wskaźniki odbić aktywują filtry spamu
  • ISP mogą zablokować Twoją domenę
  • Marnujesz pieniądze na niedostarczalne wiadomości
  • Metryki zaangażowania stają się niewiarygodne

Walidacja zapobiega temu sprawdzając adresy przed wysyłką.

Sprawdzenia walidacji

Nasza walidacja wykonuje wiele sprawdzeń:

Sprawdzenie Co wykrywa
Składnia Brak @, nieprawidłowe znaki
DNS Domena nie istnieje
Rekordy MX Domena nie może odbierać emaili
Jednorazowe Tymczasowe/wyrzucane adresy
Generyczne info@, support@, admin@
Catch-all Domena przyjmuje dowolny adres
SMTP Skrzynka nie istnieje

Walidacja pojedynczego emaila

Przez API

curl -X POST https://api.mailingapi.com/v1/validate/single \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com"}'

Odpowiedź:

{
  "email": "user@example.com",
  "valid": true,
  "result": "deliverable",
  "checks": {
    "syntax": "valid",
    "dns": "valid",
    "mx": "valid",
    "disposable": false,
    "role": false,
    "catch_all": false,
    "smtp": "valid"
  },
  "suggestion": null
}

Typy wyników

Wynik Znaczenie Akcja
deliverable Skrzynka istnieje i przyjmuje pocztę Bezpiecznie wysłać
undeliverable Skrzynka nie istnieje Nie wysyłać
risky Może odbić (catch-all, etc.) Wysyłać z ostrożnością
unknown Nie udało się zweryfikować Rozważ ręczny przegląd

Walidacja masowa

Waliduj wiele emaili w jednym żądaniu. Wyniki zwracane synchronicznie.

curl -X POST https://api.mailingapi.com/v1/validate/batch \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "emails": [
      "user1@example.com",
      "user2@example.com",
      "invalid@nieistniejaca.domena"
    ]
  }'

Odpowiedź:

{
  "results": [
    {
      "email": "user1@example.com",
      "valid": true,
      "result": "deliverable",
      "checks": {
        "syntax": "valid",
        "dns": "valid",
        "mx": "valid",
        "disposable": false,
        "role": false
      }
    },
    {
      "email": "invalid@nieistniejaca.domena",
      "valid": false,
      "result": "undeliverable",
      "checks": {
        "syntax": "valid",
        "dns": "invalid",
        "mx": "invalid",
        "disposable": false,
        "role": false
      }
    }
  ],
  "summary": {
    "total": 3,
    "deliverable": 2,
    "undeliverable": 1,
    "risky": 0,
    "unknown": 0
  }
}

Limity:

  • Maksymalnie 10 000 emaili na żądanie

Walidacja w czasie rzeczywistym

Waliduj podczas rejestracji użytkownika:

Przykład JavaScript

async function validateEmail(email) {
  const response = await fetch('https://api.mailingapi.com/v1/validate/single', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ email })
  });

  const result = await response.json();

  if (result.result === 'undeliverable') {
    return { valid: false, message: 'Ten adres email wydaje się nieprawidłowy' };
  }

  if (result.checks.disposable) {
    return { valid: false, message: 'Jednorazowe adresy email nie są dozwolone' };
  }

  if (result.suggestion) {
    return { valid: true, suggestion: `Czy chodziło Ci o ${result.suggestion}?` };
  }

  return { valid: true };
}

Integracja z formularzem

<input type="email" id="email" onblur="checkEmail(this.value)">
<span id="email-status"></span>

<script>
async function checkEmail(email) {
  const status = document.getElementById('email-status');
  const result = await validateEmail(email);

  if (result.valid) {
    status.textContent = result.suggestion || '✓ Prawidłowy';
    status.className = 'valid';
  } else {
    status.textContent = result.message;
    status.className = 'invalid';
  }
}
</script>

Sugestie poprawek literówek

Wykrywamy typowe literówki i sugerujemy poprawki:

{
  "email": "user@gmial.com",
  "valid": false,
  "result": "undeliverable",
  "suggestion": "user@gmail.com"
}

Typowe poprawki:

  • gmial.comgmail.com
  • gamil.comgmail.com
  • outloo.comoutlook.com
  • yahooo.comyahoo.com

Wykrywanie emaili jednorazowych

Blokuj tymczasowe adresy email:

{
  "email": "temp123@10minutemail.com",
  "valid": true,
  "result": "risky",
  "checks": {
    "disposable": true
  }
}

Utrzymujemy bazę 100 000+ domen jednorazowych w tym:

  • 10minutemail.com
  • guerrillamail.com
  • tempmail.org
  • throwaway.email

Wykrywanie emaili generycznych

Identyfikuj ogólne adresy:

{
  "email": "info@firma.pl",
  "valid": true,
  "result": "risky",
  "checks": {
    "role": true
  }
}

Adresy generyczne często mają:

  • Wielu odbiorców
  • Wyższe wskaźniki skarg
  • Niższe zaangażowanie

Typowe adresy generyczne:

  • info@, support@, sales@
  • admin@, webmaster@, postmaster@
  • contact@, help@, no-reply@

Wykrywanie catch-all

Identyfikuj domeny przyjmujące wszystkie adresy:

{
  "email": "cokolwiek@domena-catch-all.pl",
  "valid": true,
  "result": "risky",
  "checks": {
    "catch_all": true
  }
}

Domeny catch-all przyjmują dowolny adres, więc nie możemy zweryfikować czy konkretna skrzynka istnieje. Wyższe ryzyko odbić.

Dobre praktyki

  1. Waliduj przy rejestracji — Wyłap złe adresy od razu
  2. Ponownie waliduj stare listy — Emaile się dezaktualizują
  3. Usuwaj niedostarczalne — Nie wysyłaj na znane-złe adresy
  4. Rozważ ryzykowne emaile — Określ swój poziom tolerancji
  5. Używaj sugestii — Pomóż użytkownikom naprawić literówki
  6. Blokuj jednorazowe — Jeśli to odpowiednie dla Twojego przypadku
  7. Monitoruj wskaźniki odbić — Walidacja nie jest 100% dokładna

Strategie walidacji

Konserwatywna (zalecana dla transakcyjnych)

Wysyłaj tylko do deliverable:

if (result.result === 'deliverable') {
  sendEmail(email);
}

Umiarkowana (zbalansowane podejście)

Wysyłaj do deliverable i niektórych risky:

if (result.result === 'deliverable' ||
    (result.result === 'risky' && !result.checks.disposable)) {
  sendEmail(email);
}

Agresywna (maksymalny zasięg)

Wysyłaj chyba że jawnie undeliverable:

if (result.result !== 'undeliverable') {
  sendEmail(email);
}

Cennik

Walidacja jest rozliczana per sprawdzenie:

Wolumen Cena za walidację
Pierwsze 1 000 Gratis
1 001 - 10 000 0,02 zł
10 001 - 100 000 0,012 zł
100 001+ 0,004 zł

Walidacja masowa jest bardziej opłacalna niż pojedyncze sprawdzenia.

Następne kroki