In diesem Beitrag erfahren Sie, wie E-Mails per IMAP aus einem Postfach ausgelesen und verarbeitet
werden können. Dabei wird ein Prozess mit einer IMAP-Ereignisquelle und einem IMAP-Ereignisbehandler
erstellt. Mit einer Groovy-Skript-Aktion wird die E-Mail in eine Datengruppe geschrieben.
Bitte beachten Sie, dass E-Mails im HTML-Format eine Sicherheitslücke darstellen
können (Einschleusen von JavaScript).
2. Beispielapplikation
Laden Sie hier die Beispielapplikation herunter.
Importieren Sie die Download-Datei "tipps-tricks-mailanbindung-mit-imap.zip" und wählen Sie für den
Import die enthaltene Applikation und den enthaltenen Prozess aus. Wechseln Sie dann in das
Modul Prozesse, öffnen Sie
den Prozess "Tipps & Tricks - Mailanbindung mit IMAP" und aktivieren
Sie ihn. Folgende Funktionalitäten werden durch die Applikation abgedeckt:
Ermitteln des Absenders
Ermitteln der Empfänger (inklusive CC)
Ermitteln des Empfangsdatums
Ermitteln des Betreffs
Inhalt der E-Mail von HTML nach Plain Text konvertieren
Inhalt der E-Mail von Plain Text nach HTML konvertieren
Darstellung der E-Mail in HMTL
Darstellung der E-Mail in Plain Text
Ermitteln der Anhänge
Ermitteln / Auflösen der Inline-Attachements
Anlegen der E-Mail in Intrexx Datengruppe
Anlegen der Anhänge in Intrexx Datengruppe
Die Darstellung der E-Mails (HTML / Plain Text) kann in der Applikation auf der Seite
"Verwaltung" umgestellt werden.
Bei einer Verbindung per SSL muss ein entsprechendes Zertifikat im
Intrexx-Zertifikatsspeicher
hinterlegt werden.
Auf dem Reiter Optionen
wird festgelegt, in welchem zeitlichen Intervall der E-Mail-Server angefragt wird und welche E-Mails abgeholt werden sollen.
4. Groovy-Aktion
Bei der Verarbeitung einer E-Mail muss je nach Anwendungsfall entschieden werden,
wie eine Mail verarbeitet werden soll. Die Verarbeitung der E-Mail kann mit dem
SimpleMailParser in Groovy sehr einfach gesteuert werden.
Im ersten Schritt wird die Klasse importiert. Eine neue Instanz wird erzeugt und die E-Mail geparst.
Das Objekt "pm" bietet eine Vielzahl an Methoden, um z.B. Betreff, Inhalt (als HTML oder Plain Text), Absender oder
die Anhänge der Mail zu ermitteln. Hier einige Beispiele:
def strFrom = pm.sender.address //Ermitteln des Absenders
def strTo = TextUtil.listToString(pm.recipients*.address) //Ermitteln der Empfänger
def strCC = TextUtil.listToString(pm.recipientsCc*.address) //Ermitteln der Empfänger in CC
def attachments = pm.getAttachments() //Ermitteln der Anhänge
def strHTMLContent = pm.getRawHTMLContent() //Ermitteln des Inhalts als HTML
def strPlainTextContent = pm.getPlainTextContent() //Ermitteln des Inhalts als Plain Text
Anschließend können die Informationen und Anhänge aus der E-Mail über
INSERT-Statements in Datengruppen von Applikationen hinzugefügt werden.