Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
seti_otvety_full.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.42 Mб
Скачать

27. Прикладной уровень. Электронная почта. Пересылка писем

Пересылка писем в сетях TCP\IP осуществляется посредство протокола SMTP.

SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты почтовый клиент должен использовать протоколы POP3 или IMAP. Работа с SMTP происходит непосредственно на сервере получателя. Поддерживает функции: установление соединения, аутентификация, передача данных

Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX(англ. Mail eXchange — обмен почтой) системы DNS. Если MX запись отсутствует, то для тех же целей может быть использована запись типа A.

Широкое распространение SMTP получил в начале 1980-х годов. До него использовался протокол UUCP, который требовал от отправителя знания полного маршрута до получателя и явного указания этого маршрута в адресе получателя, либо наличия прямого коммутируемого или постоянного соединения между компьютерами отправителя и получателя.

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

Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице), а также отправлять двоичные файлы (такие как изображения, видеофайлы, программы или архивы). Для снятия этого ограничения был разработан стандарт MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст. Основные команды: – MAIL адрес отправителя – RCPT адрес получателя (может быть несколько. На каждого получателя отдельно приходит квитанция) – DATA передача данных (письма). Производится в ASCII. Данные формируются как сегменты ТСР. Конец письма – точка в пустой строке. – QUIT разрыв соединения Установление и закрытие соединения непосредственно с сервером производится по ТСР. Контроль за пользовательскими данными возложен на ТСР.

Сервер SMTP — это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа — число от 100 до 999, представленное в виде строки, трактующийся следующим образом:

2ХХ — команда успешно выполнена

3XX — ожидаются дополнительные данные от клиента

4ХХ — временная ошибка, клиент должен произвести следующую попытку через некоторое время

5ХХ — неустранимая ошибка

Текстовая часть ответа носит справочный характер и предназначена для человека, а не программы.

Пример простейшей SMTP-сессии

C: — клиент, S: — сервер

S: (ожидает соединения)

C: (Подключается к порту 25 сервера)

S:220 mail.company.tld ESMTP CommuniGate Pro 5.1.4i is glad to see you!

C:HELO

S:250 domain name should be qualified

C:MAIL FROM: <someusername@somecompany.ru>

S:250 someusername@somecompany.ru sender accepted

C:RCPT TO:<user1@company.tld>

S:250 user1@company.tld ok

C:RCPT TO: <user2@company.tld>

S:550 user2@company.tld unknown user account

C:DATA

S:354 Enter mail, end with "." on a line by itself

C:from: someusername@somecompany.ru //чтобы письмо

C:to: user1@company.tld //не было добавлено

C:subject: tema //в категорию спам

C: //

C:Hi!

C:.

S:250 769947 message accepted for delivery

C:QUIT

S:221 mail.company.tld CommuniGate Pro SMTP closing connection

S: (закрывает соединение)

В результате такой сессии письмо будет доставлено адресату user1@company.tld, но не будет доставлено адресату user2@company.tld, потому что такого адреса не существует.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]