Mensagens 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.

Cabeçalhos 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>. Qualquer cabeçalho que estiver nesse estilo HTTP poderá aparecer em um documento MIME. Alguns cabeçalhos MIME comuns são descritos em Campos de Cabeçalho Padrão MIME.

Content-Type

O único cabeçalho que deve estar 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", a mensagem será uma mensagem MIME de várias partes. Para mensagens de várias partes, o cabeçalho Content-Type também deve incluir um atributo de limite que fornece o texto utilizado para delimitar as partes da mensagem. Cada parte MIME tem seu próprio campo Content-Type que especifica o tipo dos dados na parte. Pode ser de várias partes, o que permite aninhar mensagens de várias partes. As partes MIME com outros valores de Content-Type são manipuladas como dados BLOB.

Se um documento MIME for enviado por HTTP, o cabeçalho Content-Type aparecerá no bloco de 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. Isso permite ao analisador MIME obter o valor Content-Type para um documento MIME recebido por HTTP. Se você precisar criar uma nova árvore MIME ou modificar o valor do Content-Type, defina o valor Content-Type utilizando a propriedade ContentType no domínio MIME. Se você definir o valor Content-Type diretamente na árvore MIME ou HTTP, esse valor poderá ser 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. Por isso, você pode trabalhar com mensagens que talvez não sejam válidas em outros aplicativos. Por exemplo, o analisador MIME não persiste em um cabeçalho MIME-Version. O analisador MIME impõe as seguintes restrições:
  • Os cabeçalhos MIME devem ser formatados corretamente:
    • 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.
    • O ponto-e-vírgula é utilizado para separar parâmetros:
      Content-Type: Multipart/Related; boundary=MIME_boundary; type=text/xml
    • Um cabeçalho poderá conter um comentário entre parênteses, por exemplo:
      MIME-Version: 1.0 (Gerado por XYZ)
  • Uma linha que começa com espaço em branco é tratada como continuação da linha anterior. Assim, um cabeçalho longo pode ser dividido em mais de uma linha.
  • Se dois ou mais cabeçalhos em um bloco de cabeçalho 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. O valor Content-Type 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 várias partes, 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 da parte pode ter um tipo de mídia de várias partes, o que permite aninhar mensagens de várias partes. Nesse caso, um atributo de limite válido deve ser fornecido, e seu valor deve ser diferente de qualquer um que tenha sido definido anteriormente na mensagem. As partes MIME que tiverem qualquer outro valor Content-Type serão tratadas 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. Dados iniciais e finais poderão aparecer somente como os filhos primeiro e último, respectivamente, de um nó Partes (Parts).
  • O analisador MIME não suporta análise on demand e ignora a propriedade Cronometragem de Análise (Parse Timing). O analisador não valida mensagens MIME em um modelo de mensagem e ignora a propriedade Message Brokers Toolkit Validar .

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 MIME de parte única, a árvore lógica não tem filho de Partes (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

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:56

ac30080_