Назад | Перейти на главную страницу

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

Два разных сторонних почтовых продукта по-разному реагируют на присутствие 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» относится к определенной части тела сообщения; его использование обычно ограничивается ссылками на другие части тела в том же сообщении, что и ссылающаяся часть тела. Схема «mid» может также относиться к определенной части тела в обозначенном сообщении, включая адрес идентификатора содержимого.

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

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

Я думаю ты ищешь 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"

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

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

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

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