ปัญหาอีเมลตกโฟลเดอร์ Spam เป็นเรื่องที่ธุรกิจออนไลน์ทุกรายต้องเผชิญ โดยเฉพาะเมื่อใช้อีเมล @โดเมนตัวเองในการติดต่อลูกค้าหรือส่ง Invoice หนึ่งในสาเหตุหลักที่ทำให้อีเมลถูกตีกลับหรือตกโฟลเดอร์ Junk คือการไม่มี DKIM (DomainKeys Identified Mail) ซึ่งเป็นระบบลายเซ็นดิจิทัลที่ช่วยพิสูจน์ว่าอีเมลที่ส่งออกไปนั้นมาจากเซิร์ฟเวอร์ที่ได้รับอนุญาตจากเจ้าของโดเมนจริงๆ บทความนี้จะแนะนำการตั้งค่า DKIM Key บน DirectAdmin ตั้งแต่ต้นจนจบ พร้อมขั้นตอนการเพิ่ม DNS Record และวิธีทดสอบว่า DKIM ทำงานถูกต้องหรือไม่
DKIM คืออะไร และทำงานอย่างไร
DKIM ย่อมาจาก DomainKeys Identified Mail เป็นโปรโตคอลการยืนยันตัวตนของอีเมลที่ใช้การเข้ารหัสแบบ Public-Key Cryptography หลักการทำงานคือเซิร์ฟเวอร์ผู้ส่งจะเพิ่ม Digital Signature ลงใน Header ของอีเมลทุกฉบับ โดยใช้ Private Key ที่เก็บไว้บนเซิร์ฟเวอร์อย่างปลอดภัย เมื่อเซิร์ฟเวอร์ผู้รับ เช่น Gmail หรือ Outlook ได้รับอีเมล จะค้นหา Public Key ที่เผยแพร่ไว้ใน DNS TXT Record ของโดเมนผู้ส่ง แล้วนำมาตรวจสอบว่า Signature ใน Header ตรงกันหรือไม่
กระบวนการนี้ช่วยพิสูจน์ 2 สิ่งสำคัญ ได้แก่ อีเมลฉบับนั้นมาจากโดเมนที่ระบุไว้จริง (Authentication) และเนื้อหาอีเมลไม่ถูกแก้ไขระหว่างทาง (Integrity) ซึ่งเป็นกุญแจสำคัญในการสร้าง Domain Reputation ที่ดีและทำให้อีเมลธุรกิจถึงมือลูกค้าได้อย่างมั่นใจ
ในปี 2024 Google ประกาศบังคับให้ผู้ส่งอีเมลที่ส่งมากกว่า 5,000 ฉบับต่อวันไปยัง Gmail ต้องมี DKIM ผ่านการตรวจสอบ นับเป็นสัญญาณที่ชัดเจนว่า DKIM ไม่ใช่แค่ "ตัวเลือกเพิ่มเติม" อีกต่อไป แต่เป็นมาตรฐานพื้นฐานที่ทุกธุรกิจควรตั้งค่าทันที
ความแตกต่างระหว่าง SPF, DKIM และ DMARC
มาตรฐานความปลอดภัยของอีเมลทั้งสาม (SPF, DKIM, DMARC) ทำงานร่วมกันเป็นระบบ แต่ละตัวมีบทบาทที่แตกต่างกัน การเข้าใจความแตกต่างจะช่วยให้คุณตั้งค่าได้ครบถ้วนและถูกต้อง
| มาตรฐาน | ทำงานอย่างไร | ป้องกันอะไร | ที่เก็บใน DNS |
|---|---|---|---|
| SPF | ระบุ IP ที่อนุญาตให้ส่งอีเมลในนามโดเมน | Spammers ส่งอีเมลแอบอ้างโดเมนคุณ | TXT Record @ หรือ v=spf1... |
| DKIM | เซ็นชื่ออีเมลด้วย Digital Signature ตรวจสอบได้ | การปลอมแปลงและแก้ไขเนื้อหาอีเมล | TXT Record mail._domainkey... |
| DMARC | นโยบายว่าจะทำอย่างไรเมื่อ SPF/DKIM fail | Brand impersonation, Phishing emails | TXT Record _dmarc... |
แนะนำให้ตั้งค่าทั้ง 3 มาตรฐานพร้อมกัน เริ่มจาก SPF → DKIM → DMARC ตามลำดับ เพราะ DMARC ต้องการให้ SPF หรือ DKIM (หรือทั้งคู่) ทำงานก่อน จึงจะทำงานได้อย่างมีประสิทธิภาพ
ขั้นตอนเปิดใช้งาน DKIM บน DirectAdmin
DirectAdmin มีฟีเจอร์ DKIM ในตัว สามารถเปิดใช้งานได้จากหน้า Control Panel โดยตรง โดยไม่ต้องสร้าง Key เองหรือแก้ไขไฟล์ Config ใดๆ บนเซิร์ฟเวอร์
ขั้นตอนที่ 1 — เข้าสู่ระบบ DirectAdmin
เปิดเบราว์เซอร์แล้วไปที่ URL ของ DirectAdmin Control Panel ซึ่งปกติจะอยู่ที่:
https://yourdomain.com:2222 หรือ https://server-ip:2222
ล็อกอินด้วย Username และ Password ของ Hosting Account ของคุณ (ไม่ใช่ admin level เพียงแค่ user level ก็เพียงพอ)
ขั้นตอนที่ 2 — ไปที่เมนู E-Mail Manager
จากหน้า Dashboard ของ DirectAdmin ให้มองหา Section "E-Mail Manager" → "Domain Administration" → "DKIM" หรือในบาง version ของ DirectAdmin จะมีเมนู "DKIM Keys" โดยตรงใน E-Mail Manager
ถ้าไม่เห็นเมนู DKIM โดยตรง ให้ไปที่:
E-Mail Manager → Domain Administration → DKIM
ขั้นตอนที่ 3 — สร้าง DKIM Key
ในหน้า DKIM Setup ให้เลือกโดเมนที่ต้องการตั้งค่า แล้วกดปุ่ม "Create DKIM Key" หรือ "Generate DKIM" DirectAdmin จะสร้างคู่ Key (Private + Public) ให้อัตโนมัติ ค่าเริ่มต้นจะใช้ Selector ชื่อ mail และ Key ขนาด 2048 bits
หลังจาก Generate แล้ว DirectAdmin จะแสดง Public Key ในรูปแบบ TXT Record ที่ต้องเพิ่มลงใน DNS ดังนี้:
Name: mail._domainkey.yourdomain.com
Type: TXT
Value: v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==
ค่า p= คือ Public Key ที่ยาวมาก ให้คัดลอกทั้งหมดอย่างระมัดระวัง อย่าให้ขาดหาย
ขั้นตอนที่ 4 — เพิ่ม DNS TXT Record
หากโดเมนของคุณใช้ Nameserver ของ AsiaGB Hosting DNS Zone จะถูกจัดการอยู่ใน DirectAdmin เอง DirectAdmin จะเพิ่ม DNS Record ให้อัตโนมัติทันทีที่กด Generate บางกรณีอาจต้องไปเพิ่มเองที่ DNS Management ดังนี้:
E-Mail Manager → DNS Administration → Add TXT Record Hostname: mail._domainkey TTL: 3600 Type: TXT Value: v=DKIM1; k=rsa; p=PUBLIC_KEY_HERE
หากโดเมนใช้ Nameserver ของ Registrar อื่น เช่น Cloudflare หรือ GoDaddy ให้ไปเพิ่ม TXT Record ที่แผงควบคุม DNS ของ Registrar นั้น โดยใช้ค่าเดียวกัน
เคล็ดลับ: ถ้า Public Key ยาวเกิน 255 ตัวอักษร DNS Provider บางเจ้าจะให้แบ่ง String เป็นหลายส่วน เช่น "part1" "part2" โดยใส่ quotation marks คั่น DirectAdmin จะแสดงรูปแบบที่ถูกต้องให้อัตโนมัติ แต่ถ้า Copy ไปวางเอง ต้องระวังอย่าให้ช่องว่างหรือ Line Break แทรกเข้ามาใน Key เพราะจะทำให้ Verification fail
การตั้งค่า SPF Record ควบคู่กับ DKIM
SPF (Sender Policy Framework) เป็นมาตรฐานที่ควรตั้งค่าพร้อมกับ DKIM เสมอ เพราะ DMARC ต้องการให้อย่างน้อยหนึ่งในสองผ่าน ก่อนที่จะสามารถใช้ Policy ที่เข้มงวดได้
SPF Record สำหรับ Hosting บน AsiaGB มีรูปแบบดังนี้:
Hostname: @ (หรือ yourdomain.com) Type: TXT Value: v=spf1 a mx ip4:SERVER_IP ~all
อธิบายแต่ละส่วน:
v=spf1— ระบุว่าเป็น SPF version 1a— อนุญาต IP ที่ A Record ของโดเมนชี้ถึงmx— อนุญาต IP ของ MX Server ทั้งหมดip4:SERVER_IP— อนุญาต IP เฉพาะเจาะจง (แทนด้วย IP จริงของ Hosting)~all— SoftFail สำหรับ IP ที่ไม่ได้ระบุ (แนะนำสำหรับการเริ่มต้น ปลอดภัยกว่า -all)
ถ้าส่งอีเมลผ่านหลาย Service เช่น Google Workspace, Mailchimp หรือ SendGrid ต้องเพิ่ม include ของแต่ละบริการเข้าไปด้วย:
v=spf1 a mx include:_spf.google.com include:servers.mcsv.net ip4:SERVER_IP ~all
ข้อควรระวัง: SPF Record ต้องมีเพียง 1 Record ต่อโดเมนเท่านั้น ถ้ามีมากกว่า 1 จะเกิด SPF Permanent Error ซึ่งทำให้อีเมลทุกฉบับ fail SPF ทันที
การตั้งค่า DMARC Record เบื้องต้น
หลังจาก SPF และ DKIM ทำงานได้แล้ว ขั้นต่อไปคือเพิ่ม DMARC Record เพื่อบอกเซิร์ฟเวอร์ผู้รับว่าควรทำอย่างไรเมื่ออีเมลไม่ผ่าน SPF หรือ DKIM
แนะนำให้เริ่มต้นด้วย Policy p=none เพื่อ Monitor ก่อนโดยไม่บล็อกอีเมลใดๆ ระหว่างนี้จะได้รับ Report ทางอีเมลเพื่อตรวจสอบว่ามีอีเมลที่ fail DMARC มากน้อยแค่ไหน:
Hostname: _dmarc.yourdomain.com Type: TXT Value: v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1
อธิบายแต่ละ Tag:
v=DMARC1— DMARC versionp=none— ยังไม่บล็อก แค่ Monitor (เปลี่ยนเป็นp=quarantineหรือp=rejectในภายหลัง)rua=— ส่ง Aggregate Report (สรุปรายวัน) ไปที่อีเมลนี้ruf=— ส่ง Forensic Report (รายละเอียดเมื่อเกิด Failure) ไปที่อีเมลนี้fo=1— ส่ง Forensic Report เมื่อ SPF หรือ DKIM fail อย่างใดอย่างหนึ่ง
หลังจาก Monitor ดูสักสัปดาห์และมั่นใจว่า SPF/DKIM ทำงานถูกต้องทั้งหมด ให้ค่อยๆ เข้มงวดขึ้นโดยเปลี่ยนเป็น p=quarantine (ส่งไป Spam) แล้วจึงเป็น p=reject (ปฏิเสธอีเมลที่ไม่ผ่าน) ในระยะยาว
วิธีตรวจสอบว่า DKIM ทำงานถูกต้อง
หลังเพิ่ม DNS Record แล้วควรรอ 30 นาทีถึง 1 ชั่วโมงก่อนทดสอบ (บางกรณีอาจต้องรอสูงสุด 24 ชั่วโมง ขึ้นอยู่กับ TTL ของ DNS)
วิธีที่ 1 — ใช้ dig ตรวจสอบ DNS Record
เปิด Terminal หรือ Command Prompt แล้วรัน:
dig TXT mail._domainkey.yourdomain.com # ผลที่ควรได้: mail._domainkey.yourdomain.com. 3600 IN TXT "v=DKIM1; k=rsa; p=MIIBI..."
บน Windows สามารถใช้ nslookup -type=TXT mail._domainkey.yourdomain.com แทนได้ หรือถ้าไม่สะดวกใช้ Command Line ให้เปิด เครื่องมือตรวจ DKIM Record ของ dnsxray.com ใส่ Domain กับ Selector แล้วระบบจะดึง Record มาแยกส่วนประกอบให้ดูพร้อมตรวจความถูกต้องของ Public Key ทันที
วิธีที่ 2 — ทดสอบด้วย mail-tester.com
ไปที่ mail-tester.com แล้วคัดลอก Email Address ที่แสดง จากนั้นส่งอีเมลจากบัญชี @yourdomain.com ไปยัง Address นั้น รอประมาณ 1 นาทีแล้วกด "Then check your score" ระบบจะแสดงคะแนนพร้อมรายละเอียดว่า SPF, DKIM และ DMARC ผ่านหรือไม่
วิธีที่ 3 — ตรวจจาก Gmail Header
ส่งอีเมลทดสอบไปยัง Gmail แล้วเปิดอีเมลนั้น คลิก Menu (3 จุด) แล้วเลือก "Show original" หรือ "ดูต้นฉบับ" มองหาบรรทัด:
Authentication-Results: mx.google.com; dkim=pass [email protected] header.s=mail header.b=AbCdEfGh; spf=pass (google.com: domain of [email protected] designates 1.2.3.4 as permitted sender)
ถ้าเห็น dkim=pass และ spf=pass แสดงว่าตั้งค่าถูกต้องแล้ว
ปัญหาที่พบบ่อยและวิธีแก้
แม้จะทำตามขั้นตอนครบถ้วนแล้ว บางครั้งอาจยังพบปัญหา ต่อไปนี้คือปัญหาที่เจอบ่อยที่สุดและวิธีแก้ที่ได้ผล:
- DKIM fail ทันทีหลังตั้งค่า — มักเกิดจาก DNS TTL ยังไม่หมด ให้รอ 1-24 ชั่วโมงแล้วทดสอบใหม่ ห้ามแก้ไข Key ระหว่างรอ เพราะจะ Reset เวลาใหม่
- Public Key ถูกตัดทอน — เกิดเมื่อ Copy Value มาไม่ครบ โดยเฉพาะเมื่อ Key ยาวมาก ให้ใช้ฟีเจอร์ "Copy to Clipboard" ของ DirectAdmin แทนการ Select ด้วยมือ
- TXT Record มีหลาย DKIM — ถ้าเคยสร้าง Key ไว้แล้วหลายครั้ง อาจมี Selector ซ้ำซ้อน ให้ลบ Record เก่าออกก่อนเพิ่มอันใหม่
- อีเมล Forward แล้ว DKIM fail — เป็นเรื่องปกติ เพราะ Email Forwarder แก้ไข Header ทำให้ Signature ไม่ตรง วิธีแก้คือตั้ง DMARC Policy เป็น
p=noneหรือp=quarantineแทนp=rejectเพื่อไม่ให้อีเมล Forward ถูกปฏิเสธ - Score ดีขึ้นแต่ยังตก Spam — DKIM เป็นเพียงหนึ่งในหลายปัจจัย ตรวจสอบเพิ่มเติมว่า IP ของ Server ถูก Blacklist หรือไม่ โดยใช้เครื่องมือ MXToolbox Blacklist Check
คำถามที่พบบ่อย (FAQ)
DKIM คืออะไรและทำไมถึงสำคัญสำหรับ Email Deliverability
DKIM (DomainKeys Identified Mail) คือมาตรฐานการยืนยันตัวตนของอีเมลโดยใช้ลายเซ็นดิจิทัล (Digital Signature) เซิร์ฟเวอร์ผู้ส่งจะเซ็นชื่อในอีเมลด้วย Private Key ส่วนเซิร์ฟเวอร์ผู้รับตรวจสอบด้วย Public Key ที่เก็บใน DNS เมื่ออีเมลมี DKIM ที่ผ่านการตรวจสอบ Gmail, Outlook และเซิร์ฟเวอร์อื่นๆ จะมองว่าอีเมลนั้น Legitimate มากขึ้น ลดโอกาสตกโฟลเดอร์ Spam อย่างมีนัยสำคัญ
ตั้งค่า DKIM บน DirectAdmin แล้วยังไม่ผ่าน ต้องทำอย่างไร
ปัญหาที่พบบ่อยที่สุดคือ DNS TTL ยังไม่หมดอายุ (ใช้เวลาสูงสุด 24-48 ชั่วโมง) ให้รอแล้วทดสอบซ้ำด้วย mail-tester.com หรือ dkimvalidator.com ถ้ายังไม่ผ่านหลัง 48 ชั่วโมง ให้ตรวจ TXT Record ในหน้า DNS Management ว่าค่า p= ตรงกับ Public Key ใน DirectAdmin หรือไม่ และตรวจว่า Selector ที่ใช้ในอีเมล (mail._domainkey) ตรงกับ DNS Record ที่เพิ่มไว้
ต้องตั้งค่า SPF, DKIM และ DMARC ครบทั้งสามอันไหม หรือแค่ DKIM อย่างเดียวพอ
ในปี 2024 Google และ Yahoo ประกาศบังคับให้ผู้ส่งอีเมลจำนวนมาก (Bulk Sender) ต้องมี SPF + DKIM ทั้งคู่และ DMARC อย่างน้อย p=none เพื่อให้อีเมลผ่านเข้า Inbox ได้ แม้ไม่ได้ส่ง Bulk Mail การตั้งค่าครบทั้งสามจะเพิ่ม Reputation ของโดเมนในระยะยาว และลดความเสี่ยงที่อีเมลธุรกิจสำคัญจะตก Spam โดยเฉพาะเมื่อส่งหา Gmail หรือ Outlook
DKIM Key ขนาด 1024 bits กับ 2048 bits ต่างกันอย่างไร ควรเลือกใช้อันไหน
1024-bit DKIM Key นั้นถือว่าอ่อนแอในมาตรฐานปัจจุบัน NIST และผู้เชี่ยวชาญด้านความปลอดภัยแนะนำให้ใช้ 2048-bit เป็นอย่างน้อยตั้งแต่ปี 2015 เป็นต้นมา DirectAdmin รองรับการสร้าง 2048-bit Key และ DNS TXT Record ของ DNS Provider ส่วนใหญ่รองรับ Key ขนาดนี้ได้ ข้อเสียเดียวของ 2048-bit คือ TXT Record มีขนาดใหญ่ขึ้น ซึ่งอาจต้องแบ่งเป็น multi-string ใน DNS บางระบบ แต่ DirectAdmin จัดการส่วนนี้ให้อัตโนมัติ
Email Hosting ธุรกิจ @โดเมนตัวเอง
AsiaGB Email พร้อม SPF DKIM DMARC Deliverability สูง เริ่มต้น 200 บาท/ปี
ดูแพ็กเกจ Email