Um tamanho de e-mail negativo é exibido no ambiente local
Cenário: O nó EmailInput recebe
um e-mail de um servidor de e-mail que suporta Post Office Protocol 3 (POP3), mas o
tamanho do e-mail, incluindo anexos, pode exibir um valor negativo na árvore lógica
Root.EmailInputHeader.Size Multipurpose Internet Mail Extensions
(MIME).
Explicação: O provedor do servidor de e-mail que suporta POP3 usa o comando
TOP para buscar os cabeçalhos da mensagem de e-mail e o comando
LIST para determinar o tamanho da mensagem inteira. O servidor então
subtrai os dois valores para determinar o tamanho do corpo da mensagem. Se o servidor
relatar o tamanho da mensagem inteira incorretamente, você poderá ver um número
negativo no campo Tamanho do ambiente local.
Solução: Você pode usar um nó
Compute para calcular o tamanho da mensagem de
e-mail e o tamanho de qualquer anexo. O exemplo de ESQL a seguir pode ser usado para
calcular o tamanho do conteúdo de e-mail e anexos para um documento MIME com várias
partes. Nesse exemplo, o resultado é armazenado no LocalEnvironment:
DECLARE CURSOR REFERENCE TO InputRoot.MIME.Parts;
DECLARE I INTEGER 0;
FOR SOURCE AS CURSOR.Part[] DO
SET I = I + LENGTH( SOURCE.Data.BLOB.BLOB);
END FOR;
SET OutputLocalEnvironment.Variables.EmailSize = I;
Um erro de análise é exibido quando você reanalisa um anexo de e-mail como XML
Cenário: Seu fluxo de mensagens recupera e-mails de um servidor de e-mail
usando um nó EmailInput. O e-mail contém um
anexo de documento XML que você deseja reanalisar. Entretanto, quando você tenta
reanalisar o anexo, erros de análise são recebidos do
WebSphere Message Broker relatando que você tem um caractere XML
inválido.
Explicação: Alguns servidores de e-mail podem inserir caracteres de retorno de
linha (CR) e avanço de linha (LF) no final de um e-mail.
Normalmente, você
desejaria manter esses caracteres, mas nesse cenário é necessário removê-los para
poder reanalisar os dados XML.
Solução: Use o seguinte ESQL em um nó
Compute para remover os caracteres CR e LF:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X'0d0a' FROM InputRoot.
MIME.Data.BLOB.BLOB );
Removendo Caracteres Nulos Indesejados de um E-mail
Cenário: Seu anexo de e-mail contém caracteres nulos indesejados que você
gostaria de remover.
Explicação: Seu anexo de e-mail pode conter caracteres nulos que você
gostaria de remover; por exemplo, você planeja reanalisar os dados no anexo.
Solução: Use o seguinte ESQL em um nó
Compute para remover os caracteres nulos:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X'00' FROM InputRoot.MIME.
Data.BLOB.BLOB)