เชิงเทคนิค · คำตอบพร้อมแหล่งอ้างอิง
วิธียืนยันที่อยู่อีเมลโดยไม่ต้องส่งอีเมล
คุณยืนยันที่อยู่อีเมลโดยไม่ต้องส่งอีเมลได้ด้วยการทำตามลำดับ ได้แก่ ตรวจสอบไวยากรณ์ ค้นหาเรคคอร์ด DNS และทำ SMTP protocol handshake กระบวนการนี้ตรวจสอบว่ารูปแบบอีเมลถูกต้องและเซิร์ฟเวอร์ปลายทางตั้งค่าให้รับอีเมลของโดเมนนั้นหรือไม่ โดยไม่ต้องส่งข้อความจริง
การตรวจสอบไวยากรณ์
ขั้นแรกคือตรวจสอบสตริงอีเมลตามมาตรฐาน RFC 5322 เพื่อให้แน่ใจว่าที่อยู่มี local part เครื่องหมาย @ และส่วนโดเมนที่ถูกต้อง โดยทั่วไปใช้ regular expression จับการพิมพ์ผิดทั่วไป อักขระต้องห้าม และรูปแบบที่ไม่ถูกต้อง ก่อนส่งคำขอเครือข่ายใด ๆ
การตรวจสอบเรคคอร์ด DNS
เมื่อยืนยันไวยากรณ์แล้ว คุณต้องตรวจสอบว่าโดเมนมีเรคคอร์ด Mail Exchanger (MX) ที่ใช้งานได้ การสอบถาม DNS ของโดเมนควรคืนเรคคอร์ด MX อย่างน้อยหนึ่งรายการ หากไม่มีเรคคอร์ด MX โดเมนนั้นรับอีเมลไม่ได้ คุณใช้เครื่องมืออย่างเครื่องมือฟรีของ SendHQ ตรวจสอบการตั้งค่า DNS และยืนยันว่าโดเมนใช้งานอยู่ได้
กระบวนการ SMTP Handshake
วิธีทางเทคนิคสำหรับการยืนยันคือเริ่มการเชื่อมต่อ SMTP ไปยังเซิร์ฟเวอร์ MX ไคลเอนต์ส่งคำสั่ง HELO ตามด้วย MAIL FROM และ RCPT TO หากเซิร์ฟเวอร์ตอบ 250 OK ต่อคำสั่ง RCPT TO เซิร์ฟเวอร์ถือว่าที่อยู่นั้นถูกต้อง จากนั้นการเชื่อมต่อจะสิ้นสุดด้วยคำสั่ง QUIT ก่อนส่งคำสั่ง DATA
การรับมือข้อจำกัดของเซิร์ฟเวอร์
เซิร์ฟเวอร์เมลสมัยใหม่จำนวนมากใช้การตั้งค่า catch all หรือ graylisting เพื่อป้องกันการยืนยัน เซิร์ฟเวอร์ catch all รับอีเมลทั้งหมดของโดเมนไม่ว่า local part จะเป็นอะไร ส่วน graylisting ปฏิเสธความพยายามครั้งแรกชั่วคราว โดยให้ผู้ส่งลองใหม่ภายหลัง ซึ่งอาจทำให้สคริปต์ยืนยันแบบเรียลไทม์ซับซ้อนขึ้น
ข้อควรพิจารณาในการนำไปใช้
เมื่อนำการตรวจสอบเหล่านี้ไปใช้ ให้แน่ใจว่า IP ผู้ส่งของคุณมีชื่อเสียงที่ดีและมี reverse DNS ที่เหมาะสม SMTP handshake บ่อยครั้งโดยไม่ส่งอีเมลอาจถูกเซิร์ฟเวอร์ปลายทางมองว่าเป็นพฤติกรรมน่าสงสัย อาจนำไปสู่การที่ IP ของคุณถูกบล็อกหรือจำกัดความเร็วโดยตัวกรองความปลอดภัย
คำถามที่ทีมมักถาม
การตรวจสอบ SMTP รับประกันการส่งถึงหรือไม่
ไม่ เพียงยืนยันว่าเซิร์ฟเวอร์ยอมรับคำสั่ง RCPT TO เท่านั้น ไม่รับประกันว่าข้อความจะผ่านตัวกรองสแปมหรือถึงกล่องจดหมาย
ที่อยู่อีเมลแบบ catch all คืออะไร
Catch all คือการตั้งค่าเซิร์ฟเวอร์ที่รับอีเมลทุกฉบับที่ส่งถึงโดเมน แม้ local part นั้นจะไม่มีอยู่จริง
ใช้ API ทั่วไปสำหรับงานนี้ได้หรือไม่
ได้ บริการตรวจสอบอีเมลจำนวนมากทำกระบวนการตรวจสอบไวยากรณ์ DNS และ SMTP handshake โดยอัตโนมัติผ่าน REST API
ทำไมบางเซิร์ฟเวอร์จึงปฏิเสธการตรวจสอบ SMTP
เซิร์ฟเวอร์อาจปฏิเสธการตรวจสอบเหล่านี้เพื่อป้องกัน directory harvest attack ซึ่งบอตพยายามหาผู้ใช้ที่มีอยู่จริงด้วยการเดาที่อยู่