Email Authentication คืออะไร และทำไมต้องสำคัญ?
เมื่อธุรกิจส่งอีเมลหา client หรือส่ง newsletter ปัญหาที่พบบ่อยที่สุดคืออีเมลตกไปอยู่ใน Spam folder หรือถูก bounce กลับมา สาเหตุหลักมักมาจากการไม่ได้ตั้งค่า Email Authentication ให้ครบถ้วน
Email Authentication คือมาตรฐาน DNS ที่ช่วยให้ mail server ปลายทางยืนยันได้ว่าอีเมลที่ได้รับนั้นมาจากโดเมนจริงๆ ไม่ใช่การปลอมแปลง ประกอบด้วย 3 มาตรฐานหลัก:
- SPF (Sender Policy Framework) — ระบุว่า mail server ใดบ้างส่งอีเมลในนามโดเมนได้
- DKIM (DomainKeys Identified Mail) — ลงลายเซ็นดิจิทัลในอีเมลเพื่อยืนยันความสมบูรณ์
- DMARC (Domain-based Message Authentication, Reporting & Conformance) — กำหนด policy และรับรายงาน
ขั้นตอนที่ 1: ตั้งค่า SPF Record
SPF Record คือ DNS TXT Record ที่บอกว่า mail server IP ใดบ้างที่ได้รับอนุญาตให้ส่งอีเมลในนามโดเมนของคุณ
รูปแบบ SPF Record
v=spf1 [mechanisms] [all]
Mechanisms ที่ใช้บ่อย:
| Mechanism | ความหมาย | ตัวอย่าง |
|---|---|---|
ip4: | อนุญาต IPv4 address | ip4:203.0.113.10 |
ip6: | อนุญาต IPv6 address | ip6:2001:db8::1 |
include: | รวม SPF ของโดเมนอื่น | include:_spf.google.com |
a | อนุญาต IP จาก A record | a:mail.example.com |
mx | อนุญาต IP จาก MX record | mx |
~all | Softfail อื่นๆ (แนะนำ) | ~all |
-all | Reject อื่นๆ (เข้มงวด) | -all |
ตัวอย่าง SPF สำหรับโฮสติ้ง AsiaGB
v=spf1 mx include:spf.asiagb.com ~all
1 วิธีเพิ่ม SPF ใน DNS
- เข้า DirectAdmin → DNS Management
- เพิ่ม TXT Record ที่ชื่อ
@(หรือโดเมนหลัก) - ใส่ค่า SPF ในช่อง Value
- บันทึกและรอ DNS propagation 24-48 ชั่วโมง
ขั้นตอนที่ 2: ตั้งค่า DKIM
DKIM ใช้ระบบ Public/Private Key Cryptography เพื่อลงลายเซ็นดิจิทัลในอีเมลทุกฉบับที่ส่งออก ทำให้ผู้รับยืนยันได้ว่าเนื้อหาไม่ถูกแก้ไขระหว่างส่ง
วิธี Generate DKIM Key
ใน DirectAdmin: ไปที่ Email → DKIM Keys → Generate หรือตรวจสอบว่าเปิดใช้งานแล้ว
สำหรับเซิร์ฟเวอร์ที่ใช้ Exim:
# ตรวจสอบ DKIM key ที่มีอยู่
ls /etc/exim4/dkim/
# สร้าง key ใหม่ (2048-bit แนะนำ)
openssl genrsa -out /etc/exim4/dkim/example.com.key 2048
openssl rsa -in /etc/exim4/dkim/example.com.key -pubout -out /etc/exim4/dkim/example.com.pub
รูปแบบ DKIM DNS Record
เพิ่ม TXT Record ชื่อ mail._domainkey.yourdomain.com (selector ทั่วไปคือ mail):
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
-----BEGIN PUBLIC KEY----- และ -----END PUBLIC KEY----- ออก และรวมเป็นบรรทัดเดียว
ขั้นตอนที่ 3: ตั้งค่า DMARC
DMARC กำหนดว่าจะทำอะไรกับอีเมลที่ไม่ผ่าน SPF หรือ DKIM และรับรายงานไปยัง email ที่กำหนด
รูปแบบ DMARC Record
เพิ่ม TXT Record ชื่อ _dmarc.yourdomain.com:
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1; pct=100
| Parameter | ความหมาย | ค่าแนะนำ |
|---|---|---|
p= | Policy สำหรับอีเมล fail | none → quarantine → reject |
rua= | รับรายงาน Aggregate | mailto:[email protected] |
ruf= | รับรายงาน Forensic | mailto:[email protected] |
fo= | Failure report options | 1 (report on any failure) |
pct= | เปอร์เซ็นต์อีเมลที่ใช้ policy | 100 |
sp= | Policy สำหรับ subdomain | none หรือ reject |
Strategy การ Rollout ที่แนะนำ
3 ขั้นตอนสู่ DMARC เต็มรูปแบบ
เดือนที่ 1: p=none — เก็บข้อมูลโดยไม่บล็อกอะไร
เดือนที่ 2-3: p=quarantine; pct=25 — ทดสอบกับ 25% ก่อน
เดือนที่ 4+: p=reject; pct=100 — บล็อกอีเมลปลอมทั้งหมด
ตัวอย่าง DNS Records ครบชุด
ตัวอย่างสำหรับโดเมน example.com ที่ใช้ AsiaGB Hosting:
| ชื่อ Record | ประเภท | ค่า |
|---|---|---|
@ | TXT | v=spf1 mx include:spf.asiagb.com ~all |
mail._domainkey | TXT | v=DKIM1; k=rsa; p=[public-key] |
_dmarc | TXT | v=DMARC1; p=none; rua=mailto:[email protected] |
วิธีทดสอบและยืนยันการตั้งค่า
เครื่องมือทดสอบฟรีที่แนะนำ
- MXToolbox — ทดสอบ SPF, DKIM, DMARC ได้ในที่เดียว
- mail-tester.com — ส่งอีเมลทดสอบแล้วดูคะแนน
- Google Postmaster Tools — ดู deliverability สำหรับ Gmail
- DMARC Analyzer — วิเคราะห์ DMARC reports
ทดสอบด้วย Command Line
# ตรวจสอบ SPF
dig TXT yourdomain.com | grep "v=spf1"
# ตรวจสอบ DKIM
dig TXT mail._domainkey.yourdomain.com
# ตรวจสอบ DMARC
dig TXT _dmarc.yourdomain.com
แก้ปัญหาที่พบบ่อย
อีเมลยังตก Spam แม้ตั้งค่าแล้ว
- ตรวจสอบว่า SPF lookup ไม่เกิน 10 ครั้ง (DNS lookup limit)
- ยืนยันว่า DKIM key ใน DNS ตรงกับ private key บน server
- ตรวจสอบ Blacklist ด้วย MXToolbox Blacklist Check
DMARC Fail แม้ SPF และ DKIM ผ่าน
DMARC ต้องการ Alignment — domain ใน From: header ต้องตรงหรือ align กับโดเมนที่ใช้ SPF หรือ DKIM ถ้าใช้ email forwarding อาจทำให้ alignment fail
ค่า p=reject ทำให้อีเมล forward ไม่ได้
เป็นเรื่องปกติ เพราะ email forwarding จะทำให้ IP ที่ส่งไม่ตรงกับ SPF ทางเลือกคือใช้ Subdomain Delegation หรือ ARC (Authenticated Received Chain)
Best Practices สำหรับ Email Authentication
- ใช้ DKIM key ขนาด 2048-bit ขึ้นไป (1024-bit ถือว่า weak แล้ว)
- Rotate DKIM key ทุก 6-12 เดือน
- ตั้ง DMARC ด้วย
p=noneก่อน monitor 2-4 สัปดาห์ - ตรวจสอบ DMARC reports สม่ำเสมอเพื่อหา unauthorized sender
- อย่าใช้
+allใน SPF เด็ดขาด (อนุญาตทุกคนส่งในนามโดเมน) - Subdomain ที่ไม่ได้ใช้ email ให้ตั้ง
v=spf1 -allและp=reject
เริ่มต้น Hosting พร้อม Email ที่น่าเชื่อถือ
AsiaGB Hosting รองรับการตั้งค่า SPF, DKIM และ DMARC ผ่าน DirectAdmin ครบครัน พร้อม SSD storage และ uptime 99%
ดูแพ็กเกจ Hostingคำถามที่พบบ่อย (FAQ)
- SPF คืออะไร?
- SPF (Sender Policy Framework) คือ DNS Record ประเภท TXT ที่ระบุว่า mail server ใดบ้างที่ได้รับอนุญาตให้ส่งอีเมลในนามโดเมนของคุณ ป้องกันการปลอมแปลง From address
- DKIM ต่างจาก SPF อย่างไร?
- DKIM ใช้การเข้ารหัสแบบ Public/Private Key เพื่อลงลายเซ็นดิจิทัลในอีเมล ทำให้ผู้รับยืนยันได้ว่าอีเมลไม่ถูกแก้ไขระหว่างส่ง ในขณะที่ SPF แค่ตรวจสอบว่า server ส่งจากที่ที่อนุญาตหรือไม่
- DMARC คืออะไรและทำไมต้องใช้?
- DMARC (Domain-based Message Authentication, Reporting, and Conformance) คือ policy ที่กำหนดว่าจะทำอย่างไรกับอีเมลที่ไม่ผ่าน SPF หรือ DKIM พร้อมระบบรายงานผลที่ช่วยให้คุณรู้ว่าใครกำลังส่งอีเมลในนามโดเมนคุณ
- ตั้งค่าแล้วต้องรอนานแค่ไหนถึงจะมีผล?
- DNS propagation ปกติใช้เวลา 24-48 ชั่วโมง แต่มักเร็วกว่านั้น คุณสามารถทดสอบได้ทันทีหลังตั้งค่าด้วย MXToolbox หรือ mail-tester.com
- ถ้าตั้งค่าผิดจะเกิดอะไรขึ้น?
- ถ้า SPF ผิดอีเมลอาจไม่ถูกส่ง ถ้า DKIM ผิดอีเมลอาจถูกมองว่า spam ดังนั้นแนะนำให้เริ่มด้วย DMARC policy=none ก่อน แล้วค่อย monitor ก่อนเปลี่ยนเป็น quarantine หรือ reject