Как определить, что полученное электронное письмо было отправлено мошенниками?

Как сделать адрес электронной почты и что это такое

Рэй Томлинс

Спустя четыре года, в 1972, Томлинс доработал созданную раннее службу. Создал для неё программную оболочку, имевшую подобие почтового клиента и наделил необходимыми функциями (сортировка писем, отправка файлов и т.д.). Примерно в это же время появился и современный стандарт адреса почты — символ «@» (собачка). Отныне он фигурировал во всех депешах — в адресах электронной почты отправителей и получателей.

ARPANET

В 1975, благодаря усилиям программиста Джона Виталла, почтовый клиент MSG получил новые усовершенствования. В нём улучшились алгоритмы сортировки входящих сообщений, появилась функция «автоматический ответ».

Первый прототипы сетевого взаимодействия ПК

Вот так и ознаменовалась новая эпоха, эра современных сетевых коммуникаций. Это потом уже, в 1976 году, королева Великобритании отправила первое сообщение по Сети, в 1994 в почтовых ящиках пользователей появился спам, а в 2000-ном вирус «I love you»…

Итак, что такое адрес электронной почты?

Это уникальная запись, соответствующая стандарту RFC 2822, которая идентифицирует почтовый ящик пользователя и сообщает онлайн-сервису, куда именно необходимо доставить сообщение и прикреплённые к нему файлы.

Давайте разберёмся, как выглядит и из чего состоит адрес ящика.

Его формат можно представить как совокупность трёх отдельных частей. Записывается так:@

«Логин пользователя»
— уникальное название вашего ящика, вы его указываете при регистрации. Как правило, в логине допускается использование английских букв, цифр и символа «_».

«@»
— разделительный символ «at», или «собачка», неотъемлемый атрибут любого адреса. Он как бы указывает — кто и откуда. Например: ivan@mail.ru — ivan c mail.ru.

— название почтового сервиса, на котором был зарегистрирован ваш почтовый ящик. Например, gmail.com, yandex.ru, mail.ru и т.д.

Электронный ящик и, соответственно, его адрес создаются непосредственно в онлайн-сервисах, его предоставляющих.

Алгоритм регистрации сводится к следующему (что нужно сделать):

1. Определитесь, какой почтовый сервис вы хотите использовать.

2. Откройте его официальный сайт — mail.ru, rambler.ru или др.

3. Перейдите на страничку с регистрационной формой (кнопка, ссылка с надписью «Регистрация», «Зарегистрироваться», «Создать почту»).

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

Примечание.
Если затрудняетесь придумать логин почты, воспользуйтесь онлайн-генератором имён. Их в Сети предостаточно.

5. Отправьте заполненную форму на сервер службы (кнопка «Отправить»).

Если все данные были указаны правильно, вы сразу же получите доступ к своей почте.

Подробно о регистрации e-mail читайте здесь.

При регистрации в онлайн-играх, соцсетях и на других веб-ресурсах адрес ящика необходимо указывать в полном формате — @.

Если вы авторизовываетесь в почтовом ящике, например, на таких сервисах, как Gmail, Mail.ru, можно в поле указать только логин — первый элемент адреса.

А почта сама уже «сообразит», какой пользователь решил зайти в профиль и откроет ему доступ.

Если вам нужно в реальном или виртуальном диалоге сообщить собеседнику адрес почты, вы можете представить её в полном формате или же сказать, например, «vasya12 на Gmail, или ivan2012 на mail.ru».

Надёжных вам коммуникаций и комфортной переписки в Сети!

Читайте также:

Вход в электронную почту от Рамблер

Видео по теме:

  • >
    Embedded video

  • Как поменять адрес электронной почты в Майле
    Как узнать мой адрес электронной почты
    Как отправить сообщение по электронной почте Mail

    Никогда не проверяйте e-mail адреса по стандартам RFC / Habr

    Никогда не проверяйте e-mail адреса по стандартам RFC

    Original author:
    Allen Fair
    Множество сайтов требуют от пользователя ввода адреса электронной почты, и мы, как крутые и щепетильные разработчики, всегда стремимся проверять формат введенных адресов строго по стандартам RFC. Благодаря этому наши приложения и сайты проверяют формат e-mail корректно и не имеют проблем с юзабилити, а мы сладко спим, потому что уверены, что все работает как надо.Ага, как бы не так! Приведенные выше аргументы звучат круто и железобетонно, но проблема здесь заключается в том, что в адресе почты могут находиться совершенно бессмысленные вещи, и, на деле, проверка адресов по стандартам RFC может, наоборот, все жутко запутать. Почему так? Существует множество способов сформировать адрес почты, который будет одновременно и корректным и бредовым. Отчасти это происходит из-за того, что некоторые почтовые службы в целях обратной совместимости позволяют представлять адреса в форматах, которые давно устарели. Например это электронная почта существовавшая до появления DNS и до появления современного формата user@domain.tld: тогда использовались UUCP ”bang path” — адреса, которые представляли собой список всех узлов по маршруту ответственных за доставку.

    Внутренности адреса почты

    Адрес e-mail выглядит так:

    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? Вам выбирать, но я не советую — пробелы и нестандартные
    символы в адресе довольно необычная штука и чаще всего являются просто опечаткой. Крупные e-mail провайдеры не разрешают использовать это примерно по тем же причинам; таким образом обычно достаточно
    дозволять буквы, цифры, точки, подчеркивания, дефисы, апострофы и плюсы.

    Регистрозависимые адреса

    Согласно RFC уникальность адреса определяется его регистрозависимой уникальностью, однако 99,9% провайдеров считают иначе и не позволяют регистрировать VasyaPetrov@example.com, если vasyapetrov@example.com уже зарегистрирован. Считайте, что имя почтового ящика регистронезависимо:

    ALLEN@example.com Allen@example.com allen@example.com
    

    Небольшая кучка систем использует полную проверку регистра, позволяя лишь адрес Allen@example.com и отбрасывая входящую корреспондецию всех остальных АлЛеНоВ, однако это не работает на практике, поскольку пользователь не привык различать регистр в адресах почты. Должны ли вы тут сохранять совместимость с RFC? Конвертируя адреса в нижний регистр перед сохранением вы можете доставить проблем небольшому количеству пользователей (вы не сможете посылать им письма), но отослав миллионы e-mail я столкнулся с этим всего несколько раз. Конвертация в адреса в нижний регистр является неплохой идеей в плане нормализации данных, так как домен всегда регистронезависим и должен
    быть в нижнем регистре. Если же вы решите сохранять адрес так, как он введен, добавьте поле, в котором будет хранить каноническую версию.

    Нестандартные символы

    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: они регистронезависимые, так что их следует нормализовывать в нижний регистр.

    Поддомены

    Некоторые адреса содержат ненужные поддомены: например, «email.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
    • Без дублирующихся поддоменов

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

    350

    117.5k


    350

    Ссылка на основную публикацию