
Национальный Исследовательский Университет
Московский Энергетический Институт (Технический Университет)
Кафедра прикладной математики
Лабораторная работа №2 по дисциплине ВМСС
Работа с электронной почтой
Выполнил: Кобец С. Ю.
А-13-08
Преподаватель: Куриленко И. Е.
Москва
2012г.
Структура электронного письма
Электронная почта — технология и предоставляемые ею услуги по пересылке и получению электронных сообщений по распределённой компьютерной сети.
Формат сообщения, передаваемого по электронной почте, описан в RFC 2822. Оно состоит из трех частей:
-
Конверт (envelope), содержащий адреса отправителя и получателей сообщения, эта информация используется только при пересылке сообщения по протоколу SMTP , получателю она недоступна;
-
Заголовок (header), содержащий служебную информацию, формируемую программами, участвующими в передаче сообщения, такую как адреса отправителя и получателей, которые могут отличаться от используемых в конверте, тему сообщения, время отправки, сведения о пересылке и об используемых для создания сообщения программах и т.д., заголовок завершается пустой строкой;
-
Тело (body), содержащее само сообщение, созданное отправителем и подлежащее доставке получателю. Согласно стандарту, в теле письма могут находиться только символы ASCII. Поэтому при использовании национальных кодировок или различных форм представления информации (HTML, RTF, бинарные файлы) текст письма должен кодироваться по стандарту MIME и не может быть прочитан человеком без использования декодера или почтового клиента с таким декодером.
Таким образом, сообщение доставляется получателю в виде заголовка и отделенного от него пустой строкой тела.
Заголовок состоит из полей: текстовых строк, состоящих из имени поля: слова, заканчивающегося двоеточием, и содержимого поля. Заголовок обычно показывается не полностью. Получатель видит только некоторые поля: адреса отправителя и получателей, время отправки и тему сообщения.
В заголовке допускается использование только символов в кодировке US-ASCII. Другие символы должны быть закодированы таким образом, чтобы полученная кодовая последовательность содержала только символы кодировки US-ASCII. Это правило нередко нарушается, например, тема сообщения записывается в заголовке сообщения на русском языке без перекодирования. Этого следует избегать, так как на приемном конце не будет известна используемая кодировка русских букв, а значит, полученная последовательность может быть интерпретирована неправильно.
Далее описаны наиболее важные поля заголовка:
Название поля |
Значение поля |
From: |
Автор письма |
Sender: |
Электронный адрес отправителя |
To: |
Адреса получателей |
Cc: |
Адреса получателей копий |
Bcc: |
Адреса получателей скрытых копий. Это поле используется в процессе передачи сообщения, при доставке получателю соответствующие поля или часть их содержимого могут быть удалены. |
Return-Path: |
Адрес отправителя, указанный на конверте сообщения |
Received: |
Информация о прохождении сообщения. Каждый узел, через который прошло сообщение, должен добавить в заголовок поле "Received:", содержащее имена и адреса IP узлов, пославших и принявших сообщение, время прохождения и пр. |
Так же в заголовке могут иметься поля, которые не являются обязательными:
Название поля |
Значение поля |
Date: |
Время отправки сообщения |
Subject: |
Тема сообщения |
References: |
Уникальные идентификаторы всех сообщений в цепочке ответов |
Message-ID: |
Уникальный идентификатор сообщения |
In-Reply-To: |
Уникальный идентификатор сообщения, на которое отвечает данное сообщение |
Reply-To: |
Адрес для ответа |
Протоколы передачи электронных писем
SMTP
В Интернете для доставки электронной почты машина-источник устанавливает TCP-соединение с портом 25 машины-приемника. Этот порт прослушивается почтовым демоном, и их общение происходит с помощью протокола SMTP (Simple Mail Transfer Protocol — простой протокол электронной почты). Этот демон принимает входящие соединения и копирует сообщения из них в соответствующие почтовые ящики. Если письмо невозможно доставить, отправителю возвращается сообщение об ошибке, содержащее первую часть этого письма.
Протокол SMTP представляет собой простой ASCII-протокол. Установив ТСР- соединение с портом 25, передающая машина, выступающая в роли клиента, ждет запроса принимающей машины, работающей в режиме сервера. Сервер начинает диалог с того, что посылает текстовую строку, содержащую его идентификатор и сообщающую о его готовности (или неготовности) к приему почты. Если сервер не готов, клиент разрывает соединение и повторяет попытку позднее. Если сервер готов принимать почту, клиент объявляет, от кого поступила почта и кому она предназначается. Если получатель почты существует, сервер дает клиенту добро на пересылку сообщения. Затем клиент посылает сообщение, а сервер подтверждает его получение. Контрольные суммы не проверяются, так как транспортный протокол TCP обеспечивает надежный байтовый поток. Если у отправителя есть еще почта, она также отправляется. После передачи всей почты в обоих направлениях соединение разрывается.
РОРЗ
POP3 (Post Office Protocol v.3 — почтовый протокол, 3-яверсия) позволяет пользовательскому агенту (на машине клиента) соединиться с агентом передачи сообщений провайдера (на машине провайдера) и скопировать хранящуюся для него почту. Тем самым клиент может получить письмо, которое было отправлено, когда он не был подключен к сети Интернет.
Протокол РОРЗ начинает свою работу, когда пользователь запускает почтовый редактор. Последний дозванивается до провайдера (если только машина уже не находится в подключенном состоянии) и устанавливает TCP-соединение с агентом передачи сообщений с использованием порта 110.
После установки соединения протокол РОРЗ проходит три последовательных состояния.
1. Авторизация – процесс входа пользователя в систему;
2. Транзакция – пользователь забирает свою почту и может пометить ее для удаления из почтового ящика;
3. Обновление – происходит удаление помеченной корреспонденции.
Несмотря на то, что протокол РОРЗ действительно поддерживает возможность получения одного или нескольких писем и оставления их на сервере, большинство программ обработки электронной почты просто скачивают все письма и опустошают почтовый ящик на сервере. Такие действия означают, что реально хранится только одна копия писем — на жестком диске пользователя. Если с ним что-то случается, корреспонденция пропадает безвозвратно.
IMAP
IMAP (Interactive Mail Access Protocol — протокол интерактивного доступа к электронной почте) отличие от протокола РОРЗ, который подразумевает, что пользователь будет очищать почтовый ящик после каждого контакта с провайдером и будет работать с почтой в отключенном режиме, протокол IMAP предполагает, что вся почта будет оставаться в почтовых ящиках на сервере неограниченно долго. IMAP обладает широким набором механизмов для чтения сообщений или даже частей сообщений. Такое свойство полезно при использовании медленных модемов, поскольку можно прочесть только текстовую часть письма, к которому приложены большие видео и аудиофрагменты. Поскольку основное предположение состоит в том, что пользователь не будет копировать на свой компьютер письма, в IMAP входят также инструменты для создания, удаления и других видов управления почтовыми ящиками, размещающимися на сервере. Таким образом, пользователь может завести собственный почтовый ящик для каждого лица, с которым ведется переписка, и переносить сообщения из почтового ящика для всех входящих писем в эти персональные ящики.
Протокол IMAP обладает разнообразными возможностями, например, способностью упорядочивать почту не по порядку ее поступления, а по атрибутам писем. В отличие от РОРЗ, IMAP может заниматься как доставкой исходящей почты от пользователя в направлении места назначения, так и доставлять входящую почту пользователя.
Сравнение POP3 и IMAP
IMAP выигрывает у POP в трех областях:
-
более богатая функциональность для манипулирования почтовым ящиком;
-
возможность управлять несколькими почтовыми ящиками, а не одним;
-
примитивы для оптимизации производительности online доступа, особенно если дело касается больших MIME сообщений.
Преимущества POP над IMAP:
-
наличие большего числа реализаций, как клиентов, так и серверов;
-
простота настройки (так как у POP маленькая функциональность, то и настраивать практически ничего не нужно).
Общая модель работы электронной почты
Посмотрим, каким образом сообщение электронной почты находит дорогу к своему получателю, находящемуся в другой точке земного шара.
Почтовая система Интернета, по сути, является объединением системы клиент-сервер и сервер-сервер, в котором невидимо трудится целая группа агентов. Сообщение электронной почты могут составляется при помощью веб-интерфейса, либо при помощи клиентских программ, таких как Microsoft Outlook Express, Netscape Messenger, The Bat, KMail, Novell GroupWise, Lotus Notes и других.
Электронный почтальон доставляет его в назначенное почтовое отделение, т. е. на сервер исходящей почты, который вы выбрали. Этому серверу может потребоваться вступить в связь с другим почтовым сервером, если получатель находится вне зоны его ответственности. Получив сообщение электронной почты, почтовый сервер на приемном конце просит еще одну выполняющуюся на сервере программу поместить письмо в почтовый ящик получателя.