คำตอบสั้น ๆ: ตั้งค่า SPF, DKIM และ DMARC ให้โดเมน สำหรับอีเมลบน Plesk, DirectAdmin, Microsoft 365 และ Google Workspace และตรวจว่าผลเป็น PASS
คู่มือนี้อธิบาย DMARC ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
ถ้าอีเมลจากโดเมนของบริษัทเข้า 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 กำหนด และอย่าให้มีช่องว่างหรือขึ้นบรรทัดใหม่แทรกกลางกุญแจ