Dieses Thema enthält Lösungsvorschläge für
häufig auftretende Probleme, die beim Erstellen von Nachrichtenflüssen auftreten
können, die E-Mail-Knoten enthalten.
In der lokalen Umgebung wird eine negative E-Mail-Größe angezeigt
Szenario: Der EmailInput-Knoten empfängt eine E-Mail von einem E-Mail-Server, der Post Office Protocol 3 (POP3)
unterstützt, als Größe der E-Mail einschließlich Anhängen wird jedoch möglicherweise ein negativer Wert in der logischen MIME-Baumstruktur (MIME = Multipurpose
Internet Mail Extensions) Root.EmailInputHeader.Size angezeigt.
Erläuterung: Der E-Mail-Server-Provider, der POP3 unterstützt, verwendet den Befehl TOP zum Abrufen der Header der E-Mail-Nachricht und den Befehl LIST zum Bestimmen der Größe der gesamten Nachricht. Anschließend subtrahiert der Server die zwei Werte, um die Größe des Nachrichtenhauptteils zu bestimmen. Wenn der Server die Größe der gesamten Nachricht nicht ordnungsgemäß meldet, wird möglicherweise eine negative Zahl im Größenfeld der lokalen Umgebung angezeigt.
Lösung: Sie können die Größe der E-Mail-Nachricht und die Größe eines
eventuell vorhandenen Anhangs mithilfe des
Compute-Knotens berechnen. Mit folgendem
ESQL-Beispielcode kann die Größe des E-Mail-Inhalts und der Anhänge für
ein mehrteiliges MIME-Dokument berechnet werden. In diesem Beispiel wird das Ergebnis in
der lokalen Umgebung (LocalEnvironment) gespeichert:
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;
Beim erneuten Analysieren eines E-Mail-Anhangs als XML wird ein Analysefehler angezeigt.
Szenario: Ihr Nachrichtenfluss ruft mithilfe eines EmailInput-Knotens E-Mails von einem E-Mail-Server ab. Die E-Mail enthält einen XML-Dokumentanhang, den Sie erneut analysieren möchten. Wenn Sie jedoch versuchen, den Anhang erneut zu analysieren, erhalten Sie Parsing-Fehler von WebSphere Message
Broker, die angeben, dass ein ungültiges XML-Zeichen vorhanden ist.
Erläuterung: Einige E-Mail-Server fügen möglicherweise am Ende einer E-Mail Rücklauf- und Zeilenvorschubzeichen ein.
Normalerweise behält man diese Zeichen bei, aber in diesem Szenario müssen Sie sie entfernen, sodass Sie Ihre XML-Daten erneut analysieren können.
Lösung: Verwenden Sie den folgenden ESQL-Code in einem Compute-Knoten, um die Rücklauf- und Zeilenvorschubzeichen zu entfernen:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X'0d0a' FROM InputRoot.
MIME.Data.BLOB.BLOB );
Unerwünschte Nullzeichen aus E-Mails entfernen
Szenario: Der E-Mail-Anhang enthält unerwünschte Nullzeichen, die entfernt werden sollen.
Erläuterung: Der E-Mail-Anhang kann Nullzeichen enthalten, die entfernt
werden sollen, z. B. weil die Daten im Anhang erneut syntaktisch analysiert werden
sollen.
Lösung: Verwenden Sie den folgenden ESQL-Code in einem
Compute-Knoten, um die Nullzeichen zu entfernen:
DECLARE NEWEMAIL BLOB TRIM( TRAILING X'00' FROM InputRoot.MIME.
Data.BLOB.BLOB)