Validasi alamat email tanpa mengirim satu pesan pun
Periksa sintaks email, data MX, dan domain sekali pakai dengan tiga panggilan API. Tidak ada koneksi SMTP, tidak ada email verifikasi, tidak ada risiko pentalan. API validasi email gratis.
Formulir pendaftaran Anda mengumpulkan alamat email. Anda menyimpannya, mengirim pesan selamat datang, dan email
memantul. Alamatnya salah ketik. Atau domainnya tidak ada. Atau itu hanya sekali pakai
@mailinator.com alamat yang akan mati dalam sepuluh menit. Anda sekarang memiliki sampah
catatan dalam database Anda, reputasi pengirim yang buruk, dan pengguna yang tidak akan pernah kembali.
Perbaikan tradisional adalah mengirimkan email verifikasi: "Klik tautan ini untuk mengonfirmasi alamat Anda." Ini berhasil, tetapi menambah gesekan. Konversi turun. Dan itu tidak menemukan kesalahan ketik sampai setelahnya Anda sudah mengirim pesan ke alamat yang buruk.
Anda dapat memvalidasi alamat email sebelum mengirim apa pun. Tiga panggilan API memeriksa sintaksis, MX catatan, dan domain sekali pakai. Seluruh proses memakan waktu kurang dari 200 ms dan mengatasi masalahnya yang menyebabkan 90% kegagalan pengiriman email.
Tiga lapis validasi email
Setiap lapisan menangkap kelas alamat email buruk yang berbeda. Gunakan keduanya bersama-sama untuk mendapatkan hasil yang lengkap jalur verifikasi email, atau pilih yang Anda perlukan.
-
Validasi sintaksis. Apakah alamatnya mengikuti format yang valid? Apakah domainnya
ada kesalahan ketik yang diketahui? Itu
/v1/email/validatetitik akhir memeriksa kepatuhan RFC 5322, mendeteksi alamat berbasis peran (admin@,support@), dan menyarankan koreksi untuk kesalahan ejaan domain umum sepertigmial.comatauhotmal.com. -
Verifikasi data MX. Bisakah domain menerima email sama sekali? Itu
/v1/email-mx/verifytitik akhir menanyakan DNS untuk data MX dan kembali ke A catatan. Jika domain tidak memiliki server email, alamatnya tidak dapat terkirim; tidak perlu mencoba lagi akan memperbaikinya. -
Deteksi email sekali pakai. Apakah alamatnya dari layanan sekali pakai? Itu
/v1/disposable-email/checkpemeriksaan titik akhir terhadap 700+ domain sekali pakai yang dikenal dan variasi pencocokan pola. Ini juga menandai apakah domain tersebut adalah penyedia gratis (Gmail, Outlook) sehingga Anda dapat membedakan antara alamat pribadi dan alamat sekali pakai.
Periksa sintaks email dan temukan kesalahan ketik
Itu /v1/email/validate titik akhir melakukan pekerjaan paling banyak dalam satu panggilan. Ini memvalidasi
memformat, mencari data MX, memeriksa domain sekali pakai, dan mendeteksi kesalahan ketik pada bahasa populer
domain penyedia.
Tanggapan:
Emailnya jamie@gmial.com memiliki sintaks yang valid, tetapi domainnya salah ketik. APInya
kembali is_valid: false karena tidak ada data MX yang tersedia gmial.com,
dan itu menyarankan alamat yang diperbaiki jamie@gmail.com. Tunjukkan saran ini di
formulir pendaftaran Anda dan Anda menyelamatkan pengguna dari akun mati.
Verifikasi data MX untuk memeriksa apakah email itu asli
Itu /v1/email-mx/verify titik akhir berfokus pada DNS. Ini mengembalikan daftar lengkap MX
catatan dengan prioritas dan a deliverable bidang yang memberi tahu Anda apakah domain tersebut
dapat menerima surat.
Tanggapan:
Itu deliverable bidang mengembalikan salah satu dari tiga nilai: "likely" (MX
catatan ditemukan), "unknown" (tidak ada MX tetapi ada data A, jadi domainnya mungkin
menerima surat), atau "unlikely" (tidak ada data MX dan tidak ada data A). Gunakan ini untuk data MX
validasi saat Anda membutuhkan data DNS mentah.
Deteksi alamat sekali pakai dan sekali pakai
Itu /v1/disposable-email/check titik akhir mengidentifikasi layanan email sementara.
Alamat-alamat ini berfungsi selama beberapa menit atau jam, lalu berhenti menerima email.
Tanggapan:
Itu is_free bidang memisahkan domain sekali pakai dari penyedia gratis. Sebuah Gmail
alamat kembali is_free: true Dan is_disposable: false. Seorang Mailinator
alamat kembali is_disposable: true Dan is_free: false. Ini
perbedaan itu penting; memblokir semua penyedia gratis akan mengunci sebagian besar internet.
Bangun jalur validasi di Node.js
Gabungkan ketiga pemeriksaan menjadi satu fungsi. Alur ini menjalankan setiap pemeriksaan secara berurutan dan hubungan pendek pada kegagalan pertama.
async function validateEmail(email) {
const headers = { "Content-Type": "application/json" };
const body = JSON.stringify({ email });
// Step 1: Syntax validation + typo detection
const syntaxRes = await fetch("https://api.botoi.com/v1/email/validate", {
method: "POST", headers, body,
});
const syntax = await syntaxRes.json();
if (!syntax.data.format_valid) {
return { valid: false, reason: "Invalid email format" };
}
if (syntax.data.suggestion) {
return {
valid: false,
reason: \`Did you mean \${syntax.data.suggestion}?\`,
};
}
// Step 2: MX record verification
const mxRes = await fetch("https://api.botoi.com/v1/email-mx/verify", {
method: "POST", headers, body,
});
const mx = await mxRes.json();
if (!mx.data.has_mx) {
return { valid: false, reason: "Domain cannot receive email" };
}
// Step 3: Disposable email detection
const dispRes = await fetch("https://api.botoi.com/v1/disposable-email/check", {
method: "POST", headers, body,
});
const disp = await dispRes.json();
if (disp.data.is_disposable) {
return {
valid: false,
reason: \`Disposable email detected (\${disp.data.provider})\`,
};
}
return { valid: true, reason: null };
}
// Usage
const result = await validateEmail("test@mailinator.com");
console.log(result);
// { valid: false, reason: "Disposable email detected (Mailinator)" }
Pendekatan sekuensial dapat dibaca dan keluar lebih awal. Jika sintaks gagal, Anda melewatkan jaringan menyerukan MX dan cek sekali pakai. Jika Anda lebih menyukai kecepatan daripada penghentian dini, jalankan semuanya tiga secara paralel:
async function validateEmail(email) {
const headers = { "Content-Type": "application/json" };
const body = JSON.stringify({ email });
// Run all three checks in parallel
const [syntaxRes, mxRes, dispRes] = await Promise.all([
fetch("https://api.botoi.com/v1/email/validate", {
method: "POST", headers, body,
}),
fetch("https://api.botoi.com/v1/email-mx/verify", {
method: "POST", headers, body,
}),
fetch("https://api.botoi.com/v1/disposable-email/check", {
method: "POST", headers, body,
}),
]);
const [syntax, mx, disp] = await Promise.all([
syntaxRes.json(), mxRes.json(), dispRes.json(),
]);
const errors = [];
if (!syntax.data.format_valid) errors.push("Invalid format");
if (syntax.data.suggestion) errors.push(\`Typo: try \${syntax.data.suggestion}\`);
if (!mx.data.has_mx) errors.push("No MX records");
if (disp.data.is_disposable) errors.push("Disposable domain");
return {
valid: errors.length === 0,
errors,
details: { syntax: syntax.data, mx: mx.data, disposable: disp.data },
};
}
Versi paralel menjalankan ketiga permintaan secara bersamaan menggunakan Promise.all.
Latensi total sama dengan permintaan paling lambat, bukan jumlah. Untuk sebagian besar kasus, ketiganya
selesai dalam waktu kurang dari 100ms.
Pipa validasi Python
Validasi tiga langkah yang sama dengan Python. Contoh ini menggunakan requests perpustakaan
untuk kejelasan.
import requests
API_BASE = "https://api.botoi.com/v1"
def validate_email(email: str) -> dict:
headers = {"Content-Type": "application/json"}
payload = {"email": email}
# Step 1: Syntax + typo check
syntax = requests.post(
f"{API_BASE}/email/validate", json=payload, headers=headers
).json()
if not syntax["data"]["format_valid"]:
return {"valid": False, "reason": "Invalid email format"}
suggestion = syntax["data"].get("suggestion")
if suggestion:
return {"valid": False, "reason": f"Did you mean {suggestion}?"}
# Step 2: MX record check
mx = requests.post(
f"{API_BASE}/email-mx/verify", json=payload, headers=headers
).json()
if not mx["data"]["has_mx"]:
return {"valid": False, "reason": "Domain cannot receive email"}
# Step 3: Disposable check
disp = requests.post(
f"{API_BASE}/disposable-email/check", json=payload, headers=headers
).json()
if disp["data"]["is_disposable"]:
provider = disp["data"]["provider"]
return {"valid": False, "reason": f"Disposable email ({provider})"}
return {"valid": True, "reason": None}
# Usage
result = validate_email("jamie@gmial.com")
print(result)
# {'valid': False, 'reason': 'Did you mean jamie@gmail.com?'}
Kapan harus memvalidasi alamat email
Titik kontak yang berbeda memerlukan kedalaman validasi yang berbeda. Di sinilah setiap cek cocok.
| Titik kontak | Sintaksis | Pemeriksaan MX | Sekali pakai | Mengapa |
|---|---|---|---|---|
| Formulir pendaftaran | Ya | Ya | Ya | Tangkap kesalahan ketik, domain mati, dan akun yang dibuang sebelum membuat catatan |
| Pembayaran / pembayaran | Ya | Ya | Opsional | Tanda terima memerlukan alamat pengiriman; cek sekali pakai tergantung pada kebijakan pengembalian dana Anda |
| Formulir kontak | Ya | Opsional | TIDAK | Pemeriksaan format dasar mencegah sampah yang terlihat jelas; Cek MX adalah bonus |
| Berlangganan buletin | Ya | Ya | Ya | Melindungi reputasi pengirim; rasio pentalan yang tinggi membuat Anda ditandai oleh ESP |
| Impor timbal / CRM | Ya | Ya | Ya | Membersihkan data sebelum memasuki saluran Anda akan menghemat biaya hilir |
| Alat dalam | Ya | TIDAK | TIDAK | Pemeriksaan sintaksis menangkap kesalahan entri data; pengguna internal dipercaya |
Poin-poin penting
- Validasi sebelum disimpan. Setiap email buruk di database Anda dikenakan biaya: penyimpanan, pengiriman gagal, pemrosesan pentalan, dan kerusakan reputasi pengirim. Tangkap masalah pada saat itu juga masuk.
-
Deteksi kesalahan ketik menyelamatkan pengguna. Itu
/v1/email/validatetitik akhir menangkap kesalahan ejaan domain umum dan mengembalikan saran. Muncul ke permukaan "Maksudmu jamie@gmail.com?" mencegah pengguna yang hilang. - Pemeriksaan MX cepat dan gratis. Pencarian DNS diselesaikan dalam milidetik. Ada tidak ada alasan untuk melewatkannya. Alamat tanpa data MX tidak akan pernah menerima email Anda.
- Deteksi sekali pakai melindungi penyalahgunaan percobaan. Jika Anda menawarkan uji coba gratis atau paket freemium, deteksi email sekali pakai menghentikan orang yang sama untuk membuat tanpa batas akun dengan alamat sekali pakai.
-
Tidak diperlukan kunci API untuk memulai. Ketiga titik akhir bekerja secara anonim di 5
permintaan per menit. Uji seluruh pipeline tanpa mendaftar. Tambahkan sebuah
Authorization: Bearer YOUR_KEYheader ketika Anda membutuhkan throughput yang lebih tinggi. -
Jalankan pemeriksaan kecepatan secara paralel. Ketiga titik akhir tersebut bersifat independen.
Menggunakan
Promise.allmemotong total latensi ke permintaan tunggal yang paling lambat jumlah ketiganya.
Dokumentasi lengkap untuk ketiga titik akhir ada di
dokumen API interaktif.
Setiap titik akhir menerima isi JSON dengan email bidang dan mengembalikan hasil
di bawah 100ms dari jaringan edge Cloudflare.
FAQ
- Bisakah Anda memvalidasi alamat email tanpa mengirim email?
- Ya. Anda dapat memeriksa tiga hal tanpa mengirimkan apa pun: apakah alamat mengikuti sintaksis yang valid (RFC 5322), apakah domain memiliki data MX yang dikonfigurasi untuk menerima email, dan apakah domain tersebut milik penyedia email sekali pakai yang dikenal. Ketiga pemeriksaan ini menangkap sebagian besar alamat buruk pada waktu pendaftaran.
- Apakah API validasi email botoi gratis?
- Ya. Akses anonim tersedia dengan 5 permintaan per menit dengan pembatasan tarif berbasis IP. Tidak ada kunci API, tidak perlu mendaftar, tidak perlu kartu kredit. Untuk throughput yang lebih tinggi, paket berbayar mulai dari $9/bln dan mencakup akses ke 150+ titik akhir API.
- Apa perbedaan antara validasi data MX dan verifikasi SMTP?
- Validasi data MX memeriksa apakah domain memiliki server email yang dikonfigurasi untuk menerima email. Ini mengonfirmasi bahwa domain dapat menerima email secara umum. Verifikasi SMTP melangkah lebih jauh dengan menghubungkan ke server email dan menanyakan apakah ada kotak surat tertentu. Pemeriksaan MX cepat (di bawah 100 md) dan gratis. Pemeriksaan SMTP lebih lambat, dapat diblokir oleh server email, dan dapat memicu batas kecepatan atau tanda spam.
- Seberapa akurat deteksi email sekali pakai?
- Titik akhir email sekali pakai botoi memeriksa 700+ domain sekali pakai yang dikenal dan menggunakan pencocokan pola untuk menangkap variasi (domain yang berisi "temp", "sampah", "sekali pakai", dll.). Ini juga membedakan antara domain sekali pakai dan penyedia gratis seperti Gmail atau Outlook. Tidak ada daftar deteksi yang 100% lengkap, namun daftar ini mencakup semua layanan sekali pakai yang banyak digunakan.
- Haruskah saya memvalidasi email di klien atau server?
- Keduanya. Jalankan pemeriksaan format dasar pada klien untuk mendapatkan umpan balik instan. Jalankan pemeriksaan MX dan sekali pakai di server sebelum menulis ke database Anda. Validasi sisi klien meningkatkan pengalaman pengguna; validasi sisi server melindungi data Anda. Jangan pernah mempercayai pemeriksaan sisi klien saja karena pemeriksaan tersebut dapat dilewati.
Mulai membangun dengan botoi
150+ endpoint API untuk pencarian, pemrosesan teks, pembuatan gambar, dan utilitas developer. Paket gratis, tanpa kartu kredit.