Доставка писем, Протокол SMTP - Компьютерные сети
Рассмотрим процесс доставки писем на примере. Пусть Алиса хочет отправить письмо Бобу.
- 1. Почтовая программа Алисы (т. е. клиент или MUA - Mail User Agent ) отправляет письмо Бобу, ящик которого расположен на почтовом сервере в домене b. org. 2. По протоколу SMTP (Simple Mail Transfer Protocol) клиент Алисы посылает сообщение на ее почтовый сервер (smtp-сервер). Сервер помещает сообщение в очередь для отправки адресату. 3. SMTP-сервер Алисы узнает IP-адрес почтового сервера Боба, делая DNS-запрос типа MX для зоны b. org. 4. SMTP-сервер Алисы по протоколу SMTP посылает почтовому северу Боба сообщение. При этом SMTP-сервер Алисы выступает в роли клиента. 5. Почтовый сервер (Боба) помещает полученное сообщение в почтовый ящик Боба. 6. Почтовый клиент Боба забирает письмо с сервера по протоколу POP3 или IMAP.
Протокол SMTP
Протокол SMTP используется для транспортировки электронной почты на почтовый сервер. Работает поверх TCP, стандартный порт сервера 25. Команды - обычный ASCII текст.
Посылка почты осуществляется в 3 этапа:
- 1. приветствие (рукопожатие); 2. пересылка писем; 3. закрытие сессии.
Пример SMTP-сессии
Server:220 Mail. Ru ESMTP
Client: HELO me. ru
Server: 250 mx24.mail. ru ready to serve
Client: MAIL FROM: < \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script >
Server: 250 OK
Client: RCPT TO: < \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script >
Server: 250 OK
Client: DATA
Server: 354 Go ahead
Client: Privet, Gena!!!
Pozdravlyau tebya s dnem rojdeniya ...
.
Server: 250 Message accepted for delivery
Client: QUIT
Server: 221 mx24.mail. ru closing connection
$ telnet mxs. mail. ru 25 // подключаемся к 25 порту почтового сервера домена mail. ru
Trying 194.67.23.20...
Connected to mxs. mail. ru.
Escape character is '^]'.
220 Mail. Ru ESMTP // приветствие от mxs. mail. ru
HELO me. ru // приветствие от меня ( me. ru - выдумка)
250 mx24.mail. ru ready to serve // всегда готов! - от mx24.mail. ru
MAIL FROM: < \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script > // я: отправляю письмо от себя (почтовый адрес - выдумка)
250 OK //mail. ru: понятно
RCPT TO: < \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script > // я: получатель - мой почтовый ящик на mail. ru
250 OK //mail. ru: такой почтовый ящик имеется
DATA //я: посылаю данные
354 Go ahead //mail. ru: давай!
Privet, Gena!!!
Pozdravl yau tebya s dnem rojdeniya ... // я: текст письма
. // я: единственная точка на строке - конец письма
250 Message accepted for delivery //mail. ru: Сообщение принято для доставки
QUIT //я: конец
221 mx24.mail. ru closing connection //mail. ru: закрываю соединение
На самом деле было так:
Server:220 Mail. Ru ESMTP
Client: HELO me. ru
Server: 250 mx24.mail. ru ready to serve
Client: MAIL FROM: < \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script >
Server: 250 OK
Client: RCPT TO: < \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script >
Server: 250 OK
Client: DATA
Server: 354 Go ahead
Client: Privet, Gena!!!
Pozdravlyau tebya s dnem rojdeniya ...
.
Server: 550 spam message discarded. If you think that the system is mistaken, please report details to \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
Client: QUIT
Server: 221 mx24.mail. ru closing connection
На самом деле после посылки сообщения серверу был получен такой ответ:
550 spam message discarded.
If you think that the system is mistaken,
Please report details to \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script //mail. ru: это спам! Жалобы посылайте на адрес:
// оскорбления @corp. mail. ru
Проблема скрывается в формате нашего письма: отсутствует заголовок с полями From, To и Subject. Поэтому mail. ru расценивает это как спам.
Формат сообщения электронной почты
Сообщение электронной почты - это набор символов в семиразрядной кодировке ASCII (начинается с нуля (0-127)). Символы кодируются битами.
From: <адрес отправителя> // обязательное поле
To: <адрес получателя> // обязательное поле
Subject: <тема> // необязательное поле
CC: <список получателей, которым отправится копия> // необязательное поле
BCC: <список адресов> (это "слепая копия", то есть получатели не знают, что это письмо отправлено еще кому-то) // необязательное поле
<Пустая строка>
<Текст письма в семибитной кодировке ASCII>
Если требуется передать символы, отличающиеся от ASCII, то используется кодирование. После получения сообщения сервер добавляет в заголовок строчку:
Received: from < отправитель > by < получатель > < когда >
Пример
From: \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
To: \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
Subject: Pozdravlyau!
Privet, Gena!!!
Pozdravlyau tebya s dnem rojdeniya ...
.
Кодирование сообщений
MIME (Multipurpose Internet Mail Extension - многоцелевое расширение почты Интернета) -- стандарт, описывающий передачу различных типов данных по электронной почте.
В заголовок сообщения добавляются строки:
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="Windows-1251"
Поле заголовка Content-Type идентифицирует данные, заключенные в MIME-сообщение. В настоящее время используется семь основных классов данных, идентифицированных в MIME. В каждом классе имеются свои подклассы, которые более детально характеризуют тип данных, заключенных в сообщении.
Часто встречающиеся значения поля Content - Type (формат: Content - Type: тип / подтип; параметры):
- - text / html или text/ enriched (с форматированием); - image / gif или image/jpeg; - multipart / mixed (для сообщений с вложениями).
Чтобы передавать сообщение не только из семибитной ASCII, используется кодирование.
Часто встречающиеся значения поля Content-Transfer-Encoding:
- - 7bit; - 8bit; - binary; - base64; - quoted-printable.
Например, 8bit или base 64.
При кодировании увеличивается размер (как минимум, на 25%).
На сегодняшний день существует семь различных способов кодирования двоичных данных, однако наиболее часто встречается кодирование base64. При применении этого метода кодирования 6-битовые блоки двоичных данных преобразуются в 8-битовые блоки, воспринимаемые как текст ASCII. Таким образом, в base 64 для кодирования 3 байтов (24 бита) используются 4 байта (32 бита).
Значения Content-Transfer-Encoding "7bit", "8bit" и "binary" означают, что никакого преобразования не произведено.
Base64. В формате электронной почты MIME base64 -- это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных ASCII символов. Это определяет MIME как транспортное кодирование содержимого для использования в электронной почте. Используются только символы латинского алфавита в верхнем и нижнем регистре -- символы (A--Z, a--z), цифры (0--9), и символы "+" и "/", с символом "=" в качестве специального кода суффикса.
Полная спецификация этой формы base64 содержится в RFC 1421 и RFC 2045. Эта схема используется для кодирования последовательности октетов (байт). Это соответствует определению файлов почти во всех системах. Результирующие закодированные по base64 данные имеют длину, большую оригинальной в соотношении 4:3, и напоминают по виду случайные символы.
Для того, чтобы преобразовать данные в base64, первый байт помещается в самые старшие восемь бит 24-битного буфера, следующие в средние восемь и третий в младшие значащие восемь бит. Если кодируется менее чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть бит буфера, начиная с самых старших, используются как индексы строки "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123 456789+/" и ее символы, на которые указывают индексы, помещаются в выходную строку. Если кодируются только один или два байта, используются только первые два или три символа строки и выходная строка дополняется двумя или одним символами "=". Это предотвращает добавление дополнительных битов к восстановленным данным. Процесс повторяется над оставшимися входными данными.
Например, исторический слоган Википедии,
Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.
Закодирован в base64 следующим образом:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFz b24sIGJ1dCBieSB0
AGlzIHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGl jaCBpcyBhIGx1
C3Qgb2YgdGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2Yg ZGVsaWdodCBpbiB0
AGUgY29udGludWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24 gb2Yga25vd2xlZGdl
LCBleGNlZWRzIHRoZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm 5hbCBwbGVhc3VyZS4=
Дополнения (attachments)
From: \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
To: \n Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
Subject: Pozdravlyau!
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----------F9876678DDB9"
----------F9876678DDB9
Content-Type: text/plain; charset=Windows-1251
Content-Transfer-Encoding: 8bit
Privet, Gena!!!...
----------F9876678DDB9
Content-Type: image/jpg; name="otkritka. jpg"
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="otkritka. jpg"
Base64 encoded data.....
----------F9876678DDB9
Похожие статьи
-
Электронная почта - Компьютерные сети
Основные компоненты эектронной почты - почтовые клиенты пользователей; - почтовые серверы; - протокол отправки почты: SMTP; - протоколы доступа к...
-
Кодирование и формат отправляемых данных - Компьютерные сети
По умолчанию - application/x-www-form-urlencoded Все символы не из первой половины ASCII заменяются их кодами, например, "a" на "%E0". Пробелы - на "+",...
-
ПРИНЦИПЫ, ТЕХНОЛОГИИ, ПРОТОКОЛЫ ИНТЕРНЕТ - Компьютерные сети и телекоммуникации
Основное, что отличает Internet от других сетей - это ее протоколы - TCP/IP. Вообще, термин TCP/IP обычно означает все, что связано с протоколами...
-
Многоуровневые сетевые модели, Сетевая модель - Компьютерные сети
Глобальные сети объединяют в себе огромное количество географически распределенных узлов. Множество вариантов программно-технической реализации передачи...
-
Коды ошибок, возвращаемых веб-сервером. - Компьютерные сети
200 OK: Запрос успешно обработан, объект получен и включен в ответ. 301 Moved Permanently: Объект был перемещен; новый URL-адрес указан в строке ответа...
-
Типы записей в базе данных DNS-сервера - Компьютерные сети
DNS-сервер, отвечающий за имена хостов в своей зоне, должен хранить информацию о хостах в базе данных и выдавать ее по запросу с удаленных компьютеров....
-
Стандарты современных сетей, Эталонная модель OSI. - Сетевые стандарты и протоколы
Эталонная модель OSI. Перемещение информации между компьютерами различных схем является чрезвычайно сложной задачей. В начале 1980 гг. Международная...
-
Компьютерная сеть кодирование Клиент -- это компьютер или программа, запрашивающая услуги. Клиенты бывают толстыми, тонкими и сверхтонкими. Сравнительные...
-
До появления протоколов SMTP и POP 3 для работы с электронной почтой использовался протокол UUCP (Unix to Unix Copy Program) - программа копирования с...
-
МЕТОДЫ ДОСТУПА К ПЕРЕДАЮЩЕЙ СРЕДЕ В ЛВС - Компьютерные сети и телекоммуникации
Несомненные преимущества обработки информации в сетях ЭВМ оборачиваются немалыми сложностями при организации их защиты. Отметим следующие основные...
-
Сетевые протоколы, используемые в сети Интернет. - Использование компьютерных сетей
Иерархия протоколов TCP/IP 5 Application level 4 Transport level 3 Internet level 2 Network interface 1 Hardware level Протоколы TCP/IP широко...
-
Служба трансляции имен DNS - Компьютерные сети
Клиенты DNS - специализированные библиотеки (или программы) для работы с DNS (в Windows - служба "DNS-клиент"). Серверная сторона DNS - множество...
-
Функции уровней, Эталонная модель OSI - Компьютерные сети
В компьютерной сети каждый уровень может выполнять одну или несколько функций, перечисленных ниже. - адресация, - правила переноса данных: направление...
-
Атака, которая заключалась в передаче на хост ложного ICMP Redirect сообщения о смене исходного маршрута приводила как к перехвату атакующим информации,...
-
Сетевыми протоколами называют протоколы первого и второго уровней, определяющих архитектуру локальной сети, в том числе ее топологию, передающую среду,...
-
Почтовые псевдонимы - Использование компьютерных сетей
Псевдонимы позволяют системному администратору и отдельным пользователям переа Дресовывать почту. Ими можно пользоваться для задания списков рассылки...
-
Списки и ассоциативные массивы - Сортировка массивов
Массив -- это упорядоченный набор данных. Каждый элемент массива имеет индекс или ключ. Индекс (ключ) служит для однозначной идентификации элемента...
-
Для компьютерного оборудования и данных (информации) существуют три основные угрозы: Физическое воровство, которое включает подключение к различным...
-
Недостатки и альтернативы CGI - Компьютерные сети
Недостаток CGI: вызов программы - "дорогая" операция, особенно если это скрипт, который еще нужно интерпретировать (или откомпилировать). Альтернативные...
-
Восстановление файлов - Компьютерные сети. Защита и резервирование компьютерной информации
Существуют несколько способов восстановления файлов, ошибочно удаленных с диска, либо поврежденных из-за логических ошибок в файловой структуре или...
-
Метод POST - Компьютерные сети
После нажатия на кнопку "отправить" браузер посылает серверу сообщение. Приводим реальные данные, перехваченные сниффером. Запрос браузера к серверу,...
-
-приложения - Компьютерные сети
CGI (Common Gateway Interface) -- стандарт обмена данными между прикладной программой, выполняемой по запросу пользователя, и HTTP-сервером, который...
-
История сети ИНТЕРНЕТ, Региональные компьютерные сети и Интернет - Глобальная сеть Интернет
В 1961 году Defense Advanced Research Agency (DARPA) по заданию министерства обороны США приступило к проекту по созданию экспериментальной сети передачи...
-
Консорциум Всемирной паутины - Компьютерные сети
С 1994 года основную работу по развитию Всемирной паутины взял на себя Консорциум Всемирной паутины (англ. World Wide Web Consortium, W3C), основанный и...
-
История развития сети Интернет - Компьютерные сети
1969 г. Рождение ARPAnet Леонард Клейнрок рядом с первым интерфейсным процессором сообщений (коммутатором пакетов) Леонард Клейнрок -- один из авторов...
-
Сервер DNS для Linux - Компьютерные сети
BIND (Berkeley Internet Name Domain) -- программный пакет системы DNS для UNIX систем. Функции сервера DNS в этом пакете реализует программа named (от...
-
Принципы работы DNS - Компьютерные сети
Рассмотрим схему подачи запроса серверу. Студент Стэнфордского университета с университетского компьютера пытается зайти на сайт воскресной школы мехмата...
-
Дополнительные функции DNS-сервера - Компьютерные сети
1. Поддержка псевдонимов серверов. Пример: mmcs. sfedu. ru, web. mmcs. sfedu. ru и web. mmcs. rsu. ru имеют один и тот же ip-адрес 2. Поддержка почтового...
-
-сети с централизованным каталогом. Napster, Частично децентрализованные сети - Компьютерные сети
Когда пир (пользователь P2P-сети) подключается к серверу, он сообщает свой IP и имеющиеся файлы. На сервере собираются не сами файлы, а информация о них....
-
Принципы работы служб прикладного уровня - Компьютерные сети
Сетевая служба - это набор функций, которые уровень выполняет для вышележащего уровня (например, коррекция ошибок). Набор свойств и функций, которыми...
-
ОСНОВНЫЕ КОМПОНЕНТЫ WWW, URL, HTML - Компьютерные сети и телекоммуникации
World Wide Web переводится на русский язык как "Всемирная Паутина". И, в сущности, это действительно так. WWW является одним из самых совершенных...
-
ТЕНДЕНЦИИ РАЗВИТИЯ ИНТЕРНЕТ - Компьютерные сети и телекоммуникации
В 1961 году DARPA (Defence Advanced Research Agensy) по заданию министерства обороны США приступило к проекту по созданию экспериментальной сети передачи...
-
Протоколы прикладного уровня - Использование компьютерных сетей
Три верхних уровня Эталонной модели взаимодействия открытых систем -- сеансовый, представительный и прикладной уровень определяют протоколы,...
-
Уровни и межсетевые протоколы компьютерных сетей - Использование компьютерных сетей
Протокол UDP (User Datagram Protokol) -- протокол пользовательских дейтаграмм является одним из двух основных протоколов, расположенных непосредственно...
-
Протоколы локальных сетей - Использование компьютерных сетей
Под протоколами локальных сетей подразумевается набор протоколов первого и второго уровней эталонной модели, определяющих архитектуру локальной сети, в...
-
Протокол(Protocol) Строго определенная процедура и формат сообщений, допустимые для коммуникаций между двумя или более системами через общую среду...
-
Строгое определение протокола выглядит как формализованный набор правил, используемый ПК для коммуникаций. Из-за сложности коммуникаций между системами и...
-
Система IP-адресации. - Использование компьютерных сетей
Для организации всемирной сети нужна хорошая система адресации, которая будет использоваться для направления информации всем адресатам. Союз Internet...
-
Сетевые технологии в работе секретаря - Компьютерные технологии в деятельности секретаря
Практически повсеместное подключение имеющихся в офисе компьютеров к сети Интернет делает возможным использование сетевых технологий для реализации...
-
Выход в Internet, Некоторые полезные программы - Глобальная сеть Интернет
Для работы в Internet нужно, прежде всего, установить связь по IP протоколу с организацией, предоставляющей услуги работы в глобальной компьютерной сети...
Доставка писем, Протокол SMTP - Компьютерные сети