Можно ли вы почте использовать пробелы
Содержание статьи
Никогда не проверяйте e-mail адреса по стандартам RFC
Множество сайтов требуют от пользователя ввода адреса электронной почты, и мы, как крутые и щепетильные разработчики, всегда стремимся проверять формат введенных адресов строго по стандартам RFC. Благодаря этому наши приложения и сайты проверяют формат корректно и не имеют проблем с юзабилити, а мы сладко спим, потому что уверены, что все работает как надо.
Ага, как бы не так!
Приведенные выше аргументы звучат круто и железобетонно, но проблема здесь заключается в том, что в адресе почты могут находиться совершенно бессмысленные вещи, и, на деле, проверка адресов по стандартам RFC может, наоборот, все жутко запутать.
Почему так? Существует множество способов сформировать адрес почты, который будет одновременно и корректным и бредовым. Отчасти это происходит из-за того, что некоторые почтовые службы в целях обратной совместимости позволяют представлять адреса в форматах, которые давно устарели. Например это электронная почта существовавшая до появления DNS и до появления современного формата user@domain.tld: тогда использовались UUCP «bang path» — адреса, которые представляли собой список всех узлов по маршруту ответственных за доставку.
Внутренности адреса почты
Адрес выглядит так:
mailbox@hostname
Тут mailbox может быть локальным аккаунтом пользователя, аккаунтом роли или маршрутизатором автоматизированной системы такой, например, как список рассылки, а в качестве hostname может быть использован любой узел, если о нем известно DNS-серверу, к которому обращается почтовик при доставке.
Кроме того, некоторые системы позволяют добавлять теги к адресу. Обычно это происходит в формате:
mailbox+tag@hostname
где тег и разделитель (обычно это «+», но qmail использует «-» по-умолчанию, хотя может быть сконфигурирован и иначе) игнорируются при доставке. Обычно это используется для фильтрации почты по папкам и автоматизации, но может быть использовано и для разделения введенных адресов по получателям и выявления злоупотреблений персональными данными.
Итак, в адресе в формате «mailbox@hostname», «mailbox» является пользовательским аккаунтом, приложением или аккаунтом системной роли, но может содержать и такие экстравагантные вещи, как информацию для дальнейшей маршрутизации или идентификаторы используемые для сортировки, автоматизации или отслеживания, а «hostname» — обычно доменное имя, но может являться и субдоменом, сервером, сервисом, ip-адресом или просто именем хоста.
Корректные имена ящика с точки зрения RFC
Специцификация одобряет довольно странные адреса, и было бы накладно поддерживать их все потому, что некоторые слишком сложны, и не слишком много людей обладают достаточными знаниями чтобы выделывать такие пируэты в нейминге. Поддержка таких адресов затруднит поддержку таких аккаунтов вашими сотрудниками, к тому же они почти никогда не используются в быту.
Ящик может содержать пробелы. Насколько я помню, доинтернетовский AOL разрешал пробелы в «Imya Polzovatelya», которые использовались еще и как почтовые ящики с вырезанными оттуда пробелами: «imyapolzovatelya@aol.com», однако ж согласно RFC вы можете использовать двойные кавычки вокруг ящиков содержащих пробелы:
«Alan Turing»@example.com <== Это корректно, но поддерживать не стоит
Кстати говоря, по этой логике, ящик содержащий всего лишь пробел корректен:
» «@example.com <== Это корректно, но смотри выше
А вот еще один корректный адрес, он создан из допустимых для адреса символов:
!#$%&’*+-/=?^_`{}|~@example.com <== Корректный адрес вряд ли достойный поддержки
Кстати, проверяйте апострофы, апострофы должны поддерживаться:
Miles.O’Brian@example.com <== Стоит поддерживать
Апострофы не должны закавычиваться или эскейпиться, но когда вы сохраняете такие адреса в базу или передаете еще куда-то, убедитесь, что всё чики-пуки.
В Википедии есть еще куча примеров.
Нужна ли полная совместимость с RFC? Вам выбирать, но я не советую — пробелы и нестандартные символы в адресе довольно необычная штука и чаще всего являются просто опечаткой. Крупные провайдеры не разрешают использовать это примерно по тем же причинам; таким образом обычно достаточно дозволять буквы, цифры, точки, подчеркивания, дефисы, апострофы и плюсы.
Регистрозависимые адреса
Согласно RFC уникальность адреса определяется его регистрозависимой уникальностью, однако 99,9% провайдеров считают иначе и не позволяют регистрировать VasyaPetrov@example.com, если vasyapetrov@example.com уже зарегистрирован. Считайте, что имя почтового ящика регистронезависимо:
ALLEN@example.com Allen@example.com allen@example.com
Небольшая кучка систем использует полную проверку регистра, позволяя лишь адрес Allen@example.com и отбрасывая входящую корреспондецию всех остальных АлЛеНоВ, однако это не работает на практике, поскольку пользователь не привык различать регистр в адресах почты.
Должны ли вы тут сохранять совместимость с RFC? Конвертируя адреса в нижний регистр перед сохранением вы можете доставить проблем небольшому количеству пользователей (вы не сможете посылать им письма), но отослав миллионы я столкнулся с этим всего несколько раз.
Конвертация в адреса в нижний регистр является неплохой идеей в плане нормализации данных, так как домен всегда регистронезависим и должен быть в нижнем регистре. Если же вы решите сохранять адрес так, как он введен, добавьте поле, в котором будет хранить каноническую версию.
Нестандартные символы
Gmail тут отличился: в то время как стандарт включает в себя точку как стандартный символ, Gmail не делает различий между адресами ящиков с точками и без. Эти адреса указывают на один и тот же почтовый ящик:
first.last@gmail.com firstlast@gmail.com f.i.r.s.t.l.a.s.t@gmail.com
Обратите внимание, что Google Apps позволяет использовать Gmail на любом домене.
Основная проблема здесь заключается в поиске адреса в базе в том виде, в котором он был изначально введен, что может доставить немало геморроя как пользователю, так и службе поддержки, а также и программистам с тестировщиками. Тут то вам и пригодится вторая, канонiческая форма адреса, но об этом позже.
Расширенная форма названия ящиков с использованием тегов.
Как было сказано выше, большинство систем доставки электронной почты (MTA), включая sendmail, Postfix, qmail, Yahoo Plus и Gmail поддерживают расширенное название ящика. Это позволяет пользователю, добавляя тег, сортировать письма. Это может позволить мне насоздавать кучу аккаунтов на одном сайте или в приложении:
allen+one@example.com allen+two@example.com
Но нужно ли вычищать теги из адреса ящика?
НЕТ! Будьте дружелюбны к своим пользователям, и пользователи проникнутся верой, что вы не осуществите хищение и сбыт их персональных данных с целью наживы. Даже если вы пытаетесь запретить регистрацию дополнительных аккаунтов с существующим ящиком, представьте себе, насколько просто в наше время тупо зарегистрировать еще один ящик чтобы снова зарегистрироваться у вас — не сложнее создания алиаса или папки(но об алиасах, папках и тегах, наоборот, мало кто знает).
Итак, еще раз. Создание второй, канонической, формы сохранения адреса в базе может неплохо прикрыть
вашу за
вас в случае неприятностей. Убедитесь, что вы ликвидировали из нее все теги, точки и т. д. и можете сравнивать с ней свежевведенные адреса.
Юникод и интернационализированные имена ящиков
Имена ящиков не поддерживают расширенные символы ASCII (8-bit) и символы Юникода. Это ограничение уходит своими корнями в спецификацию SMTP, во времена появления которого всего этого попросту не существовало; однако 8-битные значения, определенные локально, например из кодировок семейства ISO-8859-x, все-таки могут использоваться, но вы все равно никогда не узнаете, что же это за кодировка. Фактически, я видел 8-битные ящики только у спамеров.
В конце концов, вы ведь храните ваши данные в UTF-8, так? Значит вы в любом случае не сможете перевести их обратно в ту локаль, которая была использована, если вы ее не знаете.
Доменные имена
У почтовых доменов те же самые ограничения как и в HTTP: они регистронезависимые, так что их следует нормализовывать в нижний регистр.
Поддомены
Некоторые адреса содержат ненужные поддомены: например, «.msn.com» и «msn.com» являются одним и тем же почтовым доменом, кроме того, такие истории часто случаются в корпоративной среде (и это еще один хороший кандидат для каноникализации).
Интернационализированные домены (IDN)
IDN были созданы для того чтобы использовать местные символы Юникода в названиях доменов, кроме того, возможно создать домен и со специальными символами:
postmaster@→→→→→→→.ws
этот классно описывает круговорот воды в природе.
Как и HTTP, SMTP поддерживает лишь 7-битную кодировку, и для того чтобы справиться с этим несчастьем IDN конвертируются в Punycode, что позволяет имени домена конвертироваться в представление Юникод и обратно:
postmaster@xn--55gaaaaaa281gfaqg86dja792anqa.ws
Очень жаль, но существует возможность фишинга при использовании IDN. Юникод содержит несколько разных экземпляров некоторых символов ASCII. Это позволяет злоумышленнику создать сайт, название которого выглядит точно также как и оригинал из-за того, что некоторые символы в названии совпадают внешне, но не внутренне.
Это порождает несколько вопросов на которые следует ответить:
Должны ли мы дозволять IDN-адреса? Можем ли мы обеспечить саппорт пользователей службой поддержки (откуда у саппорта, например, клавиатуры с китайскими иероглифами?) Должны ли мы сохранять их в Юникоде или Punycode? Если мы сохраняем каноничные адреса, то в какой кодировке это делать? Поддерживает ли вообще наш почтовик (MTA) IDN, и в какой форме он ждет адреса при отправке писем?
IP Address syntax
Использование IP-адресов допустимо:
allen@[127.0.0.1] allen@[IPv6:0:0:1]
Однако такие адреса выглядят подозрительно, и вряд ли им стоит доверять.
Временные почтовые адреса
Существует множество сервисов, которые предоставляют пользователям временные почтовые адреса. Обычно это используется для анонимности или для того чтобы регистрироваться на недоверенных сайтах.
Даже такие сервисы как Hotmail и Yahoo предоставляют алиасы, которые могут быть использованы примерно тем же способом, то есть уничтожены через некоторое время. Не существует единой техники выявления таких адресов — в конце концов именно для этого они и предназначены. Они используют большущий набор доменных имен с постоянной ротацией для того чтобы быть на шаг впереди тех, кто пытается пресечь их деятельность.
Белый список используемых возможностей
Адреса электронной почты могут быть чудовищно сложными, но, навскидку, 99,99% (а может, и больше) придерживаются простых принципов, а остальные слишком утомительно поддерживать.
Итак, вам вероятно следует воздержаться от поддержки адреса, если он содержит:
- Зависимость от регистра
- Пробелы
- Кавычки или Эскейп-символы
- Специальные символы кроме ‘._+-
- Айпишники в поле домена
- IDN
Конечно, это может создать проблемы некоторым пользователям, но и в этом случае они скорее всего попытаются использовать какой-нибудь другой адрес, который подойдет. Кроме того, это позволит вашему саппорту более качественно оказывать поддержку вне зависимости от пользовательской локали.
Еще я считаю, что вы должны поддерживать теги.
Если это необходимо, вы можете создать еще одно поле в базе с каноническим адресом, даже если считаете, что всю эту RFC-шную совместимость стоит поддерживать. Адрес в таком поле может быть:
- Приведен в нижний регистр
- Быть без тегов
- Транскодирован из Юникода в ASCII
- Без дублирующихся поддоменов
Несмотря на то, что этот совет может показаться слишком радикальным, это все равно лучше, чем слепо подчиняться стандартам. Как знать, может когда-нибудь такая упрощенная нотация станет новым стандартом?
Источник
Как правильно написать адрес электронной почты (e-mail) ✔, чтобы вам могли на нее отправить письмо…
Доброго дня!
«Почему не отвечаешь?», «Мне ничего не приходило на почту!», «Вы мне не можете скинуть письмо с документами?!» — это всё вопросы и претензии, которые я неоднократно получал как на рабочем месте, так и на этом блоге… ????
Самое интересное во всем этом — что в этих случаях в принципе нельзя было ответить и отправить , так как адрес был неправильно написан. И человеку на том конце провода никогда ничего не докажешь…
Собственно, после очередного такого «случая» решил набросать небольшой ликбез по этой теме (теперь будет куда поставить ссылку в случае очередной подобной претензии…????).
В помощь!
Как создать электронную почту: (на портале mail.ru). Настройка почты — https://ocomp./kak-sozdat-elektronnuyu-pochtu.html
*
Правильное написание адреса
ШАГ 1: основы
И так, любой адрес имеет четкую структуру: логин, @ («собачка»), домен. Первый и третий элементы могут существенно отличаться друг от друга, но присутствие знака @ — обязательно! К тому же, написание должно быть выполнено латинскими буквами (прим.: допускаются цифры, подчеркивания)!
То, что я перечислил выше — это не чье-то требование, а международный формат. Соблюдая его, вам всегда смогут ответить и переслать письмо…
См. в качестве примера скриншот ниже.
Пример адреса
Пару примеров правильного написания адресов:
- Admin@ocomp.
- Dima@mail.ru
- Alex@ya.ru
Разберу каждую часть адреса подробнее:
- «Admin» или «Dima» — это уникальный никнейм (логин), который у каждого пользователя на определенном почтовом сервисе свой (обычно, выбирается при регистрации);
- «@» — это спец. знак — разделитель. Он стоит между никнеймом (логином) и доменом. Называют его в нашей стране «собачкой» (в английском просто «at»). Чтобы набрать его на клавиатуре — используйте клавишу «2» и Shift;
- «ocomp.», «mail.ru», «ya.ru» — доменное имя (в зависимости от выбранного сервиса почты). Например, можно завести себе бесплатный почтовый ящик на сервисе mail.ru или yandex.ru, а можно получить корпоративный адрес почты (это если вы куда-нибудь устроились работать).
Важно!
Никакие кавычки или дополнительные знаки при написании адреса электронной почты использовать не нужно (пробелы между собачкой, логином и доменом — не используются)!
Тем более важно это соблюдать, когда вы указываете свою почту в форме при регистрации на сайтах (это человек может догадаться, исправить ваш адрес, и отравить вам сообщение, а машина — нет…).
Вставка в форму
ШАГ 2: как завести себе почтовый ящик
Завести почту сегодня можно практически на любом крупном портале (лучшие сервисы электро-почт). Например, весьма неплохим выбором может стать почта от Яндекса.
Чтобы завести ящик, нужно-то:
- зайти на главную страничку yandex.ru
- кликнуть по ссылке «Завести почту» (расположена в углу);
- выбрать себе адрес (никнейм/логин);
- ввести свои данные (ФИО, дата рождения, телефон);
- и ву-а-я — у вас есть своя почта!
Завести почту на Яндекс
ШАГ 3: как отправить кому-нибудь письмо на
Так как выше в пример я взял Яндекс-почту, то и здесь уместно показать работу с ней…
После того, как вы заведете себе ящик и войдете в него, пред вами предстанет достаточно простое меню. Для создания письма — достаточно кликнуть по кнопке «Написать» в верхнем углу.
Написать сообщение
Далее:
- указать адресата (учитывая всё вышесказанное);
- указать тему сообщения (сообщения без темы часто улетают в спам и ваше письмо могут просто не увидеть…);
- если нужно отправить какие-нибудь файлы — прицепите их к сообщению с помощью инструмента «Скрепки»;
- после напишите текст сообщения и нажмите кнопку «отправить». Как видите, ничего сложного…
Прикрепление к письму документов
ШАГ 4: как сделать свой номер мобильного адресом почты
Весьма хорошим способом перестать путаться с написанием может стать одна функция Яндекс-почты — можно свой номер мобильного использовать в качестве адреса электро-почты!
Например, вместо alex@yandex.ru — можно использовать 79271234567@yandex.ru (адреса указаны случайные). Согласитесь, это может быть очень удобным?
Чтобы включить данную опцию, после регистрации в почте от Яндекса, зайдите в настройки личных данных и используйте функцию «Сделать адресом номер телефона» (см. скрин ниже, стрелками показано, куда нужно нажать).
Сделать адресом номер телефона
После этого, вы сможете получать электронную почту как по адресу 79271234567@yandex.ru*, так и по своему прежнему (т.е., по сути, у вас будет 2 адреса , письма с которых будут поступать в один ящик!).
*
На сим сегодня всё. Дополнения приветствуются…
Всего доброго!
????
Полезный софт:
- Видео-Монтаж
Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
Видео сделает даже новичок!
- Ускоритель компьютера
Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).
Источник
Есть ли разница в написании электроной почты с большой или маленькой буквы?
Костин [43.6K] 2 года назад Есть определенные правила задания (составления) адресов электронной почты. Он должен иметь вид: логин, собака, домен (login@domen — OOO@mail.ru, f&w@ yandex.ru и т. п ). Главное требование — чтобы логин был уникальным в данном домене и можно использовать только латинские буквы, цифры и символы. Если при задании он оказался не уникальным, то система сама сообщит об этом. Менять весь логин не обязательно, можно добавить значки, символы или наоборот, что-то убрать. А вот на счет того, какой должна быть первая буква система не возражает. Лично у меня уже несколько лет логин, начинающийся со строчной (маленькой) буквы. Просто как-то «неуютно», если логин это имя или фамилия в латинской транскрипции, а написано с маленькой буквы автор вопроса выбрал этот ответ лучшим Leona-100 [100K] более года назад Если вам нужно отправить письмо по электронной почте, но вы не знаете пишется адрес с большой или маленькой буквы, то по сути, это не имеет значения. То есть совершенно не важно, напишите ли вы электронный адрес с заглавной или строчной буквы, так как регистр не имеет значения. при условии. что адрес написан правильно, письмо все равно дойдет до адресата. 127771 [207K] более года назад В данном случае никакой разницы нет. Название почты можно будет писать, как с большой (заглавной) буквы, так и с маленькой буквы. Когда люди диктуют друг другу название своей почты, то часто зацикливаются на этом моменте. Этот момент можно обойти стороной, адресат получит письмо. Но если вводите пароль от своей почты, то тут нужно правильно писать. -Irinka- [190K] более года назад Многие задумываются о данном вопросе, с какой именно буквы необходимо писать адрес электронной почты. Не стоит переживать о том, что вы напишите адрес неверно, указав большую или маленькую букву взамен, так как это не имеет ни какого значения. Поэтому, с какой бы вы буквы не написали адрес электронной почты, письмо все равно дойдет до адресата. Марина Вологда [213K] более года назад Электронная почта сейчас очень популярна. Везде, где нужна регистрация просят указать адрес электронной почты, а потом зачастую присылают код подтверждения на электронную почту. Поэтому и стоит писать правильно, ведь если поставите лишний пробел, письмо уже может не придти. А вот написание с маленькой или большой буквы — тут значения не имеет. А вообще, как я заметила, они все в отправленных с маленькой буквы высвечиваются. Не помните как создавали почту — пишите все с маленькой буквы, письмо дойдет, если не было сделано ошибок в написании самой почты. Поэтому, отвечая на вопрос — нет, значения не имеет какими буквами вы напишете, маленькими или большими. КорнетОболенский [100K] более года назад Меня тоже долгое время интересовал вопрос, имеет ли значение регистр символов, используемых в названии электронной почты. Путём многочисленных экспериментов, в том числе отправлений писем самому себе в различных вариантах написания букв, выяснил, что регистр значения не имеет. Можно писать адрес электронной почты как прописными, так и строчными буквами. Письмо найдет адресата. Мурочка в полосочку [317K] более года назад Разницы нет, письмо все равно найдет своего адресата. Я один раз так писала письмо одному своему товарищу и перепутала большие буквы с маленькими, думала уже письмо он так и не получит. Но в итоге все дошло, так что разницы нет. Руб [30.5K] более года назад В настоящее время большой популярностью пользуется электронная почта, с ее помощью решается много вопросов, отправка документов, фото. Но для работы почты нужно зарегистрировать адрес электронной почты, надо создать уникальный набор символов, писать логин с большой или маленькой буквы не имеет значения, система все равно доставит письмо по правильному адресу. Бекки Шарп [70K] более года назад Адрес пишется по правилам, он должен содержать некоторые символы. При написании адреса электронной почты регистр символов не имеет значения для первой буквы, то есть не важно с большой или маленькой буквы пишется имя. А вот в середине слова если заменить строчную букву на прописную, то может и не получится отправить почту. PsyForm — [20.3K] более года назад Нет никакой разницы при написании адреса электронной почты. С маленькой буквы или с большой. Даже можно написать все символы большими и система всё равно поймёт куда отправлять данное письмо. И оно обязательно дойдёт до получателя. sarmat6687 [225] 2 года назад Письмо с адресом, написанным большими и маленькими буквами гарантированно дойдёт в обоих случаях. Для почтового сервера регистр букв не имеет значения. Знаете ответ? |
Источник