ฉันสงสัยว่าผู้คนควรตรวจสอบที่อยู่อีเมลได้ไกลแค่ไหน ฟิลด์ของฉันคือการพัฒนาเว็บเป็นหลัก แต่สิ่งนี้ใช้ได้กับทุกที่
ฉันเห็นบางแนวทางแล้ว:
- เพียงตรวจสอบว่ามี "@" อยู่ซึ่งตายง่าย แต่แน่นอนว่าไม่น่าเชื่อถือ
- การทดสอบ regex ที่ซับซ้อนมากขึ้นสำหรับรูปแบบอีเมลมาตรฐาน
- regex เต็มรูปแบบกับRFC 2822 - มีปัญหากับเรื่องนี้ก็คือมักจะเป็นอีเมลอาจจะถูกต้อง แต่มันอาจจะไม่ได้เป็นสิ่งที่ผู้ใช้มีความหมาย
- การตรวจสอบ DNS
- การตรวจสอบ SMTP
ตามที่หลายคนอาจรู้ (แต่หลายคนไม่เข้าใจ) ที่อยู่อีเมลอาจมีการเปลี่ยนแปลงที่แปลกประหลาดมากมายที่คนส่วนใหญ่มักจะไม่พิจารณา (ดูRFC 2822 3.4.1 ) แต่คุณต้องคิดถึงเป้าหมายของ การตรวจสอบของคุณ: คุณเพียงแค่พยายามทำให้แน่ใจว่าข้อความอีเมลสามารถส่งไปยังที่อยู่หรือว่าเป็นสิ่งที่ผู้ใช้อาจจะใส่ (ซึ่งไม่น่าจะเป็นในกรณีที่คลุมเครือมากขึ้น) ที่อยู่ ')
ตัวเลือกที่ฉันพิจารณาคือเพียงแค่ให้คำเตือนด้วยที่อยู่ที่ลึกลับ แต่ก็ยังอนุญาตให้ดำเนินการตามคำขอได้ แต่สิ่งนี้จะเพิ่มความซับซ้อนให้กับฟอร์มและผู้ใช้ส่วนใหญ่มีแนวโน้มที่จะสับสน
ในขณะที่การตรวจสอบความถูกต้อง DNS / การตรวจสอบ SMTP ดูเหมือนไม่มีปัญหา แต่ฉันพบปัญหาที่เซิร์ฟเวอร์ DNS / เซิร์ฟเวอร์ SMTP หยุดทำงานชั่วคราวและผู้ใช้ไม่สามารถลงทะเบียนที่ไหนสักแห่งหรือเซิร์ฟเวอร์ SMTP ของผู้ใช้ไม่รองรับคุณสมบัติที่จำเป็น
นักพัฒนาที่มีประสบการณ์บางคนอาจจัดการกับสิ่งนี้ได้อย่างไร มีวิธีอื่นนอกเหนือจากวิธีที่ฉันได้ระบุไว้หรือไม่?
แก้ไข: ฉันลืมสิ่งที่ชัดเจนที่สุดโดยสิ้นเชิงแล้วส่งอีเมลยืนยัน! ขอบคุณผู้ตอบที่ชี้ให้เห็นว่า ใช่ตัวนี้ค่อนข้างจะเข้าใจผิดได้ แต่ก็ต้องมีความยุ่งยากเป็นพิเศษในส่วนของทุกคนที่เกี่ยวข้อง ผู้ใช้จะต้องดึงอีเมลบางส่วนและนักพัฒนาจำเป็นต้องจำข้อมูลผู้ใช้ก่อนที่พวกเขาจะได้รับการยืนยันว่าถูกต้อง