Czy rozróżnia się wielkość liter na adresach e-mail?

Czytałem, że standardowo pierwsza część wiadomości e-mail uwzględnia wielkość liter, jednak próbowałem wysłać e-mail do [email protected], [email protected] i [email protected] - przybył w każdym przypadku.

Jak Serwery Pocztowe obsługują nazwy użytkowników? Czy można przegapić sprawę i ta wiadomość nie zostanie dostarczona? Czy naprawdę bardzo ważne jest, aby używać dokładnie tej samej litery, jaką napisano podczas rejestracji przy podawaniu adresu e-mail?

 229
Author: Luke Girvin, 2012-03-21

6 answers

Z RFC 5321, sekcja-2.3.11:

Standardowa konwencja nazewnictwa skrzynek pocztowych jest zdefiniowana jako "local-part@domain"; współczesne użycie pozwala na znacznie szerszy zestaw Aplikacje niż proste "nazwy użytkowników". W konsekwencji i ze względu na długa historia problemów, gdy gospodarze pośredni próbowali optymalizacji transportu poprzez ich modyfikację, część lokalna musi być interpretowane i przypisywane semantyki tylko przez host określony w część domenowa adres.

Tak więc tak, część przed " @ " może uwzględniać wielkość liter, ponieważ jest całkowicie pod kontrolą systemu hosta. W praktyce jednak żaden powszechnie stosowany system pocztowy nie rozróżnia różnych adresów w zależności od przypadku.

Część po znaku @ jest jednak domeną i zgodnie z RFC 1035, sekcja 3.1,

[[0]} "serwery nazw i resolvery muszą porównywać [domeny] w sposób niewrażliwy na wielkość liter"

W skrócie, jesteś bezpieczny w leczeniu e-mail adresy jako niewrażliwe na wielkość liter.

 279
Author: Mike E,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-21 16:14:48

Wiem, że to stare pytanie, ale chcę tylko skomentować tutaj: w każdym stopniu adresy e-mail są wrażliwe na wielkość liter, większość użytkowników byłoby "bardzo nierozsądne", aby aktywnie używać adresu e-mail, który wymaga wielkich liter. Wkrótce przestaną używać adresu, ponieważ straciliby dużo poczty. (Chyba że mają konkretny powód, aby utrudniać sprawy i oczekują poczty tylko od określonych nadawców, których znają.)

To dlatego, że niedoskonali ludzie jak i niedoskonałe oprogramowanie exist, (niespodzianka!), który zakłada, że wszystkie e-maile są małymi literami i z tego powodu ci ludzie i oprogramowanie będą wysyłać wiadomości za pomocą" niższej wersji " adresu, niezależnie od tego, jak został im przekazany. Jeśli odbiorca nie jest w stanie odbierać takich wiadomości, wkrótce zauważy, że wiele ich brakuje i przełączy się na adres e-mail z małymi literami lub ustawi swój serwer na niewrażliwy na wielkość liter.

 36
Author: PaulOTron2000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-24 07:39:16

Za późno na ten post, ale mam coś nieco innego do powiedzenia...

>> "Are email addresses case sensitive?"
To Zależy..." (TM)

Niektóre organizacje uważają, że to dobry pomysł, a ich serwery e-mail wymuszają wrażliwość na wielkość liter.

Więc, dla tych szalonych miejsc, " tak, e-maile są wrażliwe na wielkość liter."

Uwaga: Tylko dlatego, że specyfikacja mówi, że możesz coś zrobić, nie oznacza, że jest to dobry pomysł, aby to zrobić.

Zasada pocałunku sugeruje to nasze systemy używają e-maili niewrażliwych na wielkość liter.

Podczas gdy zasada solidności sugeruje, że akceptujemy e-maile uwzględniające wielkość liter.

Rozwiązanie:

  • przechowuj e-maile z wrażliwością na wielkość liter
  • wysyłanie wiadomości e-mail z rozróżnieniem wielkości liter
  • Wykonywanie wewnętrznych przeszukiwań z niewrażliwością na wielkość liter

Oznaczałoby to, że jeśli ten e-mail już istnieje: [email protected]

... przychodzi kolejny użytkownik i chce skorzystać z tego maila: [email protected]

... że nasza logika wyszukiwania niewrażliwego na wielkość liter zwróci komunikat o błędzie "Ten e-mail już istnieje".

Teraz musisz podjąć decyzję: czy takie rozwiązanie jest odpowiednie w Twoim przypadku?

Jeśli nie, możesz pobierać opłatę za wygodę dla tych klientów, którzy wymagają wsparcia dla ich e-maili uwzględniających wielkość liter i wdrożyć niestandardową logikę, która pozwala na [email protected] do Twojego systemu, nawet jeśli [email protected] już istnieje.

W takim przypadku twój e-mail logika wyszukiwania / walidacji może wyglądać jak coś tego pseudokodu:

if (user.paidEmailFee) {
   // case sensitive email
   query = "select * from users where email LIKE ' + user.email + '"
} else {
   // case insensitive email
   query = "select * from users where email ILIKE ' + user.email + '"
}

W ten sposób w większości wymuszasz niewrażliwość na przypadki, ale pozwalasz klientom płacić za to wsparcie, jeśli używają systemów e-mail, które obsługują takie nonsensy.

P. s. ILIKE jest słowem kluczowym PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html

 23
Author: l3x,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-04 19:23:37

RFC 5321 2.4. ogólne zasady składni i model transakcji

Implementacje SMTP muszą dbać o zachowanie skrzynki pocztowej lokalne-części. W szczególności dla niektórych hostów użytkownik "smith" jest różni się od użytkownika "Smith".

Domeny skrzynek pocztowych przestrzegają normalnych reguł DNS i dlatego nie są sensitive

 8
Author: Adam111p,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-27 10:03:52

Per @l3x, to zależy.

Istnieją wyraźnie dwa zestawy sytuacji ogólnych, w których poprawna odpowiedź może być różna, wraz z trzecią, która nie jest tak ogólna:

A) jesteś użytkownikiem wysyłającym prywatne maile :

Bardzo niewiele nowoczesnych systemów e-mail implementuje rozróżnianie wielkości liter, więc jesteś prawdopodobnie w porządku ignorować wielkość liter i wybierać dowolne przypadki, których chcesz użyć. Nie ma gwarancji, że wszystkie Twoje maile zostaną dostarczone - ale tak niewiele maili będzie negatywnie wpłynęło to na to, że nie powinieneś się o to martwić.

B) tworzysz oprogramowanie pocztowe :

Patrz RFC5321 2.4 fragment na dole.

Kiedy tworzysz oprogramowanie pocztowe, chcesz , Aby było zgodne z RFC. Możesz uczynić adresy e-mail użytkowników niewrażliwymi na wielkość liter, jeśli chcesz (i prawdopodobnie powinieneś). Aby jednak być zgodnym z RFC, musisz traktować zewnętrzne adresy jako uwzględniające wielkość liter .

C) Zarządzanie firmowymi listami adresów e-mail jako pracownik :

Jest możliwe, że ten sam adresat e - mail zostanie dodany do listy więcej niż jeden raz-ale przy użyciu innej litery. W tej sytuacji, chociaż adresy są technicznie różne, może to spowodować, że odbiorca otrzyma duplikaty wiadomości e-mail. Sposób traktowania tej sytuacji jest podobny do sytuacji a) w tym, że jesteś prawdopodobnie W porządku traktować je jako duplikaty i usunąć duplikat wpisu. Lepiej jest leczyć są to jednak szczególne przypadki, wysyłając wiadomość "Przypomnienie" na oba adresy, aby zapytać, czy są one duplikaty siebie i, jeśli tak, który adres e-mail odbiorca wolałby użyć.

Z prawnego punktu widzenia, jeśli usuniesz duplikat bez potwierdzenia/zgody z obu adresów, możesz być pociągnięty do odpowiedzialności za wyciek prywatnych informacji / uwierzytelniania na nieautoryzowany adres po prostu dlatego, że dwa faktycznie-oddzielne odbiorcy mają ten sam adres z różnymi przypadkami.

Fragment z RFC5321 2.4:

Lokalna część skrzynki pocztowej musi być traktowana jako uwzględniająca wielkość liter. Dlatego wdrożenia SMTP muszą zadbać o zachowanie Skrzynka pocztowa lokalna-części. W szczególności, dla niektórych hostów, użytkownik " smith" różni się od użytkownika "Smith". Jednak wykorzystanie sprawy wrażliwość lokalnych części skrzynki pocztowej utrudnia interoperacyjność i jest zniechęcony.

 1
Author: zaTricky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-01 12:12:47

Mogę wymyślić tylko jeden przydatny powód, aby odzyskać e-mail z wrażliwością na wielkość liter: unikanie spamu. Powiedz swoim przyjaciołom i współpracownikom, że muszą używać odpowiedniej kombinacji wielkich i małych liter. ([email protected]) myślę, że spamerzy raczej nie będą przestrzegać takiej reguły, zwłaszcza, że twój adres jest przekazywany z serwera na serwer.

Wadą może być to, że klienci e-mail Twoich znajomych są niewłaściwie zaprojektowane. Niezależnie od ich intencji mogą nie być w stanie spełnić. To może być tak szczególnie w przypadku legalnych współpracowników biznesowych, którzy przechowują tysiące adresów i częściej tasują swoje dane. Nie dadzą ci tej samej indywidualnej uwagi.

Nie zamierzam tego robić, ale myślę, że byłoby to całkiem skuteczne, jeśli chcesz adres e-mail "tylko dla znajomych", który dostaje mniej spamu. Prawdopodobnie nie jest to dobre dla kontaktów biznesowych.

 -1
Author: PaulOTron2000,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-18 07:38:50