Можно ожидать, что каждый заголовок сообщения содержит поля
Message-Id: <199508271201.AA02330@PASCAL.MATH.YALE.EDU>
Поле Message-Id должно быть уникально для сети. Для этого в поле наряду с уникальным буквенно- цифровым идентификатором обычно включается имя хоста отправителя. Отметим, что показанный выше идентификатор содержит дату (1995 08 27), универсальное время (12 01) и дополнительную строку, обеспечивающую уникальность идентификатора для данного хоста и времени отправки.
Поля
Очень важна пустая строка за заголовком сообщения. По ней пользовательский агент определяет, что заголовок завершился и начинается тело сообщения.
16.12 Почтовые расширения файлов и MIME
Простота SMTP и формата почты облегчает реализацию почтовых систем Интернета и приводит к широкому распространению этих средств. Однако пользователям неудобно работать с простыми и ограниченными по своим возможностям текстовыми сообщениями. Ясно, что SMTP нуждался в переработке. Но как это можно было сделать без изменения уже установленных базовых почтовых приложений?
Было выбрано очень практичное решение. Новые клиенты MIME должны создаваться с учетом возможности получать сообщения из нескольких частей, содержащих много полезных типов информации. Эти сообщения позволяют проводить обмен:
■ Эффективно — через новый улучшенный агент пересылки сообщений SMTP.
■ Менее эффективно — через старый стандарт SMTP. Перед пересылкой нетекстовой части сообщения старому агенту SMTP эта часть должна быть преобразована так, чтобы она выглядела как обычный текст NVT.
На рис. 16.7 показана работа такой архитектуры.
Рис. 16.7. Доставка сообщения MIME
16.12.1 Улучшенный агент пересылки почты
Улучшенный агент пересылки почты (Extended Message Transfer Agent) должен поддержать одну дополнительную команду. Вместо
Потребность поддержки MIME была основным поводом для улучшения агентов пересылки почты MTA. Кроме этого, можно добавить поддержку дополнительных служб посредством введения новых ключевых слов для EHLO. Для пересылки сообщения увеличенного размера имеется новая служба, позволяющая отправителю декларировать размер сообщения перед его отправкой. Приемник может указать, готов ли он принять сообщение такого размера. Он также может указать наибольший доступный для него размер.
Официальные расширения регистрируются в Internet Assigned Numbers Authority (IANА). Отдельные программы включают новые экспериментальные расширения, для которых используются временные названия, начинающиеся с X.
16.12.2 Диалог в улучшенной версии SMTP
Показанный ниже пример демонстрирует, как улучшенный агент пересылки почты формирует транзакцию для отправки сообщения MIME в 8-битном формате:
■ Получатель объявляет о своих улучшенных возможностях, включая 8BITMIME.
■ Команда MAIL FROM имеет параметр BODY = 8BITMIME.
EHLO MATH-GW.CS.YALE.EDU
250-Hello MATH-GW.CS.YALE.EDU, pleased to meet you
250-8BITMIME
250-HELP
250-SIZE
250-XONE
250-XVRB
250-XQUE
MAIL FROM:<feit-sidnie@math.yale.edu> BODY = 8BITMIME
250 <feit-sidnie@math.yale.edu>... Sender ok
RCPT TO:<Mary-Smith@jcn.com>
250 <Mary-Smith@jcn.com>... Recipient ok
DATA
354 Send 8BITMIME message, ending in CRLF.CRLF.
...
.
250 OK QUIT
250 Goodbye
16.13 Формат сообщений MIME
Сообщение MIME содержит набор заголовков и одну или несколько
Если сообщение состоит из нескольких частей, один из вводных заголовков определяет строку, используемую как