ลิงก์ เว็บไซต์ และอีเมล
อีเมลนี้เป็นของจริงไหม?
ขอบเขต: ใช้ได้กับอีเมลจากทุกประเทศและทุกภาษา: อ่านผลการตรวจสอบ SPF, DKIM และ DMARC ที่ผู้ให้บริการของคุณเอง (Gmail, Outlook, Yahoo, iCloud และอื่น ๆ) บันทึกไว้ในส่วนหัวเมื่อได้รับข้อความ และตรวจสอบชื่อและโดเมนของผู้ส่งด้วยกฎแบรนด์ของ NoCall สำหรับฉบับนี้
เปิดเครื่องมือในหน้านี้
วัตถุประสงค์
วางส่วนหัวของอีเมลที่น่าสงสัย เพื่อตรวจสอบว่าผู้ให้บริการอีเมลของคุณยืนยันผู้ส่งแล้วหรือไม่ (SPF, DKIM และ DMARC) ชื่อผู้ส่งแอบอ้างแบรนด์หรือไม่ และการตอบกลับจะส่งไปที่ใดจริง ๆ
ข้อกำหนด
ทุกคนอ่านคู่มือเหล่านี้ได้โดยไม่ต้องมีบัญชี เครื่องมือบางอย่างต้องใช้ Pro ตามที่ระบุในแต่ละคู่มือ
อีเมลแสดงชื่ออะไรก็ได้ในช่อง “จาก” สิ่งที่ปลอมได้ยากกว่ามากคือผลการตรวจสอบที่ผู้ให้บริการอีเมลของคุณทำเมื่อได้รับอีเมล วางส่วนหัวของข้อความที่นี่ แล้วเราจะบอกว่าผู้ส่งเป็นคนที่อ้างจริงหรือไม่ ไม่มีข้อมูลใดถูกส่งหรือบันทึกไว้
วิธีใช้งาน
Gmail: เปิดอีเมล แตะจุดสามจุด แล้วเลือก “แสดงต้นฉบับ” จากนั้นคัดลอกข้อความทั้งหมด
Outlook: เปิดอีเมล คลิกจุดสามจุด เลือก “ดู” (View) แล้วเลือก “ดูแหล่งที่มาของข้อความ” (View message source) หรือ “รายละเอียดข้อความ” (Message details)
Apple Mail: เปิดอีเมล แล้วเลือก “มุมมอง” จากนั้น “ข้อความ” และ “ต้นฉบับดิบ” (Raw Source)
Yahoo Mail: เปิดอีเมล คลิก “เพิ่มเติม” (More) แล้วเลือก “ดูข้อความดิบ” (View raw message)
ตรวจสอบผู้ส่ง
ตัวอย่างสมมติ
ตัวอย่างสมมติ ไม่ใช่ผลการค้นหาจริง ห้ามโทรหรือเปิดลิงก์ในตัวอย่าง
From: "Bank" <[email protected]>ทำความเข้าใจผลลัพธ์
อย่าเชื่ออีเมลนี้: ผู้ให้บริการของคุณยืนยันผู้ส่งไม่ได้ หรืออีเมลนี้แอบอ้างแบรนด์ อย่าคลิกลิงก์ อย่าดาวน์โหลดไฟล์แนบ และอย่าตอบกลับ หากอ้างว่ามาจากบริษัท ให้เข้าเว็บไซต์หรือแอปของบริษัทโดยพิมพ์ที่อยู่เอง
ตรวจดูอีเมลนี้อย่างละเอียด: ผู้ส่งได้รับการยืนยันแล้ว แต่มีรายละเอียดบางอย่างที่ควรตรวจสอบก่อนตอบกลับหรือคลิกลิงก์
ผู้ส่งได้รับการยืนยันแล้ว: ผู้ให้บริการอีเมลของคุณตรวจสอบแล้วว่าอีเมลมาจากโดเมนที่แสดงในช่อง “จาก” แต่ไม่ได้รับประกันว่าเนื้อหาเป็นของจริง: ยังคงต้องระวังหากอีเมลขอข้อมูลหรือขอให้ชำระเงิน
ข้อจำกัด
ตรวจสอบในเบราว์เซอร์ของคุณ: ส่วนหัวจะไม่ถูกส่งหรือบันทึกไว้ และผลลัพธ์แสดงเฉพาะโดเมน ไม่แสดงที่อยู่อีเมลแบบเต็ม
การแก้ไขปัญหา
เราไม่พบส่วนหัวของอีเมลในข้อความ คัดลอกข้อความต้นฉบับทั้งหมด ไม่ใช่แค่เนื้อหา
ส่วนหัวไม่มีผู้ส่ง (From) คัดลอกข้อความต้นฉบับทั้งหมด
ส่วนหัวยาวเกินกว่าจะตรวจสอบได้ (ไม่เกิน 64 KB)
ใช้งานผ่าน 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
ผู้ให้บริการที่รับอีเมลยืนยันตัวตนของอีเมลหรือไม่ (SPF, DKIM และ DMARC จาก Authentication-Results บนสุด) และสัญญาณบ่งชี้จากผู้ส่ง: แบรนด์ในชื่อที่แสดง โดเมนอีเมลฟรีหรือโดเมนเลียนแบบ การตอบกลับไปยังโดเมนอื่น ให้เฉพาะโดเมน ไม่มีการจัดเก็บข้อมูลใด
ส่ง JSON body ไปยังเส้นทางของ tool นั้นโดยตรง หรือไปยัง POST /v2/tools โดยเพิ่มฟิลด์ tool ทั้งสองเส้นทางให้ผลลัพธ์เหมือนกัน
POST https://api.nocall.io/v2/email-headers
POST https://api.nocall.io/v2/tools {"tool":"email-headers","headers":"Delivered-To: [email protected]\nReceived: from mail.bank.example (mail.bank.example [192.0.2.10]) by mx.google.com with ESMTPS id x1 for <[email protected]>; Tue, 27 Oct 2026 09:00:00 -0700\nAuthentication-Results: mx.google.com; dkim=pass [email protected] header.s=s1; spf=pass (google.com: domain of [email protected] designates 192.0.2.10 as permitted sender) [email protected]; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bank.example\nFrom: \"Bank Alerts\" <[email protected]>\nReply-To: [email protected]\nSubject: Your statement is ready\nMessage-ID: <[email protected]>","country":"ES"}พารามิเตอร์
| ชื่อ | ชนิด | จำเป็น | คำอธิบาย |
|---|---|---|---|
| headers | string (1–65536) | ใช่ | ส่วนหัวดิบของอีเมล (“แสดงต้นฉบับ”) ไม่เกิน 64 KB ส่วนที่อยู่หลังบรรทัดว่างบรรทัดแรกจะถูกละเว้น |
| country | string (enum, 55) | ไม่ (ค่าเริ่มต้น: "ES") | ประเทศของชุดกฎ SMS ที่ใช้ |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/email-headers' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"headers":"Delivered-To: [email protected]\nReceived: from mail.bank.example (mail.bank.example [192.0.2.10]) by mx.google.com with ESMTPS id x1 for <[email protected]>; Tue, 27 Oct 2026 09:00:00 -0700\nAuthentication-Results: mx.google.com; dkim=pass [email protected] header.s=s1; spf=pass (google.com: domain of [email protected] designates 192.0.2.10 as permitted sender) [email protected]; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bank.example\nFrom: \"Bank Alerts\" <[email protected]>\nReply-To: [email protected]\nSubject: Your statement is ready\nMessage-ID: <[email protected]>","country":"ES"}'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-headers',
method='POST',
data=json.dumps({'headers': 'Delivered-To: [email protected]\nReceived: from mail.bank.example (mail.bank.example [192.0.2.10]) by mx.google.com with ESMTPS id x1 for <[email protected]>; Tue, 27 Oct 2026 09:00:00 -0700\nAuthentication-Results: mx.google.com; dkim=pass [email protected] header.s=s1; spf=pass (google.com: domain of [email protected] designates 192.0.2.10 as permitted sender) [email protected]; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bank.example\nFrom: "Bank Alerts" <[email protected]>\nReply-To: [email protected]\nSubject: Your statement is ready\nMessage-ID: <[email protected]>', 'country': 'ES'}).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-headers', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ headers: 'Delivered-To: [email protected]\nReceived: from mail.bank.example (mail.bank.example [192.0.2.10]) by mx.google.com with ESMTPS id x1 for <[email protected]>; Tue, 27 Oct 2026 09:00:00 -0700\nAuthentication-Results: mx.google.com; dkim=pass [email protected] header.s=s1; spf=pass (google.com: domain of [email protected] designates 192.0.2.10 as permitted sender) [email protected]; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bank.example\nFrom: "Bank Alerts" <[email protected]>\nReply-To: [email protected]\nSubject: Your statement is ready\nMessage-ID: <[email protected]>', country: 'ES' }),
});
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-headers",
"result": {
"fromDomain": "bank.example",
"fromDomainAscii": "bank.example",
"displayName": "Bank Alerts",
"replyToDomain": "other.example",
"returnPathDomain": null,
"senderDomain": null,
"subject": "Your statement is ready",
"auth": {
"provider": "mx.google.com",
"source": "authentication_results",
"spf": "pass",
"spfDomain": "bank.example",
"dkim": "pass",
"dkimDomains": [
"bank.example"
],
"dmarc": "pass",
"dmarcDomain": "bank.example",
"compauth": null,
"aligned": true
},
"authenticated": true,
"brand": null,
"official": false,
"freeMail": false,
"signals": [
"reply_to_mismatch"
],
"attention": true
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}ฟิลด์ผลลัพธ์ (data.result)
| ฟิลด์ | ชนิด | คำอธิบาย |
|---|---|---|
| fromDomain | string | โดเมนของ From ในรูปแบบ Unicode ไม่ใช่ที่อยู่แบบเต็ม |
| fromDomainAscii | string | โดเมนของ From ตามที่ระบบอีเมลเห็น (punycode) |
| displayName | string | null | ชื่อที่แสดง โดยแทนที่ส่วนก่อน @ ของที่อยู่อีเมลและที่อยู่ IP ด้วย … หรือ null |
| replyToDomain | string | null | โดเมนที่การตอบกลับส่งไป หรือ null |
| returnPathDomain | string | null | โดเมนที่ข้อความแจ้งผลการนำส่งส่งไป หรือ null |
| senderDomain | string | null | โดเมนของฟิลด์ Sender หรือ null |
| subject | string | null | หัวเรื่องที่ถอดรหัสแล้ว โดยแทนที่ส่วนก่อน @ ของที่อยู่อีเมลและที่อยู่ IP ด้วย … หรือ null |
| auth | object | ผลลัพธ์ของผู้ให้บริการ: provider, source, spf, dkim และ dmarc (pass, fail, softfail, neutral, none, temperror, permerror หรือ policy) พร้อมโดเมนของแต่ละรายการ compauth และสอดคล้องกับโดเมนของ From หรือไม่ |
| authenticated | boolean | ผู้ให้บริการยืนยันแล้วหรือไม่ว่าอีเมลมาจากโดเมนของ From (DMARC pass หรือ DKIM pass ที่สอดคล้องกัน) |
| brand | string | null | แบรนด์ที่ระบุในชื่อที่แสดงหรือหัวเรื่อง หรือ null |
| official | boolean | โฮสต์เป็นโดเมนทางการของแบรนด์หรือหน่วยงานรัฐหรือไม่ |
| freeMail | boolean | โดเมนของ From เป็นบริการอีเมลฟรีที่ใครก็สมัครได้หรือไม่ |
| signals | array<string (enum, 15)> | no_auth_results, dmarc_fail, dmarc_none, spf_fail, dkim_fail, dkim_unaligned, return_path_mismatch, reply_to_mismatch, display_name_brand, display_name_address, free_mail_brand, lookalike_domain, suspicious_domain, risky_tld หรือ multiple_from |
| attention | boolean | เนื้อหาควรได้รับการตรวจดูอย่างละเอียดหรือไม่ |
คำถามที่พบบ่อย
SPF, DKIM และ DMARC คืออะไร
คือการตรวจสอบที่ผู้ให้บริการอีเมลของคุณทำเมื่อได้รับอีเมล: SPF ตรวจว่าเซิร์ฟเวอร์ที่ส่งได้รับอนุญาตหรือไม่ DKIM ยืนยันลายเซ็นจากโดเมน และ DMARC ยืนยันว่าทุกอย่างตรงกับโดเมนที่คุณเห็นในช่อง “จาก” หาก DMARC ไม่ผ่าน แสดงว่าผู้ส่งเป็นของปลอม
หากผู้ส่งได้รับการยืนยันแล้ว อีเมลนั้นปลอดภัยหรือไม่
ไม่เสมอไป การยืนยันแล้วหมายความว่าอีเมลมาจากโดเมนนั้นจริง แต่มิจฉาชีพอาจใช้โดเมนของตัวเองที่ดูคล้ายของแบรนด์ หรือใช้บัญชีที่ถูกแฮ็ก ให้ดูโดเมนที่แสดงด้วย และระวังคำขอข้อมูลหรือการชำระเงินทุกครั้ง
ทำไมดูแค่ชื่อผู้ส่งจึงไม่พอ
เพราะชื่อที่แสดงเป็นสิ่งที่ผู้ส่งอีเมลเขียนเอง และจะเขียนว่าอะไรก็ได้ แม้แต่ชื่อธนาคารของคุณ หรือที่อยู่อีเมลปลอมในเครื่องหมายคำพูด สิ่งที่สำคัญคือโดเมนที่ได้รับการยืนยัน
