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.com→gmail.com -
gamil.com→gmail.com -
outloo.com→outlook.com -
yahooo.com→yahoo.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
- Waliduj przy rejestracji — Wyłap złe adresy od razu
- Ponownie waliduj stare listy — Emaile się dezaktualizują
- Usuwaj niedostarczalne — Nie wysyłaj na znane-złe adresy
- Rozważ ryzykowne emaile — Określ swój poziom tolerancji
- Używaj sugestii — Pomóż użytkownikom naprawić literówki
- Blokuj jednorazowe — Jeśli to odpowiednie dla Twojego przypadku
- 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
- Skonfiguruj webhooki dla powiadomień o dostarczeniu
- Twórz szablony dla spójnych emaili
- Monitoruj dostarczalność z analityką