ตั้งค่า SPF, DKIM และ DMARC เพื่อลดโอกาสอีเมลเข้า Spam
ถ้าอีเมลจากโดเมนของบริษัทเข้า Spam ของผู้รับบ่อย หรือถูกปฏิเสธโดย Gmail และ Outlook สาเหตุที่พบบ่อยที่สุดคือโดเมนยังไม่มีระบบยืนยันตัวตนผู้ส่งครบ 3 อย่าง ได้แก่ SPF, DKIM และ DMARC ทั้งสามเป็น DNS Record ที่ช่วยให้เมลเซิร์ฟเวอร์ปลายทางตรวจได้ว่าอีเมลที่อ้างว่ามาจากโดเมนของคุณ ถูกส่งมาจากระบบที่คุณอนุญาตจริง
ปัจจุบัน Gmail และ Yahoo กำหนดให้ผู้ส่งอีเมลจำนวนมากต้องมีทั้งสามอย่าง และผู้ส่งทั่วไปต้องมีอย่างน้อย SPF หรือ DKIM การตั้งค่าครบจึงแทบเป็นข้อบังคับ บทความนี้อธิบายหน้าที่ของแต่ละตัว วิธีตั้งค่าสำหรับอีเมลบน Plesk, DirectAdmin, Microsoft 365 และ Google Workspace และวิธีตรวจว่าใช้งานได้จริง
สิ่งที่ต้องเตรียม
- สิทธิ์แก้ DNS ของโดเมน ที่ผู้ให้บริการซึ่ง Name Server ของโดเมนชี้ไป (ดู ทำความรู้จัก DNS Record)
- รายชื่อทุกระบบที่ส่งอีเมลในนามโดเมนของคุณ เช่น เมลเซิร์ฟเวอร์หลัก, เว็บไซต์ที่ส่งอีเมลแจ้งเตือน, ระบบ Mail Marketing หรือระบบออกใบแจ้งหนี้
- สิทธิ์ผู้ดูแลของระบบอีเมล (Plesk, DirectAdmin, Microsoft 365 Admin หรือ Google Admin) สำหรับเปิด DKIM
SPF, DKIM และ DMARC ทำงานอย่างไร
| Record | ตรวจอะไร | อยู่ที่ชื่อ |
|---|---|---|
| SPF | IP ของเซิร์ฟเวอร์ที่ส่งอีเมลมา อยู่ในรายการที่โดเมนอนุญาตหรือไม่ | @ (TXT) |
| DKIM | ลายเซ็นดิจิทัลในหัวอีเมลตรงกับกุญแจสาธารณะใน DNS หรือไม่ และเนื้อหาถูกแก้ระหว่างทางหรือไม่ | selector._domainkey (TXT หรือ CNAME) |
| DMARC | SPF หรือ DKIM ผ่านและตรงกับโดเมนที่ผู้รับเห็นในช่อง From หรือไม่ ถ้าไม่ผ่านให้ทำอย่างไร | _dmarc (TXT) |
ขั้นตอนที่ 1: ตั้งค่า SPF
SPF เป็น TXT Record ที่ชื่อ @ ขึ้นต้นด้วย v=spf1 ตามด้วยรายการผู้ส่งที่อนุญาต และปิดท้ายด้วยนโยบาย ตัวอย่างตามผู้ให้บริการอีเมล
| อีเมลอยู่ที่ | ค่า SPF ตัวอย่าง |
|---|---|
| Plesk หรือ DirectAdmin บนเซิร์ฟเวอร์เดียวกับเว็บ | v=spf1 a mx ~all |
| Microsoft 365 | v=spf1 include:spf.protection.outlook.com -all |
| Google Workspace | v=spf1 include:_spf.google.com ~all |
| Microsoft 365 และเว็บเซิร์ฟเวอร์ที่ IP 203.0.113.10 ส่งอีเมลด้วย | v=spf1 ip4:203.0.113.10 include:spf.protection.outlook.com -all |
ความหมายของส่วนท้าย
~all(Softfail): ผู้ส่งที่ไม่อยู่ในรายการให้ถือว่าน่าสงสัย เหมาะช่วงเริ่มต้นที่ยังไม่แน่ใจว่ารวบรวมผู้ส่งครบ-all(Fail): ผู้ส่งที่ไม่อยู่ในรายการให้ถือว่าปลอม ใช้เมื่อมั่นใจว่ารายการครบแล้ว- ห้ามใช้
+allเพราะหมายถึงอนุญาตทุกเซิร์ฟเวอร์ในโลก
กฎสำคัญ
- โดเมนหนึ่งต้องมี SPF เพียง Record เดียว หากมีสอง Record ที่ขึ้นต้นด้วย
v=spf1ผลตรวจจะเป็น PermError ให้รวมเป็น Record เดียว - SPF นับการค้น DNS (เช่น
include,a,mx) ได้ไม่เกิน 10 ครั้งรวมที่ซ้อนอยู่ข้างใน หากเพิ่มincludeหลายบริการ ให้ตรวจด้วยเครื่องมือตรวจ SPF ว่าไม่เกิน
ขั้นตอนที่ 2: เปิดใช้ DKIM
DKIM ต้องเปิดที่ระบบที่ส่งอีเมล ระบบจะสร้างคู่กุญแจให้ และบอกค่าที่ต้องนำไปใส่ใน DNS ขั้นตอนต่างกันตามผู้ให้บริการ
Plesk
- ไปที่ Websites & Domains (ใน Plesk Obsidian รุ่นใหม่แสดงเป็น Domains) คลิกชื่อโดเมน แล้วเปิดแท็บ Mail และเลือก Mail Settings ตำแหน่งเมนูอาจต่างกันเล็กน้อยตามรุ่น
- ติ๊ก Use DKIM spam protection system to sign outgoing email messages แล้วกด OK
- ถ้า DNS ของโดเมนอยู่บน Plesk ระบบจะเพิ่ม TXT ที่ชื่อ
default._domainkeyให้อัตโนมัติ ถ้า DNS อยู่ที่อื่น ให้คัดลอกค่า TXT ของdefault._domainkeyจากหน้า DNS Settings ของ Plesk ไปเพิ่มที่ผู้ดูแล DNS
DirectAdmin
DKIM ใน DirectAdmin ต้องเปิดใช้โดยผู้ดูแลเซิร์ฟเวอร์ เมื่อเปิดแล้ว DirectAdmin ใช้ selector ชื่อ x ถ้า DNS อยู่บนเซิร์ฟเวอร์เดียวกัน จะมี TXT ที่ชื่อ x._domainkey ในหน้า Account Manager > DNS Management ถ้า DNS อยู่ที่อื่นให้คัดลอกค่านั้นไปเพิ่ม บางเวอร์ชันมีปุ่มเปิดหรือปิด DKIM ให้ผู้ใช้ในหน้า E-mail Manager หากไม่พบ ให้ติดต่อผู้ให้บริการ
Microsoft 365
- เข้า Microsoft Defender portal ที่
https://security.microsoft.com - ไปที่ Email & collaboration > Policies & rules > Threat policies > Email authentication settings แล้วเลือกแท็บ DKIM
- เลือกโดเมน ระบบจะแสดง CNAME Record สองรายการ ที่ชื่อ
selector1._domainkeyและselector2._domainkeyให้คัดลอกค่าจากหน้าจอไปเพิ่มที่ DNS ตามจริง (ค่าปลายทางต่างกันในแต่ละ Tenant) - รอ DNS มีผล แล้วกลับมาเปิดสวิตช์ Sign messages for this domain with DKIM signatures
Google Workspace
- เข้า Google Admin console ไปที่ Apps > Google Workspace > Gmail > Authenticate email
- เลือกโดเมน แล้วกด Generate new record ใช้ความยาวกุญแจ 2048 bit และ selector ค่าเริ่มต้น
google - เพิ่ม TXT Record ที่ชื่อ
google._domainkeyด้วยค่าที่ได้ - รอ DNS มีผล (อาจถึง 48 ชั่วโมง) แล้วกลับมากด Start authentication
หมายเหตุ: ค่า DKIM แบบ 2048 bit ยาวเกิน 255 ตัวอักษร ผู้ให้บริการ DNS บางรายต้องแบ่งเป็นหลายช่วงในเครื่องหมายคำพูด เช่น
"v=DKIM1; k=rsa; p=MIIBIj..." "...IDAQAB"ให้ทำตามรูปแบบที่ผู้ให้บริการ DNS กำหนด และอย่าให้มีช่องว่างหรือขึ้นบรรทัดใหม่แทรกกลางกุญแจ
ขั้นตอนที่ 3: ตั้งค่า DMARC
เพิ่ม TXT Record ที่ชื่อ _dmarc เริ่มด้วยนโยบายเฝ้าดูก่อน
v=DMARC1; p=none; rua=mailto:[email protected]
p=none: ยังไม่ทำอะไรกับอีเมลที่ไม่ผ่าน แต่ส่งรายงานมาให้ดูrua=mailto:...: อีเมลที่รับรายงานสรุปรายวันจากผู้รับรายใหญ่ ควรใช้กล่องจดหมายแยก เพราะรายงานมาเป็นไฟล์ XML จำนวนมาก
หลังดูรายงาน 2-4 สัปดาห์และแน่ใจว่าทุกระบบที่ส่งอีเมลในนามโดเมนผ่าน SPF หรือ DKIM แล้ว ให้ค่อย ๆ เพิ่มความเข้มงวด
v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]
v=DMARC1; p=reject; rua=mailto:[email protected]
p=quarantine ให้ผู้รับนำอีเมลที่ไม่ผ่านไปไว้ใน Spam และ p=reject ให้ปฏิเสธทันที การข้ามไปใช้ p=reject ตั้งแต่แรกอาจทำให้อีเมลจริงจากระบบที่ลืมใส่ใน SPF หายไป
ตรวจสอบผลลัพธ์
- ตรวจ Record ใน DNS
เปลี่ยนdig +short TXT example.com dig +short TXT default._domainkey.example.com dig +short TXT _dmarc.example.comdefaultเป็น selector ของระบบคุณ (x,googleหรือselector1) บน Windows ใช้nslookup -type=txt _dmarc.example.com - ส่งอีเมลจากโดเมนของคุณไปยังบัญชี Gmail เปิดอีเมลนั้น กดเมนูสามจุด แล้วเลือก Show original (แสดงต้นฉบับ) ส่วนบนจะแสดงผล SPF, DKIM และ DMARC ต้องเป็น PASS ทั้งหมด
- หรือดูหัวอีเมล (Header) บรรทัด
Authentication-Resultsต้องมีspf=pass,dkim=passและdmarc=pass
ปัญหาที่พบบ่อย
SPF ขึ้น PermError
มี SPF มากกว่าหนึ่ง Record หรือค้น DNS เกิน 10 ครั้ง ให้รวมเป็น Record เดียว และตัด include ของบริการที่เลิกใช้แล้วออก
DKIM ขึ้น fail หรือ neutral (no signature)
ถ้าไม่มีลายเซ็นเลย แปลว่ายังไม่ได้เปิด DKIM ที่ระบบส่งอีเมล ถ้ามีลายเซ็นแต่ fail มักเกิดจากค่าใน DNS ถูกตัดหรือมีช่องว่างแทรก ให้คัดลอกค่าใหม่ทั้งหมดและตรวจด้วย dig ว่าตรงกับต้นฉบับ
SPF และ DKIM ผ่าน แต่ DMARC fail
DMARC ต้องการให้โดเมนที่ผ่าน SPF หรือ DKIM ตรงกับโดเมนในช่อง From ปัญหานี้พบบ่อยกับระบบ Mail Marketing หรือเว็บไซต์ที่ส่งผ่านบริการภายนอก ซึ่งเซ็น DKIM ด้วยโดเมนของบริการเอง ให้ตั้งค่า Custom Domain หรือ DKIM สำหรับโดเมนของคุณในระบบนั้น สำหรับ WordPress ดูเพิ่มเติมที่ ตั้งค่า WordPress ให้ส่งอีเมลผ่าน SMTP
ตั้งค่าครบแล้วยังเข้า Spam
SPF, DKIM และ DMARC เป็นเงื่อนไขพื้นฐาน ไม่ได้รับประกันว่าจะเข้า Inbox ให้ตรวจเพิ่มว่า IP ผู้ส่งติด Blacklist หรือไม่ IP ของเมลเซิร์ฟเวอร์มี Reverse DNS (PTR) ตรงกับชื่อเซิร์ฟเวอร์หรือไม่ และเนื้อหาอีเมลมีลักษณะเป็น Spam หรือไม่ ดูแนวทางตรวจสอบเพิ่มเติมที่ อีเมลส่งไม่ออกหรือไม่ได้รับ: วิธีตรวจสอบเบื้องต้น
หากต้องการให้ช่วยตรวจค่า SPF, DKIM และ DMARC ของโดเมน ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ พร้อมแจ้งชื่อโดเมนและระบบที่ใช้ส่งอีเมล
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


