メッセージを 1 つも送信せずに電子メール アドレスを検証する
3 つの API 呼び出しで電子メールの構文、MX レコード、および使い捨てドメインをチェックします。 SMTP 接続、確認メール、バウンスのリスクはありません。 無料の電子メール検証 API。
サインアップ フォームは電子メール アドレスを収集します。 それを保存し、ウェルカム メッセージを送信し、電子メールを送信します。
跳ねる。 住所がタイプミスでした。 またはドメインが存在しません。 それとも使い捨てだったのか
@mailinator.com 10分後には無効になるアドレス。 あなたは今ジャンクを持っています
データベースの記録、送信者の評判の低下、二度と戻ってこないユーザー。
従来の解決策は、「アドレスを確認するにはこのリンクをクリックしてください」という確認メールを送信することです。 それは機能しますが、摩擦が増えます。 コンバージョンが低下します。 そして、その後になるまでタイプミスは見つかりません すでに間違ったアドレスにメッセージを送信しています。
何かを送信する前に電子メール アドレスを検証できます。 3 つの API 呼び出しチェック構文、MX レコードと使い捨てドメイン。 プロセス全体にかかる時間は 200 ミリ秒未満で、問題を検出します これが電子メール配信失敗の 90% の原因です。
3 層の電子メール検証
各層は、異なるクラスの不正な電子メール アドレスを検出します。 組み合わせて使用すると完全な完成度が得られます 電子メール検証パイプライン、または必要なものを選択します。
-
構文の検証。 アドレスは有効な形式に従っていますか? ドメインは
既知のタイプミスがありますか? の
/v1/email/validateエンドポイントは RFC 5322 準拠をチェックし、 役割ベースのアドレスを検出します (admin@、support@)と提案します ドメインの一般的なスペルミスの修正gmial.comまたはhotmal.com。 -
MX レコードの検証。 ドメインは電子メールを受信できますか? の
/v1/email-mx/verifyエンドポイントは DNS に MX レコードをクエリし、A にフォールバックします。 記録。 ドメインにメール サーバーがない場合、アドレスは配信できません。 いくら再試行しても それを修正します。 -
使い捨て電子メールの検出。 使い捨てサービスのアドレスですか? の
/v1/disposable-email/check700 を超える既知の使い捨てドメインに対するエンドポイント チェック パターンマッチのバリエーション。 また、ドメインが無料プロバイダー (Gmail、 Outlook) を使用して、個人アドレスと使い捨てアドレスを区別できるようにします。
電子メールの構文をチェックし、タイプミスを見つけます
の /v1/email/validate エンドポイントは 1 回の呼び出しでほとんどの作業を実行します。 検証します
フォーマット、MX レコードの検索、使い捨てドメインのチェック、一般的な形式のタイプミスの検出
プロバイダーのドメイン。
応答:
電子メール jamie@gmial.com 構文は有効ですが、ドメインがタイプミスです。 API
返品 is_valid: false MX レコードが存在しないため、 gmial.com、
そして修正されたアドレスを提案します jamie@gmail.com。 この提案を表示するには
サインアップ フォームを作成すると、ユーザーを無効なアカウントから救い出すことができます。
MX レコードを検証して電子メールが本物かどうかを確認する
の /v1/email-mx/verify エンドポイントは DNS に重点を置いています。 MX の完全なリストを返します。
優先順位と deliverable ドメインかどうかを示すフィールド
メールを受信できます。
応答:
の deliverable フィールドは、次の 3 つの値のいずれかを返します。 "likely" (MX
記録が見つかりました)、 "unknown" (MX はありませんが、A レコードは存在するため、ドメインは
メールを受け入れる)、または "unlikely" (MX レコードや A レコードはありません)。 MX レコードにはこれを使用します
生の DNS データが必要な場合の検証。
使い捨てアドレスと使い捨てアドレスを検出
の /v1/disposable-email/check エンドポイントは一時的な電子メール サービスを識別します。
これらのアドレスは数分または数時間動作し、その後メールの受信を停止します。
応答:
の is_free フィールドは、使い捨てドメインと無料プロバイダーを区別します。 Gメール
アドレスが返される is_free: true そして is_disposable: false。 郵便配達員
アドレスが返される is_disposable: true そして is_free: false。 これ
区別は重要です。 すべての無料プロバイダーをブロックすると、インターネットの大部分がロックアウトされてしまいます。
Node.js で検証パイプラインを構築する
3 つのチェックすべてを 1 つの関数に結合します。 このパイプラインは各チェックを順番に実行します 最初の故障ではショートします。
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)" }
シーケンシャルなアプローチは読みやすく、早期に終了します。 構文が失敗した場合は、ネットワークをスキップします MX と使い捨て小切手が必要です。 早期終了よりも速度を優先する場合は、すべてを実行してください。 3 つを並行して:
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 },
};
}
並列バージョンでは、次を使用して 3 つのリクエストすべてを同時に起動します。 Promise.all。
合計レイテンシは、合計ではなく最も遅いリクエストと等しくなります。 ほとんどの場合、3 つすべてが
100ミリ秒以内に完了します。
Python 検証パイプライン
Python でも同じ 3 段階の検証を行います。 この例では、 requests 図書館
明確にするために。
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?'}
電子メールアドレスを検証する場合
タッチポイントが異なれば、必要な検証の深さも異なります。 各チェックが当てはまる場所は次のとおりです。
| タッチポイント | 構文 | MXチェック | 使い捨て | なぜ |
|---|---|---|---|---|
| 登録フォーム | はい | はい | はい | レコードを作成する前にタイプミス、無効なドメイン、使い捨てアカウントを検出します |
| チェックアウト/支払い | はい | はい | オプション | 領収書には配達可能な住所が必要です。 使い捨て小切手は返金ポリシーによって異なります |
| お問い合わせフォーム | はい | オプション | いいえ | 基本的なフォーマットチェックにより、明らかなジャンクを防ぎます。 MX チェックはボーナスです |
| ニュースレターの購読 | はい | はい | はい | 送信者の評判を保護します。 直帰率が高いとESPから警告を受ける |
| リードインポート / CRM | はい | はい | はい | データがパイプラインに入る前にクリーニングすることで、下流コストを節約できます |
| 内部ツール | はい | いいえ | いいえ | 構文チェックによりデータ入力エラーが検出されます。 内部ユーザーは信頼されています |
重要なポイント
- 保存する前に検証してください。 データベース内のすべての悪質な電子メールには、次のようなコストがかかります。 送信の失敗、バウンス処理、送信者の評判の低下。 問題をその時点で把握する エントリーの。
-
タイプミスの検出はユーザーを救います。 の
/v1/email/validateエンドポイント 一般的なドメインのスペルミスを検出し、提案を返します。 浮上「つまりそういうことだったのか ジェイミー@gmail.com?」 ユーザーの紛失を防ぎます。 - MX チェックは迅速かつ無料です。 DNS ルックアップはミリ秒以内に解決されます。 あるよ スキップする理由はありません。 MX レコードのないアドレスではメールが受信されません。
- 使い捨て検出は試験の悪用を保護します。 無料トライアルを提供する場合、または フリーミアム プラン、使い捨てメール検出により、同一人物による無制限のメール作成が阻止されます 使い捨てアドレスを持つアカウント。
-
開始するために API キーは必要ありません。 3 つのエンドポイントはすべて 5 で匿名で動作します
1 分あたりのリクエスト数。 サインアップせずにパイプライン全体をテストします。 を追加
Authorization: Bearer YOUR_KEYより高いスループットが必要な場合はヘッダーを使用します。 -
速度を上げるためにチェックを並行して実行します。 3 つのエンドポイントは独立しています。
使用する
Promise.all合計レイテンシーを、最も遅い単一リクエストまで削減します。 3 つすべての合計。
3 つのエンドポイントすべてに関する完全なドキュメントは、
インタラクティブ API ドキュメント。
各エンドポイントは、次の JSON 本文を受け入れます。 email フィールドに入力し、結果を返します
Cloudflareのエッジネットワークから100ミリ秒未満。
FAQ
- 電子メールを送信せずに電子メール アドレスを検証できますか?
- はい。 何も送信せずに 3 つのことを確認できます。アドレスが有効な構文 (RFC 5322) に従っているかどうか、ドメインにメールを受信するように構成された MX レコードがあるかどうか、ドメインが既知の使い捨て電子メール プロバイダーに属しているかどうかです。 これら 3 つのチェックは、サインアップ時に不正なアドレスの大部分を検出します。
- Botoi メール検証 API は無料ですか?
- はい。 匿名アクセスは、IP ベースのレート制限により、1 分あたり 5 リクエストで利用できます。 API キー、サインアップ、クレジット カードは必要ありません。 スループットを高めるには、有料プランが月額 9 ドルから始まり、150 以上の API エンドポイントすべてへのアクセスが含まれます。
- MX レコード検証と SMTP 検証の違いは何ですか?
- MX レコードの検証では、ドメインに電子メールを受け入れるように構成されたメール サーバーがあるかどうかがチェックされます。 ドメインが一般的にメールを受信できることを確認します。 SMTP 検証はさらに、メール サーバーに接続し、特定のメールボックスが存在するかどうかを尋ねることによって行われます。 MX チェックは高速 (100 ミリ秒未満) で無料です。 SMTP チェックは時間がかかり、メール サーバーによってブロックされる可能性があり、レート制限やスパム フラグがトリガーされる可能性があります。
- 使い捨て電子メールの検出はどの程度正確ですか?
- botoi の使い捨て電子メール エンドポイントは、700 以上の既知の使い捨てドメインをチェックし、パターン マッチングを使用してバリエーション (「temp」、「trash」、「throwaway」などを含むドメイン) を検出します。 また、使い捨てドメインと、Gmail や Outlook などの無料プロバイダーも区別されます。 100% 完全な検出リストはありませんが、広く使用されているすべての使い捨てサービスを検出します。
- 電子メールをクライアントまたはサーバーで検証する必要がありますか?
- 両方。 クライアントで基本的な形式チェックを実行して、即時のフィードバックを取得します。 データベースに書き込む前に、サーバー上で MX チェックと使い捨てチェックを実行します。 クライアント側の検証により、ユーザー エクスペリエンスが向上します。 サーバー側の検証によりデータが保護されます。 クライアント側のチェックはバイパスされる可能性があるため、決して信頼しないでください。
botoiで開発を始めよう
150以上のAPIエンドポイント。検索、テキスト処理、画像生成、開発者ユーティリティに対応。無料プラン、クレジットカード不要。