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).
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;
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);
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 | 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.
|
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'.
|
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. |