Überblick
Mit Standard-Einstellungen kann der MailService nur EDIFACT-Nachrichten verarbeiten. Alle Weiteren E-Mail-Anhänge werden als Spam aussortiert. Dieses Dokument beschreibt die Vorgehensweise, um die Verarbeitung weiterer Formate zuzulassen. Dafür müssen die Spam-Prüfung und die Formaterkennung erweitert werden.
Vorgehensweise bei der Erweiterung der Spam-Prüfung
IAllowedFormat-Implementierung
Eine Implementierung des IAllowedFormat führt die Spam-Prüfung aus. Es existieren mehrere Implementierungen und es können neue erstellt werden.
Wenn für die Prüfung nur die erste Zeile des Anhangs benutzt wird, kann die Klasse org.b2bbp.service.inbound.formats.AllowedFormatByRegex benutzt werden. Damit kann man einen regulären Ausdruck angeben, der auf die erste Zeile passen muss. Der Regex-Ausdruck wird in der GlobalProperty B3P_ALLOWED_FORMAT_REGEX abgelegt.
Sonderbehandlung für CSV und Excel-Dokumente
Für CSV und Excel-Dokumente muss unter Umständen für den MailService die Property B3P_STORE_EXCEL_RAW_DATA_IN_MESSAGE_CONTENT erstellt und auf “true” gesetzt werden.
Hintergrund: Das E-Mail-Programm des Absenders stuft in manchen Fällen die Anhänge mit .CSV-Dateien als Excel-Dokumente ein. Bei deren Verarbeitung wird im MailService der Inhalt durch “Excel Content can’t show in B2B” ersetzt. Somit scheitert jede weitere Prüfung in der IAllowedFormat-Implementierung.
Mailservice konfigurieren
Die IAllowedFormat-Implementierungen müssen dem Mailservice bekannt gegeben werden. Dies geschieht beim Customizing über die Service-Property B3P_ALLOWED_FORMAT_CLASSES. Sie soll erstellt oder erweitert werden. Hier werden die Klassennamen mit Semikolon getrennt angegeben, z. B. „org.b2bbp.service.inbound.formats.AllowedFormatWetterDWD;org.b2bbp.service.inbound.formats.AllowedFormatTSOReply“
Vorgehensweise bei der Erweiterung der Formaterkennung
Siehe Erweiterung der Formaterkennung
AllowedFormatGenericRegex
Diese Klasse vergleicht Teile einer E-Mail mit Regulären Ausdrücken (Regex).
Einrichtung
- Dem Mail-Crawler-Service die Property
B3P_ALLOWED_FORMAT_CLASSES
mit dem Wertorg.b2bbp.service.inbound.formats.AllowedFormatGenericRegex
hinzufügen. Mehrere Klassen können per Semikolon getrennt werden. - Die Service-Property
GENERIC_REGEX_EXTENSION_NAME
am Mail-Crawler-Service setzen. Als Wert wird der Name der Extension eingetragen, in der sich die Regex befinden, nach denen die E-Mails überprüft werden sollen. In diesem Beispiel wirdALLOWED_FORMAT_GENERIC_REGEX
verwendet. Der Name ist jedoch frei wählbar. - Die Extension erstellen, die in der eben angelegten Property angegeben wurde. In diesem Beispiel wäre das
ALLOWED_FORMAT_GENERIC_REGEX
.
Aufbau der Extension, die die Regex enthält
In dieser Extension können einem Mail-Crawler-Service beliebig viele Regeln zugeteilt werden. Eine Regel kann einen Regex pro Teil einer E-Mail enthalten.
Die Zuweisung der Regeln erfolgt per Service-ID. In diesem Beispiel wird der Mail-Crawler-Service mit der ID MAIL_IN
verwendet. Mehrere Regeln werden per Semicolon getrennt. Die Namen der Regeln sind frei wählbar.
<Service-ID>.RULES = <Per Semikolon getrennte Regelnamen>
Beispiel:
MAIL_IN.RULES = Regel1;Regel2
Um einen Regex in einer Regel für einen bestimmten Teil der E-Mail zu hinterlegen, wird die Service-ID des Mail-Crawler-Service, der Name der Regel und der Teil der E-Mail, der überprüft werden soll benötigt. Der Regex muss als Java Regex vorliegen.
<Service-ID>.<Regelname>.<Teil der E-Mail> = <Regex>
Beispiel:
MAIL_IN.Regel1.attachmentName = (test)\\.(png)
Folgende Teile einer E-Mail können überprüft werden:
Name in der Extension | Beschreibung |
---|---|
content |
Der Anhang als String |
mailFrom |
Die E-Mail-Adresse des Versenders |
mailTo |
Die E-Mail-Adresse des Empfängers |
bodyContent |
Der Mailtext |
subject |
Der Betreff |
attachmentName |
Der Dateiname des Anhangs |
received |
Der Empfangszeitpunkt als String im Format Fri May 07 01:23:45 CEST 2021 |