API Pengesahan E-mel: Panduan Integrasi

Leo
LeoFounder, BillionVerify

Kuasai integrasi API pengesahan e-mel. Pelajari pengesahan, endpoint, pengendalian ralat, had kadar, dan amalan terbaik untuk validasi dalam aplikasi.

Cover Image for API Pengesahan E-mel: Panduan Integrasi

Membina aplikasi yang mengumpul alamat e-mel memerlukan lebih daripada validasi borang asas. API pengesahan e-mel menyediakan infrastruktur untuk mengesahkan bahawa alamat e-mel adalah benar, boleh dihantar, dan selamat digunakan sebelum ia masuk ke dalam pangkalan data anda. Panduan komprehensif ini merangkumi semua yang perlu diketahui oleh pembangun tentang mengintegrasikan API pengesahan e-mel ke dalam aplikasi mereka, daripada pengesahan dan endpoint kepada strategi pengendalian ralat dan pengoptimuman.

Memahami API Pengesahan E-mel

API pengesahan e-mel adalah perkhidmatan web yang menerima alamat e-mel dan mengembalikan hasil validasi terperinci. Tidak seperti validasi sisi klien yang hanya memeriksa format, API ini melakukan pemeriksaan sisi pelayan yang komprehensif termasuk validasi sintaks, pengesahan domain, pencarian rekod MX, pengesahan SMTP, dan kecerdasan tambahan seperti pengesanan e-mel pakai buang dan pengenalpastian domain catch-all.

Perkhidmatan pengesah e-mel profesional seperti BillionVerify mendedahkan keupayaan pengesahan mereka melalui API RESTful, membolehkan pembangun mengintegrasikan validasi e-mel secara langsung ke dalam aliran pendaftaran, saluran pemprosesan data, dan aliran kerja pengesahan kumpulan.

Mengapa Menggunakan API Pengesahan E-mel?

Validasi Masa Nyata Sahkan alamat e-mel dengan serta-merta semasa pendaftaran pengguna atau penyerahan borang. Pengguna menerima maklum balas segera tentang alamat yang tidak sah, meningkatkan kualiti data dari interaksi pertama.

Infrastruktur Berskala Membina dan mengekalkan infrastruktur pengesahan e-mel memerlukan sumber yang besar. API menyediakan akses kepada sistem pengesahan yang diedarkan, kumpulan reputasi IP yang bersih, dan kecerdasan yang dikemas kini secara berterusan tanpa overhed operasi.

Pemeriksaan Komprehensif API pengesahan e-mel profesional menggabungkan pelbagai teknik validasi yang memerlukan usaha pembangunan yang besar untuk ditiru. Satu panggilan API boleh melakukan validasi sintaks, pemeriksaan domain, pengesahan SMTP, pengesanan e-mel pakai buang, dan banyak lagi.

Ketepatan dan Kebolehpercayaan Perkhidmatan pengesahan e-mel melabur banyak dalam ketepatan. Mereka mengekalkan pangkalan data domain pakai buang, menjejaki konfigurasi catch-all, dan melaksanakan algoritma pengesanan canggih yang bertambah baik dari semasa ke semasa.

Kaedah Pengesahan API

Mengamankan akses API adalah asas kepada sebarang integrasi pengesahan e-mel. Kebanyakan perkhidmatan menawarkan pelbagai mekanisme pengesahan untuk sesuai dengan kes penggunaan yang berbeza.

Pengesahan Kunci API

Kaedah pengesahan yang paling biasa menggunakan kunci API yang dihantar dalam header permintaan atau sebagai parameter pertanyaan. Kunci API menyediakan integrasi mudah sambil membenarkan penjejakan penggunaan dan pengehadan kadar.

Pengesahan Berasaskan Header

const response = await fetch('https://api.billionverify.com/v1/verify', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ email: 'user@example.com' })
});

Header Authorization dengan token Bearer adalah pendekatan yang disyorkan. Ia menyimpan kelayakan daripada URL, mengelakkan pengelogan tidak sengaja dalam log akses pelayan.

Pengesahan Parameter Pertanyaan

Sesetengah API menerima kunci sebagai parameter pertanyaan untuk integrasi yang lebih mudah dalam konteks tertentu:

GET https://api.billionverify.com/v1/verify?email=user@example.com&api_key=YOUR_API_KEY

Walaupun mudah, pengesahan parameter pertanyaan mendedahkan kelayakan dalam log dan sejarah pelayar. Gunakan pengesahan berasaskan header apabila mungkin.

Amalan Terbaik Kunci API

Pembolehubah Persekitaran Jangan sekali-kali kod keras kunci API dalam kod sumber. Simpan mereka dalam pembolehubah persekitaran:

const apiKey = process.env.BV_API_KEY;

Putaran Kunci Putar kunci API secara berkala dan serta-merta jika kompromi disyaki. Kebanyakan perkhidmatan membenarkan berbilang kunci aktif untuk membolehkan putaran yang lancar.

Kunci Berasingan mengikut Persekitaran Gunakan kunci API yang berbeza untuk pembangunan, pementasan, dan pengeluaran. Ini menghalang trafik ujian daripada menjejaskan kuota pengeluaran dan memudahkan penyahpepijatan.

Hadkan Kebenaran Kunci Jika API menyokong kebenaran berskop, hadkan setiap kunci kepada hanya operasi yang diperlukan. Kunci yang digunakan hanya untuk pengesahan e-mel tunggal tidak memerlukan kebenaran pemprosesan pukal.

Endpoint API Teras

API pengesahan e-mel biasanya menyediakan endpoint untuk kes penggunaan yang berbeza. Memahami tujuan setiap endpoint membantu memilih pendekatan yang tepat untuk integrasi anda.

Pengesahan E-mel Tunggal

Endpoint asas mengesahkan satu alamat e-mel setiap permintaan:

POST /v1/verify
{
  "email": "user@example.com"
}

Struktur Respons

{
  "email": "user@example.com",
  "is_valid": true,
  "is_deliverable": true,
  "is_disposable": false,
  "is_role_based": false,
  "is_catch_all": false,
  "is_free_provider": true,
  "syntax_valid": true,
  "domain_valid": true,
  "mx_found": true,
  "smtp_check": "passed",
  "risk_score": 15,
  "suggestion": null,
  "verification_time_ms": 1234
}

Medan Respons Utama

MedanJenisKeterangan
is_validbooleanPenilaian kesahihan keseluruhan
is_deliverablebooleanSama ada e-mel boleh menerima mesej
is_disposablebooleanAlamat e-mel sementara/pakai buang
is_role_basedbooleanAlamat generik seperti info@, support@
is_catch_allbooleanDomain menerima semua alamat
smtp_checkstringHasil pengesahan SMTP
risk_scorenumberPenilaian risiko (0-100, lebih rendah lebih baik)
suggestionstringCadangan pembetulan kesilapan taip jika dikesan

Pengesahan E-mel Kumpulan

Untuk mengesahkan senarai besar, endpoint kumpulan menerima berbilang e-mel:

POST /v1/verify/batch
{
  "emails": [
    "user1@example.com",
    "user2@example.com",
    "user3@example.com"
  ]
}

Endpoint kumpulan memproses e-mel secara selari, mengembalikan hasil lebih cepat daripada permintaan e-mel tunggal berturut-turut. Kebanyakan perkhidmatan mengehadkan saiz kumpulan (biasanya 100-1000 e-mel setiap permintaan) dan mungkin memproses kumpulan yang sangat besar secara tak segerak.

Muat Naik Fail Pukal

Untuk senarai yang terlalu besar untuk endpoint kumpulan, API muat naik fail mengendalikan berjuta-juta rekod:

const formData = new FormData();
formData.append('file', emailListFile);

const uploadResponse = await fetch('https://api.billionverify.com/v1/bulk/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: formData
});

const { job_id } = await uploadResponse.json();

Endpoint muat naik fail mengembalikan ID kerja untuk menjejaki kemajuan. Hasil diambil setelah pemprosesan selesai:

// Semak status kerja
const statusResponse = await fetch(
  `https://api.billionverify.com/v1/bulk/status/${job_id}`,
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);

const { status, progress, estimated_completion } = await statusResponse.json();

// Muat turun hasil apabila selesai
if (status === 'completed') {
  const resultsResponse = await fetch(
    `https://api.billionverify.com/v1/bulk/download/${job_id}`,
    { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
  );
}

Notifikasi Webhook

Untuk pemprosesan tak segerak, konfigurasikan webhook untuk menerima notifikasi apabila pengesahan selesai:

POST /v1/webhooks
{
  "url": "https://yourapp.com/webhooks/email-verification",
  "events": ["bulk.completed", "bulk.failed"],
  "secret": "your_webhook_secret"
}

Webhook menghapuskan polling, meningkatkan kecekapan untuk operasi pukal.

Strategi Pengendalian Ralat

Pengendalian ralat yang teguh memastikan integrasi anda mengendalikan kegagalan dengan anggun tanpa mengganggu pengalaman pengguna.

Kod Status HTTP

API pengesahan e-mel menggunakan kod status HTTP standard:

KodMaksudTindakan
200BerjayaProses respons
400Permintaan Tidak SahBetulkan format permintaan
401Tidak DibenarkanSemak kunci API
403TerlarangSemak kebenaran
404Tidak DijumpaiSemak URL endpoint
429Had Kadar DicapaiLaksanakan backoff
500Ralat PelayanCuba semula dengan backoff
503Perkhidmatan Tidak TersediaCuba semula kemudian

Melaksanakan Logik Percubaan Semula

Isu rangkaian dan ralat sementara memerlukan mekanisme percubaan semula:

async function verifyEmailWithRetry(email, maxRetries = 3) {
  const delays = [1000, 2000, 4000]; // Exponential backoff

  for (let attempt = 0; attempt < maxRetries; attempt++) {
    try {
      const response = await fetch('https://api.billionverify.com/v1/verify', {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${process.env.BV_API_KEY}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({ email })
      });

      if (response.status === 429) {
        // Rate limited - wait and retry
        const retryAfter = response.headers.get('Retry-After') || delays[attempt];
        await sleep(parseInt(retryAfter) * 1000);
        continue;
      }

      if (response.status >= 500) {
        // Server error - retry with backoff
        await sleep(delays[attempt]);
        continue;
      }

      if (!response.ok) {
        throw new Error(`API error: ${response.status}`);
      }

      return await response.json();

    } catch (error) {
      if (attempt === maxRetries - 1) {
        throw error;
      }
      await sleep(delays[attempt]);
    }
  }
}

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

Mengendalikan Hasil Validasi

Tidak setiap pengesahan mengembalikan jawapan yang pasti. Kendalikan hasil yang tidak pasti dengan sewajarnya:

function handleVerificationResult(result) {
  if (result.is_valid && result.is_deliverable) {
    return { status: 'valid', action: 'accept' };
  }

  if (!result.syntax_valid || !result.domain_valid) {
    return { status: 'invalid', action: 'reject' };
  }

  if (result.is_disposable) {
    return { status: 'risky', action: 'reject_or_warn' };
  }

  if (result.is_catch_all) {
    // Can't definitively verify - consider accepting with monitoring
    return { status: 'uncertain', action: 'accept_with_caution' };
  }

  if (result.risk_score > 70) {
    return { status: 'high_risk', action: 'manual_review' };
  }

  return { status: 'unknown', action: 'accept_with_monitoring' };
}

Had Kadar dan Pengoptimuman

API pengesahan e-mel melaksanakan had kadar untuk memastikan penggunaan yang adil dan kestabilan sistem. Integrasi yang berkesan menghormati had ini sambil memaksimumkan daya pemprosesan.

Memahami Had Kadar

Had kadar biasanya digunakan pada berbilang peringkat:

  • Permintaan per saat: Panggilan API maksimum per saat
  • Permintaan per minit/jam: Had kadar berterusan
  • Kuota harian/bulanan: Elaun pengesahan keseluruhan
  • Sambungan serentak: Had permintaan serentak

Semak header respons untuk maklumat had kadar:

const response = await fetch('https://api.billionverify.com/v1/verify', {
  // ... request options
});

const rateLimit = response.headers.get('X-RateLimit-Limit');
const remaining = response.headers.get('X-RateLimit-Remaining');
const resetTime = response.headers.get('X-RateLimit-Reset');

console.log(`Rate limit: ${remaining}/${rateLimit}, resets at ${resetTime}`);

Melaksanakan Pengehadan Kadar

Urus kadar permintaan secara proaktif untuk mengelakkan mencapai had:

class RateLimiter {
  constructor(requestsPerSecond) {
    this.interval = 1000 / requestsPerSecond;
    this.lastRequest = 0;
  }

  async waitForSlot() {
    const now = Date.now();
    const timeSinceLastRequest = now - this.lastRequest;

    if (timeSinceLastRequest < this.interval) {
      await sleep(this.interval - timeSinceLastRequest);
    }

    this.lastRequest = Date.now();
  }
}

// Usage
const limiter = new RateLimiter(10); // 10 requests per second

async function verifyEmailsWithRateLimit(emails) {
  const results = [];

  for (const email of emails) {
    await limiter.waitForSlot();
    const result = await verifyEmail(email);
    results.push(result);
  }

  return results;
}

Pengoptimuman Pemprosesan Kumpulan

Maksimumkan kecekapan apabila mengesahkan berbilang e-mel:

Gunakan Endpoint Kumpulan Permintaan tunggal untuk setiap e-mel membazirkan perjalanan rangkaian. Endpoint kumpulan mengesahkan berbilang e-mel setiap permintaan:

// Tidak cekap: 100 permintaan berasingan
for (const email of emails) {
  await verifyEmail(email);
}

// Cekap: 1 permintaan kumpulan
const results = await verifyEmailBatch(emails);

Bahagikan Senarai Besar Bahagikan senarai yang sangat besar kepada saiz kumpulan optimum:

function chunkArray(array, chunkSize) {
  const chunks = [];
  for (let i = 0; i < array.length; i += chunkSize) {
    chunks.push(array.slice(i, i + chunkSize));
  }
  return chunks;
}

async function verifyLargeList(emails) {
  const chunks = chunkArray(emails, 100); // 100 emails per batch
  const results = [];

  for (const chunk of chunks) {
    const batchResults = await verifyEmailBatch(chunk);
    results.push(...batchResults);
  }

  return results;
}

Pemprosesan Selari dengan Had Proses berbilang kumpulan secara serentak sambil menghormati had kadar:

async function verifyWithConcurrency(emails, concurrency = 5) {
  const chunks = chunkArray(emails, 100);
  const results = [];

  for (let i = 0; i < chunks.length; i += concurrency) {
    const batch = chunks.slice(i, i + concurrency);
    const batchResults = await Promise.all(
      batch.map(chunk => verifyEmailBatch(chunk))
    );
    results.push(...batchResults.flat());
  }

  return results;
}

Strategi Caching

Caching hasil pengesahan mengurangkan kos API dan meningkatkan masa respons untuk e-mel yang berulang.

Bila Hendak Cache

Cache hasil pengesahan apabila:

  • E-mel yang sama mungkin disahkan beberapa kali
  • Pengesahan masa nyata tidak kritikal
  • Pengoptimuman kos adalah penting

Jangan cache apabila:

  • Kesegaran adalah kritikal (contohnya, transaksi bernilai tinggi)
  • E-mel menukar status dengan kerap dalam kes penggunaan anda
  • Kos penyimpanan melebihi kos API

Pelaksanaan Cache

class VerificationCache {
  constructor(ttlMs = 24 * 60 * 60 * 1000) { // 24 hour default TTL
    this.cache = new Map();
    this.ttl = ttlMs;
  }

  get(email) {
    const entry = this.cache.get(email.toLowerCase());

    if (!entry) return null;

    if (Date.now() > entry.expiry) {
      this.cache.delete(email.toLowerCase());
      return null;
    }

    return entry.result;
  }

  set(email, result) {
    this.cache.set(email.toLowerCase(), {
      result,
      expiry: Date.now() + this.ttl
    });
  }
}

// Usage
const cache = new VerificationCache();

async function verifyEmailCached(email) {
  const cached = cache.get(email);
  if (cached) {
    return { ...cached, fromCache: true };
  }

  const result = await verifyEmail(email);
  cache.set(email, result);

  return { ...result, fromCache: false };
}

Pertimbangan TTL Cache

Jenis hasil yang berbeza memerlukan tempoh cache yang berbeza:

Jenis HasilTTL DisyorkanRasional
Sintaks tidak sah30 hariTidak akan berubah
Domain tidak wujud7 hariDomain jarang muncul
Sah + boleh dihantar24-48 jamStatus boleh berubah
Pakai buang7 hariStatus pakai buang adalah stabil
Catch-all24 jamKonfigurasi boleh berubah

Amalan Terbaik Keselamatan

Mengintegrasikan API luaran memperkenalkan pertimbangan keselamatan di luar pengesahan.

Validasi Input

Sahkan e-mel sebelum menghantar ke API:

function isValidEmailFormat(email) {
  if (typeof email !== 'string') return false;
  if (email.length > 254) return false;

  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return emailRegex.test(email);
}

async function verifyEmailSafely(email) {
  if (!isValidEmailFormat(email)) {
    return { is_valid: false, reason: 'Invalid format' };
  }

  return await verifyEmail(email);
}

Pengelogan Selamat

Jangan sekali-kali log kunci API penuh atau data sensitif:

function logApiRequest(email, response) {
  // Don't log: API keys, full email addresses in production
  console.log({
    email_domain: email.split('@')[1],
    status: response.status,
    is_valid: response.is_valid,
    timestamp: new Date().toISOString()
  });
}

HTTPS Sahaja

Sentiasa gunakan HTTPS untuk komunikasi API. Sahkan sijil SSL dalam pengeluaran:

// Node.js - don't disable certificate verification in production
const https = require('https');

const agent = new https.Agent({
  rejectUnauthorized: true // Default, but explicit
});

Middleware Express.js

Cipta middleware boleh guna semula untuk pengesahan e-mel:

const emailVerificationMiddleware = async (req, res, next) => {
  const { email } = req.body;

  if (!email) {
    return next();
  }

  try {
    const result = await verifyEmail(email);
    req.emailVerification = result;

    if (!result.is_valid) {
      return res.status(400).json({
        error: 'Invalid email address',
        details: result
      });
    }

    next();
  } catch (error) {
    // Fail open - don't block registration on API errors
    req.emailVerification = { verified: false, error: error.message };
    next();
  }
};

// Usage
app.post('/register', emailVerificationMiddleware, (req, res) => {
  // req.emailVerification contains verification results
});

Hook React

Cipta hook custom untuk pengesahan e-mel frontend:

import { useState, useCallback } from 'react';
import debounce from 'lodash/debounce';

function useEmailVerification() {
  const [result, setResult] = useState(null);
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);

  const verify = useCallback(
    debounce(async (email) => {
      if (!email || !email.includes('@')) {
        setResult(null);
        return;
      }

      setLoading(true);
      setError(null);

      try {
        const response = await fetch('/api/verify-email', {
          method: 'POST',
          headers: { 'Content-Type': 'application/json' },
          body: JSON.stringify({ email })
        });

        const data = await response.json();
        setResult(data);
      } catch (err) {
        setError(err.message);
      } finally {
        setLoading(false);
      }
    }, 500),
    []
  );

  return { verify, result, loading, error };
}

Pemantauan dan Analitik

Jejaki penggunaan API dan hasil pengesahan untuk mengoptimumkan integrasi anda.

Metrik Utama untuk Dipantau

  • Masa respons API: Jejaki trend latensi
  • Kadar ralat: Pantau kegagalan mengikut jenis
  • Nisbah hit cache: Ukur keberkesanan caching
  • Taburan pengesahan: Jejaki peratusan sah/tidak sah/berisiko
  • Kos per pengesahan: Kira kos sebenar

Pengelogan untuk Analitik

function logVerification(email, result, metadata) {
  const logEntry = {
    timestamp: new Date().toISOString(),
    email_domain: email.split('@')[1],
    is_valid: result.is_valid,
    is_deliverable: result.is_deliverable,
    is_disposable: result.is_disposable,
    risk_score: result.risk_score,
    response_time_ms: metadata.responseTime,
    from_cache: metadata.fromCache,
    source: metadata.source // registration, import, etc.
  };

  // Send to your analytics system
  analytics.track('email_verification', logEntry);
}

Integrasi API BillionVerify

BillionVerify menyediakan API pengesahan e-mel yang komprehensif direka untuk pembangun. API menggabungkan berbilang teknik pengesahan dalam satu panggilan, menyampaikan hasil yang pantas dan tepat dengan pandangan terperinci.

Permulaan Cepat

async function verifyWithBillionVerify(email) {
  const response = await fetch('https://api.billionverify.com/v1/verify', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.BV_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ email })
  });

  return await response.json();
}

Ciri-ciri

  • Pengesahan masa nyata: Masa respons sub-saat untuk pengesahan e-mel tunggal
  • Pemprosesan kumpulan: Sahkan sehingga 1000 e-mel setiap permintaan
  • Muat naik fail pukal: Proses berjuta-juta rekod dengan pemprosesan kerja tak segerak
  • Pemeriksaan komprehensif: Sintaks, domain, MX, SMTP, pakai buang, pengesanan catch-all
  • Pemarkahan risiko: Penilaian risiko bernuansa di luar sah/tidak sah binari
  • Cadangan kesilapan taip: Kesan dan cadangkan pembetulan untuk kesilapan taip biasa
  • Sokongan webhook: Terima notifikasi untuk penyiapan kerja pukal

Dokumentasi API menyediakan maklumat terperinci tentang semua endpoint, format respons, dan contoh integrasi dalam berbilang bahasa pengaturcaraan.

Kesimpulan

Mengintegrasikan API pengesahan e-mel mengubah cara aplikasi anda mengendalikan kualiti data e-mel. Daripada validasi masa nyata semasa pendaftaran kepada pemprosesan kumpulan senarai sedia ada, API menyediakan infrastruktur untuk pengesahan e-mel yang komprehensif tanpa kerumitan membina dan mengekalkan sistem pengesahan.

Pengambilan utama untuk integrasi yang berjaya:

  1. Pilih endpoint yang tepat untuk kes penggunaan anda: pengesahan tunggal untuk masa nyata, kumpulan untuk senarai sederhana, muat naik pukal untuk set data besar
  2. Laksanakan pengendalian ralat yang teguh dengan logik percubaan semula dan degradasi anggun
  3. Hormati had kadar melalui throttling sisi klien dan batching yang cekap
  4. Cache secara strategik untuk mengurangkan kos dan meningkatkan prestasi
  5. Pantau dan analisis hasil pengesahan untuk terus meningkatkan kualiti data

Sama ada anda membina aplikasi baharu atau menambah baik sistem sedia ada, API pengesahan e-mel seperti BillionVerify menyediakan alat yang diperlukan untuk memastikan setiap alamat e-mel dalam pangkalan data anda adalah sah, boleh dihantar, dan selamat digunakan.

Mulakan integrasi anda hari ini dan alami perbezaan yang dibuat oleh pengesahan e-mel profesional untuk kualiti data aplikasi anda dan kebolehsampaian e-mel.

Untuk lebih memahami asas pengesahan, baca tentang pengesahan sintaks e-mel yang menjelaskan validasi format asas. Setelah e-mel anda disahkan, pastikan strategi pengiriman anda dioptimumkan dengan mempelajari tentang pengoptimuman masa hantar dan amalan terbaik kebolehsampai e-mel.

Pasukan yang menggunakan Instantly atau Smartlead meningkatkan kebolehsampai dengan membersihkan senarai melalui BillionVerify sebelum setiap kempen.

Bandingkan BillionVerify dengan ZeroBounce dari segi ketepatan dan kelajuan sebelum memilih pembekal pengesahan.

Leo
LeoFounder, BillionVerify
Wawasan Pengesahan E-mel

Mula Mengesahkan Hari Ini

Mulakan mengesahkan e-mel dengan BillionVerify hari ini. Dapatkan 100 kredit percuma apabila anda mendaftar - tiada kad kredit diperlukan. Sertai beribu-ribu perniagaan yang meningkatkan ROI pemasaran e-mel mereka dengan pengesahan e-mel yang tepat.

Tiada kad kredit diperlukan · 100+ kredit percuma setiap hari · Mula dalam 30 saat

99.9%
Ketepatan
Real-time
Kelajuan API
$0.00014
Setiap E-mel
100/day
Percuma Selama-lamanya