郵件與網域
檢查電子郵件地址
涵蓋範圍: 適用於任何國家的地址,包括含重音符號或使用其他文字的網域。拋棄式網域來自一份收錄數千個拋棄式電子郵件服務的公開清單;免費電子郵件網域則涵蓋各大國際及各國本地供應商。
開啟工具本頁內容
用途
不必寄信,就能檢查電子郵件地址:寫法是否正確、網域是否存在並接收電子郵件,以及它是否為拋棄式、職務或免費信箱地址;如果網域看起來打錯了,還會提供建議。
使用要求
任何 NoCall 帳號都可以閱讀這些指南。部分工具需要 Pro,各指南會註明。
寄信給某個地址或相信它之前,先在這裡檢查一下。我們會查看它的寫法和網域:網域是否存在、是否接收電子郵件,以及這是哪一類地址。我們無法判斷信箱本身是否存在,因為我們從不聯絡它的郵件伺服器;我們也不會儲存這個地址。
使用步驟
輸入或貼上你要檢查的電子郵件地址。
按下「檢查地址」。我們會檢查它的寫法,並在公開 DNS 中查詢它的網域。
查看結果和訊號。如果我們建議了另一個網域(例如是 gmail.com 而不是 gmial.com),請向給你這個地址的人確認。
虛構範例
此範例為虛構內容,並非真實查詢。請勿撥打電話或開啟其中的連結。
理解結果
這不是有效的電子郵件地址: 它不符合電子郵件地址的格式:缺少 @ 或網域,或含有地址不能使用的字元。
這個地址的網域不存在: 沒有人能用這個網域收信。如果這個地址是別人給你的,對方可能打錯了。
這個網域不接收電子郵件: 網域存在,但沒有郵件伺服器,或聲明不接受任何電子郵件。寄到這個地址的郵件不會送達。
這個網域會接收電子郵件: 地址寫法正確,而且它的網域有郵件伺服器。我們無法確認這個信箱本身存在,只能確認網域可以接收電子郵件。
這個地址的寫法不符合電子郵件地址的規定。
這個網域在 DNS 中不存在。
這個網域聲明它不接收任何電子郵件(「null MX」)。
這個網域沒有郵件伺服器。
這個網域沒有 MX 記錄,因此郵件會送到它本身的位址。這樣行得通,但並不常見。
這是拋棄式電子郵件服務:這類地址只能用幾分鐘或幾小時,常被用來在不提供真實地址的情況下註冊。
這是職務地址(info@、support@、noreply@…),屬於某個團隊或服務,而不是某個人。
這是免費電子郵件服務(Gmail、Outlook、Yahoo…)。任何人都能申請帳號,所以銀行或企業通常不會用這種地址寫信給你。
這個網域和某家知名供應商的網域非常相似,因此地址可能打錯了。
限制
我們不會檢查這個信箱本身是否存在:那需要聯絡它的郵件伺服器,而我們從不這麼做。這個地址不會被儲存。
地址會傳送到 NoCall 的伺服器,僅用於在公開 DNS 中查詢它的網域,而且不會被儲存。我們從不聯絡它的郵件伺服器。
疑難排解
這看起來不像電子郵件地址。請確認它包含 @ 和網域。
DNS 沒有及時回應。請過幾秒再試。
你連續做了很多次檢查。請等一分鐘後再試。
透過 API 使用
需要 API 金鑰和點數。每次完成的呼叫扣 1 點,即使沒有資料也一樣。有效的 Pro 帳戶每個 UTC 曆月包含 20 點,由所有 API 路由共用並優先扣用;當月未使用的點數不會累積到下個月。在帳戶頁面購買的點數不需 Pro 即可使用,且永不過期。
錯誤一律不扣點:401 invalid_api_key(缺少金鑰或金鑰無效)、403 pro_required(沒有 Pro 點數,也沒有購買的點數)、422 輸入無效、429 quota_exceeded(點數用完)、rate_limit_exceeded 或 ai_busy(sms-check 的 AI 已達負載上限)、503 tool_warming(資料仍在準備中)或 tool 或供應商無法使用。收到 429 或 503 後,請等 Retry-After 標頭中的秒數過後再重試。
不聯絡郵件伺服器就能得知的電子郵件地址資訊:語法、網域是否存在並接收電子郵件、供應商,以及是否為拋棄式、職務或免費電子郵件地址;若供應商網域疑似打錯,則提供建議。不檢查信箱本身,也絕不儲存或傳回地址。
將 JSON 主體傳送到該 tool 專屬的路由,或加上 tool 欄位後傳送到 POST /v2/tools。兩種路由回傳的結果相同。
POST https://api.nocall.io/v2/email-verify
POST https://api.nocall.io/v2/tools {"tool":"email-verify","email":"[email protected]"}參數
| 名稱 | 類型 | 必填 | 說明 |
|---|---|---|---|
| string (3–320) | 是 | 要檢查的地址,最多 320 個字元。只會查詢它的網域;絕不儲存或傳回地址。 |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/email-verify' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"email":"[email protected]"}'import json
import os
import urllib.request
import uuid
api_key = os.environ.get('NOCALL_API_KEY')
if not api_key:
raise SystemExit('Set NOCALL_API_KEY')
request = urllib.request.Request(
'https://api.nocall.io/v2/email-verify',
method='POST',
data=json.dumps({'email': '[email protected]'}).encode(),
headers={
'Authorization': 'Bearer ' + api_key,
'Content-Type': 'application/json',
'Idempotency-Key': str(uuid.uuid4()),
},
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(result['data']['result'], result['meta']['unitsCharged'])import { randomUUID } from 'node:crypto';
const requestId = randomUUID();
const apiKey = process.env.NOCALL_API_KEY;
if (!apiKey) throw new Error('Set NOCALL_API_KEY');
const response = await fetch('https://api.nocall.io/v2/email-verify', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ email: '[email protected]' }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code ?? 'request_failed');
console.log(result.data.result, result.meta.unitsCharged);回應範例(200)
這是 API 參考文件中的範例。查詢使用虛構號碼,彙總資料和 AI 回答只呈現結果的結構,並非即時資料。
{
"data": {
"tool": "email-verify",
"result": {
"domain": "outlok.com",
"domainAscii": "outlok.com",
"status": "domain_not_found",
"syntaxValid": true,
"acceptsMail": false,
"mx": {
"count": 0,
"provider": null,
"implicit": false,
"nullMx": false
},
"disposable": false,
"role": false,
"freeMail": false,
"suggestion": "outlook.com",
"signals": [
"domain_not_found",
"typo_domain"
],
"attention": true
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}結果欄位(data.result)
| 欄位 | 類型 | 說明 |
|---|---|---|
| domain | string | null | 地址的網域,以 Unicode 表示;地址無法解析時為 null。 |
| domainAscii | string | null | 同一個網域的 ASCII 形式(punycode),或 null。 |
| status | "invalid" | "domain_not_found" | "no_mail" | "accepts_mail" | invalid、domain_not_found、no_mail 或 accepts_mail。accepts_mail 表示網域接收電子郵件,而不是這個信箱存在。 |
| syntaxValid | boolean | 地址的寫法是否符合電子郵件地址的規定。 |
| acceptsMail | boolean | 網域是否接收電子郵件。 |
| mx | object | 網域的 MX:count、provider、implicit(沒有 MX,郵件會送到網域本身的位址)和 nullMx。 |
| disposable | boolean | 網域(或其上層網域)是否列在拋棄式電子郵件服務的公開清單上。 |
| role | boolean | 是否為職務信箱(info@、support@、noreply@…),而不是個人信箱。 |
| freeMail | boolean | 網域是否為免費的個人電子郵件供應商(gmail.com、outlook.com…)。 |
| suggestion | string | null | 地址原本可能要寫的供應商網域(gmial.com → gmail.com),或 null。 |
| signals | array<string (enum, 9)> | syntax_error、domain_not_found、null_mx、no_mx、implicit_mx、disposable_domain、role_address、free_mail 或 typo_domain。 |
| attention | boolean | 結果是否值得進一步查看:網域不接收電子郵件,或地址為拋棄式或可能打錯。 |
常見問題
你們能判斷信箱是否存在嗎?
不能,而且沒有任何服務能可靠地做到:唯一的方法是詢問該網域的郵件伺服器,但許多伺服器對任何地址都一律回答存在,反覆探測最後也會被封鎖。我們會檢查所有不必聯絡伺服器就能得知的資訊。
什麼是拋棄式地址?
一種只能使用幾分鐘或幾小時的信箱,用來在不提供真實地址的情況下註冊某些服務。如果客戶或聯絡人給你的是這種地址,你之後將無法聯絡到對方。
什麼是職務地址?
屬於某個職務、而不是某個人的地址:info@、support@、sales@、noreply@。可能有很多人會讀,若是 noreply@,則可能根本沒有人讀。
我檢查的地址會被儲存嗎?
不會。地址只會用一次,用來在 DNS 中查詢它的網域,不會儲存在任何地方。我們只會記錄有人做了一次檢查,以及結果的類型(例如「這個網域會接收電子郵件」),不含地址。
