Как работает электронная почта

Как работает электронная почта

Самый старый формат общения в интернете

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

Что умеет электронная почта

Электронная почта — асинхронный формат общения в интернете. Асинхронный — это значит, что никто из участников не сидит с открытым почтовым клиентом и не ждёт ответа в реальном времени, а просто читает почту, когда ему удобно. Это похоже на то, как работают обычные бумажные письма: мы отправляем конверт, но когда его получат и прочитают — от нас уже не зависит.

По электронной почте можно отправить как обычный текст (как в бумажном письме), так и приложить к нему какие-то дополнительные данные:

  • фотографии,
  • документы,
  • музыку и любые другие файлы.

Это как на почте положить в бандероль кроме письма пачку фотографий, открытку с приветом и банку огурцов от бабушки — получается как бы письмо с прикреплёнными дополнительными материалами.

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

Для чего нужна

Обычно электронная почта нужна в трёх случаях: 

  1. Сообщить что-то не очень срочное. При этом информация может быть важной, но не стоит ожидать, что собеседник моментально читает все письма, которые ему приходят.
  2. Передать что-то важное или нужное. Это могут быть документы, ссылка на папку в облачном хранилище, отчёт за неделю или список покупок для отпуска. 
  3. Восстановить пароль от онлайн-сервиса, если его забыл; уведомить о доставке заказа; прислать электронный чек после покупки.

Адрес электронной почты

Чтобы получать и отправлять письма, нужно получить адрес электронной почты. Раньше их выдавали только провайдеры интернета своим абонентам — например, если ты подключался к провайдеру «Кубаньэлектросвязь», то тебе выдавался адрес вроде name@kuban.net. Часто услуга была платной. 

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

Каждый адрес электронной почты состоит из трёх частей: имени, символа @ и адреса почтового сервера:

Как работает электронная почта

Имя пользователя каждый придумывает сам, но есть момент: если кто-то до вас уже взял себе такое имя, то вы не сможете его использовать и нужно придумать другое. Для имени используются цифры, буквы латинского алфавита, дефис, знак подчёркивания. Некоторые почтовые службы также разрешают использовать точку, например: misha.ivanov@yandex.ru  

Разделитель — это специальный символ @, который отделяет имя пользователя от адреса сервера. В русском языке его называют собакой, в английском — at, в Польше — обезьяной, а во Франции — улиткой. Происхождение — от предлога at, «при». Получается «Миша Иванов при Яндексе». 

Адрес сервера показывает, на какой сервер будут приходить входящие письма. Если кто-то напишет на адрес thecode.media@yandex.ru, то это письмо будет обрабатывать почтовый сервер Яндекса.

Почтовые серверы

Чтобы письма можно было отправлять и получать, используют почтовые серверы. Они решают две задачи:

  1. Пересылают по нужному адресу письма, которые вы отправляете.
  2. Принимают и хранят у себя письма, которые пришли вам.

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

Например, если у провайдера был свой сервер provider.com, то все, кто пользовался его услугами, получали адрес вида vasya@provider.com или thecode@provider.com. Если менялся провайдер — менялся и адрес, потому что у каждого провайдера был свой сервер.

Сейчас такого уже нет — можно использовать бесплатные серверы Яндекса или вообще поднять собственный сервер и настроить его для работы с почтой. Но вариант получить адрес в домене провайдера тоже остался, мало ли что.

👉 Технически почтовый сервер — это не столько «компьютер», который обрабатывает письма, сколько программа, которая работает на этом компьютере. Вы можете скачать на свой компьютер программу почтового сервера, запустить, настроить адресацию и обмениваться письмами сколько угодно. Но так обычно не делают, потому что гораздо удобнее хранить корреспонденцию на чужом сервере и подключаться к нему по необходимости. 

Как электронные письма доставляются по назначению

Чтобы написать письмо, используют почтовые клиенты — программы, которые занимаются отправкой писем на сервер. Это может быть отдельная программа, например Outlook или «Почта» в MacOS, а может быть вкладка в браузере, если используется онлайн-сервис.

Когда вы нажимаете кнопку «Отправить», то дальше всё происходит так:

  1. Почтовый клиент находит адрес вашего сервера и передаёт ему письмо. 
  2. Почтовый сервер смотрит в адресе письма на доменное имя получателя и обращается к нему, мол, держи новое письмо.
  3. Сервер получателя смотрит, есть ли у него пользователь с таким именем, как в адресе. Если есть — принимает письмо, если нет — отвечает, что вы ошиблись адресом, тут таких нет.
  4. Если всё в порядке, письмо отправляется на сервер получателя и лежит там.
  5. Когда получатель проверит почту, сервер ему скажет — тебе новое письмо, сейчас я тебе его отправлю.
  6. Получатель принимает письмо от своего сервера, задача решена.

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

Что дальше

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

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
ООП: зачем нужны абстракции и классы
Зачем нужны абстракции и интерфейсы

И что это вообще такое?

hard
Какие бывают хостинги

Выделенный сервер, VPS, KVM, VDS и прочие умные слова.

medium
Facebook хранил наши пароли в виде текста. Что это значит?
Facebook хранил наши пароли в виде текста. Что это значит?

Тут такое!

easy
Как отправить JSON-данные на сервер
Как отправить JSON-данные на сервер

Первый шаг на пути к облачному хранению данных.

medium
С чего начать в IT

Даже если вы абсолютный гуманитарий — выход есть.

easy
Кто такая Unity и почему она всем нравится

Бесплатный движок с классной графикой, реалистичной физикой и понятным интерфейсом.

easy
Кто такой тимлид (он же Lead)

Как устроена работа человека, которого слушают даже сеньоры.

easy
Для чего нужен язык C#

Как в Микрософте сделали свой язык программирования. И зачем.

easy
Что такое SVG-графика и зачем она нужна
Что такое SVG-графика и зачем она нужна

Простая рисовалка на CSS.

easy
Экзотические виды памяти
Экзотические виды памяти

Как насчёт памяти на барабанах или на проволоке?

medium
Как защитить сайт от хакерских скриптов
Как защитить сайт от хакерских скриптов

Включите политику безопасности.

medium
Что такое перегрузка операторов
Что такое перегрузка операторов

Для тех, кто пытался, но не понял.

hard
130 тысяч рублей за работу бэкенд-разработчика. Что это значит?
130 тысяч рублей за работу бэкенд-разработчика. Что это значит?

Что нужно делать, чтобы получать столько же.

easy
easy