Учитываются ли адреса электронной почты?

Я читал, что стандартная первая часть сообщения электронной почты чувствительна к регистру, однако я попытался отправить электронное письмо на [email protected], [email protected] и [email protected] - он появился в каждом случае.

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

Ответ 1

Из RFC 5321, раздел 2.3.11:

Стандартное соглашение об именах почтовых ящиков определяется как "Локальная часть @домен"; современное использование позволяет значительно расширить набор чем простые "имена пользователей". Следовательно, и из-за долгая история проблем, когда промежуточные хосты пытались оптимизировать транспорт, изменив их, локальная часть ДОЛЖНА интерпретировать и назначать семантику только узлу, указанному в доменную часть адреса.

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

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

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

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

Ответ 2

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

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

Ответ 3

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

>> "Are email addresses case sensitive?"

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

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

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

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

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

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

Решение:

  • Сохранять электронные письма с чувствительностью к регистру
  • Отправка писем с чувствительностью к регистру.
  • Выполнять внутренние поиски с нечувствительностью к регистру.

Это означает, что если это письмо уже существует: [email protected]

... и другой пользователь приходит и хочет использовать это электронное письмо: [email protected]

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

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

Если нет, вы можете взимать плату за удобство для тех клиентов, которые требуют поддержки своих электронных писем, чувствительных к регистру, и внедряют пользовательскую логику, которая позволяет [email protected] в вашей системе, даже если [email protected] уже существует.

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

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

Ответ 4

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

Реализации SMTP ДОЛЖНЫ заботиться о сохранении почтового ящика местная-часть. В частности, для некоторых хостов пользовательский "кузнец" отличается от пользователя "Смит".

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

Ответ 5

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

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

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

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

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

См. RFC5321 2.4 отрывок внизу.

Когда вы разрабатываете почтовое программное обеспечение, вы хотите быть совместимым с RFC. Если вы хотите (и вы, вероятно, должны), вы можете сделать свои адреса электронной почты своих собственных пользователей нечувствительными к регистру. Но для того, чтобы быть совместимым с RFC, вы ДОЛЖНЫ относиться к внешним адресам как к регистру.

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

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

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

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

Локальная часть почтового ящика ДОЛЖНА БЫТЬ рассмотрена как чувствительная к регистру. Поэтому реализации SMTP ДОЛЖНЫ заботиться о том, чтобы сохранить локальные части почтового ящика. В частности, для некоторых хостов пользователь "кузнец" отличается от пользователя "Смит". Однако, используя случай чувствительность локальных частей почтового ящика препятствует интероперабельности и не рекомендуется.

Ответ 6

Я могу думать только об одной полезной причине, чтобы получить электронное письмо с чувствительностью к регистру: избегать спама. Скажите своим друзьям и окружающим, что они ДОЛЖНЫ использовать правильную комбинацию верхнего и нижнего регистра. ([email protected]) Я думаю, что спамеры вряд ли будут придерживаться такого правила, особенно если ваш адрес передается от сервера к серверу.

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

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