В 2011-м году исполняется 40 лет первому отправленному по сети электронному письму. Возможность передачи текстовых сообщений существовала и до этого, но осуществлялась она в рамках одного компьютера разными пользователями. А осенью 1971-го года Рэй Томлинсон смог разработать систему для передачи данных между различными компьютерами сети ARPANET.
Рэй Томлинсон пишет:
В течение лета и осени 1971 года, я был частью небольшой группы программистов, которые разрабатывали систему с разделением времени TENEX для компьютеров PDP-10. Мы поддерживали большую группу, работающую на естественном языке (natural language). Ранее я работал над Network Control Protocol (NCP) для TENEX и сетевыми программами, такими как экспериментальная программа передачи файлов CPYNET.
Я работал над улучшением местной пользовательской почтовой программой SNDMSG. Однокомпьютерная электронная почта существовала по крайней мере с начала 1960-х и SNDMSG была ее примером. SNDMSG позволяла пользователям создавать, адресовать и отправлять сообщения на почтовые ящики других пользователей.
Почтовый ящик был просто файл с определенным именем. Единственным особым свойством файла была его защита, которая разрешала только разрешенным пользователям добавлять к нему текст. То есть, они могли добавлять текст в конец почтового ящика, но они не могли читать или перезаписать то, что уже там было. Меня посетила идея, что CPYNET сможет добавлять текст в файл почтового ящика так же легко, как SNDMSG. SNDMSG смог бы легко включать код из CPYNET и направлять сообщения через сетевые соединения с удаленными почтовыми ящиками в дополнение к добавления сообщения в локальные файлы почтовых ящиков.
Недостающим элементом было том, что экспериментальный протокол CPYNET не предусматривал добавление в файл, он мог только отправлять и получать файлы. Добавление недостающей части была не слишком сложным — просто небольшим дополнением к протоколу. Я не помню детали протокола, но добавить к файлу было также, как и запись в файл, за исключением режима, в котором файл был открыт.
Далее код CPYNET был включена в SNDMSG. Это потребовало способа отличить локальную почту от почты из сети. Я решил добавить знак «@» («at» — английское «на») и имя компьютера к имени пользователя. Меня часто спрашивают, почему я выбрал этот знак, но в знаке действительно есть смысл. Назначение знака «@» было — указать цены за единицу товара (например, 10 предметов @ $ 1,95). Я использовал знак для обозначения, что пользователь «на» другом компьютере, а не локальный.
Первое сообщение было послано между двумя машинами, которые стояли буквально бок о бок. Единственное физическое соединение (кроме, пожалуй, пола, на котором они стояли) они имели через ARPANET. Я послал несколько тестовых сообщений самому себе с одной машины на другую. Тестовые сообщения я забыл и сомневаюсь, что вспомню. Скорее всего, первое сообщение было «QWERTYUIOP» или что-то подобное. Когда я был удовлетворен тем, что программа выглядела рабочей, я послал сообщение остальной частью моей группы с объяснением процедуры отправки сообщений через сеть. Первое использование электронной почты само объявило о своем собственном существовании.
Эти первые сообщения были отправлены в конце 1971 года. Следующий релиз TENEX вышел в начале 1972 года и включал версию SNDMSG с возможностями отправки почты по сети. Вскоре протокол CPYNET был заменен настоящим протоколом передачи файлов с учетом особенности обработки почты. Позже был разработан ряд более общих почтовых протоколов.
Источники: lenta.ru, Ray Tomlinson
Вольный перевод: Google Translate и RXL