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

Envío de un mensaje MIME

Puede enviar un correo electrónico construido a partir de un mensaje MIME.

Puede transmitir un mensaje MIME al nodo EmailOutput, que utiliza el analizador MIME para escribir el mensaje MIME en una corriente de bits. Este mensaje a continuación se envía a la lista de destinatarios de la EmailOutputHeader. Las alteraciones temporales del entorno local no se tienen en cuenta cuando se pasa un mensaje MIME. No es necesario configurar el nodo EmailOutput en los siguientes ejemplos.

En los siguientes ejemplos se muestra cómo establecer el destinatario, emisor, asunto, 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 enviar un mensaje MIME.
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 = 'Mensaje MIME dinámico en ESQL.';

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

	  -- Crear un nuevo cuerpo de mensaje MIME, que se enviará como el texto principal del mensaje de correo electrónico,
	  -- incluido un archivo adjunto.
	  CREATE FIELD OutputRoot.MIME TYPE Name;
	  DECLARE M REFERENCE TO OutputRoot.MIME;

	  -- Crear de forma explícita el hijo de MIME Content-Type para garantizar el orden correcto. Si definimos
	  -- en su lugar la propiedad ContentType, el campo podría aparecer como el último hijo de MIME.
	  CREATE FIELD M."Content-Type" TYPE NameValue VALUE 'multipart/related; boundary=myBoundary';
	  CREATE FIELD M."Content-ID"   TYPE NameValue VALUE 'nuevo documento MIME';

	  CREATE LASTCHILD OF M TYPE Name NAME 'Partes';
	  CREATE LASTCHILD OF M.Parts TYPE Name NAME 'Parte';
	  DECLARE P1 REFERENCE TO M.Parts.Part;

	  -- Primera parte:
	  --   Crear el cuerpo del mensaje de correo electrónico.
	  --   El cuerpo del correo electrónico tiene el texto 'Cuerpo principal del correo electrónico.'.
	  CREATE FIELD P1."Content-Type" TYPE NameValue VALUE 'text/plain; charset=us-ascii';
	  CREATE FIELD P1."Content-Transfer-Encoding" TYPE NameValue VALUE '8 bits';
	  CREATE LASTCHILD OF P1 TYPE Name NAME 'Datos';
	  CREATE LASTCHILD OF P1.Data DOMAIN('BLOB') PARSE(CAST('Es el cuerpo principal del mensaje de correo electrónico.'
AS BLOB CCSID 1208));
	  
	  CREATE LASTCHILD OF M.Parts TYPE Name NAME 'Parte';
	  DECLARE P2 REFERENCE TO M.Parts.Part[2];

	  -- Segunda parte:
	  --   Crear el archivo adjunto de un mensaje de correo electrónico.
	  --   El archivo adjunto se llama 'attachment.txt' y contiene el texto 'Esto es un archivo adjunto.'.
	  CREATE FIELD P2."Content-Type" TYPE NameValue VALUE 'text/plain; charset=us-ascii; name=attachment.txt';
	  CREATE FIELD P2."Content-Transfer-Encoding" TYPE NameValue VALUE '8 bits';
	  CREATE LASTCHILD OF P2 TYPE Name NAME 'Datos';
	  CREATE LASTCHILD OF P2.Data DOMAIN('BLOB') PARSE(CAST('Esto es un archivo adjunto.' AS BLOB CCSID 1208));

	  RETURN TRUE;
END;

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 enviar un mensaje MIME.
public void evaluate(MbMessageAssembly assembly) throws MbException {
	  MbOutputTerminal out = getOutputTerminal("out");
	  MbOutputTerminal fail = getOutputTerminal("fail");

 		// 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,
	  // emisor y asunto.
	  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", "Mensaje MIME dinámico en Java.");

	  // 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) como MIME.
	  MbElement MIME = root.createElementAsLastChild("MIME");

	  // Crear de forma explícita el hijo de MIME Content-Type para garantizar el orden correcto.
	  MIME.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Content-Type", "multipart/related; 
boundary=myBoundary");
	  MIME.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Content-ID", "nuevo documento MIME");
	  MbElement parts = MIME.createElementAsLastChild(MbElement.TYPE_NAME, "Partes", null);
	  MbElement part, data, blob;
	  String text;

	  // Primera parte:
	  //   Crear el cuerpo del mensaje de correo electrónico.
	  //   El cuerpo del correo electrónico tiene el texto 'Cuerpo principal del correo electrónico.'.
	  part = parts.createElementAsLastChild(MbElement.TYPE_NAME, "Parte", null);
	  part.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Content-Type", "text/plain; charset=us-ascii");
	  part.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Content-Transfer-Encoding", "8 bits");
	  data = part.createElementAsLastChild(MbElement.TYPE_NAME, "Datos", null);
	  blob = data.createElementAsLastChild("BLOB");
	  text = "Es el cuerpo principal del mensaje de correo electrónico.";
	  try {
		blob.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", text.getBytes("UTF8"));
	  } catch (UnsupportedEncodingException e) {
		fail.propagate(outAssembly);
	  }

	  // Segunda parte:
	  //   Crear el archivo adjunto del mensaje de correo electrónico.
	  //   El archivo adjunto se llama 'attachment.txt' y contiene el texto 'Esto es un archivo adjunto.'.
	  part = parts.createElementAsLastChild(MbElement.TYPE_NAME, "Parte", null);
	  part.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Content-Type", "text/plain; charset=us-ascii; 
name=attachment.txt");
	  part.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Content-Transfer-Encoding", "8 bits");
	  data = part.createElementAsLastChild(MbElement.TYPE_NAME, "Datos", null);
	  blob = data.createElementAsLastChild("BLOB");
	  text = "Es un archivo adjunto.";
	  try {
		blob.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", text.getBytes("UTF8"));
	  } catch (UnsupportedEncodingException e) {
		fail.propagate(outAssembly);
	  }
	
	  outMessage.finalizeMessage(MbMessage.FINALIZE_VALIDATE);
	  out.propagate(outAssembly);
}
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 | ac66350_