Email

ตั้งค่า SPF, DKIM และ DMARC อย่างถูกต้อง
ให้อีเมลไม่ตก Spam

อัปเดต: 9 กันยายน 2569  ·  อ่าน 12 นาที  ·  หมวด: Email

ตั้งค่า SPF DKIM DMARC ป้องกันอีเมลตก Spam

ปัญหาอีเมลตก Spam หรือถูก reject เป็นเรื่องที่ทำให้ธุรกิจเสียโอกาส ไม่ว่าจะเป็นอีเมลใบสั่งซื้อ แจ้งชำระเงิน หรือติดต่อลูกค้า ทางแก้ที่ถูกต้องและยั่งยืนคือการตั้งค่า SPF, DKIM และ DMARC ใน DNS ของโดเมนให้ครบและถูกต้อง บทความนี้จะอธิบายแต่ละระบบ พร้อมตัวอย่าง Record จริงที่นำไปใช้งานได้เลย

SPF คืออะไร ทำงานอย่างไร

SPF (Sender Policy Framework) คือมาตรฐาน DNS ที่บอกว่า IP หรือ server ไหน มีสิทธิ์ส่งอีเมลในนามโดเมนของคุณ เมื่อ mail server ปลายทางได้รับอีเมล จะ query TXT record ของโดเมนใน From/Return-Path แล้วเทียบกับ IP ที่ส่งมาจริง

ถ้า IP ที่ส่งอยู่ใน SPF Record → SPF pass | ถ้าไม่อยู่ → SPF fail/softfail ซึ่งทำให้คะแนน spam สูงขึ้น

📌 ทำไม SPF ถึงสำคัญ: ป้องกัน Email Spoofing คือการที่คนอื่นแกล้งส่งอีเมลโดยอ้างว่ามาจากโดเมนของคุณ เพื่อหลอกลวงลูกค้าหรือทำ Phishing

SPF Record ทำงานอย่างไร

  1. ผู้ส่งส่งอีเมลจาก IP 203.0.113.10 โดยอ้าง from: [email protected]
  2. Mail server ปลายทาง query DNS: yourdomain.com TXT
  3. ได้รับ SPF Record: v=spf1 ip4:203.0.113.0/24 ~all
  4. ตรวจว่า 203.0.113.10 อยู่ใน 203.0.113.0/24 → ✅ Pass

DKIM คืออะไร ทำงานอย่างไร

DKIM (DomainKeys Identified Mail) คือระบบลายเซ็นดิจิทัลสำหรับอีเมล ทำงานด้วย Public/Private Key Pair — mail server ผู้ส่งเซ็นชื่อในอีเมลด้วย Private Key, ผู้รับตรวจด้วย Public Key ที่เผยแพร่ใน DNS

ข้อดีของ DKIM คือ ตรวจสอบความสมบูรณ์ของเนื้อหาอีเมลด้วย หากอีเมลถูกแก้ไขระหว่างทาง DKIM signature จะ invalid ทันที

DKIM Header ที่แนบมากับอีเมล

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yourdomain.com;
  s=mail2026; t=1725854400;
  bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
  h=From:To:Subject:Date;
  b=signature_value_here...
Fieldความหมาย
d=โดเมนที่ออก DKIM
s=Selector ชื่อ key (ใช้ query DNS)
bh=Hash ของ body อีเมล
b=ลายเซ็นดิจิทัล

DMARC คืออะไร ทำงานอย่างไร

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

DMARC ต้องการให้ผล SPF หรือ DKIM align กับโดเมนใน From: header ด้วย ไม่ใช่แค่ผ่านอย่างใดอย่างหนึ่ง

⚠️ สำคัญ: DMARC จะทำงานได้อย่างมีประสิทธิภาพก็ต่อเมื่อตั้งค่า SPF หรือ DKIM ไว้แล้วอย่างน้อย 1 อย่าง หากไม่มีเลย DMARC จะ fail เสมอ

นโยบาย DMARC 3 ระดับ

Policyการกระทำเหมาะกับ
p=noneไม่ทำอะไร แค่รายงานเริ่มต้น monitor
p=quarantineส่งเข้า Spam/Junk folderระยะเปลี่ยนผ่าน
p=rejectปฏิเสธอีเมลทั้งหมดเต็มประสิทธิภาพ

เปรียบเทียบ SPF vs DKIM vs DMARC

ด้านSPFDKIMDMARC
ตรวจสอบอะไรIP ของ server ส่งลายเซ็น + เนื้อหานโยบาย + Alignment
ป้องกันIP SpoofingMessage tamperingDomain spoofing (From:)
ตำแหน่งใน DNSTXT record (@)TXT record (selector._domainkey)TXT record (_dmarc)
การ forwardอาจ failมักผ่านขึ้นกับ SPF/DKIM
รายงานไม่มีไม่มีมี (Aggregate + Forensic)

วิธีตั้งค่า SPF Record

SPF Record เป็น TXT Record ที่โดเมนหลัก (@) ขึ้นต้นด้วย v=spf1 เสมอ

ไวยากรณ์พื้นฐาน

v=spf1 [mechanism...] [all]

Mechanism ที่ใช้บ่อย

Mechanismความหมายตัวอย่าง
ip4:อนุญาต IPv4 / subnetip4:203.0.113.10
ip6:อนุญาต IPv6ip6:2001:db8::/32
include:ดึง SPF จากโดเมนอื่นinclude:_spf.google.com
aอนุญาต A record ของโดเมนa
mxอนุญาต MX servermx
~allSoftfail — อื่นๆ ไม่อนุญาต (แนะนำ)~all
-allHardfail — ปฏิเสธทั้งหมดที่ไม่ match-all

ตัวอย่าง SPF Record ทั่วไป

# ใช้ server mail ของตัวเองและ Google Workspace
v=spf1 mx include:_spf.google.com ~all

# ใช้ IP ตรงๆ + Gmail
v=spf1 ip4:203.0.113.10 include:_spf.google.com -all

# ใช้ AsiaGB Email
v=spf1 include:spf.asiagb.com ~all
💡 เคล็ดลับ: โดเมนมีได้แค่ 1 SPF Record เท่านั้น ถ้ามีมากกว่า 1 TXT record ที่ขึ้นต้นด้วย v=spf1 SPF จะ fail ทันที ให้รวมไว้ใน record เดียว

วิธีเพิ่ม SPF ใน DirectAdmin

  1. Login DirectAdmin → Email Manager → MX Records
  2. หรือไปที่ DNS Management → เลือกโดเมน
  3. เพิ่ม TXT Record: Name = @ หรือเว้นว่าง, Value = SPF string ของคุณ
  4. บันทึกและรอ DNS propagate 0-48 ชั่วโมง

วิธีตั้งค่า DKIM Record

DKIM ต้องการ Key Pair ที่สร้างจาก mail server คุณต้อง:

  1. สร้าง Private Key + Public Key บน mail server
  2. ตั้งค่า mail server ให้เซ็น outgoing mail ด้วย Private Key
  3. เผยแพร่ Public Key ผ่าน DNS TXT Record

รูปแบบ DKIM DNS Record

# ชื่อ Record (Name):
SELECTOR._domainkey.yourdomain.com

# ตัวอย่าง selector "mail2026":
mail2026._domainkey.yourdomain.com

# Value:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...

สร้าง DKIM Key ด้วย OpenSSL

# สร้าง Private Key (2048 bit RSA)
openssl genrsa -out dkim_private.pem 2048

# แปลง Public Key สำหรับ DNS
openssl rsa -in dkim_private.pem -pubout -out dkim_public.pem
openssl rsa -in dkim_private.pem -pubout | grep -v "PUBLIC KEY" | tr -d '\n'
📌 DKIM บน DirectAdmin: DirectAdmin รองรับ DKIM ผ่าน Email Manager → Domain Email Settings → Enable DKIM ระบบจะสร้าง key pair และตั้งค่า DNS ให้อัตโนมัติ

ตัวอย่าง DKIM Record ใน DNS

FieldValue
TypeTXT
Namemail2026._domainkey
Valuev=DKIM1; k=rsa; p=MIIBIjAN...
TTL3600

วิธีตั้งค่า DMARC Record

DMARC Record เป็น TXT Record ที่ subdomain _dmarc ของโดเมนหลัก

รูปแบบ DMARC

# ชื่อ Record:
_dmarc.yourdomain.com

# ค่าเริ่มต้น (monitor mode):
v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1

# ระดับกลาง (quarantine):
v=DMARC1; p=quarantine; pct=50; rua=mailto:[email protected]

# เต็มประสิทธิภาพ (reject):
v=DMARC1; p=reject; rua=mailto:[email protected]; adkim=s; aspf=s

Tag ใน DMARC

Tagความหมายค่าที่ใช้
p=นโยบายหลักnone / quarantine / reject
sp=นโยบาย subdomainnone / quarantine / reject
pct=% ของอีเมลที่ใช้นโยบาย0-100 (default: 100)
rua=ที่อยู่รับ Aggregate Reportmailto:email@domain
ruf=ที่อยู่รับ Forensic Reportmailto:email@domain
adkim=DKIM alignment moder (relaxed) / s (strict)
aspf=SPF alignment moder (relaxed) / s (strict)
fo=Forensic options0 / 1 / d / s

แนวทาง Rollout DMARC แบบปลอดภัย

  1. สัปดาห์ 1-2: p=none รับ Aggregate Report อ่านว่ามีอีเมลจากไหนบ้าง
  2. สัปดาห์ 3-4: p=quarantine; pct=10 เริ่มบังคับ 10%
  3. เดือน 2: p=quarantine; pct=100
  4. เดือน 3+: p=reject บังคับเต็มที่

วิธีทดสอบและตรวจสอบการตั้งค่า

หลังตั้งค่าแล้ว ควรรอ DNS propagate 24-48 ชั่วโมงก่อนทดสอบจริง

เครื่องมือทดสอบที่แนะนำ

เครื่องมือใช้ตรวจURL
MXToolBoxSPF, DKIM, DMARCmxtoolbox.com/SuperTool
mail-tester.comคะแนนรวม + spam scoremail-tester.com
DMARC AnalyzerAggregate Reportsdmarcanalyzer.com
Google Admin ToolboxDNS check ของ Googletoolbox.googleapps.com/apps/checkmx
nslookup / digตรวจ DNS localterminal

ตรวจสอบด้วย Command Line

# ตรวจ SPF
nslookup -type=TXT yourdomain.com

# ตรวจ DKIM (selector: mail2026)
nslookup -type=TXT mail2026._domainkey.yourdomain.com

# ตรวจ DMARC
nslookup -type=TXT _dmarc.yourdomain.com

# ด้วย dig
dig TXT yourdomain.com +short
dig TXT mail2026._domainkey.yourdomain.com +short
dig TXT _dmarc.yourdomain.com +short

สัญญาณว่าตั้งค่าถูกต้อง

💡 ตรวจ Header ใน Gmail: เปิดอีเมลที่ส่งจากโดเมนของคุณ → เมนู 3 จุด → Show Original → ดูที่บรรทัด Authentication-Results ควรเห็น spf=pass, dkim=pass, dmarc=pass

สรุป: Checklist ก่อน Go Live

  • ✅ ตั้งค่า SPF TXT Record ที่ @ มีแค่ 1 record
  • ✅ เปิด DKIM บน mail server + เพิ่ม Public Key ใน DNS
  • ✅ เพิ่ม DMARC Record ที่ _dmarc.yourdomain.com เริ่มด้วย p=none
  • ✅ รอ DNS propagate 24-48 ชั่วโมง
  • ✅ ทดสอบด้วย mail-tester.com และ MXToolBox
  • ✅ อ่าน DMARC Aggregate Report หลัง 1 สัปดาห์
  • ✅ ค่อยๆ เพิ่ม policy จาก none → quarantine → reject

หากต้องการ Email Hosting ที่รองรับ SPF/DKIM/DMARC พร้อม Spam Filtering ชั้นเลิศ AsiaGB Email Filtering พร้อมช่วยคุณตั้งค่าให้ถูกต้องตั้งแต่วันแรก

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

SPF, DKIM และ DMARC ต้องตั้งค่าทั้ง 3 อย่างไหม?
แนะนำอย่างยิ่งให้ตั้งครบทั้ง 3 เพราะแต่ละตัวป้องกันคนละจุด SPF ตรวจ IP ส่ง, DKIM ตรวจลายเซ็น, DMARC รวบรวมผลและออกนโยบาย ถ้ามีแค่ SPF อย่างเดียว DMARC จะไม่สามารถบังคับ reject หรือ quarantine ได้
ตั้งค่าแล้วทำไมอีเมลยังตก Spam อยู่?
สาเหตุที่พบบ่อย: DMARC policy เป็น p=none (แค่ monitor), เนื้อหาอีเมลมี keyword ต้องห้าม, IP ส่งอีเมลติด Blacklist, หรือ reputation โดเมนใหม่ยังไม่สูง ควรตรวจสอบด้วย mail-tester.com หรือ MXToolBox
DKIM key ยาวแค่ไหนถึงเพียงพอ?
ปัจจุบันแนะนำ RSA 2048 บิตขึ้นไป หรือ ED25519 ซึ่งสั้นกว่าแต่แข็งแกร่งกว่า ห้ามใช้ 512 หรือ 1024 บิตเพราะ Google และ Yahoo ปฏิเสธตั้งแต่ปี 2024
DMARC rua กับ ruf ต่างกันอย่างไร?
rua (Aggregate Report) คือรายงานสรุปรายวัน ส่งมาเป็น XML บอกว่ามีอีเมลจาก IP ไหนบ้างที่อ้างว่าส่งจากโดเมนเรา ruf (Forensic Report) คือรายงานรายฉบับเมื่อเกิดการ fail ทันที แนะนำตั้ง rua อย่างน้อยเพื่อ monitor ก่อน
ถ้าใช้ Email Hosting ของ AsiaGB ต้องตั้งค่าเองไหม?
AsiaGB Email Filtering มี SPF Record มาตรฐานให้ คุณต้องเพิ่ม SPF ใน DNS ของโดเมน, DKIM จะได้รับ key จากทีม support และ DMARC ตั้งค่าเองในระบบ DNS Hosting ของคุณได้เลย
SPF record มี include กี่ domain ได้?
SPF มีข้อจำกัด 10 DNS lookup ต่อ TXT record การใส่ include มากเกินไปทำให้เกิน limit และ SPF fail ทั้งหมด ควรรวม include ที่ไม่ใช้ออก หรือใช้บริการ SPF Flattening