В сущности, электронное письмо - это
обычный текстовый файл. Но,
чтобы почтовые системы всего мира могли
разобраться, кому и куда
направить письмо, этот текст должен
составляться по определенным
правилам.
Любое электронное письмо состоит из двух
частей:
- официальной (здесь указывается кто, кому,
куда, когда послал
письмо);
- и неофициальной (вот это собственно та
информация, которую один человек
хочет сообщить другому человеку);
Официальная часть (заголовок - конверт
письма) отделяется от неофициальной
одной пустой строкой. Конверт-заголовок
предназначен для почтовой службы и
состоит из нескольких полей вида:
название: текст
Сеть Internet объединяет множество различных
компьютеров, работающих в
различных операционных системах. В каждой
операционной системе есть своя
почтовая служба, которая по-особому
обрабатывает заголовок письма. Но,
чтобы пользователи сети Internet могли
свободно общаться друг с другом,
в заголовке письма обязательно должны
присутствовать такие поля:
Date:
From:
To:
Date: дата и время отправления письма; они
записываются в стандартном
формате - день недели, день, месяц, год (2
цифры), время, временная зона.
From: имя отправителя и его обратный адрес.
To: адрес получателя.
Это тот минимум, который необходим, чтобы
простой текст стал электронным
письмом. Но существует еще несколько
полезных полей, которые часто
используются:
Received: отметка о прохождении письма через
машину (почтовый штемпель).
Может содержать:
- имя почтового компьютера, пославшего
письмо (from домен);
- имя почтового компьютера, принявшего
письмо (by домен);
- физический путь следования письма (via ...);
- название протокола передачи данных (with
...);
- номер принятого сообшения (id ...);
- для кого сообщение (for адрес);
- дату прохождения письма через машину.
Message-Id: уникальный идентификатор
сообщения, который компьютер-отправитель
присвоит письму. Например: <BGhH0_jOC4@infrm.gomel.by>
- это набор
цифр и букв и имя машины. Этот
идентификатор можно использовать для
ссылок на письмо в канцелярском деле, как
исходящий номер.
Reply-To: Адрес для ответа - адрес отправителя.
Это позволяет при ответе на
данное письмо (reply) ввести адрес
автоматически.
Resent-From: Адрес человека или программы,
которые переслали вам
сообщение, изначально пришедшее на их в
стан
Sender: имя человека или программы,
приславшего вам это
письмо. В общем случае это не то же самое,
что From: .
Например, для писем из конференции From:
адрес автора письма,
а Sender: адрес news-сервера.
Return-Receipt-To: Адрес, по которому нужно
отослать "увеломление о доставке".
В большинстве случаев это адрес
отправителя.
X-Mailer: Программа, с помощью которой было
отправлено письмо.
Например, dMail, ELM, PC Eudoraан
Subject: Тема письма.
Если письмо отправлено в конференцию,
появляются дополнительные поля в
заголовке:
Newsgroups: название конференции или
нескольких конференций через запятую.
Distribution: область распространения письма
(word - слать на весь мир).
Expires: хранить в конференции до указанного
числа.
Keywords: ключевые слова, по которым можно
искать статью в конференции.
Все вышесказанное является вольным
пересказом официального документа
RFC-822 (Standart for the Format of ARPA Internet Text Messages).
---------------------------------------------------------------
Рассмотрим несколько примеров. Начнем с
самого простого: почтовые
ящики оптравителя и получателя находятся
на одном компьютере.
=== Пример 1 ===
From sveta Wed Jun 15 06:52:30 1994
Received: by sthome.gu.kiev.ua (UUPC/@ v5.09gamma, 14Mar93);
Wed, 15 Jun 1994 06:52:29 +0400
To: dmitry
Message-Id: <AAgpc_jug5@sthome.gu.kiev.ua>
From: Sveta Tkachenko <sveta@sthome.gu.kiev.ua>
Date: Wed, 15 Jun 94 06:52:26 +0400 (MSD)
X-Mailer: dMail (Demos Mail v1.13a)
Subject: Привет!
Lines: 3
Status: RO
Доброе утро!
Завтрак на столе. Не задерживайся на
работе.
=== конец ===
Первая строка (обратите внимание, это не
название поля, т.к. поле должно
соответсвовать правилу "название:
содержание"!) показывает путь
прохождения
письма - здесь все просто.
Received: штемпель почтовой машины. Он один, т.к.
письмо не нужно передавать
на другую машину. В скобках название
почтовой программы - UUPC/@ v5.09, ее
версия и дата создания. Далее дата
прохождения письма через компьютер.
To: кому. Поскольку почтовые ящики
собеседников находятся на одной машине, не
нужно указывать полный адрес (то, что идет
после знака '@' совпадает).
Message-Id: идентификатор сообщения (его
проставляет программа).
From: От кого (с указанием полного адреса).
Date: Дата, когда отправлено письмо - 06:52:26.
Штемпель Received на 3 секунды
позже.
X-Mailer: dMail (Demos Mail v1.13a) - название программы, с
помощью которой
написано письмо.
Subject: о чем.
Lines: Количество строк в письме (3).
Status: почтовая служба помечает, что
сообщение уже прочитано (буква R),
чтобы второй раз не предложить это письмо
как новое (есть там такая строка
"новая почта").
Далее идет пустая строка - конверт
закончился - и текст сообщения.
----------------------------------------------------------
Теперь пример посложнее: оправитель и
получатель находятся в разных
местах. Посмотрим, как это отразится в
заголовке письма.
=== Пример 2 ===
From glukr!palbank%eskimo.com Mon Dec 12 19:15:37 1994 remote from gu
Received: from eskimo.com (palbank@ESKIMO.COM [204.122.16.13]) by
render.gu.kiev.ua (8.6.9/8.6.9) with SMTP id TAA17649 for
<sveta@gu.kiev.ua>; Mon, 12 Dec 1994 19:07:07 +0200
Received: by eskimo.com (5.65c/1.35)
id AA22857; Mon, 12 Dec 1994 07:44:27 -0800
Date: Mon, 12 Dec 1994 07:44:26 -0800 (PST)
From: Petrus Palms <palbank@eskimo.com>
Message-Id: <Pine.SUN.3.91.941212073824.19347A-100000@eskimo.com>
To: sveta@gu.kiev.ua
=== конец ===
Во-первых, первая строка From стала длиннее,
она показывает путь, по которому
проехало письмо. Восклицательный знак !
просто разделитель в строке.
Читать нужно с конца.
Уже строит два штемпеля (Received). Первый
проставлен машиной на узле
gu.kiev.ua. Имя этой машины render.gu.kiev.ua, версия
почтовой
программы (8.6.9/8.6.9), протокол передачи
данных SMTP (Simple Mail Transfeм
Protocol - один из семейства протоколов TCP/IP).
Еще один штемпель: eskimo.com - название
компьютера, с которого было послано
письмо.
По датам, указанным в штемпелях, можно
проследить, сколько времени понадобилось
на дорогу этому письму.
----------------------------------------------------------
Посмотрим, какие новые поля появляются,
если письмо получено из конференции.
=== Пример 3 ===
From render!KremlSun!news.spb.su!news.eunet.fi!news.funet.fi!news.tele.fi
!uunet!UB.com!grafex.sbay.org!ka6etb Tue Jun 14 13:04:46 1994
Xref: render relcom.education:18 alt.religion.islam:1418
From: ka6etb@GRAFex.sbay.org (KA6ETB Steve Harding)
Date: Sun, 12 Jun 94 23:56:38 -0800
Message-ID: <2j9+tTfFBh107h@GRAFex.sbay.org>
Newsgroups: za.net.uninet,uiuc.soc.jewish,relcom.education,alt.religion.islam
Reply-To: steveh@grafex.sbay.org
Refeмences: <1994Jun12.063838.23007@nntpxfeм.psi.com>
X-Class: Slow
Subject: Re: Green Card Lottery - Last Call - <AD>
Organization: The GRAFex Company
Distribution: world
X-Newsreader: Helldiver 1.07 (Waffle 1.65)
Lines: 10
=== конец ===
Строка From стала значительно длиннее:
grafex.sbay.org где-то в Америке,
дальше ... дальше ... дальше news.tele.fi -
финляндия, ... news.spb.su -
Петербург, KremlSun - Москва, render - узловая
машина Global Ukraine.
Xref: ссылки на номера статей на машине render.
Эта статья содержится в
двух конференциях: relcom.education под номером 18,
а в конференции
alt.religion.islam под номером 1418. По этим номерам
можно заказать у
News-сервера данную статью (с указанием
названия конференции).
Newsgroups: перечень конференций, в которые
послана статья. Из перечисленных
на render.gu.kiev.ua существуют только две.
X-Newsreader: программа, с помощью которой
написана статья (Helldiver 1.07 )
X-Class: электронные письма, как и в обычной
почте, бывают срочные и простые.
Это простое - Slow.
Бывают и другие типы полей, ведь люди в
Internet-е работают не только
в MS-DOS, но и в Windows, в Unix, на Макинтошах и т.д..
Почтовые программы в этих системах могут
добавлять свои поля.