Поделиться через


Вложенные файлы и сообщения

Область применения: Outlook 2013 | Outlook 2016

Если mime с TNEF используется при кодировании содержимого сообщения, все свойства вложений и содержимое находятся в потоке TNEF. Сам TNEF — это один двоичный вложенный файл с именем Winmail.dat, закодированный, как описано для MIME без TNEF.

Если MIME используется без TNEF, вложенные файлы отправляются как части содержимого сообщения MIME. Имя файла помещается в параметр name в заголовок Content-type для вложения. Набор символов для вложения помещается в параметр charset для типа содержимого; он и кодирование передачи содержимого определяются путем сканирования всего содержимого вложения. Вложения URL-адресов обрабатываются специально:

  • Если вложение является URL-адресом (вложенный файл с расширением . URL- адрес), и режим доступа, определенный в нем, является анонимным FTP, он кодируется как внешнее сообщение, а содержимое файла (URL-адрес) копируется в заголовок внешнего сообщения. Content-type: message/external-body; access-type=anon-ftp (предполагается, что content-Transfer-Encoding: 7bit).)

  • Если найдены только 7-разрядные символы, а длина строки не превышает 140 символов, вложение представляет собой текст ASCII. Тип содержимого: текстовый или обычный; charset=us-ascii Content-Transfer-Encoding: 7bit

  • Если найдены длинные строки или до 25 % 8-разрядных символов, содержимое вложения представляет собой текст, а набор символов определяется языковым стандартом. Его следует выбирать из наборов символов, определенных стандартом ISO 8859. Тип содержимого: text/plain; charset=ISO-8859-1 (например)

    Content-Transfer-Encoding: quoted-printable

  • Если 25 % или более символов имеют высокий бит, вложение будет двоичным. Кодируется с помощью алгоритма Base64. Тип содержимого: application/octet-stream (по умолчанию; на основе расширения файла)

    • Content-Transfer-Encoding: base64 *

В исходящих сообщениях тип содержимого должен быть производным от расширения имени файла из трех букв. Это сопоставление существует в системном реестре; под имеется строковое значение с именем "Тип контента", которое указывает тип контента MIME, если он определен. Этот пример предназначен для файла изображения TIFF:

HKEY_LOCAL_MACHINE\

Программного обеспечения\

Microsoft\

Классы\

.Tif

Тип содержимого = "image/tiff"

Если для расширения файла нет сопоставления, следует использовать поток приложения или октета по умолчанию.

Во входящих сообщениях тип содержимого для вложения всегда должен быть скопирован в свойство MAPI PR_ATTACH_MIME_TAG (PidTagAttachMimeTag). Даже если для присоединенного файла определено имя файла, расширение, сопоставленное типом содержимого, должно использоваться в свойствах PR_ATTACH_FILENAME (PidTagAttachFilename) и PR_ATTACH_EXTENSION (PidTagAttachExtension).

Параметр name официально устарел в RFC 821. По мере развития стандартов корпорация Майкрософт рассмотрит возможность указания альтернативного сопоставления для вложенных имен файлов.

Исходящие вложенные сообщения отправляются как тип содержимого: message/rfc822 Сообщения в вложенных сообщениях кодируются рекурсивно в нужном месте. Части содержимого входящих сообщений с content-Type: multipart/digest также сопоставляются с внедренными сообщениями.

Если код uuencode с TNEF используется при кодировании содержимого сообщения, все свойства вложений и содержимое находятся в потоке TNEF. Сам TNEF представляет собой один двоичный вложенный файл с именем Winmail.dat, закодированный, как описано для Uuencode без TNEF.

Если uuencode используется без TNEF, все вложенные файлы обрабатываются как двоичные и uuencoded после текста сообщения. Имя файла присутствует в заголовке uuencode:

begin 0755 Winmail.dat

... Данных...

end

Вложенные сообщения текстируются в текст сообщения. Иерархия вложенных сообщений всегда плоская; то есть сообщения во вложенных сообщениях извлекаются на верхний уровень.

Внедренные объекты OLE удаляются.

Позиции отрисовки вложений передаются буквально с помощью свойства PR_ATTACH_RENDERING (PidTagAttachRendering) в TNEF. Если TNEF не используется, они теряются. Для входящих вложений без позиции отрисовки (в том числе при отсутствии TNEF) их позиция отрисовки имеет значение 0xFFFFFFFF, то есть нет позиции в тексте сообщения.

См. также

Сопоставление атрибутов почты Интернета со свойствами MAPI