Identyfikator e-mail z myślnikiem na końcu części lokalnej

19

Czy to poprawny e-mail, jeśli na końcu lokalnej części e-maila znajduje się myślnik (-)? Na przykład,

[email protected]

Czy też uogólnić, czy którykolwiek z tych znaków ( Characters !#$%&'*+-/=?^_``{|}~ (ASCII: 33, 35-39, 42, 43, 45, 47, 61, 63, 94-96, 123-126)), które są ważne, aby znajdować się w lokalnej części e-maila na początku i / lub na końcu identyfikatora e-maila?

Google twierdzi, że jest nieważny, więc na razie zakładam, że jest również nieważny, chociaż RFC wyklucza tylko znak [kropka] z rozpoczynania i / lub kończenia części lokalnej.

GMail Błąd w powyższej sprawie

Uwaga: nie przejmuję się częścią domeny, ponieważ staje się ona bardziej zaangażowana ze względu na sposób DNS, który komplikuje pytanie i odpowiedzi.

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

Jimson Kannanthara James
źródło
Dobre pytanie. Czy przejrzałeś już to pytanie dotyczące przepełnienia stosu i wątek ? Dużo informacji - w tym momencie dużo nieaktualnych - ale wciąż dobry punkt wyjścia /
JakeGould
dobry odnośnik, wydaje się, że Google traktuje ten e-mail jako nieprawidłowy, podczas gdy Microsoft nie ma żadnego problemu.
Jimson Kannanthara James
1
Udostępnianie tego od momentu uruchomienia Google: Gmail ignoruje wszelkie kropki w adresie e-mail, więc jeśli Twój adres e-mail to „[email protected]”, otrzymasz również pocztę wysłaną na adres „[email protected]”. Ignoruje również plusy na końcu adresu e-mail: „[email protected]”.
mowwwalker
1
Na mojej własnej usłudze pocztowej mogę zablokować literę „u” z nazw użytkowników. Właśnie dlatego.
Agent_L

Odpowiedzi:

60

Czy to poprawny e-mail, jeśli na końcu lokalnej części e-maila znajduje się myślnik (-)? [...] Google twierdzi, że jest nieważny, więc na razie zakładam, że jest również nieważny, chociaż RFC wyklucza tylko znak [kropka] od rozpoczęcia i / lub zakończenia części lokalnej.

Jest ważny Widzisz go tylko odrzuconego przez Google, ponieważ przeprowadza on zupełnie inną kontrolę - mają swoje własne zasady dotyczące tego, czym może być część lokalna , podobnie jak wielu innych dostawców.


Google lub ktokolwiek inny byłby zobowiązany do zaakceptowania wszystkich możliwych prawidłowych adresów e-mail, tylko jeśli formularz faktycznie prosił o istniejący, prawidłowy adres e-mail (prawdopodobnie od dostawcy). Na przykład błędem byłoby, gdyby pole Do: / DW: Gmaila odrzuciło prawidłowy adres.

Ale wyróżnione pole nie wymaga podania istniejącego adresu e-mail; prosi o podanie nazwy konta w systemach Google, która będzie podstawą adresu e-mail dopiero po utworzeniu konta. Nic nie zabraniałoby Google ani nikomu innemu ograniczania zestawu prawidłowych nazw kont (a nawet nazw skrzynek pocztowych) we własnym systemie .

Innymi słowy, zdefiniowanie dozwolonych znaków dla „części lokalnej” oznacza tylko, że serwery SMTP aplikacji pocztowych muszą akceptować takie adresy w nagłówkach RFC 822 i komendach SMTP - ale nie mówi to nic o możliwości tworzenia takich skrzynek pocztowych. (Rzeczywiście, w czasach, gdy pisano wczesne RFC e-maili, a większość skrzynek pocztowych była nadal powiązana z kontami na poziomie systemu operacyjnego, ich nazwy miały podobne lub nawet surowsze ograniczenia).

Na przykład w tej części RFC 5321 (sekcja 4.1.2, poniżej ABNF) wyraźnie stwierdzono, że host odbierający ma taką możliwość i rzeczywiście powinien mieć znacznie surowsze ograniczenia dotyczące nazw własnych skrzynek pocztowych:

Chociaż powyższa definicja części lokalnej jest względnie dopuszczalna, dla zapewnienia maksymalnej interoperacyjności host, który spodziewa się otrzymywać pocztę, POWINIEN unikać definiowania skrzynek pocztowych, w których część lokalna wymaga (lub używa) formularza ciągu cytowanego lub w przypadku części lokalnej -wrażliwy.

Chociaż [email protected] jest to poprawne składniowo, samo to nie oznacza, że ​​Google musi zezwolić na jego utworzenie.

grawitacja
źródło
6
Co ciekawe, Google ignoruje kropki w adresach e-mail ( gmail.googleblog.com/2008/03/… ), które również nie są określone w RFC. Zatem [email protected] trafia w to samo miejsce, co [email protected] lub [email protected].
childofsoong
4
@JimsonKannantharaJames Ogólnie, jeśli chcesz sprawdzić, czy e-mail jest prawidłowy, powinieneś faktycznie wysłać e-mail na ten adres i zmusić użytkownika do podjęcia działania. Wszelkie kontrole oparte tylko na składni adresu powinny naprawdę po prostu złapać użytkownika robiącego literówki.
Michael Mior
1
@grawity Oh wiem - komentowałem, aby podać przykład innej rzeczy, która nie jest określona w RFC, ale jest dozwolona.
childofsoong
1
@ user71659 Jeśli w razie potrzeby nie uciekasz poprawnie ze znaków kontrolnych, masz większy problem. Ostatecznie wiadomość e-mail została wprowadzona przez użytkownika i dane wejściowe użytkownika należy zawsze uważać za niebezpieczne. Zakładanie, że pewne pole w bazie danych jest bezpieczne, ponieważ niektóre reguły sprawdzania poprawności mogą być dość niebezpieczne. Co się stanie, gdy kilka miesięcy później ktoś inny zapełni to pole inną formą, która nie ma takiej samej weryfikacji?
Michael Mior,
2
@ user71659 łączysz dwa różne problemy i bagatelizujesz argument. MichaelMior jest całkowicie poprawne stanie, że do sprawdzenia , że adres e-mail istnieje , to będzie trzeba wysłać e-mail na ten adres, który wymaga działania użytkownika.
kumarharsh
7

G Suite (formalnie Google Apps dla Twojej domeny) zezwala na łączniki (myślniki) w adresach e-mail, nawet jako ostatni znak.

Nazwy użytkowników mogą zawierać litery (az), cyfry (0-9), myślniki (-), podkreślenia (_), apostrofy (') i kropki (.).

Źródło: wytyczne dotyczące nazwy i hasła

Jak zauważyłeś, Gmail nie zezwala na łączniki w adresach e-mail.

davidmneedham
źródło