AFAIK, cách duy nhất tốt để xác nhận một e-mail là để gửi một e-mail và xem nếu người dùng đi quay lại trang web bằng cách sử dụng một liên kết trong e-mail này. Đó là những gì nhiều trang web làm.
Khi bạn chỉ ra với liên kết đến regex khổng lồ nổi tiếng, xác nhận tất cả các dạng địa chỉ e-mail là khó, gần như không thể. Nó rất dễ dàng để làm điều đó sai, ngay cả đối với e-mail phong cách tầm thường (tôi tìm thấy quá nhiều trang web từ chối mũ trong địa chỉ e-mail! Và hầu hết các regex cũ từ chối TLDs của hơn 4 chữ cái!).
AFAIK, "Jean-Luc B. O'Grady" @ example.com và e = mc^2 @ [82.128.45.117] đều là địa chỉ hợp lệ ... Trong khi I-Made-It-Up @ Absurd- Domain-Name.info có thể không hợp lệ. Vì vậy, bằng cách nào đó, tôi sẽ chỉ kiểm tra xem chúng tôi có gì đó, một cái gì đó độc đáo, cái gì khác, và đi với nó: nó sẽ bắt hầu hết các lỗi của người dùng (như trường trống hoặc tên người dùng thay vì địa chỉ e-mail.).
Nếu người dùng muốn cung cấp một địa chỉ giả mạo, nó sẽ chỉ cung cấp cho một cái gì đó ngẫu nhiên tìm kiếm chính xác ([email protected] hoặc [email protected]). Và không có trình xác nhận nào sẽ bắt lỗi chính tả ([email protected] thay vì [email protected]).
Nếu thực sự muốn xác thực e-mail chống lại RFC đầy đủ, tôi khuyên bạn nên sử dụng các regex để chia nhỏ xung quanh @, sau đó kiểm tra tên và tên miền riêng biệt. Trường hợp riêng biệt của tên địa phương bắt đầu bằng "từ các trường hợp khác, v.v. Tách biệt tên miền bắt đầu bằng [từ các trường hợp khác, v.v. Phân tách vấn đề trong các miền cụ thể nhỏ hơn và chỉ sử dụng các regex trên một trường hợp được xác định rõ ràng, đơn giản hơn.
tư vấn có thể được áp dụng cho nhiều mục đích sử dụng regex, tất nhiên ...
chúng ta có đang nói e-mail hoặc địa chỉ email không? – Sietse
Tôi có nghĩa là địa chỉ email. Tôi đã sửa lại câu hỏi của mình để phản ánh điều đó. Cảm ơn – MrValdez