อีเมลและโดเมน
ตรวจสอบ DKIM
ขอบเขต: ใช้ได้กับโดเมนจากทุกประเทศ หากไม่ระบุ selector เราจะลองค่าเริ่มต้นของผู้ให้บริการรายใหญ่ (Google, Microsoft 365, Zoho, Proton, Fastmail, Mailchimp และอื่น ๆ) และชื่อทั่วไปที่นิยมใช้ รวมทั้งหมด 33 ชื่อ เราอ่านคีย์แบบเดียวกับเซิร์ฟเวอร์ผู้รับ (RFC 6376): RSA และ Ed25519
เปิดเครื่องมือในหน้านี้
วัตถุประสงค์
ตรวจสอบคีย์ DKIM ของโดเมน: พิมพ์ selector หรือให้เราลอง selector ที่ใช้บ่อยที่สุด แล้วดูประเภทของแต่ละคีย์ ขนาดเป็นบิต และสถานะว่าอยู่ระหว่างทดสอบหรือเลิกใช้แล้วหรือไม่
ข้อกำหนด
ทุกคนอ่านคู่มือเหล่านี้ได้โดยไม่ต้องมีบัญชี เครื่องมือบางอย่างต้องใช้ Pro ตามที่ระบุในแต่ละคู่มือ
DKIM ช่วยให้โดเมนลงนามอีเมลของตัวเองด้วยคีย์ที่เผยแพร่ไว้ใน DNS เพื่อให้เซิร์ฟเวอร์ผู้รับตรวจได้ว่าข้อความมาจากโดเมนนั้นและไม่ถูกแก้ไข แต่ละคีย์อยู่ภายใต้ชื่อที่เรียกว่า selector พิมพ์โดเมน และพิมพ์ selector ด้วยหากคุณทราบ หากไม่ระบุ เราจะลอง selector ที่ใช้บ่อย 33 ชื่อ
วิธีใช้งาน
เปิดอีเมลที่ส่งจากโดเมนนั้น แล้วแสดงต้นฉบับหรือส่วนหัวของอีเมล (ใน Gmail: แตะจุดสามจุด แล้วเลือก “แสดงต้นฉบับ”)
หาส่วนหัว “DKIM-Signature”: “d=” คือโดเมน และ “s=” คือ selector เช่น s=selector1
พิมพ์โดเมนและ selector แล้วกด “ตรวจสอบ DKIM” หากไม่ระบุ selector เราจะลอง selector ที่ใช้บ่อย 33 ชื่อ เช่น default, google, selector1 หรือ k1
ตัวอย่างสมมติ
ตัวอย่างสมมติ ไม่ใช่ผลการค้นหาจริง ห้ามโทรหรือเปิดลิงก์ในตัวอย่าง
selector1._domainkey.example.comทำความเข้าใจผลลัพธ์
โดเมนนี้ลงนามอีเมลด้วย DKIM: เราพบคีย์สาธารณะของโดเมน: เซิร์ฟเวอร์ผู้รับตรวจได้ว่าข้อความมาจากโดเมนนี้และไม่ถูกแก้ไขระหว่างทาง
มีคีย์ DKIM แต่มีคำเตือน: เราพบคีย์อย่างน้อยหนึ่งคีย์ แต่บางคีย์เลิกใช้แล้ว อยู่ระหว่างทดสอบ หรืออ่อนเกินไป ดูรายละเอียดได้ใต้แต่ละคีย์
ไม่พบคีย์ DKIM ใน selector ที่ใช้บ่อย: ผลนี้ไม่ได้พิสูจน์ว่าโดเมนไม่มี DKIM: โดเมนอาจใช้ selector อื่น คุณจะพบ selector ในส่วนหัว “DKIM-Signature: s=” ของอีเมลที่โดเมนนั้นส่งถึงคุณ พิมพ์ลงในช่อง “Selector” แล้วตรวจสอบอีกครั้ง
ไม่พบคีย์ DKIM ใน selector นั้น: ตรวจดูการสะกด: selector คือค่า “s=” ในส่วนหัว “DKIM-Signature” และโดเมนคือค่า “d=” ของส่วนหัวนั้น
คีย์ว่างเปล่า (p=): selector นี้เลิกใช้แล้วและไม่ได้ลงนามอีเมลอีกต่อไป
คีย์อยู่ในโหมดทดสอบ (t=y): โดเมนขอให้เซิร์ฟเวอร์ผู้รับไม่ต้องดำเนินการใด ๆ เมื่อลายเซ็นไม่ผ่าน
คีย์ RSA สั้นกว่า 1024 บิต: อาจถูกเจาะได้ และเซิร์ฟเวอร์ผู้รับจำนวนมากไม่ยอมรับ
คีย์ RSA มีขนาด 1024 บิต: ยังได้รับการยอมรับ แต่แนะนำให้ใช้ 2048 บิต
คีย์อนุญาตเฉพาะ SHA-1 ซึ่งเป็นอัลกอริทึมเก่าที่ไม่ถือว่าปลอดภัยแล้ว
ระเบียนของคีย์มีข้อผิดพลาดและอ่านไม่ได้
ประเภทคีย์ไม่ใช่ RSA หรือ Ed25519 เซิร์ฟเวอร์ผู้รับจึงใช้คีย์นี้ไม่ได้
ข้อจำกัด
ผลนี้ไม่ได้พิสูจน์ว่าโดเมนไม่มี DKIM: โดเมนอาจใช้ selector อื่น คุณจะพบ selector ในส่วนหัว “DKIM-Signature: s=” ของอีเมลที่โดเมนนั้นส่งถึงคุณ พิมพ์ลงในช่อง “Selector” แล้วตรวจสอบอีกครั้ง
เราอ่านระเบียน DNS สาธารณะของโดเมน หากคุณพิมพ์ที่อยู่อีเมลหรือลิงก์ จะมีเพียงส่วนโดเมนเท่านั้นที่ออกจากเบราว์เซอร์ของคุณ เราไม่บันทึกโดเมนที่คุณค้นหา
การแก้ไขปัญหา
ดูเหมือนว่านี่ไม่ใช่โดเมนสาธารณะ ลองพิมพ์แบบ example.com
selector ใช้ได้เฉพาะตัวอักษร ตัวเลข ขีดกลาง ขีดล่าง และจุด
DNS ไม่ตอบกลับภายในเวลาที่กำหนด ลองอีกครั้งในอีกไม่กี่วินาที
คุณตรวจสอบติดต่อกันหลายครั้งเกินไป รอสักหนึ่งนาทีแล้วลองอีกครั้ง
ใช้งานผ่าน API
ต้องมีคีย์ API และเครดิต การเรียกที่สำเร็จแต่ละครั้งใช้ 1 เครดิต แม้ไม่มีข้อมูลก็ตาม บัญชี Pro ที่ใช้งานอยู่มี 20 เครดิตต่อเดือนปฏิทินตามเวลา UTC ใช้ร่วมกันทุกเส้นทาง API และถูกใช้ก่อน เครดิตรายเดือนที่ไม่ได้ใช้จะไม่ทบไปเดือนถัดไป เครดิตที่ซื้อในหน้าบัญชีของคุณใช้ได้โดยไม่ต้องมี Pro และไม่มีวันหมดอายุ
ข้อผิดพลาดไม่ถูกคิดเครดิต: 401 invalid_api_key (ไม่มีคีย์หรือคีย์ไม่ถูกต้อง), 403 pro_required (ไม่มีเครดิต Pro และไม่มีเครดิตที่ซื้อไว้), 422 ข้อมูลนำเข้าไม่ถูกต้อง, 429 quota_exceeded (เครดิตหมด), rate_limit_exceeded หรือ ai_busy (AI ของ sms-check ใช้งานเต็มความสามารถ), 503 tool_warming (ข้อมูลยังเตรียมไม่เสร็จ) หรือ tool หรือผู้ให้บริการไม่พร้อมใช้งาน หลังได้รับ 429 หรือ 503 ให้ลองใหม่เมื่อครบจำนวนวินาทีในเฮดเดอร์ Retry-After
คีย์ DKIM ของโดเมนที่ selector ที่ระบุ หรือที่ selector ที่ใช้บ่อยประมาณ 33 ชื่อเมื่อไม่ได้ระบุ: ประเภทของแต่ละคีย์ (rsa หรือ ed25519) ขนาดเป็นบิต และอยู่ระหว่างทดสอบหรือถูกเพิกถอนหรือไม่ none_found ไม่ได้พิสูจน์ว่าโดเมนไม่มี DKIM: โดเมนอาจใช้ selector อื่น ไม่มีการจัดเก็บข้อมูลใด
ส่ง JSON body ไปยังเส้นทางของ tool นั้นโดยตรง หรือไปยัง POST /v2/tools โดยเพิ่มฟิลด์ tool ทั้งสองเส้นทางให้ผลลัพธ์เหมือนกัน
POST https://api.nocall.io/v2/dkim-check
POST https://api.nocall.io/v2/tools {"tool":"dkim-check","domain":"example.com","selector":"s1"}พารามิเตอร์
| ชื่อ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| domain | string (1–320) | ใช่ | โดเมน หรือที่อยู่อีเมลหรือลิงก์ที่จะใช้ส่วนโดเมน ไม่เกิน 320 อักขระ เฉพาะชื่อสาธารณะเท่านั้น: ที่อยู่ IP ชื่อที่มีเลเบลเดียว และชื่อสำหรับใช้งานพิเศษ (.local, .internal, .test…) จะได้ผลเป็น 422 |
| selector | string (1–120) | ไม่ | selector: แท็ก s= ของส่วนหัว DKIM-Signature ไม่เกิน 120 อักขระ หากไม่ระบุ ระบบจะลอง selector ที่ใช้บ่อยประมาณ 33 ชื่อ |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/dkim-check' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"domain":"example.com","selector":"s1"}'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/dkim-check',
method='POST',
data=json.dumps({'domain': 'example.com', 'selector': 's1'}).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/dkim-check', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ domain: 'example.com', selector: 's1' }),
});
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": "dkim-check",
"result": {
"domain": "example.com",
"domainAscii": "example.com",
"selectorGiven": true,
"selectorsTried": 1,
"keys": [
{
"selector": "s1",
"keyType": "rsa",
"keyBits": 2048,
"testing": false,
"revoked": false,
"valid": true,
"signals": []
}
],
"signals": [],
"attention": false
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}ฟิลด์ผลลัพธ์ (data.result)
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| domain | string | โดเมนในรูปแบบ Unicode |
| domainAscii | string | โดเมนเดียวกันในรูปแบบ ASCII (punycode) ตามที่ DNS เห็น |
| selectorGiven | boolean | มีการระบุ selector หรือไม่ หากไม่ได้ระบุ ระบบจะลอง selector ที่ใช้บ่อย |
| selectorsTried | integer | จำนวน selector ที่ค้นหา |
| keys | array<object> | selector ทุกชื่อที่เผยแพร่คีย์: selector, keyType (rsa หรือ ed25519), keyBits (256 สำหรับ ed25519), testing (t=y), revoked (p= ว่าง), valid และสัญญาณของคีย์ (revoked_key, testing_mode, weak_key, short_key, sha1_only, syntax_error หรือ unknown_key_type) |
| signals | array<"none_found"> | none_found: ไม่พบคีย์ที่ selector ที่ระบุหรือที่ selector ที่ใช้บ่อยใด ๆ (โดเมนอาจยังใช้ selector อื่นอยู่) |
| attention | boolean | ผลลัพธ์ควรได้รับการตรวจดูหรือไม่: ไม่พบคีย์ หรือมีคีย์ที่ไม่ถูกต้อง ถูกเพิกถอน อยู่ระหว่างทดสอบ หรืออ่อนแอ |
คำถามที่พบบ่อย
DKIM คืออะไร
DomainKeys Identified Mail: เซิร์ฟเวอร์ผู้ส่งลงนามอีเมลแต่ละฉบับด้วยคีย์ส่วนตัว และโดเมนเผยแพร่คีย์สาธารณะไว้ใน DNS เซิร์ฟเวอร์ผู้รับจะตรวจลายเซ็น: หากตรงกัน แสดงว่าอีเมลมาจากโดเมนนั้นและไม่ถูกเปลี่ยนแปลงระหว่างทาง
selector คืออะไร
คือชื่อที่ใช้เผยแพร่คีย์ ที่ selector._domainkey.example.com โดเมนหนึ่งมี selector ได้หลายชื่อ แยกตามผู้ให้บริการหรือตามการเปลี่ยนคีย์แต่ละครั้ง selector จะปรากฏเป็น “s=” ในส่วนหัว “DKIM-Signature” ของอีเมลแต่ละฉบับ
ทำไมจึงไม่พบคีย์ ทั้งที่โดเมนใช้ DKIM
selector ตั้งชื่ออะไรก็ได้ และ DNS ไม่สามารถแสดงรายการ selector ทั้งหมดได้ เราลอง selector ที่ใช้บ่อย 33 ชื่อ หากโดเมนใช้ชื่ออื่น ให้พิมพ์ลงในช่อง “Selector” นี่คือเหตุผลที่ผล “ไม่พบ” ไม่ได้พิสูจน์ว่าไม่มี DKIM
1024 และ 2048 บิตหมายความว่าอย่างไร
คือขนาดของคีย์ RSA: ยิ่งยาวก็ยิ่งเจาะได้ยาก 1024 บิตยังได้รับการยอมรับ แต่ที่แนะนำคือ 2048 บิต หากต่ำกว่า 1024 บิต เซิร์ฟเวอร์ผู้รับจำนวนมากจะไม่สนใจลายเซ็น
