Означает ли наличие заголовка Content-ID в почтовом MIME, что вложение должно быть встроено?

11

Два разных сторонних почтовых продукта по-разному реагируют на наличие заголовка content-id в источнике MIME электронной почты. Это приводит к противоречивому взаимодействию с пользователем, которое мы пытаемся устранить.

Вот пример:

--boundary-example
Content-Location: CID:somethingatelse 
Content-ID: <foo4atfoo1atbar.net>
Content-Type: IMAGE/GIF
Content-Transfer-Encoding: BASE64

R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNv
cHlyaWdodCAoQykgMTk5LiBVbmF1dGhvcml6ZWQgZHV
wbGljYXRpb24gcHJvaGliaXRlZC4A etc..

Один продукт электронной почты интерпретирует это как встроенное изображение. Другой интерпретирует это как обычное вложение (не внедрено). Если мы полностью удалим строку Content-ID , оба продукта будут считать, что вложение не встроено.

Существует ли конкретный RFC, который окончательно определяет, какое поведение является правильным? Мы с коллегой рассмотрели RFC2392, в котором во вступительном реферате говорится:

Использование [MIME] в электронной почте для передачи веб-страниц и
связанных с ними изображений требует схемы URL-адресов, чтобы позволить HTML-ссылке ссылаться
на изображения или другие данные, включенные в сообщение.
Унифицированный указатель ресурса Content-ID , "cid:", служит этой цели. […] Схема «cid» относится к определенной части тела сообщения; его использование обычно ограничивается ссылками на другие части тела в том же сообщении, что и ссылающаяся часть тела. «Средняя» схема может также ссылаться на конкретную часть тела в указанном сообщении, включая адрес идентификатора контента.

Поэтому, хотя и не абсолютно, мы склонны полагать, что, поскольку все встроенные элементы нуждаются в cid для ссылки на них, и что он «обычно ограничен другими частями тела в том же сообщении», и что вложения не нуждаются в cid Для продукта электронной почты разумно рассматривать наличие cid как показатель «намерения внедрить».

Могу ли я получить подтверждение по этому поводу?

Майк Б
источник
Спросите автора RFC или соответствующую IETF WG, может быть?
sendmoreinfo

Ответы:

8

Символ Content-IDне означает, что изображение должно отображаться в строке. Этот заголовок необходим для ссылки на встроенные данные в HTML.

Поскольку электронное письмо является текстовым сообщением, нет никакой причины отображать внедренное изображение, если оно является текстовым.

Некоторые клиенты отображают данные встроенными независимо от формата HTML или обычного текста. Но это не определенное поведение

Томас Бергер
источник
8

Я думаю, что вы ищете Content-Dispositionполе заголовка, которое позволяет вам определить стиль представления части тела (например, изображения), чтобы быть inlineили attachment.

Вот встроенный пример, созданный Thunderbird:

--------------040202010204080305090405
Content-Type: image/png; name="test.png"
Content-Transfer-Encoding: base64
Content-ID: <part1.02080004.04000407@sample.com>
Content-Disposition: inline; filename="test.png"

Вы можете прочитать больше на:

james.garriss
источник
Заголовок Content-Disposition не всегда включен. Иногда необходимо определить, является ли деталь встроенной или прикрепленной, основываясь на заголовках, указанных в вопросе.
user2817219