Я читал, что стандартная первая часть электронной почты чувствительна к регистру, однако я пытался отправить электронную почту name@example.com
, Name@example.com
и NAME@example.com
- она поступала в каждом случае.
Как почтовые серверы обрабатывают имена пользователей? Можно ли пропустить случай, и это сообщение не будет доставлено? Действительно ли очень важно использовать точно такой же регистр букв, который был написан при регистрации при указании вашего адреса электронной почты?
Ответы:
Из RFC 5321, раздел 2.3.11 :
Так что да, часть перед «@» может быть чувствительна к регистру, так как она полностью находится под контролем хост-системы. Однако на практике ни одна из широко используемых почтовых систем не различает разные адреса в зависимости от случая.
Однако часть после знака @ является доменом и в соответствии с RFC 1035 , раздел 3.1,
Короче говоря, вы можете обращаться с адресами электронной почты без учета регистра.
источник
Я знаю, что это старый вопрос, но я просто хочу прокомментировать здесь: в какой-то степени адреса электронной почты чувствительны к регистру, большинство пользователей будет «очень неразумно» активно использовать адрес электронной почты, который требует прописных. Они скоро перестанут использовать адрес, потому что будут пропускать большую часть своей почты. (Если у них нет конкретной причины усложнять ситуацию, и они ожидают почту только от определенных отправителей, которых они знают.)
Это потому, что существуют несовершенные люди, а также несовершенное программное обеспечение, (Сюрприз!), Которое будет предполагать, что вся электронная почта является строчной, и по этой причине эти люди и программное обеспечение будут отправлять сообщения, используя «строчную версию» адреса независимо от того, как оно было предоставлено. им. Если получатель не может получать такие сообщения, то вскоре они заметят, что они много пропустили, и переключатся на адрес электронной почты только в нижнем регистре, или настроят свой сервер без учета регистра.
источник
Уже поздно к этому посту, но я хочу сказать что-то немного другое ...
Ну, «Это зависит ...» (ТМ)
Некоторые организации считают, что это хорошая идея, и их почтовые серверы обеспечивают учет регистра.
Итак, для тех сумасшедших мест: «Да, электронные письма чувствительны к регистру».
Принцип KISS предполагает, что наши системы используют электронные письма без учета регистра.
Принимая во внимание, что принцип Надежности предполагает, что мы принимаем письма с учетом регистра.
Решение:
Это будет означать, что если этот адрес электронной почты уже существует: user@x.com
... и другой пользователь приходит и хочет использовать этот адрес электронной почты: USER@x.com
... что наша логика поиска без учета регистра вернет сообщение об ошибке «Это письмо уже существует».
Теперь у вас есть решение: адекватно ли это решение в вашем случае?
В противном случае вы могли бы взимать плату за удобство для тех клиентов, которым требуется поддержка их чувствительных к регистру электронных писем, и внедрять пользовательскую логику, которая позволяет USER@x.com в вашу систему, даже если user@x.com уже существует.
В этом случае ваша логика поиска / проверки электронной почты может выглядеть примерно так: псевдокод:
Таким образом, вы в основном применяете нечувствительность к регистру, но позволяете клиентам оплачивать эту поддержку, если они используют системы электронной почты, поддерживающие такую ерунду.
ps ILIKE - это ключевое слово PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html.
источник
%
или, что более вероятно,_
query = ...
строки на простыеquery = // Insert case-sensitive/insensitive search here
комментарии, поскольку это удерживает разговор от темы внедрения SQL и фокусируется на том, что вы пытаетесь показать. Другими словами, придерживайтесь логики, а не реализации. Это заставит замолчать критиков.IETF Открытые Стандарты RFC 5321 2.4. Общие принципы синтаксиса и модель транзакции
источник
На @ l3x, это зависит.
Ясно, что есть два набора общих ситуаций, в которых правильный ответ может отличаться, наряду с третьим, который не является таким общим:
а) Вы пользователь, отправляющий личные письма :
Очень немногие современные почтовые системы реализуют чувствительность к регистру, так что вы, вероятно, можете игнорировать регистр и выбирать любой регистр, который хотите использовать. Нет никакой гарантии, что все ваши письма будут доставлены - но так мало писем будет затронуто негативно, так что вам не стоит об этом беспокоиться.
б) Вы разрабатываете почтовое программное обеспечение :
См. RFC5321 2.4 отрывок внизу.
Когда вы разрабатываете почтовое программное обеспечение, вы хотите быть RFC-совместимым. Вы можете сделать адреса электронной почты своих пользователей нечувствительными к регистру, если хотите (и, вероятно, должны). Но чтобы быть RFC-совместимым, вы ДОЛЖНЫ обращаться с внешними адресами как с учетом регистра .
c) Управление списками адресов электронной почты в качестве сотрудника :
Возможно, что один и тот же получатель электронной почты добавляется в список более одного раза, но в другом случае. В этой ситуации, хотя адреса технически отличаются, это может привести к получению дубликатов электронной почты получателем. То, как вы относитесь к этой ситуации, аналогично ситуации а) в том, что вы, вероятно, можете рассматривать их как дубликаты и удалять дублирующиеся записи. Однако лучше относиться к ним как к особым случаям, отправив «напоминание» по почте на оба адреса, чтобы спросить их, являются ли они дубликатами друг друга, и, если это так, какой адрес электронной почты предпочитает использовать получатель.
С юридической точки зрения, если вы удалите дубликат без подтверждения / разрешения с обоих адресов, вы можете нести ответственность за утечку личной информации / аутентификацию на неавторизованный адрес просто потому, что два фактически отдельных получателя имеют один и тот же адрес в разных случаях .
Выдержка из RFC5321 2.4:
источник