เชิงเทคนิค · คำตอบพร้อมแหล่งอ้างอิง
วิธีตรวจสอบว่าโดเมนอีเมลถูกต้องหรือไม่
หากต้องการตรวจสอบว่าโดเมนอีเมลถูกต้องหรือไม่ ให้ค้นหา DNS สำหรับเรคคอร์ด Mail Exchanger (MX) เพื่อยืนยันว่าโดเมนตั้งค่ารับอีเมล โดเมนถือว่าใช้กับอีเมลได้หากมีเรคคอร์ด MX ที่ใช้งานอยู่อย่างน้อยหนึ่งรายการชี้ไปยังเมลเซิร์ฟเวอร์ หากไม่มีเรคคอร์ด MX โดเมนจะรับอีเมลไม่ได้ เว้นแต่จะ fallback ไปที่เรคคอร์ด A ซึ่งพบไม่บ่อยในการตั้งค่าสมัยใหม่
การตรวจสอบ Syntax
ขั้นแรกคือตรวจว่าโดเมนเป็นไปตามมาตรฐาน RFC 5322 ส่วนโดเมนของที่อยู่อีเมลต้องมี top level domain และเป็นไปตามกฎอักขระเฉพาะ ใช้ regular expression เพื่อให้แน่ใจว่าไม่มีอักขระต้องห้ามหรือจุดติดกันก่อนส่งคำขอผ่านเครือข่าย ช่วยป้องกันการค้นหา DNS ที่ไม่จำเป็นกับสตริงที่รูปแบบผิดอย่างชัดเจน
การค้นหาเรคคอร์ด MX
ค้นหา DNS เพื่อหาเรคคอร์ด MX ของโดเมน เรคคอร์ด MX ระบุเมลเซิร์ฟเวอร์ที่รับผิดชอบรับข้อความอีเมลแทนโดเมน หากการค้นหา DNS ได้เรคคอร์ด MX ที่ถูกต้องอย่างน้อยหนึ่งรายการ โดเมนก็สามารถรับเมลได้ในเชิงเทคนิค ใช้เครื่องมืออย่าง dig หรือ nslookup ตรวจสอบด้วยตนเองได้ ส่วนไลบรารีโปรแกรมมิงมีเมธอดแบบ asynchronous สำหรับตรวจสอบจำนวนมาก
Fallback ไปที่เรคคอร์ด A
ตามมาตรฐาน SMTP หากไม่มีเรคคอร์ด MX เซิร์ฟเวอร์ผู้ส่งอาจพยายามส่งเมลไปยังที่อยู่ IP ที่ระบุในเรคคอร์ด A ของโดเมน แม้เป็นพฤติกรรมแบบเก่า แต่การตรวจหาเรคคอร์ด A ก็ให้การตรวจสอบอีกชั้น อย่างไรก็ตาม การไม่มีทั้งเรคคอร์ด MX และ A ยืนยันว่าโดเมนใช้ส่งอีเมลไม่ได้
เครื่องมือตรวจสอบ
สำหรับนักพัฒนาที่ทำในระดับใหญ่ การใช้บริการตรวจสอบเฉพาะทางมีประสิทธิภาพกว่าการจัดการคำขอ DNS ดิบเอง SendHQ มีเครื่องมือฟรีที่ https://sendhq.cc/tools ช่วยตรวจสอบการตั้งค่าโดเมน เครื่องมือเหล่านี้ทำขั้นตอนการค้นหาโดยอัตโนมัติและตรวจหาการตั้งค่าผิดที่พบบ่อยซึ่งอาจทำให้การส่งล้มเหลว
การจัดการความล้มเหลวของ DNS
แยกแยะระหว่างการตอบ NXDOMAIN กับ timeout การตอบ NXDOMAIN ระบุชัดเจนว่าโดเมนไม่มีอยู่ ส่วน timeout หรือ SERVFAIL อาจบ่งชี้ปัญหา DNS ชั่วคราวหรือไฟร์วอลล์ที่เข้มงวด ควรใช้ตรรกะลองใหม่แบบ exponential backoff กับข้อผิดพลาดที่ไม่ชัดเจน เพื่อไม่ให้ทำเครื่องหมายโดเมนที่ถูกต้องว่าไม่ถูกต้องระหว่างเครือข่ายขัดข้องชั่วคราว
คำถามที่ทีมมักถาม
เรคคอร์ด MX ที่ถูกต้องรับประกันว่ามีที่อยู่อีเมลนั้นอยู่จริงหรือไม่
ไม่ เรคคอร์ด MX ยืนยันเพียงว่าโดเมนรับเมลได้ ไม่ได้ยืนยันว่ามีกล่องจดหมายหรือผู้ใช้เฉพาะรายอยู่บนเซิร์ฟเวอร์นั้น
โดเมนถูกต้องได้หรือไม่หากไม่มีเรคคอร์ด MX
ได้ หากโดเมนมีเรคคอร์ด A เซิร์ฟเวอร์ SMTP บางตัวจะพยายามส่งไปยัง IP นั้น แม้ไม่ใช่แนวปฏิบัติมาตรฐานของเมลสมัยใหม่
การตรวจสอบโดเมนกับการตรวจสอบอีเมลต่างกันอย่างไร
การตรวจสอบโดเมนดูว่าโดเมนตั้งค่ารับเมลหรือไม่ ส่วนการตรวจสอบอีเมลดู syntax ของที่อยู่เฉพาะและสถานะของโดเมน
แหล่งข้อมูลหลัก
- ข้อกำหนด RFC 5321: Simple Mail Transfer Protocol — RFC Editor
- ข้อกำหนด RFC 5322: Internet Message Format — RFC Editor
- เอกสาร Cloudflare DNS — Cloudflare