Resolución de problemas de uso de nodos de correo electrónico
Este tema contiene consejos para resolver los problemas comunes que pueden producirse cuando se desarrollan flujos de mensajes que contienen nodos de correo electrónico.
Un tamaño de correo electrónico negativo se muestra en el entorno local
Caso de ejemplo: El nodo EmailInput recibe un correo electrónico desde un servidor de correo electrónico que admite el protocolo POP3 (Post Office Protocol 3), pero el tamaño del correo electrónico (incluidos los archivos adjuntos) podría mostrar un valor negativo en el árbol lógico MIME (Multipurpose Internet Mail Extensions) Root.EmailInputHeader.Size.
Explicación: El proveedor del servidor de correo electrónico que admite POP3 utiliza el mandato TOP para obtener las cabeceras del mensaje de correo electrónico y el mandato LIST para determinar el tamaño de todo el mensaje. A continuación, el servidor resta los dos valores para determinar el tamaño del cuerpo del mensaje. Si el servidor informa del tamaño del mensaje completo de forma incorrecta, es posible que vea un número negativo en el campo Tamaño del entorno local.
Solución: puede utilizar un nodo Compute para calcular el tamaño del mensaje de
correo electrónico y el tamaño de cualquier adjunto. El siguiente ejemplo de ESQL se
puede utilizar para calcular el tamaño del contenido y los archivos adjuntos al correo electrónico para un documento MIME. En
este ejemplo, el resultado se almacena en el entorno local:
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;
Se muestra un error de análisis al reanalizar un archivo adjunto de correo electrónico como XML
Caso de ejemplo: El flujo de mensajes recupera correos electrónicos desde un servidor de correo electrónico mediante un nodo EmailInput. El correo electrónico contiene un documento XML adjunto que quiere analizar. Sin embargo, cuando intenta volver a analizar el archivo adjunto, recibe errores de análisis de WebSphere Message Broker en que se informa de que tiene un carácter XML no válido.
Explicación: Algunos servidores de correo electrónico pueden insertar caracteres de retorno de carro (CR) y salto de línea (LF) al final de un correo electrónico.
Normalmente es preferible mantener estos caracteres, pero en este caso de ejemplo debe eliminarlos de modo que pueda volver a analizar los datos XML.
Solución: Utilice el siguiente código ESQL en un nodo Compute para eliminar los caracteres CR y LF:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X'0d0a' FROM InputRoot.
MIME.Data.BLOB.BLOB );
Eliminar caracteres nulos no deseados de un correo electrónico
Caso de ejemplo: el archivo adjunto de correo electrónico contiene caracteres nulos no deseados que desea quitar.
Explicación: la conexión de correo electrónico puede contener
caracteres nulos que desea eliminar; por ejemplo, va a analizar de nuevo los datos del adjunto.
Solución: utilice el siguiente ESQL en un
nodo Compute para eliminar los caracteres nulos:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X'00' FROM InputRoot.MIME.
Data.BLOB.BLOB)