Чувствительны ли адреса электронной почты к регистру?

Я прочитал, что стандартная первая часть электронной почты чувствительна к регистру, однако я попытался отправить электронную почту name@example.com, Name@example.com и NAME@example.com - он прибыл в каждом случае.

как почтовые серверы обрабатывают имена пользователей? Можно ли пропустить случай, и это сообщение не будет доставлено? Действительно ли очень важно использовать точно такой же случай письма, как было написано при регистрации при предоставлении адреса электронной почты?

6 ответов


из RFC 5321, раздел-2.3.11:

стандартное соглашение об именовании почтовых ящиков определяется как "local-part@domain"; современное использование позволяет гораздо более широкий набор приложения, чем простые "имена пользователей". Следовательно, и в связи с длинная история проблем, когда промежуточные хосты пытались оптимизируйте транспорт, изменив их, локальная часть должна быть интерпретируется и назначается семантика только хостом, указанным в доменная часть адрес.

Так что да, часть Перед " @ " может быть чувствительной к регистру, так как она полностью находится под контролем хост-системы. На практике, однако, широко используемые почтовые системы не различают разные адреса в зависимости от случая.

часть после знака@, однако, является доменом и в соответствии с RFC 1035, раздел 3.1,

"серверы имен и распознаватели должны сравнивать [домены] без учета регистра"

короче, вы можете рассматривать адреса электронной почты как нечувствительные к регистру.


Я знаю, что это старый вопрос, но я просто хочу прокомментировать здесь: в любой степени адреса электронной почты чувствительны к регистру, большинство пользователей было бы "очень неразумно" активно использовать адрес электронной почты, который требует столиц. Скоро они перестанут пользоваться этим адресом, потому что потеряют много почты. (Если только у них нет конкретной причины усложнять ситуацию, и они ожидают почту только от конкретных отправителей, которых они знают.)

Это потому, что несовершенные люди, а также несовершенные программное обеспечение существует, (сюрприз!) который будет предполагать, что вся электронная почта строчная, и по этой причине эти люди и программное обеспечение будут отправлять сообщения, используя "более низкую версию" адреса независимо от того, как он был предоставлен им. Если получатель не может получать такие сообщения, он вскоре заметит, что много пропускает, и переключится на адрес электронной почты только в нижнем регистре или настроит свой сервер без учета регистра.


поздно на этот пост, но у меня есть что-то немного другое, чтобы сказать...

>> "Are email addresses case sensitive?"

Ну "Это Зависит..." (TM)

некоторые организации действительно думают, что это хорошая идея, и их почтовые серверы обеспечивают чувствительность к регистру.

Итак,для этих сумасшедших мест: "да, электронные письма чувствительны к регистру."

Примечание: только потому, что спецификация говорит, что вы можете что-то сделать, не означает, что это хорошая идея так.

принцип поцелуя предполагает, что наши системы используют нечувствительные к регистру электронные письма.

в то время как принцип надежности предполагает, что мы принимаем к регистру электронную почту.

устранение:

  • магазин электронной почты с чувствительностью к регистру
  • отправить письма с чувствительностью к регистру
  • выполнять внутренний поиск с нечувствительностью к регистру

это будет означать, что если это письмо уже существует: user@x.com

... и еще один пользователь приходит и хочет использовать это письмо: USER@x.com

... что наша нечувствительная к регистру логика поиска вернет сообщение об ошибке "это письмо уже существует".

теперь вам нужно принять решение:является ли это решение адекватным в вашем случае?

Если нет, вы можете взимать плату за удобство для тех клиентов, которые требуют поддержки для своих чувствительных к регистру писем и реализуйте пользовательскую логику, которая позволяет USER@x.com в вашу систему, даже если user@x.com уже существует.

в этом случае ваша логика поиска/проверки электронной почты может выглядеть как-то этот псевдокод:

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 + '"
}

таким образом, вы в основном применяете нечувствительность к регистру, но позволяете клиентам платить за эту поддержку, если они используют системы электронной почты, которые поддерживают такую ерунду.

p.s. ILIKE-ключевое слово PostgreSQL: http://www.postgresql.org/docs/9.2/static/functions-matching.html


RFC 5321 2.4. общие принципы синтаксиса и модель транзакций

реализации SMTP должны позаботиться о сохранении случая почтового ящика локальная часть. В частности, для некоторых хостов, пользователей "Смит" отличается от пользователя "Smith".

Домены почтовых ящиков следуют обычным правилам DNS и, следовательно, не имеют чувствительный


Per @l3x, это зависит.

существует явно два набора общих ситуаций, когда правильный ответ может быть разным, наряду с третьим, который не является общим:

a)вы пользователь, отправляющий личные письма:

очень немногие современные системы электронной почты реализуют чувствительность к регистру, так что вы наверное хорошо игнорировать случай и выбрать любой случай, который вы хотите использовать. Нет никакой гарантии, что все ваши письма будут доставлены - но так мало писем будет негативно сказываться, что вы не должен об этом беспокоиться.

b)вы разрабатываете почтовое программное обеспечение:

см. выдержку RFC5321 2.4 внизу.

когда вы разрабатываете почтовое программное обеспечение, вы хочу быть RFC-совместимым. Вы can сделайте ваши собственные адреса электронной почты пользователей нечувствительными, если вы хотите (и вы, вероятно, должны). Но чтобы быть совместимым с RFC, вы необходимо рассматривать внешние адреса как чувствительные к регистру.

c)управление принадлежащими бизнесу списками адресов электронной почты в качестве сотрудника:

возможно, что один и тот же получатель электронной почты добавляется в список более одного раза, но с использованием другого случая. В этой ситуации, хотя адреса технически отличаются,это может привести к получателю получать дубликаты писем. Как вы относитесь к этой ситуации аналогична ситуации) в том, что вы наверное штраф, чтобы рассматривать их как дубликаты и удалить дубликат записи. Однако лучше рассматривать их как особые случаи, отправив" напоминание " на оба адреса, чтобы спросить их, являются ли они дубликатами друг друга, и если да, то какой адрес электронной почты получатель предпочел бы использовать.

с юридической точки зрения, если вы удалите дубликат без подтверждения/разрешения от обоих адресов, вы можете быть ответственным из-за утечки частная информация/аутентификации до несанкционированного адрес просто потому, что два на самом деле-отдельные получатели есть тот же адрес с разных случаях.

выдержка из RFC5321 2.4:

локальная часть почтового ящика должна обрабатываться с учетом регистра. Поэтому реализации SMTP должны позаботиться о сохранении случая почтовый ящик локальный-части. В частности, для некоторых хостов, пользователей "кузнец" отличается от пользователя "Smith". Однако, эксплуатируя дело чувствительность локальных частей почтового ящика препятствует взаимодействию и обескураженный.


Я могу думать только об одной полезной причине для получения электронной почты с чувствительностью к регистру: избежать спама. Скажите своим друзьям и коллегам, что они должны использовать правильное сочетание верхнего и нижнего регистра. (MyEmAiL@domain.com) я думаю, что спамеры вряд ли будут следовать такому правилу, тем более, что ваш адрес передается с сервера на сервер.

недостаток может быть, если почтовые клиенты ваших друзей неправильно разработаны. Независимо от их намерений они могут быть неспособны соблюдать. Это может быть особенно так с законными деловыми партнерами, которые хранят тысячи адресов и перетасовывают свои данные чаще. Они не будут уделять вам столько же внимания.

Я не буду делать этого, но я думаю, что это будет довольно эффективно, если вы хотите адрес электронной почты "только для друзей", который получает меньше спама. Хотя, возможно, не очень хорошо для деловых контактов.