A presença de um cabeçalho de ID do conteúdo em um MIME de email significa que o anexo deve ser incorporado?

11

Dois produtos de email de terceiros diferentes que temos estão reagindo de maneira diferente à presença de um cabeçalho de ID de conteúdo na origem MIME de um email. Isso está resultando em uma experiência inconsistente do usuário que estamos tentando resolver.

Aqui está um exemplo:

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

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

Um produto de email interpreta isso como uma imagem incorporada. O outro interpreta isso como um anexo comum (não incorporado). Se removermos completamente a linha do Content-ID , ambos os produtos pensam que o anexo não está incorporado.

Existe uma RFC específica que conclui definitivamente qual comportamento está correto? Um colega e eu revimos o RFC2392 que no resumo de abertura diz:

The use of [MIME] within email to convey Web pages and their
associated images requires a URL scheme to permit the HTML to refer
to the images or other data included in the message. The Content-ID
Uniform Resource Locator, "cid:", serves that purpose. […] The "cid" scheme refers to a specific body part of a message; its use is generally limited to references to other body parts in the same message as the referring body part. The "mid" scheme may also refer to a specific body part within a designated message, by including the content-ID's address.

Portanto, embora não seja absoluto, estamos inclinados a acreditar que, já que todos os itens incorporados precisam de um CID para fazer referência a eles, e que “geralmente é limitado a outras partes do corpo na mesma mensagem”, e que os anexos não precisam de um CID. , é um comportamento razoável que um produto de email trate a presença de um cid, como um indicador de "intenção de incorporar".

Posso obter confirmação sobre isso?

Mike B
fonte
pergunte autor RFC ou IETF WG relevante, talvez?
sendmoreinfo

Respostas:

8

A Content-IDnão indica que uma imagem deve ser exibido em linha. Este cabeçalho é necessário para referenciar os dados incorporados no HTML.

Como um email é uma mensagem de texto, não há motivo para exibir uma imagem incorporada, desde que o email seja em texto sem formatação.

Alguns clientes exibem os dados em linha, independentemente do formato ser HTML ou texto sem formatação. Mas este não é um comportamento definido

Thomas Berger
fonte
8

Acho que você está procurando o Content-Dispositioncampo de cabeçalho, que permite definir o estilo de apresentação de uma parte do corpo (como uma imagem) a ser inlineou attachment.

Aqui está um exemplo embutido criado pelo Thunderbird:

--------------040202010204080305090405
Content-Type: image/png; name="test.png"
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>
Content-Disposition: inline; filename="test.png"

Você pode ler mais em:

james.garriss
fonte
O cabeçalho Disposição de conteúdo nem sempre é incluído. Às vezes, é necessário derivar se uma parte está embutida ou um anexo com base nos cabeçalhos fornecidos na pergunta.
user2817219