ตั้งค่า SPF DKIM DMARC ป้องกัน Email Spoofing

ทำความเข้าใจและตั้งค่า 3 มาตรฐานความปลอดภัยอีเมลที่ขาดไม่ได้ เพื่อให้อีเมลของคุณไปถึงกล่องขาเข้าและป้องกันการปลอมแปลง

ตั้งค่า SPF DKIM DMARC ใน DNS

SPF คืออะไร?

SPF (Sender Policy Framework) คือ DNS TXT Record ที่ระบุว่า Mail Server ใดบ้างที่ได้รับอนุญาตให้ส่งอีเมลในนามของโดเมนของคุณ เมื่อผู้รับอีเมลได้รับเมล จะตรวจสอบว่า IP ของ Server ที่ส่งตรงกับรายการใน SPF Record หรือไม่ หากไม่ตรงก็จะถูกทำเครื่องหมายว่าเป็น Spam หรือถูกปฏิเสธทันที

รูปแบบ SPF Record พื้นฐาน:

v=spf1 include:mail.yourthaihost.com ip4:203.0.113.10 ~all

DKIM คืออะไร?

DKIM (DomainKeys Identified Mail) คือระบบ Digital Signature ที่เพิ่ม Header ลงในอีเมลทุกฉบับที่ส่งออก โดยใช้ Private Key ที่เก็บไว้บน Mail Server เพื่อเซ็นชื่อ และ Public Key ที่เผยแพร่ผ่าน DNS TXT Record เพื่อให้ผู้รับตรวจสอบว่าอีเมลไม่ถูกดัดแปลงระหว่างทาง

ขั้นตอนดู DKIM Key ใน cPanel:

  1. ไปที่ Email → Email Deliverability ใน cPanel
  2. คลิก Manage ข้างโดเมนของคุณ
  3. คัดลอก DKIM TXT Record ที่ระบบสร้างให้
  4. เพิ่ม DNS TXT Record ชื่อ default._domainkey.yourdomain.com

ตัวอย่าง DKIM Record มีลักษณะดังนี้:

default._domainkey.yourdomain.com TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN..."

DMARC คืออะไร?

DMARC (Domain-based Message Authentication, Reporting and Conformance) คือ Policy ที่กำหนดว่าควรทำอย่างไรกับอีเมลที่ Fail ทั้ง SPF และ DKIM พร้อมกัน ช่วยให้เจ้าของโดเมนรับรายงานได้ว่ามีใครพยายามปลอมแปลงอีเมลโดยใช้โดเมนของตน

ตัวอย่าง DMARC Record:

_dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100"

ขั้นตอนตั้งค่าทั้ง 3 ผ่าน DNS Panel

ลงมือตั้งค่าทีละขั้นตอนใน DNS Zone Editor:

  1. ตั้ง SPF: เพิ่ม TXT Record ที่ @ หรือ yourdomain.com ค่า: v=spf1 include:server.yourhost.com ~all
  2. ตั้ง DKIM: ดู Key จาก cPanel Email Deliverability แล้วเพิ่ม TXT Record ที่ default._domainkey
  3. ตั้ง DMARC: เพิ่ม TXT Record ที่ _dmarc ค่า: v=DMARC1; p=none; rua=mailto:[email protected]
  4. รอ DNS Propagation 10–30 นาที
  5. ทดสอบด้วย mail-tester.com หรือ MX Toolbox

ทดสอบด้วย mail-tester.com และ MX Toolbox

หลังตั้งค่าเสร็จ ทดสอบความถูกต้องได้ทันที:


ตรวจสอบว่า SPF/DKIM/DMARC ตั้งค่าถูกต้อง

# ตรวจ SPF Record
dig TXT yourdomain.com +short

# ตรวจ DKIM Record
dig TXT default._domainkey.yourdomain.com +short

# ตรวจ DMARC Record
dig TXT _dmarc.yourdomain.com +short

# ตรวจ MX Record
dig MX yourdomain.com +short
Tip: เริ่มจาก p=none ใน DMARC ก่อนเสมอ อ่าน Report 2–4 สัปดาห์ก่อนเปลี่ยนเป็น quarantine หรือ reject เพื่อป้องกันอีเมลถูกตัดโดยไม่ตั้งใจ

แก้ปัญหาที่พบบ่อย

Error: "SPF Too Many DNS Lookups (PermError)"

SPF อนุญาตให้ Lookup DNS ได้ไม่เกิน 10 ครั้ง หากใช้ include: หลายอันมากเกินไปจะเกิน Limit นี้ แก้ไขโดยลบ include: ที่ไม่จำเป็นออก หรือใช้บริการ SPF Flattening เช่น dmarcian เพื่อรวม IP แบบ Flat

อีกวิธีที่เร็วกว่าคือใช้ Email Deliverability Checker ของ dnsxray.com ที่ตรวจ MX, SPF, DKIM, DMARC, MTA-STS และ BIMI พร้อมกันทั้งหมดในการค้นหาครั้งเดียว ไม่ต้องส่งอีเมลทดสอบ เห็นเลยว่า Record ตัวไหนขาดหรือตั้งผิด

Error: "DKIM Key Mismatch / Signature Verification Failed"

เกิดเมื่อ Public Key ใน DNS ไม่ตรงกับ Private Key บน Server สาเหตุที่พบบ่อยคือเพิ่ง Regenerate Key ใน cPanel แต่ยังไม่ได้อัปเดต DNS Record แก้ไขโดยไปที่ cPanel → Email Deliverability → Install แล้วอัปเดต DNS ตามที่ระบบแนะนำ

Error: "DMARC Alignment Failure"

DMARC ต้องการให้โดเมนใน From: Header ตรงกับโดเมนใน SPF หรือ DKIM ถ้าใช้บริการ Third-party เพื่อส่งอีเมล ต้องตั้งค่า SPF/DKIM ให้รองรับโดเมนนั้นด้วย

Error: "Multiple SPF Records Found"

โดเมนมี TXT Record ของ SPF มากกว่า 1 บรรทัดซึ่งผิดมาตรฐาน ควรรวม SPF ทั้งหมดไว้ใน Record เดียว เช่น v=spf1 include:A include:B ip4:1.2.3.4 ~all

Error: อีเมล Legit ตก Spam หลังเปิด DMARC p=reject

ตรวจสอบว่า Newsletter service, CRM หรือระบบอีเมลอื่นๆ ทุกตัวอยู่ใน SPF Record และ DKIM ถูกตั้งค่าแล้ว ให้เริ่มด้วย p=quarantine; pct=10 เพื่อทดสอบกับอีเมล 10% ก่อน


คำถามที่พบบ่อย

ต้องตั้งทั้ง 3 อย่างเลยไหม?

แนะนำให้ตั้งครบทั้ง 3 เพราะทำงานเสริมกัน SPF ตรวจ Server ที่ส่ง, DKIM ตรวจความสมบูรณ์ของเนื้อหา, DMARC กำหนด Policy และรับ Report ถ้าตั้งแค่ SPF อย่างเดียวก็ยังดีกว่าไม่มี แต่ไม่สมบูรณ์

DKIM Key ยาวแค่ไหนที่แนะนำ?

ปัจจุบันแนะนำ 2048-bit เป็นอย่างน้อย (บาง Server ยังใช้ 1024-bit อยู่แต่ถือว่าอ่อนแล้ว) cPanel รุ่นใหม่จะสร้าง 2048-bit ให้โดยอัตโนมัติ

ถ้าไม่ตั้งค่า SPF/DKIM/DMARC จะเกิดอะไร?

อีเมลของคุณมีโอกาสถูกทำเครื่องหมายเป็น Spam สูงขึ้นมาก นอกจากนี้ผู้ไม่หวังดีอาจส่งอีเมลปลอมโดยใช้ชื่อโดเมนของคุณ ทำให้ลูกค้าเสียความเชื่อมั่นและโดเมนติด Blacklist ได้