2012-03-30 22 views
8

RFCs 5321, 53226531 có các quy tắc phức tạp để xác thực địa chỉ email. Họ:Về mặt lịch sử, tại sao các RFC về địa chỉ email lại quá phức tạp?

  • phép creating comments bên trong một địa chỉ email
  • phục vụ phức tạp quy tắc hạn chế cho các ký hiệu: "() ,:;<>@[\]
  • điều trị postmaster localpart như case-insensitive nhưng tất cả khác như trường hợp nhạy cảm
  • phép groups of email addresses

Nhờ các quy tắc phức tạp này, hãy kiểm tra xem chuỗi đã cho có phải là địa chỉ email hợp lệ theo cú pháp hay không e RFC can't be performed chỉ sử dụng Cụm từ thông dụng.

Dường như nhiều quy tắc trong số này không được nhà cung cấp dịch vụ email chính hỗ trợ.

Về mặt lịch sử, động lực tạo quy tắc phức tạp cho địa chỉ email là gì? Các Wikipedia article on the origins of email dường như ngụ ý rằng các tiêu chuẩn hiện đại từ đầu những năm 1980 dự định để trang trải tất cả các hệ thống email-ish cũ với các tiêu chuẩn và cú pháp cụ thể của họ. Tuy nhiên, những người triển khai tiêu chuẩn, nhà cung cấp email và người dùng cuối email đều có quyền lợi trong hệ thống làm việc, dễ dàng đạt được hơn khi quy tắc không quá phức tạp và có thể dễ dàng truyền vào phần mềm số lượng kiểm tra, vậy tại sao hôm nay chúng ta có một tiêu chuẩn phức tạp đến mức không ai sử dụng nó ở mức độ đầy đủ?

Một lần nữa về mặt lịch sử, XML phần lớn đã được thay thế bởi JSON, thành công trong đó một phần có thể được gán cho sự đơn giản của ngữ pháp của nó.

+0

Bởi vì RFC được cho là bao gồm tất cả các trường hợp cạnh, không chỉ "nhà cung cấp chính"? – ceejayoz

+3

tôi tin rằng đây là một câu hỏi hợp lý và hợp lý nên được thảo luận tốt nhất với một nhận thức lịch sử. RFC có tên trên không phải là thủ phạm duy nhất; RFC quản lý các cách hợp lệ để sao chép địa chỉ IP cũng tương tự như vậy. Thật thú vị, trong thế giới thực, chỉ một phần nhỏ các RFC này được sử dụng tích cực — hầu như tất cả các địa chỉ email trông giống như 'name @ exxample.com' và tất cả các địa chỉ IP như' 123.234.231.132'. đã có câu hỏi này không được sớm đóng cửa, bây giờ chúng ta có thể tận hưởng một cuộc thảo luận sôi nổi về giá trị và nhược điểm và nguồn gốc lịch sử của các RFC rất phức tạp này. – flow

+0

Trong khi đây là một câu hỏi thú vị và hợp lệ (trong ý nghĩa cộng đồng phần mềm rộng hơn), nó không phù hợp với StackOverflow. – JasonMArcher

Trả lời

1

Cách chắc chắn duy nhất để xem địa chỉ email được cung cấp có phải là chính hãng hay không gửi email đến địa chỉ đó và xem liệu người dùng có nhận được nó hay không. Bài kiểm tra hữu ích nhất có thể được thực hiện trên một địa chỉ là kiểm tra xem địa chỉ email có hợp lệ về cú pháp hay không. Đó là những gì module này làm.

Hệ thống gửi thư phải có khả năng xử lý thư đi cho tất cả các địa chỉ hợp lệ. Trái với các tiêu chuẩn liên quan, một số hệ thống bị lỗi xử lý một số địa chỉ hợp pháp nhất định là không hợp lệ và không xử lý được thư đến các địa chỉ này. Ví dụ: Hotmail từ chối gửi thư đến bất kỳ địa chỉ nào có chứa các ký tự cho phép tiêu chuẩn sau:! # $% * /?^`{|} ~

Chỉ các cấp tiêu chuẩn khác nhau, trong đó một số rất nghiêm ngặt, do đó phức tạp.

+0

trong khi câu trả lời của bạn là chính xác về mặt kỹ thuật, nó không trả lời câu hỏi (đó là về cú pháp của địa chỉ email). biết rằng một địa chỉ đường phố là hoặc không phải là cú pháp chính xác là một điều, biết liệu có một tòa nhà ở chỗ đó hay không là cái gì khác. – flow

Các vấn đề liên quan