WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Dynamische E-Mail-Nachrichten erstellen

Sie können eine E-Mail erstellen, für die der SMTP-Server, die Empfängerliste, der Betreff, der Text und die verschiedenen Anhänge erst zur Laufzeit bestimmt werden.

Sie können einen Nachrichtenfluss erstellen, der eine E-Mail mit mehreren Anhängen erzeugt. Informationen zum Konfigurieren eines EmailOutput-Knotens, der eine E-Mail mit einem einzigen Anhang, statischem Betreff und statischem Text an eine statische Liste von Empfängern sendet, finden Sie im Abschnitt E-Mail mit Anhang senden.

Die Knoteneigenschaften, die Sie beim Senden einer E-Mail definieren, können optional sein und zur Laufzeit durch Werte überschrieben werden, die Sie in der lokalen Umgebung, im Ausgabeheader der E-Mail (EmailOutputHeader) oder im Nachrichtenhauptteil angeben. Für diese Methode sind vorgeschaltete Knoten zur Generierung dieser Überschreibungen erforderlich. Wenn in den Knoteneigenschaften für den Hauptteil der E-Mail kein Textwert angegeben ist, wird der an den EmailOutput-Knoten übergebene Nachrichtenhauptteil verwendet.

Die folgenden Beispiele veranschaulichen die Einrichtung der Informationen zu Empfänger, Absender, Betreff, SMTP-Server und Nachrichtenhauptteil in ESQL (bei einem Compute-Knoten) und in Java™ (bei einem JavaCompute-Knoten).

Einen Compute-Knoten verwenden

In dem Diagramm ist ein Nachrichtenfluss dargestellt, in dem über einen MQInput-Knoten, einen Compute-Knoten und einen EmailOutput-Knoten eine dynamische E-Mail-Nachricht erstellt wird.
CREATE FUNCTION Main() RETURNS BOOLEAN
	BEGIN
		CALL CopyMessageHeaders();
		
			  -- Empfängerinformation zum EmailOutputHeader hinzufügen
			  SET OutputRoot.EmailOutputHeader.To = '<E-Mail-Adresse des Empfängers>';
			  SET OutputRoot.EmailOutputHeader.Cc = '<E-Mail-Adresse des Empfängers>';
			  SET OutputRoot.EmailOutputHeader.Bcc = '<E-Mail-Adresse des Empfängers>';

			  -- Absenderinformation zum EmailOutputHeader hinzufügen
			  SET OutputRoot.EmailOutputHeader.From = '<E-Mail-Adresse des Absenders>';
			  SET OutputRoot.EmailOutputHeader."Reply-To" = '<Antwort-E-Mail-Adresse>';

			  -- Betreff zum EmailOutputHeader hinzufügen
				SET OutputRoot.EmailOutputHeader.Subject = 'Replaced by ESQL compute node.';

			  -- SMTP-Serverinformationen zur LocalEnvironment hinzufügen
				SET OutputLocalEnvironment.Destination.Email.SMTPServer ='<SMTP.Server:Port>';

				-- Create a new message body, which will be sent as the main text of the email.
				SET OutputRoot.BLOB.BLOB = CAST('This is the new text for the body of the email.' AS BLOB CCSID 1208);  		

		RETURN TRUE; 
	END;
Wenn in der Textzeichenfolge, die als Hauptteil der E-Mail erstellt werden soll, Leerzeichen (z. B. als Zeichen für Zeilenumbruch (Newline, NL), Rücklauf (Carriage Return, CR) und Zeilenvorschub (Line Feed, LF)) geschrieben werden sollen, können die folgenden Codezeilen hinzugefügt werden.
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);

Verwendung eines JavaCompute-Knotens

In dem Diagramm ist ein Nachrichtenfluss dargestellt, in dem über einen MQInput-Knoten, einen JavaCompute-Knoten und einen EmailOutput-Knoten eine dynamische E-Mail-Nachricht erstellt wird.
public void evaluate(MbMessageAssembly assembly) throws MbException {
		MbOutputTerminal out = getOutputTerminal("out");
		
				// Neue Assemblierung zur Weitergabe aus diesem Knoten heraus erstellen zur Aktualisierung
		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();

				// EmailOutputHeader-Parser erstellen. Hier werden Informationen zum Empfänger, Absender und Betreff hinzugefügt.
		MbElement root = outMessage.getRootElement();
			  MbElement SMTPOutput = root.createElementAsLastChild("EmailOutputHeader");

			  // Empfängerinformation zum EmailOutputHeader hinzufügen
				SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "To", "<E-Mail-Adresse des Empfängers"); 		
				SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Cc", "<E-Mail-Adresse des Empfängers"); 		
				SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Bcc", "<E-Mail-Adresse des Empfängers");  		

			  // Absenderinformation zum EmailOutputHeader hinzufügen
			  SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "From", "<E-Mail-Adresse des Absenders>");
			  SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Reply-To", "<Antwort-E-Mail-Adresse>");

			  // Betreff zum EmailOutputHeader hinzufügen
				SMTPOutput.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "Subject", "Replaced by Java compute node.");  		

				// Destination.Email erstellen. Hier werden SMTP-Serverinformationen hinzugefügt 		
			  MbElement Destination = localEnv.createElementAsLastChild(MbElement.TYPE_NAME, "Ziel", null);
			  MbElement destinationEmail = Destination.createElementAsLastChild(MbElement.TYPE_NAME, "Email", null);
			  destinationEmail.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "SMTPServer", "<SMTP.Server:Port>");

				// Letztes untergeordnetes Objekt von Stammelement festlegen (Nachrichtenhauptteil) 		
				MbElement BLOB = root.createElementAsLastChild(MbBLOB.PARSER_NAME);	 		
				String text = "This is the new text for the body of the email"; 		
				BLOB.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "BLOB", text.getBytes());  		
		
			  outMessage.finalizeMessage(MbMessage.FINALIZE_VALIDATE);

				out.propagate(outAssembly); 	}

Lokale Umgebung verwenden

Verwenden Sie die lokale Umgebung, um Überschreibungen für die Verbindungsinformationen und Anhänge auf dem SMTP-Server anzugeben.
Lokale Umgebung Beschreibung
Destination.Email.SMTPServer Der Server: Port-Wert des SMTP-Servers. Der Port ist optional; ist er nicht angegeben, wird standardmäßig 25 verwendet.
Destination.Email.SecurityIdentity Die Sicherheitsidentität für die Authentifizierung gegenüber dem SMTP-Server. Dies kann der Name des Paars 'Benutzer-ID/Kennwort' sein, welches unter Verwendung des Befehls mqsisetdbparms definiert ist. Es kann auch Bezug auf eine externe Ressource mit einem Attribut 'SecurityIdentity' genommen werden, das auf eine Benutzer-ID und ein Kennwort verweist, die unter Verwendung des Befehls mqsisetdbparms definiert sind. In beiden Fällen wird der Wert an die Zeichenfolge “smtp::” angehängt. Wenn Sie beispielsweise mithilfe des Befehls mqsisetdbparms eine Benutzer-ID und ein Kennwort smtp::myUseridPassword erstellen, lautet die an dem Knoten oder indirekt in einer externen Ressource angegebene Sicherheitsidentität (securityIdentity)myUseridPassword.
Destination.Email.BodyContentType Gibt an, dass im Hauptteil der E-Mail-Nachricht HTML und kein einfacher Text verwendet wird. Sie können für diese Eigenschaft 'text/plain', 'text/html' oder 'text/xml' angeben; der Standardwert ist 'text/plain'.
Destination.Email.MultiPartContentType Der mehrteilige Typ, einschließlich 'related', 'mixed' und 'alternative'. Sie können jeden beliebigen Wert angeben.
Destination.Email.Attachment.Content Entweder der Anhang selbst (BLOB/Text) oder ein XPath- oder ESQL-Ausdruck, der auf ein Element verweist; z. B. ein Element in der Nachrichtenbaumstruktur oder in der lokalen Umgebung. Der Wert des Referenzelements wird als Inhalt des Anhangs verwendet.
  • Wenn das Element ein BLOB ist, handelt es sich um einen Anhang.
  • Handelt es sich beim dem Element um Text, prüfen Sie, ob es in ein anderes Element in der Nachrichtenbaumstruktur bzw. der lokalen Umgebung aufgelöst werden kann. Wenn es aufgelöst werden kann, verwenden Sie dieses Element. Kann es nicht aufgelöst werden, fügen Sie dieses Element als Anhang hinzu.
Destination.Email.Attachment.ContentType Der Typ des Anhangs (wird auch als Internet Media Type bezeichnet). Dazu gehören 'text/plain', 'text/html' und 'text/xml'. Sie können jeden beliebigen Wert angeben.
Destination.Email.Attachment.ContentName Der Name des Anhangs.
Destination.Email.Attachment.ContentEncoding Die Codierung des Anhangs: '7bit', 'base64' oder 'quoted-printable'.
  • '7bit' ist der Standardwert, der für ASCII-Text verwendet wird.
  • 'Base64' wird für nicht-ASCII-Text verwendet, sei es für nicht-englischsprachigen Text oder binäre Daten. Dieses Format kann schwer zu lesen sein.
  • 'Quoted-printable' ist eine Alternative zu 'Base64' und kann verwendet werden, wenn es sich bei den meisten Daten um ASCII-Daten mit einigen nicht-ASCII-Anteilen handelt. Das Format ist besser lesbar; es bietet eine kompaktere Codierung, da die ASCII-Anteile nicht codiert sind.

E-Mail-Ausgabeheader verwenden

Über den E-Mail-Ausgabeheader können Sie Überschreibungen der SMTP-Server-Verbindungsinformationen und Anhänge angeben. Der Ausgabeheader der E-Mail (EmailOutputHeader) ist ein untergeordnetes Element des Stammelements. Werte, die Sie in diesem Header angeben, überschreiben entsprechende Eigenschaften, die Sie für den EmailOutput-Knoten festgelegt haben. Geben Sie über den SMTP-Ausgabeheader alle E-Mail-Attribute wie z. B. die Empfänger an.
Speicherposition Beschreibung
Root.EmailOutputHeader.To Eine durch Kommas getrennte Liste mit E-Mail-Adressen.
Root.EmailOutputHeader.Cc Eine durch Kommas getrennte Liste mit E-Mail-Adressen.
Root.EmailOutputHeader.Bcc Eine durch Kommas getrennte Liste mit E-Mail-Adressen.
Root.EmailOutputHeader.From Eine durch Kommas getrennte Liste mit E-Mail-Adressen.
Root.EmailOutputHeader.Reply-To Eine durch Kommas getrennte Liste mit E-Mail-Adressen.
Root.EmailOutputHeader.Subject Der Betreff der E-Mail.
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:29


TaskthemaTaskthema | Version 8.0.0.5 | ac66340_