Mensagens MIME

Cabeçalhos MIME

Uma mensagem MIME consiste em dados e em metadados. Os metadados MIME consistem em cabeçalho de estilo HTTP e em delimitadores de limite MIME. Cada cabeçalho é um par nome-valor separado por dois pontos em uma linha. A seqüência ASCII <CR><LF> termina a linha. Uma seqüência desses cabeçalhos, denominada bloco de cabeçalho, é terminada por uma linha em branco: <CR><LF><CR><LF>. Os cabeçalhos após este estilo HTTP podem aparecer em um documento MIME. Vários cabeçalhos MIME padrão são descritos em Campos de Cabeçalho Padrão MIME.

Content-Type

O único cabeçalho que o analisador MIME insiste para que fique presente é o cabeçalho Content-Type. Este cabeçalho especifica o tipo de dados na mensagem. Se o valor Content-Type começar com "multipart", isto indica que a mensagem é uma mensagem MIME multipartes. Para mensagens multipartes, o Content-Type também deve incluir um atributo de limite fornecendo o texto utilizado para delimitar as partes da mensagem. Cada Part MIME separada possui seu próprio campo Content-Type que especifica o tipo dos dados na Part. Ele também pode ser multipartes, permitindo que mensagens multipartes sejam aninhadas. As partes MIME com outros valores de Content-Type são manipuladas como dados BLOB.

Se um documento MIME for enviado pelo HTTP, o cabeçalho Content-Type aparecerá no bloco do cabeçalho HTTP em vez de no corpo da mensagem MIME. Por isso, o intermediário gerencia o valor do cabeçalho Content-Type como a propriedade ContentType na pasta Propriedades da árvore lógica. Isto permite que o analisador MIME obtenha o valor de Content-Type para um documento MIME recebido pelo HTTP. Se precisar criar uma nova árvore MIME ou modificar o valor de Content-Type. Configure o valor de Content-Type utilizando a propriedade ContentType no domínio MIME. A configuração do valor de Content-Type diretamente na árvore MIME ou nas árvores HTTP pode pode fazer com que o valor seja ignorado ou utilizado de forma inconsistente. O ESQL a seguir é um exemplo de como configurar a propriedade ContentType do intermediário:
SET OutputRoot.Properties.ContentType = 'text/plain';

Analisando

O domínio MIME não executa a especificação MIME completa. Isto permite trabalhar com mensagens que podem ser inválidas em outros aplicativos. Por exemplo, o analisador MIME não persiste em um cabeçalho MIME-Version. O analisador MIME impõe estas restrições:
  • Os cabeçalhos MIME devem ser formatados corretamente. Isto significa que:
    • Cada cabeçalho é um par nome-valor separado por dois-pontos em uma linha de sua propriedade, terminada pela seqüência ASCII <CR><LF>.
    • A linha de cabeçalho deve utilizar ASCII de 7 bits.
    • Utilize ponto e vírgula para separar parâmetros:
      Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml
    • Um cabeçalho pode ter um comentário entre parênteses, por exemplo:
      MIME-Version: 1.0 (Gerado por XYZ)
  • Uma linha que começa com um espaço em branco é tratada como uma continuação da linha anterior. Isto permite que um cabeçalho longo seja dividido em várias linhas.
  • Se dois ou mais cabeçalhos em um bloco de cabeçalhos tiverem o mesmo nome, seus valores serão concatenados em uma lista separada por vírgula.
  • Um cabeçalho MIME Content-Type de nível superior deve estar disponível. O cabeçalho não faz distinção entre maiúsculas e minúsculas. Se o transporte for HTTP, qualquer valor de Content-Type no cabeçalho HTTP será utilizado como o Content-Type de nível superior. Se o transporte não for HTTP, Content-Type deverá aparecer no bloco de cabeçalhos inicial da mensagem MIME.
  • O valor de Content-Type é um tipo de mídia seguido pelo caractere / e por um subtipo. Exemplos deles são text/xml e multipart/related. O analisador não valida subtipos. Esse valor pode ser seguido por um ou mais parâmetros separados por ponto e vírgula.
  • Se o tipo de mídia de uma mensagem for multipartes, um atributo de limite deverá fornecer o texto utilizado para delimitar as partes MIME separadas.
  • Cada parte MIME individual pode ter seu próprio cabeçalho Content-Type. O cabeçalho Part pode ter um tipo de mídia multipartes, permitindo que mensagens multipartes sejam aninhadas. Neste caso, o atributo de limite válido deve ser fornecido e seu valor deve ser diferente de qualquer um definido anteriormente na mensagem. As partes MIME com qualquer outro valor de Content-Type são manipuladas como dados BLOB.
  • Os delimitadores de limites multipartes MIME são representados em ASCII de 7 bits. O delimitador de limite consiste em uma linha que começa com um par de hífens, seguido por uma cadeia de limite. Esta seqüência não deve ocorrer na mensagem MIME em nenhum ponto diferente de um limite. Um delimitador final MIME é um par de hífens, seguido pela cadeia de limite MIME, seguida por um par de hífens adicional. Todas as linhas delimitadoras devem ser encerradas na seqüência ASCII <CR><LF>. Um exemplo de uma mensagem delimitada é:
    --MIME_boundary
    message data
    --MIME_boundary
    message data
    --MIME_boundary--
    em que MIME_boundary é a cadeia do delimitador de limite e message data representa os dados da mensagem.
  • O tipo de mídia MIME "message" não é suportado e resulta em um erro no tempo de execução.
  • Os dados iniciais (texto entre o bloco de cabeçalhos MIME inicial e o primeiro delimitador de limite) ou dados finais (texto após o delimitador de limite final) estão armazenados na árvore lógica como um elemento apenas de valor. Os dados iniciais e finais podem aparecer apenas como o primeiro e o último filhos de um nó Parts respectivamente.
  • O analisador MIME não suporta análise on demand e ignora a propriedade Cronometragem de Análise. O analisador não valida mensagens MIME em um modelo de mensagem e ignora a propriedade Validar do Message Brokers Toolkit.

Casos Especiais de MIME Multipartes

O analisador MIME destina-se principalmente à utilização com mensagens MIME multipartes. No entanto, o analisador também manipula alguns casos especiais:
  • MIME multipartes com apenas uma parte. A árvore lógica da parte MIME salva o Content-Type e outras informações normalmente, mas o elemento Data para o anexo está vazio.
  • MIME de Parte Única. Para o MIME de parte única, a árvore lógica não possui filhos Parts. O último filho da árvore MIME é o elemento Data. O elemento Data é o pai do BLOB que contém os dados da mensagem.
  • Partes MIME sem conteúdo.

S/MIME (Secure MIME)

S/MIME é um padrão para enviar e-mail seguro. S/MIME tem um Content-Type de nível externo de multipart/signed com os parâmetros protocol e micalg que definem os algoritmos utilizados para criptografar a mensagem. Uma ou mais partes MIME podem ter conteúdo codificado. Estas partes possuem valores de Content-Type como application/pkcs7-signature e e um Content-Transfer-Encoding de base64. O domínio MIME não tenta interpretar ou verificar se a mensagem está realmente assinada.

Conceitos relacionados
Detalhes da Árvore MIME
Estrutura de Árvore Lógica
Conceitos de Modelagem de Mensagens
Tarefas relacionadas
Manipulando o Conteúdo do Corpo da Mensagem
Referências relacionadas
Campos de Cabeçalho Padrão MIME
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac30080_