Структура письма

При передаче по протоколу SMTP Электронное письмо состоит из следующих частей:

  • Заголовков SMTP-протокола, полученных сервером. Эти заголовки могут включаться, а могут и не включаться в письмо в дальнейшем, так что возможна ситуация, когда сервер обладает большей информацией о письме, чем содержится в самом сообщении. Так, например, поле RCPT TO указывает получателя письма, при этом в самом письме получатель может быть не указан. Эта информация передаётся за пределы сервера только в рамках протокола SMTP, и смена протокола при доставке почты (например, на узле-получателе в ходе внутренней маршрутизации) может приводить к потере этой информации. В большинстве случаев эта информация недоступна конечному получателю, который использует не-SMTP протоколы (POP3, IMAP) для доступа к почтовому ящику. Для возможности контролировать работоспособность системы эта информация обычно сохраняется в журналах почтовых серверов.
  • Самого сообщения (в терминологии протокола SMTP — ‘DATA’), которое, в свою очередь, состоит из следующих частей, разделённых пустой строкой:
    • Заголовков (англ. headers) письма, иногда называемых по аналогии с бумажной почтой конвертом (англ. envelope). В заголовке указывается служебная информация и пометки почтовых серверов, через которые прошло письмо, пометки о приоритете, указание на адрес и имя отправителя и получателя письма, тема письма и другая информация. С термином «конверт» есть некоторая путаница, потому что в зависимости от ситуации «конвертом» называют либо заголовок письма, либо информацию, которой располагает SMTP-сервер после получения письма (так, например, в документации к почтовому серверу postfix, термин «конверт» используется в отношении SMTP-данных, включающих не только поля RCPT TO и MAIL FROM, но и IP-адрес отправителя, его строчка HELO и т. д.)
    • Тела письма. В теле письма находится, собственно, сообщение письма. Согласно стандарту, в теле письма могут находиться только символы 7-битного ASCII. Поэтому при использовании национальных кодировок, различных форм представления информации (HTML, RTF, изображения, бинарные файлы вложений) тело письма должно кодироваться по стандарту MIME и не может быть прочитано человеком без использования декодера или почтового клиента с таким декодером.