Стандартом почтовых сообщений предусмотрено большое количество полей. Часть из них являются обязательными, т.е. без них невозможно осуществить правильную доставку сообщений, а часть - необязательными. Ниже перечислены наиболее часто используемые поля.
Message-ID– уникальный идентификатор сообщения. Уникальность значения этого поля гарантируется программным обеспечением узла-отправителя, поэтому оно генерируется автоматически.
Date– поле "Дата". Содержит дату отправки сообщения. Значение поля устанавливается автоматически почтовым клиентом при отправке сообщения.
From– поле "От". Содержит адрес, который отправитель сообщения указывает в качестве исходящего адреса.
Sender – поле "Отправитель". Содержит адрес, с которого было реально отправлено сообщение. Это поле может отсутствовать в заголовке, если поле "From" содержит адрес реального отправителя.
To– поле "Кому". Содержит адрес основного получателя сообщения.
Cc– поле "Копия". Содержит адреса дополнительных получателей сообщения.
Bcc – поле "Скрытая копия". Содержит адреса дополнительных получателей сообщения. Получатели, перечисленные в полях "To" и "Cc", не будут знать, что абоненты из списка "Bcc" получили копию сообщения.
Во всех полях, предназначенных для указания адресов получателей ("To", "Cc" и "Bcc") может указываться как один, так и несколько адресов. Поля могут также отсутствовать в сообщении. Однако очевидно, что для отправки сообщения должен быть указан хотя бы один адрес получателя в любом из этих полей
Reply-to – поле "Ответить". Содержит адрес, по которому получатель должен направлять ответ. Это поле является необязательным: в случае его отсутствия ответы направляются по адресу, указанному в поле "From".
Subject – поле "Тема сообщения". В этом поле обычно указывается краткое описание (тема) сообщения.
Пример сообщения и его представление в клиентской программе (Microsoft Outlook 2000) при отправке и получении
Тело сообщения
Изначально предполагалось, что почтовые сообщения могут содержать только текст в формате ASCII. А поскольку возможность передачи нетекстовой информации не предусматривалась, то протоколы передачи электронной почты могут некорректно обрабатывать такие сообщения. В связи с этим в свое время был разработан специальный стандарт, определяющий принципы преобразования нетекстовых данных к текстовому виду. Этот стандарт получил название MIME (Multipurpose Internet Mail Extension, многоцелевое расширение почты Интернет).
MIME предполагает, что в теле сообщения могут передаваться следующие виды информации:
текст – простой текст в формате ASCII, а также текст в формате RTF или HTML;
графические изображения – файлы в формате JPEG и GIF;
аудио и видео данные;
данные в форматах различных приложений, например, документы Microsoft Office, а также данные произвольного формата (в том числе, различные исполняемые файлы).
В одном почтовом сообщении могут быть переданы данные различных типов. Такие сообщения представляют собой структуру с общим заголовком и несколькими блоками внутри тела, каждый из которых содержит информацию своего типа.
Это широко используется при отправке сообщений с вложениями (attachments) – дополнительными "прикрепленными" файлами, которые могут содержать разнородную информацию. Например, к текстовому сообщению можно прикрепить графический файл c фотографией отправителя.
Пример сообщения с вложением и его представление в клиентской программе
Кроме того, это может оказаться полезным, когда текст сообщения необходимо передать в разных форматах. Например, отправленное сообщение в формате HTML, содержащее какое-либо оформление, может некорректно восприниматься клиентской программой получателя. Чтобы избежать подобных проблем почтовый клиент отправителя может сформировать альтернативное представление сообщения в виде простого текста.
Пример сообщения с альтернативным представлением и его представление в клиентской программе
Для обеспечения корректной передачи сообщений c нетекстовыми данными в MIME предусмотрены два алгоритма перекодировки, осуществляющие преобразование таких данных к тестовому виду:
алгоритм "Quoted-printable", предназначенный для замены байтов, не являющихся ASCII-символами, на группу из трех байт, представляющих собой только стандартные символы;
алгоритм "Base64", осуществляющий преобразование трех произвольных байт в четыре ASCII-символа.
Для обеспечения корректной интерпретации данных стандартом MIME в заголовок сообщения вводятся дополнительные специальные поля.
Content-type – поле "Тип содержимого". Отвечает за корректное определение типа данных, содержащихся в сообщении заголовка сообщения. Значение поля указывает на конкретный тип данных, или информирует о том, что тело содержит несколько разнотипных блоков.
Content-Transfer-Encoding – поле "Тип кодирования содержимого". Определяет способ преобразования (перекодировки) исходных данных в текстовый вид.