Tôi đang tự hỏi mọi người nên xác nhận địa chỉ email đến mức nào. Lĩnh vực của tôi chủ yếu là phát triển web, nhưng điều này áp dụng ở bất cứ đâu.
Tôi đã thấy một vài cách tiếp cận:
- chỉ cần kiểm tra xem có hiện tại "@" không, điều này thật đơn giản nhưng tất nhiên là không đáng tin cậy.
- một bài kiểm tra regex phức tạp hơn cho các định dạng e-mail tiêu chuẩn
- một regex đầy đủ chống lại RFC 2822 - vấn đề với điều này là thường địa chỉ email có thể hợp lệ nhưng có lẽ đó không phải là ý của người dùng
- Xác thực DNS
- Xác thực SMTP
Như nhiều người có thể biết (nhưng nhiều người không biết), địa chỉ email có thể có nhiều biến thể lạ mà hầu hết mọi người thường không xem xét (xem RFC 2822 3.4.1 ), nhưng bạn phải suy nghĩ về các mục tiêu của xác thực của bạn: bạn chỉ đang cố gắng đảm bảo rằng một tin nhắn e-mail có thể được gửi đến một địa chỉ, hoặc đó là những gì người dùng có thể muốn đưa vào (rất khó xảy ra trong nhiều trường hợp khó hiểu hơn 'hợp lệ 'Địa chỉ).
Một tùy chọn tôi đã xem xét chỉ đơn giản là đưa ra cảnh báo với một địa chỉ bí truyền hơn nhưng vẫn cho phép yêu cầu được thực hiện, nhưng điều này làm tăng thêm sự phức tạp cho một biểu mẫu và hầu hết người dùng có thể bị nhầm lẫn.
Mặc dù xác thực DNS / xác thực SMTP có vẻ như không có trí tuệ, tôi thấy trước các vấn đề trong đó máy chủ DNS / máy chủ SMTP tạm thời ngừng hoạt động và người dùng không thể đăng ký ở đâu đó hoặc máy chủ SMTP của người dùng không hỗ trợ các tính năng cần thiết.
Làm thế nào một số nhà phát triển có kinh nghiệm ở đây xử lý điều này? Có cách tiếp cận nào khác ngoài những cách tôi đã liệt kê không?
Chỉnh sửa: Tôi hoàn toàn quên mất điều rõ ràng nhất trong tất cả, gửi e-mail xác nhận! Cảm ơn người trả lời đã chỉ ra rằng một trong những. Vâng, điều này là khá dễ dàng, nhưng nó đòi hỏi thêm rắc rối về phía tất cả mọi người liên quan. Người dùng phải tìm nạp một số e-mail và nhà phát triển cần nhớ dữ liệu người dùng trước khi chúng được xác nhận là hợp lệ.