Протоколы Интернет

Подтип "digest" предназначен для многоцелевого почтового сообщения, когда различным частям хотят приписать более детальную информацию, чем просто тип:

From: Moderator-Address

MIME-Version: 1.0

Subject: Internet Digest, volume 42

Content-Type: multipart/digest;

boundary="---- next message ----"

------ next message ----

From: someone-else

Subject: my opinion

.body goes here .

------ next message ----

From: someone-else-again

Subject: my different opinion

. another body goes here .

------ next message ------

Приведенный пример показывает как можно воспользоваться подтипом "digest" для рассылки почты разным пользователям и по-разному поводу, используя поля "From:" и "Subject" в качестве частных заголовков.

Подтип "parallel" предназначен для составления такого почтового сообщения, части которого должны отображаться одновременно, что предполагает запуск сразу нескольких программ просмотра. Синтаксис такого сообщения аналогичен рассмотренным выше.

Тип "message". Данный тип предназначен для работы с обычными почтовыми сообщениями, которые однако не могут быть переданы по почте по разного рода причинам. Эти причины объясняются подтипами данного типа.

Подтип "partial" предназначен для передачи одного большого сообщения по частям для последующей автоматической сборки у получателя. Приведем пример передачи аудио сообщения разбитого на части:

X-Weird-Header-1: Foo

From: Bill@host.com

To: joe@otherhost.com

Subject: Audio mail

Message-ID: id1@host.com

MIME-Version: 1.0

Content-type: message/partial;

id="ABC@host.com";

number=1; total=2

X-Weird-Header-1: Bar

X-Weird-Header-2: Hello

Message-ID: anotherid@foo.com

Content-type: audio/basic

Content-transfer-encoding: base64

. first half of encoded audio data goes here .

and the second half might look something like this:

From: Bill@host.com

To: joe@otherhost.com

Subject: Audio mail

MIME-Version: 1.0

Message-ID: id2@host.com

Content-type: message/partial;

id="ABC@host.com"; number=2; total=2

. second half of encoded audio data goes here .

Атрибуты подтипа определяют идентификатор сообщения (id), номер порции (number) и общее число порций (total). Следует обратить внимание на то, что каждая часть имеет свое поле "Content-Type". Это означает, что все сообщение может состоять из частей разных типов.

Другим подтипом является "External-Body", который позволяет ссылаться на внешние, относительно сообщения, информационные источники. Этот подтип похож на гипертекстовую ссылку из типа "text". Приведем конкретный пример:

From: Whomever

Subject: whatever

MIME-Version: 1.0

Message-ID: id1@host.com

Content-Type: multipart/alternative; boundary=42

--42

Content-Type: message/external-body;

name="BodyFormats.ps";

site="thumper.bellcore.com";

access-type=ANON-FTP;

directory="pub";

mode="image";

expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)"

Content-type: application/postscript

--42

Content-Type: message/external-body;

name="/u/nsb/writing/rfcs/RFC-XXXX.ps";

site="thumper.bellcore.com";

access-type=AFS

expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)"

Content-type: application/postscript

--42

Content-Type: message/external-body;

access-type=mail-server

server="listserv@bogus.bitnet";

expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)"

Content-type: application/postscript

get rfc-xxxx doc

--42--

В данном примере приведено использование "External-Body" и "multipart/alternative". Все сообщение разбито на несколько фрагментов. В каждом из фрагментов находится ссылка на внешний файл. Реально тела почтового сообщения нет (границы программами просмотра не отображаются). Однако если программа просмотра способна работать с внешними протоколами, то можно ссылки разрешить автоматически, запуская соответствующий сервис.

Стандартным подтипом типа "message" является "rfc822". Данный подтип определяет сообщения стандарта RFC822.

Типы описания нетекстовой информации. Таких типов имеется четыре:

ü"image" для описания графических образов. Наиболее часто используются файлы форматов GIF и JPEG.

ü"audio" для описания аудио информации. Для воспроизведения сообщения данного типа требуется специальное оборудование.

ü"video" для передачи фильмов. Наиболее популярным является формат MPEG.

ü"application" для передачи данных любого другого формата, обычно используется для передачи двоичных данных для последующего промежуточного преобразования. Так если на машине стоит видео-карта с 512Kb памяти, а графика подготовлена в 256 цветах, то сначала ее следует преобразовать и здесь может помочь тип "application". Основной подтип данного типа - "octet-stream", но существуют "ODA" и "Postscript".

Назначение данных типов ясно из названия - обозначение данных для последующей обработки как данных в форматах, определяемых подтипом.

Поле типа кодирования почтового сообщения (Content-Transfer-Encoding). Многие данные передаются по почте в их исходном виде. Это могут быть 7bit символы, 8bit символы, 64base символы и т.п. Однако при работе в разнородных почтовых средах необходимо определить механизм их представления в стандартном виде - US-ASCII. Для этого существуют процедуры кодирования такого сорта данных. Наиболее широко применяемая - uuencode. Для того, чтобы при получении данные были бы правильно распакованы и введено в стандарт поле "Сontent-Transfer-Encoding". Синтаксис этого поля следующий:

Content-Transfer-Encoding:= "BASE64" / "QUOTED-PRINTABLE" /

"8BIT" / "7BIT" /

"BINARY" / x-token

Каждая из альтернатив применяется в своем подходящем случае. Альтернативы "8bit", "7bit", "BINARY" реально никакого преобразования не требуют, так как почта передается байтами и SMTP не делает различия между ними. Однако они введены для строгости описания типов. "BASE64" обычно используется в связке с типом "text/ISO-8859-1", "x-token" позволяет пользователю описать свою процедуру преобразования.

Дополнительные необязательные поля. Как уже говорилось ранее, стандарт определяет еще два дополнительных поля: "Content-ID" и "Content-Description". Первое поле определяет уникальный идентификатор содержания, а второе служит для комментария содержания. Ни то, ни другое программами просмотра обычно не отображаются.


Страница: