Tipps & Tricks - Mailanbindung mit IMAP
Allgemeines
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).
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.
IMAP-Ereignisquelle
Mit der IMAP-Ereignisquelle wird im Prozess eine Verbindung mit dem E-Mail-Server hergestellt. Im Eigenschaftendialog können alle Verbindungsparameter auf dem Reiter "E-Mail-Server" angegeben werden. Informationen zum Ordnerpfad finden Sie hier.
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.
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.
import de.uplanet.lucy.server.mail.SimpleMailParser
def msg = g_event.message
def path = g_dirWorkflowTmp.toPath()
def smp = SimpleMailParser.newInstance()
def pm = smp.parseMessage(msg, path)
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 //Determine the sender
def strTo = TextUtil.listToString(pm.recipients*.address) //Determine the recipients
def strCC = TextUtil.listToString(pm.recipientsCc*.address) //Determine the recipients in CC
def attachments = pm.getAttachments() //Determine the attachments
def strHTMLContent = pm.getRawHTMLContent() //Determine the content as HTML
def strPlainTextContent = pm.getPlainTextContent() //Determine the content as 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.