WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Generar mensajes de correo electrónico dinámicos

Puede producir un mensaje de correo electrónico en el servidor SMTP, la lista de destinatarios, el asunto, el texto y varios archivos adjuntos se determinan todos en el tiempo de ejecución.

Puede crear un flujo de mensajes que produzca un correo electrónico con varios adjuntos. Para configurar un nodo EmailOutput para enviar un correo electrónico con un solo adjunto, un asunto estático y texto estático a una lista estática de destinatarios, consulte Enviar un correo electrónico con un adjunto.

Las propiedades del nodo que establezca cuando envíe un mensaje de correo electrónico pueden ser opcionales, y se puedan alterar temporalmente en el tiempo de ejecución mediante los valores que especifique en el entorno local, la cabecera de salida de correo electrónico (EmailOutputHeader) o el cuerpo del mensaje. Para utilizar este método, los nodos anteriores del flujo de mensajes deben construir estas alteraciones temporales. Cuando no se especifica un valor de texto en las propiedades del nodo para el cuerpo principal del correo electrónico, se utiliza el cuerpo del mensaje que se pasa al nodo EmailOutput.

En los siguientes ejemplos se muestra cómo establecer el destinatario, emisor, tema, servidor SMTP, y la información del cuerpo del mensaje en ESQL (con un nodo Compute) y Java™ (con un nodo JavaCompute).

Utilización de un nodo Compute

El diagrama muestra un flujo de mensajes que utiliza un nodo MQInput, un nodo Compute y un nodo EmailOutput para generar un mensaje de correo electrónico dinámico.
CREATE FUNCTION Main() RETURNS BOOLEAN
	BEGIN
		CALL CopyMessageHeaders();
		
		-- Añadir información de destinatario a EmailOutputHeader
		SET OutputRoot.EmailOutputHeader.To = '<dirección de correo electrónico del destinatario>';
		SET OutputRoot.EmailOutputHeader.Cc = '<dirección de correo electrónico del destinatario>';
		SET OutputRoot.EmailOutputHeader.Bcc = '<dirección de correo electrónico del destinatario>';

		-- Añadir información de remitente a EmailOutputHeader
		SET OutputRoot.EmailOutputHeader.From = '<dirección de correo electrónico del remitente>';
		SET OutputRoot.EmailOutputHeader."Reply-To" = '<dirección de correo electrónico de respuesta>';

		-- Añadir asunto a EmailOutputHeader
		SET OutputRoot.EmailOutputHeader.Subject = 'Sustituido por el nodo ESQL compute.';

		-- Añadir información de servidor SMTP a LocalEnvironment
		SET OutputLocalEnvironment.Destination.Email.SMTPServer ='<smtp.server:port>';

		-- Crear un nuevo cuerpo del mensaje, que se enviará como el texto principal del mensaje de correo electrónico.
		SET OutputRoot.BLOB.BLOB = CAST('Éste es el nuevo texto para el cuerpo del mensaje de correo electrónico.' AS BLOB CCSID 1208);  		

		RETURN TRUE; 
	END;
Para escribir caracteres de espacio en blanco (por ejemplo, nueva línea (NL), retorno de carro (CR), y salto de línea (LF)) en la serie de texto que se produce como el cuerpo de correo electrónico, puede añadir las siguientes líneas de código.
DECLARE crlf CHAR CAST(X’0D0A’ AS CHAR CCSID 1208);
DECLARE myEmailBodyTxt CHAR;
SET myEmailBodyTxt [equals char] 'this is the first line' || crlf ||
    'this is the second line' || crlf ||
    'this is the third line';
SET OutputRoot.BLOB.BLOB = CAST(myEmailBodyTxt AS BLOB CCSID 1208);

Utilización de un nodo JavaCompute

El diagrama muestra un flujo de mensajes que utiliza un nodo MQInput, un nodo JavaCompute y un nodo EmailOutput para generar un mensaje de correo electrónico dinámico.
public void evaluate(MbMessageAssembly assembly) throws MbException {
		MbOutputTerminal out = getOutputTerminal("out");
		
		// Crear un nuevo conjunto para propagar fuera de este nodo, ya que queremos actualizarlo
MbMessage outMessage = new MbMessage();  		copyMessageHeaders(assembly.getMessage(), outMessage);
		MbMessage outLocalEnv = new MbMessage(assembly.getLocalEnvironment());
		MbMessage outExceptionList = new MbMessage(assembly.getExceptionList());
		MbMessageAssembly outAssembly = new MbMessageAssembly(assembly, outLocalEnv, outExceptionList, outMessage);
		MbElement localEnv = outAssembly.getLocalEnvironment().getRootElement();

		// Crear el analizador de EmailOutputHeader. Aquí es donde añadimos la información del destinatario, remitente y tema.
MbElement root = outMessage.getRootElement();
		MbElement SMTPOutput = root.createElementAsLastChild("EmailOutputHeader"); 

		// Añadir información de destinatario a EmailOutputHeader
		SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "A", "<dirección de correo electrónico del destinatario"); 		
		SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Cc", "<dirección de correo electrónico del destinatario"); 		
		SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Cco", "<dirección de correo electrónico del destinatario"); 		

		// Añadir información de remitente a EmailOutputHeader 		
		SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "De", "<dirección de correo electrónico del remitente>"); 		
		SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Responder a", "<dirección de correo electrónico de respuesta>"); 		

		// Añadir información de asunto a EmailOutputHeader 		
		SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Asunto", "Sustituido por el nodo Java compute.");  		

		// Crear Destination.Email. Aquí es donde añadimos la información del servidor SMTP 		
		MbElement Destination = localEnv.createElementAsLastChild(MbElement.TYPE_NAME, "Destino", null); 		
		MbElement destinationEmail = Destination.createElementAsLastChild(MbElement.TYPE_NAME, "Correo electrónico", null); 		
		destinationEmail.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Servidor SMTP", "<smtp.server:port>"); 		 		

		// Establecer el último hijo de la raíz (cuerpo del mensaje) 	
			MbElement BLOB = root.createElementAsLastChild(MbBLOB.PARSER_NAME);	 		
		String text = "Éste es el nuevo texto para el cuerpo del mensaje de correo electrónico"; 		
		BLOB.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", text.getBytes());  		
		
		outMessage.finalizeMessage(MbMessage.FINALIZE_VALIDATE); 	 		

		out.propagate(outAssembly); 	}

Utilización del entorno local

Utilice el entorno local para especificar alteraciones temporales para los archivos adjuntos y la información de conexión del servidor SMTP.
Entorno local Descripción
Destination.Email.SMTPServer El servidor:puerto del servidor SMTP. El puerto es opcional; si no lo especifica, el valor predeterminado es 25.
Destination.Email.SecurityIdentity La identidad de seguridad para la autenticación con el servidor SMTP, que puede ser el nombre del par de ID de usuario y contraseña que se define con el mandato mqsisetdbparms, o puede hacer referencia a un recurso externo que tiene un atributo securityIdentity que hace referencia a un ID de usuario y una contraseña que se ha definido con el mandato mqsisetdbparms. En ambos casos, el valor se añade después de la serie “smtp::”. Por ejemplo, si utiliza el mandato mqsisetdbparms para crear un ID de usuario y contraseña de smtp::myUseridPassword, securityIdentity que se especifica en el nodo, o indirectamente en un recurso externo, es myUseridPassword.
Destination.Email.BodyContentType Identifica que el cuerpo del correo electrónico contiene HTML en vez texto sin formato. Puede establecer esta propiedad en text/plain, text/html, o text/xml; text/plain es el valor predeterminado.
Destination.Email.MultiPartContentType El tipo de varias partes: related, mixed y alternative. Puede establecer el valor que desee.
Destination.Email.Attachment.Content El adjunto real (BLOB/text) o una expresión XPath o ESQL que hace referencia a un elemento; por ejemplo, un elemento del árbol de mensajes o Entorno local. El valor del elemento al que se hace referencia se toma como el contenido del adjunto.
  • Si el elemento es un BLOB, es un adjunto.
  • Si el elemento es text, compruebe si se puede resolver en otro elemento en el árbol de mensajes o Entorno local. Si se puede resolver, utilice ese elemento. Si no se puede resolver, añada este elemento como adjunto.
Destination.Email.Attachment.ContentType El tipo de adjunto (también conocido como Internet Media Type), incluidos text/plain, text/html y text/xml. Puede establecer el valor que desee.
Destination.Email.Attachment.ContentName El nombre de los archivos adjuntos.
Destination.Email.Attachment.ContentEncoding La codificación de los archivos adjuntos: 7bit, base64 o quoted-printable.
  • 7bit es el valor predeterminado que se utiliza para el texto ASCII.
  • Base64 se utiliza para no ASCII, tanto sea para idioma no inglés o datos binarios. Este formato puede ser difícil de leer.
  • Quoted-printable es una alternativa a Base64, y es adecuado cuando la mayoría de los datos es ASCII con algunas partes no ASCII. Este formato proporciona una codificación más compacta porque las partes ASCII no se codifican.

Utilización de la cabecera de salida del correo electrónico

Utilice la cabecera de salida del correo electrónico para especificar alteraciones temporales para los archivos adjuntos y la información de conexión del servidor SMTP. El elemento EmailOutputHeader es un hijo de la raíz. Los valores que especifique en esta cabecera alterarán temporalmente las propiedades equivalentes establecidas en el nodo EmailOutput. Utilice la cabecera de salida SMTP para especificar todos los atributos de correo electrónico, como sus destinatarios.
Ubicación Descripción
Root.EmailOutputHeader.To Una lista de direcciones de correo electrónico separadas por comas.
Root.EmailOutputHeader.Cc Una lista de direcciones de correo electrónico separadas por comas.
Root.EmailOutputHeader.Bcc Una lista de direcciones de correo electrónico separadas por comas.
Root.EmailOutputHeader.From Una lista de direcciones de correo electrónico separadas por comas.
Root.EmailOutputHeader.Reply-To Una lista de direcciones de correo electrónico separadas por comas.
Root.EmailOutputHeader.Subject El asunto del correo electrónico.
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Comentarios

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última actualización:
        
        Última actualización: 2015-02-28 16:58:55


Tema de tareaTema de tarea | Versión 8.0.0.5 | ac66340_