ID email với dấu gạch ngang ở cuối phần cục bộ


19

Đây có phải là một email hợp lệ nếu email có dấu gạch ngang (-) ở cuối phần cục bộ của email không? Ví dụ,

an.unTHER.email-@mydomain.com

Hoặc để khái quát hóa, bất kỳ ký tự nào trong số này ( Characters !#$%&'*+-/=?^_``{|}~ (ASCII: 33, 35-39, 42, 43, 45, 47, 61, 63, 94-96, 123-126)), có thể hợp lệ ở phần cục bộ của email ở đầu và / hoặc cuối của email id không?

Google nói rằng nó không hợp lệ, vì vậy, hiện tại tôi cho rằng nó cũng không hợp lệ, mặc dù RFC chỉ loại trừ ký tự [chấm] bắt đầu bằng và / hoặc kết thúc phần cục bộ.

Lỗi GMail cho trường hợp trên

Lưu ý: Tôi không quan tâm đến phần tên miền, vì điều đó trở nên liên quan nhiều hơn do cách DNS, làm phức tạp câu hỏi và câu trả lời.

https://social.technet.microsoft.com/Forums/ie/en-US/69f393aa-d555-4f8f-bb16-c636a129fc25/what-are-valid-and-invalid-email-address-char character


Câu hỏi hay. Bạn đã xem chủ đề câu hỏi và câu trả lời Stack Overflow này chưa? Rất nhiều thông tin về nhiều thứ đã lỗi thời vào thời điểm này, nhưng vẫn là điểm khởi đầu tốt /
JakeGould

liên kết tham khảo tốt, có vẻ như google coi email đó là không hợp lệ, trong khi Microsoft không có vấn đề gì.
Jimson Kannanthara James

1
Chia sẻ điều này kể từ khi bạn đưa lên Google: Gmail bỏ qua bất kỳ khoảng thời gian nào trong địa chỉ email, vì vậy nếu email của bạn là "anunTHERemail @ gmail", bạn cũng sẽ nhận được thư được gửi đến "an.unTHER.email@gmail.com". Nó cũng bỏ qua các điểm cộng ở cuối địa chỉ email: "anunTHERemail+s Something@gmail.com".
mowwwalker

1
Trên dịch vụ thư của riêng tôi, tôi có thể cấm chữ "u" từ tên người dùng. Chỉ vì.
Đặc vụ_L

Câu trả lời:


60

Đây có phải là một email hợp lệ nếu email có dấu gạch ngang (-) ở cuối phần cục bộ của email không? [...] Google nói rằng nó không hợp lệ, vì vậy, hiện tại tôi cho rằng nó cũng không hợp lệ, mặc dù RFC chỉ loại trừ ký tự [chấm] bắt đầu bằng và / hoặc kết thúc phần cục bộ.

Nó hợp lệ. Bạn chỉ thấy Google bị từ chối vì nó thực hiện một kiểm tra hoàn toàn khác - họ có chính sách riêng về phần địa phương có thể, cũng như nhiều nhà cung cấp khác.


Google, hoặc bất kỳ ai khác, sẽ có nghĩa vụ chỉ chấp nhận tất cả các địa chỉ email hợp lệ có thể nếu biểu mẫu thực sự yêu cầu một địa chỉ email hợp lệ hiện có (có thể từ nhà cung cấp). Ví dụ: sẽ là một lỗi nếu trường Đến: / Cc: của Gmail từ chối một địa chỉ hợp lệ.

Nhưng lĩnh vực bạn nêu bật không yêu cầu bạn cho một địa chỉ email hiện có; nó yêu cầu một tên tài khoản trên các hệ thống của Google, đây sẽ là cơ sở cho một địa chỉ email chỉ khi tài khoản được tạo. Không có gì có thể cấm Google hoặc bất kỳ ai khác giới hạn nhóm tên tài khoản hợp lệ (hoặc, thực sự, ngay cả tên hộp thư) trên hệ thống của riêng họ .

Hay nói cách khác, việc xác định các ký tự được phép cho 'phần cục bộ' chỉ có nghĩa là các ứng dụng thư máy chủ SMTP phải chấp nhận các địa chỉ đó trong các tiêu đề RFC 822 và các lệnh SMTP - nhưng nó không nói gì về việc có thể tạo các hộp thư như vậy. (Thật vậy, trở lại khi các RFC email đầu tiên được viết và hầu hết các hộp thư vẫn được gắn với các tài khoản cấp hệ điều hành, tên của chúng có giới hạn tương tự hoặc thậm chí chặt chẽ hơn.)

Ví dụ, phần này của RFC 5321 (phần 4.1.2, bên dưới ABNF) nói rõ ràng rằng một máy chủ nhận được phép và thực sự nên có nhiều giới hạn chặt chẽ hơn về cách đặt tên hộp thư của chính nó:

Mặc dù định nghĩa trên cho Phần cục bộ tương đối dễ cho phép, để có khả năng tương tác tối đa, một máy chủ dự kiến ​​sẽ nhận thư NÊN tránh xác định hộp thư trong đó phần Địa phương yêu cầu (hoặc sử dụng) dạng Chuỗi trích dẫn hoặc trong trường hợp Phần cục bộ là trường hợp -sự nhạy cảm.

Vì vậy, mặc dù anunusualemail-@gmail.com giá trị về mặt cú pháp, nhưng điều đó không có nghĩa là Google phải cho phép bạn tạo nó.


6
Là một lưu ý phụ thú vị, google bỏ qua các khoảng thời gian trong địa chỉ email ( gmail.googleblog.com/2008/03/ mẹo ), cũng không được chỉ định trong RFC. Vì vậy, myname @ gmail đi đến cùng một nơi với my.name @ gmail hoặc myname @ gmail.
childofsoong

4
@JimsonKannantharaJames Nói chung, nếu bạn muốn kiểm tra xem email có hợp lệ hay không, bạn thực sự nên gửi email đến địa chỉ đó và buộc người dùng phải hành động. Bất kỳ kiểm tra nào chỉ dựa trên cú pháp của địa chỉ nên thực sự chỉ là bắt người dùng mắc lỗi chính tả.
Michael Mior

1
@grawity Oh tôi biết - Tôi đã bình luận để đưa ra một ví dụ về một điều khác không được chỉ định trong RFC nhưng được cho phép.
childofsoong

1
@ user71659 Nếu bạn không thoát đúng ký tự điều khiển khi cần thiết, bạn có vấn đề lớn hơn. Cuối cùng, email được nhập bởi người dùng và đầu vào của người dùng phải luôn được coi là nguy hiểm. Giả sử một số lĩnh vực trong cơ sở dữ liệu của bạn là an toàn vì một số quy tắc xác thực có thể khá nguy hiểm. Điều gì xảy ra khi một vài tháng sau, một người khác điền vào trường đó từ một hình thức khác không có cùng xác nhận?
Michael Mior

2
@ user71659 bạn đang nhầm lẫn hai vấn đề khác nhau và làm rối loạn đối số. MichaelMior hoàn toàn chính xác khi tuyên bố rằng để xác minh rằng một địa chỉ email tồn tại , bạn sẽ phải gửi một email đến địa chỉ đó yêu cầu hành động của người dùng.
kumarharsh

7

G Suite (chính thức là Google Apps cho Tên miền của bạn) cho phép dấu gạch ngang (dấu gạch ngang) trong địa chỉ email, ngay cả khi là ký tự cuối cùng.

Tên người dùng có thể chứa các chữ cái (az), số (0-9), dấu gạch ngang (-), dấu gạch dưới (_), dấu nháy đơn (') và dấu chấm (.).

Nguồn: Hướng dẫn tên và mật khẩu

Như bạn đã lưu ý, Gmail không cho phép dấu gạch ngang trong địa chỉ email.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.