Czytałem, że przy standardowym pierwszej części e-mail jest wielkość liter, więc starałem się wysłać e-mail do [email protected]
, [email protected]
i [email protected]
- ma się w każdym przypadku.
Jak serwery pocztowe obsługują nazwy użytkowników? Czy można spóźnić się ze sprawą, a ta wiadomość nie zostanie dostarczona? Czy naprawdę bardzo ważne jest, aby używać dokładnie tej samej skrzynki na listy, jak napisano podczas rejestracji, podając swój adres e-mail?
Odpowiedzi:
Z RFC 5321, sekcja 2.3.11 :
Tak więc w części przed „@” rozróżniana jest wielkość liter, ponieważ jest ona całkowicie pod kontrolą systemu hosta. W praktyce jednak żadne z powszechnie stosowanych systemów pocztowych nie rozróżnia różnych adresów na podstawie wielkości liter.
Część po znaku @ to jednak domena i zgodnie z RFC 1035 , sekcja 3.1,
Krótko mówiąc, możesz bezpiecznie traktować adresy e-mail bez rozróżniania wielkości liter.
źródło
Wiem, że to stare pytanie, ale chcę tutaj skomentować: w jakimkolwiek stopniu w adresach e-mail rozróżniana jest wielkość liter, większość użytkowników byłaby „bardzo nierozsądna”, aby aktywnie używać adresu e-mail wymagającego wielkich liter. Wkrótce przestaną korzystać z tego adresu, ponieważ stracą dużo poczty. (Chyba że mają konkretny powód, aby utrudniać pracę i oczekują poczty tylko od określonych nadawców, których znają).
Wynika to z faktu, że istnieją niedoskonali ludzie, a także niedoskonałe oprogramowanie (Niespodzianka!), Które zakłada, że wszystkie wiadomości e-mail są pisane małymi literami iz tego powodu ci ludzie i oprogramowanie będą wysyłać wiadomości przy użyciu „małej wersji” adresu, niezależnie od tego, w jaki sposób został podany do nich. Jeśli adresat nie będzie w stanie odbierać takich wiadomości, niedługo zauważy, że ich brakuje, i przełączy się na adres e-mail zawierający tylko małe litery lub skonfiguruje serwer tak, aby nie rozróżniał wielkości liter.
źródło
O wiele za późno na ten post, ale mam coś nieco innego do powiedzenia ...
Cóż, „To zależy ...” (TM)
Niektóre organizacje uważają, że to dobry pomysł, a ich serwery pocztowe wymuszają rozróżnianie wielkości liter.
W przypadku tych zwariowanych miejsc: „Tak, w wiadomościach e-mail rozróżniana jest wielkość liter”.
Zasada KISS sugeruje, że nasze systemy używają wiadomości e-mail bez rozróżniania wielkości liter.
Natomiast zasada solidności sugeruje, że akceptujemy wiadomości e-mail uwzględniające wielkość liter.
Rozwiązanie:
Oznaczałoby to, że jeśli ten adres e-mail już istnieje: uż[email protected]
... i pojawia się inny użytkownik, który chce użyć tego e-maila: [email protected]
... że nasza logika wyszukiwania bez rozróżniania wielkości liter zwróciłaby komunikat o błędzie „Ten e-mail już istnieje”.
Teraz musisz podjąć decyzję: czy to rozwiązanie jest odpowiednie w twoim przypadku?
Jeśli nie, możesz naliczyć opłatę za obsługę dla tych klientów, którzy wymagają wsparcia dla wiadomości e-mail uwzględniających wielkość liter i wdrożyć niestandardową logikę, która pozwala [email protected] w twoim systemie, nawet jeśli uż[email protected] już istnieje.
W takim przypadku logika wyszukiwania / sprawdzania poprawności wiadomości e-mail może wyglądać podobnie do tego pseudokodu:
W ten sposób wymuszasz niewrażliwość na wielkość liter, ale pozwalasz klientom płacić za to wsparcie, jeśli korzystają z systemów e-mail obsługujących takie bzdury.
ps ILIKE jest słowem kluczowym PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html
źródło
%
lub bardziej prawdopodobne_
query = ...
wiersze prostequery = // Insert case-sensitive/insensitive search here
komentarze, które utrzymują rozmowę z dala od tematu iniekcji SQL i koncentrują się na tym, co próbujesz pokazać. Innymi słowy, zachowaj logikę, a nie implementację. Uciszy krytyków.RFC 5321 2.4. Ogólne zasady składni i model transakcji
źródło
Zależy to od @ l3x.
Istnieją oczywiście dwa zestawy ogólnych sytuacji, w których poprawna odpowiedź może być inna, wraz z trzecią, która nie jest tak ogólna:
a) Jesteś użytkownikiem wysyłającym prywatne wiadomości e-mail :
Bardzo niewiele nowoczesnych systemów poczty e-mail implementuje rozróżnianie wielkości liter, więc prawdopodobnie dobrze jest zignorować wielkość liter i wybrać dowolną wielkość liter. Nie ma gwarancji, że wszystkie twoje maile zostaną dostarczone - ale na tak niewielką liczbę negatywnie wpłynęłoby to, że nie powinieneś się tym martwić.
b) Tworzysz oprogramowanie pocztowe :
Zobacz fragment RFC5321 2.4 na dole.
Tworząc oprogramowanie pocztowe, chcesz być zgodny z RFC. Państwo może dokonać adresy e-mail nie uwzględnia wielkości liter swoich własnych użytkowników, jeśli chcesz (i prawdopodobnie powinien). Aby jednak zachować zgodność z RFC, MUSISZ traktować adresy zewnętrzne z rozróżnianiem wielkości liter .
c) Zarządzanie firmowymi listami adresów e-mail jako pracowników :
Możliwe jest, że ten sam adresat e-mail zostanie dodany do listy więcej niż jeden raz - ale w innym przypadku. W tej sytuacji, chociaż adresy są technicznie różne, może to spowodować, że odbiorca otrzyma zduplikowane wiadomości e-mail. Sposób, w jaki traktujesz tę sytuację, jest podobny do sytuacji a), ponieważ prawdopodobnie możesz traktować je jako duplikaty i usunąć zduplikowany wpis. Lepiej jednak traktować je jako przypadki szczególne, wysyłając wiadomość „przypominającą” na oba adresy, aby zapytać, czy są one duplikatami, a jeśli tak, to jakiego adresu e-mail odbiorca wolałby użyć.
Z prawnego punktu widzenia, jeśli usuniesz duplikat bez potwierdzenia / pozwolenia z obu adresów, możesz ponosić odpowiedzialność za wyciek prywatnych informacji / uwierzytelnienia na nieautoryzowany adres po prostu dlatego, że dwóch faktycznie oddzielnych odbiorców ma ten sam adres w różnych przypadkach .
Fragment z RFC5321 2.4:
źródło