E-Mail-Parser erstellen: Schritt-für-Schritt-Anleitung & Anleitung

Portrait of Sylvain Josserand
von Sylvain Josserand
11 Minuten Lesezeit
Zuletzt aktualisiert am

Ihr Chef hat Sie also gebeten, das "E-Mail-Problem" zu lösen, das das Unternehmen ausbremst. Es gibt Hunderte von automatisierten E-Mails, deren Daten jeden Morgen manuell eingegeben werden müssen, was die Postfächer der Mitarbeiter verstopft.

Sie, klug und effizient, sehen sofort das Potenzial für die Entwicklung eines Systems zum E-Mail-Parsen. Großartige Idee! Allerdings könnte es etwas aufwendiger sein als nur ein paar Skripte und etwas Ellbogenschmalz. Hier sind sechs Schritte, um einen E-Mail-Parser zu erstellen und Ihren Workflow für die E-Mail-Dateneingabe erfolgreich zu automatisieren.

Bevor wir beginnen: Definition von "Parse" und "Parsing"

In der Informatik ist Parsen die Zerlegung eines Textes in kleinere Teile nach einem bestimmten Regelsatz.

Ein E-Mail-Parser ist eine Möglichkeit, einen Computer dazu zu bringen, E-Mails zu lesen und anhand eines Regelsatzes auf sie zu reagieren. Im Idealfall extrahiert dieses System automatisch relevante Daten aus diesen E-Mails und leitet sie an Ihre Backoffice-Anwendung weiter. Lesen Sie den folgenden Artikel über einen tiefen Einblick in das E-Mail-Parsing.

Unverschämter Eigenlob: Kennen Sie Parseur?

Das Erstellen eines eigenen E-Mail-Parsers ist ein unterhaltsames Projekt, um zu verstehen, wie die Dinge unter der Haube funktionieren.

Aber es ist zeitaufwendig.

Erstellen Sie Ihr kostenloses Konto
Sparen Sie Zeit und Mühe mit Parseur. Automatisieren Sie Ihre Dokumente.

Parseur wurde Ende 2015 von Grund auf neu entwickelt, und es dauerte etwa 5.000 Mannstunden über einen Zeitraum von sechs Jahren, nur um das Backend zu erstellen. Das Frontend (die gesamte Benutzeroberfläche, einschließlich des Template-Editors) hat ebenfalls Tausende von Mannstunden in Anspruch genommen. Das Team hinter Parseur besteht aus erfahrenen Entwicklern mit mehr als 20 Jahren professioneller Programmiererfahrung.

Wir sind noch nicht fertig und können nicht einmal abschätzen, wie lange es dauern würde, einen "ausreichend guten" Textparser zu erstellen.

Wenn Sie schnell Ergebnisse benötigen, sollten Sie Parseur ausprobieren. Parseur ist ein verwalteter und benutzerfreundlicher E-Mail-Parser, mit dem Sie Stunden bei der Einrichtung Ihrer eigenen Lösung sparen. Sehen Sie sich die umfangreichen Parseur-Funktionen an.

1. Die E-Mails erhalten

Im Moment kommen die E-Mails in den individuellen Posteingängen der Mitarbeiter, in den Mailinglisten des Teams oder im unternehmensweiten Postfach an.

Der erste Schritt wäre, ein E-Mail-Konto einzurichten, um all diese Postfächer zu zentralisieren. Oder, Gott bewahre, richten Sie Ihren eigenen E-Mail-Server ein, auch bekannt als SMTP-Server.

Wenn Sie wissen, was Sie tun, finden Sie hier ein paar SMTP-Server, die derzeit sehr beliebt sind:

  • Exim ist ein kostenloser Open-Source-E-Mail-Transfer-Agent (noch ein anderer Name für E-Mail-Server). Er ist der beliebteste SMTP-Server und gewinnt etwas schneller an Popularität als der zweite, Postfix.
  • Postfix ist ebenfalls kostenlos und Open Source. Er hat den Ruf, "einfach zu funktionieren", mit minimalen Problemen. Laut diesem Artikel über die Marktanteile von E-Mail-Servern machen Exim und Postfix zusammen 80 % aller E-Mail-Server aus.
  • Auf der Microsoft-Seite gibt es den allgegenwärtigen Exchange. Sie können E-Mails von ihm über EWS abrufen, anstatt über das altmodischere POP3 oder IMAP. Heutzutage können Sie Microsoft sogar dazu bringen, ihn für Sie zu hosten, gegen eine Gebühr.
  • Bauen Sie Ihren eigenen. Dieser Weg wird lang und kurvenreich sein, aber Sie werden auf dem Weg viel lernen. Am Ende könnte Ihr Server besser zu Ihren Bedürfnissen passen. Es sei denn, Ihre Bedürfnisse implizieren keine Kompatibilität mit den unzähligen E-Mail-Clients da draußen. Wenn Sie entschlossen sind, diesen Weg zu gehen, bietet Python ein nettes Modul in seiner Standardbibliothek, um Ihnen den Einstieg zu erleichtern. Werfen Sie einen Blick auf smtpd.

Beachten Sie, dass das Versenden vieler E-Mails, ohne auf die schwarze Liste gesetzt zu werden, eine Kunst für sich ist und besser den Spezialisten überlassen wird.

Beachten Sie auch, dass die Einrichtung eines eigenen E-Mail-Servers immer seltener wird. In unserer Zeit der Cloud und von SaaS ist es bequemer, einen gehosteten E-Mail-Dienst zu nutzen, der Ihnen die schmutzige E-Mail-Arbeit abnimmt. Hier sind die wichtigsten Akteure in diesem Bereich:

  • Postmark konzentriert sich auf Zustellbarkeit und Zuverlässigkeit. Außerdem gibt es einen kostenlosen Tarif.
  • Mandrill hatte einen First-Mover-Vorteil und ist nach wie vor beliebt. Es konzentriert sich auf Marketing- und Transaktions-E-Mails.
  • Sendgrid positioniert sich ebenfalls als Plattform für Marketing- und Transaktions-E-Mails.
  • Mailgun konzentriert sich mehr auf Entwickler und API. Außerdem gibt es einen kostenlosen Tarif.

Wir bei Parseur lieben Postmark. Ihre API ist großartig und die Dokumentation hervorragend. Es gibt viele SDKs für alle gängigen Programmiersprachen.

2. E-Mails in ein geeignetes Datenformat übersetzen

E-Mail ist ein altes Format, so alt wie "vor Star Wars", und es hat im Laufe der Jahrzehnte ein paar Macken angesammelt. Zum Beispiel war die Handhabung internationaler (nicht-US-amerikanischer) Zeichen nicht Teil der ursprünglichen Spezifikation. Um Sonderzeichen wie € zu verarbeiten, müssen Sie 3 technische Dokumente (auch RFC genannt) berücksichtigen:

  • RFC 2047 bietet Unterstützung für internationale Namen und Betreffzeilen im E-Mail-Header.
  • RFC 5890 bietet Unterstützung für internationale Domainnamen im Domain Name System (DNS).
  • RFC 6532 erlaubt die Verwendung von UTF-8 (eine weitere Möglichkeit, internationalen Text zu speichern) in einem Mail-Header-Abschnitt.

Wieder einmal können Ihnen Dienste wie Postmark oder Mailgun den Tag retten und die Übersetzung für Sie erledigen. Sie können Horrorgeschichten vergessen, in denen es um UTF-8, MIME und cp1252 geht (noch nie etwas von UTF-8, MIME oder cp1252 gehört? Ich beneide Sie um Ihr Leben).

Wenn Sie beispielsweise Mailgun verwenden, empfangen die Server die E-Mail für Sie und wandeln sie in ein einfach zu handhabendes JSON-Dokument um, wobei sie sich um alle der Menschheit bekannten RFCs kümmern. Dieses wird dann in einem einzigen HTTP POST-Request an Ihren eigenen Server unter der von Ihnen gewünschten URL als Webhook gesendet.

Für die Neugierigen gibt es hier eine Liste aller SMTP-bezogenen RFCs. Gern geschehen.

Eine einfache E-Mail, die bei Mailgun eingeht, sieht auf Ihrem Server zum Beispiel so aus:

{
  "subject": "My favorite café",
  "sender": "John Doe <[email protected]>",
  "recipient": "Mr. Parseur <[email protected]>",
  "message": "It's called Awesome Café! See directions in the attachment. Bye.",
  "attachements": [
    { "name": "directions.pdf", "content": "https://url.with.content" },
    { "name": "cappucino.jpg", "content": "https://another.content.url" }
  ]
  /*... weitere interessante Daten hier (lies die Doku, Luke) ...*/
}

Ist das nicht wunderbar? Vergleichen Sie dies mit einem traditionellen E-Mail-Format:

  MIME-Version: 1.0
  Received: by 102.29.23.176 with HTTP; Sat, 12 Aug 2016 14:13:31 -0700 (PDT)
  Date: Sat, 12 Aug 2016 14:13:31 -0700
  Delivered-To: =?ISO-8859-1?Q?Mr. Parseur <[email protected]>
  Message-ID: <CAAJL_=kPAJZ=fryb21wBOALp8-XOEL-h9j84s3SjpXYQjN3Z3A@mail.gmail.com>
  Subject: =?ISO-8859-1?Q?My=20Favorite=20Caf=E9
  From: =?ISO-8859-1?Q?John Doe <[email protected]>
  To: =?ISO-8859-1?Q?Mr. Parseur <[email protected]>
  Content-Type: multipart/mixed; boundary=mixed
  ==mixed
  Content-Type: multipart/alternative; boundary=alternative
  ==alternative
  Content-Type: text/plain; charset="utf-8"
  It's called Awesome Caf=C3=A9! See directions in the attachm= ent. Bye.
  ==alternative
  Content-Type: text/html; charset="utf-8"
  It's called <b>Awesome Caf=C3=A9</b>! See directions in the = attachment. Bye. ==alternative== ==mixed
  Content-Type: document/pdf; name="directions.pdf"
  Content-Disposition: attachment; filename="directions.pdf"
  Content-Transfer-Encoding: base64
  iVBORw [... der gesamte kodierte Anhang hier ...] RK5CYII=
  ==mixed
  Content-Type: image/jpg; name="capuccino.jpg"
  Content-Disposition: attachment; filename="capuccino.jpg"
  Content-Transfer-Encoding: base64
  G+aHAAAA [... ein weiterer Anhang kodiert hier ...] ORK5CYII=
  ==mixed==

Glücklicherweise gibt es für die meisten gängigen Programmiersprachen Bibliotheken zur Entschlüsselung von E-Mails, wie z. B. das email-Modul für Python oder Rubys RubyMail-Bibliothek.

3. Die Daten in die Datenbank einlesen

Von hier an können Sie sich auf Ihre Programmierkenntnisse verlassen, um all diese HTTP-Anfragen zu verarbeiten und in übersichtliche Einträge in Ihrer Datenbank der Wahl zu verwandeln.

Hier sind einige beliebte Programmiersprachen und Frameworks, die Ihnen bei dieser Aufgabe helfen können, in der Reihenfolge ihrer zunehmenden Beliebtheit:

Der dafür benötigte Code sollte trivial sein, wenn Sie kein bestimmtes Format anstreben. Allerdings müssen Sie möglicherweise herausfinden, welches Format Ihre Unternehmenssoftware akzeptiert, und in dieses Format konvertieren. Zu den gängigen Austauschformaten gehören CSV und JSON, aber einige Unternehmensanwendungen verwenden obskurere, binäre Formate.

Wenn Sie nur Speicherplatz benötigen (möglicherweise für Ihre eigene benutzerdefinierte Geschäftsanwendung), dann müssen Sie sich nur noch entscheiden, wie Sie die Daten speichern wollen.

Wenn Sie wissen, dass Sie mit diesen gespeicherten E-Mails niemals Statistiken oder nicht-sequenzielle Operationen durchführen müssen, können Sie z. B. MongoDB verwenden. Ich rate jedoch davon ab, und zwar mit Argumenten aus diesem großartigen Blog-Post.

Jedes relationale Datenbankmanagementsystem, das auf SQL basiert, kann Ihre E-Mails problemlos speichern. Sie müssen mindestens zwei Tabellen definieren: eine für E-Mails und eine weitere für deren Anhänge, falls Sie diese speichern möchten.

Jedes SQL-Datenbankmodul sollte damit zurechtkommen, solange Ihr Volumen und Ihre Last auf einen Server passen. Es gibt heutzutage ein paar beliebte Möglichkeiten für relationale Datenbanken:

  • MySQL und sein empfohlener, aber inoffizieller Fork MariaDB sind einfache und immer noch beliebte Datenbank-Server. Beachten Sie, dass der Support seit der Übernahme von MySQL durch Oracle nicht mehr so gut ist wie früher. Überraschung.
  • Postgresql ist ein größeres, funktionsreicheres Datenbankmodul mit mehr Möglichkeiten zur Skalierung und einer komplexeren Einrichtung als MySQL.
  • Neben diesen kostenlosen Open-Source-Datenbanken gibt es natürlich noch Oracle, mit einer Wagenladung an Funktionen, um die Bedürfnisse großer Unternehmen zu erfüllen. Sehr groß, komplex und teuer. Sind Sie sicher, dass Ihre einfache E-Mail-Speicherlösung so viel Skalierbarkeit benötigt?
  • Auch auf der kommerziellen Seite hat sich der Microsoft SQL Server in den letzten Jahren stark verbessert und erscheint nun als ernstzunehmende Konkurrenz zu Oracle.

Hier sind wir also. Wenn Sie den Inhalt Ihrer E-Mails so wie er ist in die Datenbank Ihrer Anwendung einfügen wollten, sind Sie im Grunde genommen fertig.

Aber warum hier aufhören? Sie haben jetzt eine Menge interessanter Daten zur Hand. Dieser Datensatz ist sehr interessant, weil er für Ihr Kerngeschäft relevant ist. Ihre E-Mails sind wahrscheinlich voll von Rechnungen, Reisekosten, Kostenvoranschlägen, Interessenten und Kunden.

Wie wäre es, wenn Sie noch einen Schritt weiter gehen und relevante Daten aus diesen E-Mails extrahieren? Die Verfeinerung der Daten, die Sie haben, kann Ihnen helfen, Ihren Geschäftsworkflow zu automatisieren und Ihnen und Ihren Mitarbeitern Zeit zu sparen.

4. Relevanter Text aus jeder E-Mail extrahieren

An dieser Stelle findet das eigentliche Parsen statt. Im Idealfall wollen wir Folgendes erreichen:

Eine Bildschirmaufnahme der E-Mail-Parser-Übersicht
Schema eines E-Mail-Parsers, der eine empfangene E-Mail in strukturierte Daten (z. B. eine Tabellenkalkulation oder eine Datenbank) umwandelt

Hier sind ein paar Ansätze, um dieses gewaltige Problem zu lösen:

Statistische Wortanalyse oder "Wortzählung"

Die statistische Analyse ist gut für E-Mails geeignet, die kein vordefiniertes Formular haben, also typischerweise E-Mails, die von einem Menschen geschrieben wurden. Sie könnten mehrere E-Mail-Kategorien mit einer Reihe von Wörtern definieren, die zu jeder dieser Kategorien gehören. Sie würden dann jede E-Mail parsen, die Wörter aus jeder Kategorie zählen und dann entscheiden, ob die E-Mail in eine oder mehrere dieser Kategorien fällt.

Das funktioniert ziemlich gut für die Stimmungsanalyse. Sie könnten zum Beispiel eine Kategorie "zufriedener Kunde" und eine Kategorie "wütender Kunde" definieren und die E-Mails der zufriedenen Kunden an Ihren Chef und die E-Mails der wütenden Kunden in den Papierkorb schicken. Nur ein Scherz, aber Sie verstehen die Idee.

Aber wie Sie vielleicht wissen, ist die Kommunikation von Mensch zu Mensch fehleranfällig, mehrdeutig und sehr kontextabhängig. Und solange wir keine echte künstliche Intelligenz haben, werden diese Mehrdeutigkeiten nicht aufgelöst werden. Sie können Ihr System bestenfalls unzuverlässig und schlimmstenfalls unbrauchbar machen.

Reguläre Ausdrücke

Dieser Ansatz eignet sich am besten für automatisch generierte E-Mails, bei denen der größte Teil des Textes zwischen den E-Mails gleich bleibt.

Nehmen wir zum Beispiel an, Sie möchten eine Million Buchungs-E-Mails von American Airlines parsen und aus jeder dieser E-Mails den Namen des Passagiers extrahieren. Dies könnte durch die Erstellung eines regulären Ausdrucks geschehen, der auf die gesamte E-Mail passt und nur den Namen des Passagiers erfasst. Klingt einfach, oder? Aber was passiert, wenn sich auch andere Teile der E-Mail ändern? Und was ist, wenn auf diesem einen Flug drei Passagiere statt nur einem sitzen? Ups.

Python hat eine schöne Bibliothek für reguläre Ausdrücke. Reguläre Ausdrücke, kurz Regexp, sind Teil von Ruby Core als Regexp-Modul. Sie sind auch in JavaScript ein wichtiger Bestandteil.

Der Nachteil ist, dass reguläre Ausdrücke komplex zu pflegen sind und ihre Lesbarkeit bestenfalls passabel ist. Viele Parseur-Kunden berichteten uns, dass sie ursprünglich ihre eigene Parsing-Engine mit Regexps entwickelt haben, diese aber nicht gegen den Strom der sich ständig ändernden E-Mails, die sie erhielten, pflegen konnten.

5. Eine verwaltete Lösung? Parseur kann helfen!

Wäre es nicht schön, wenn Sie die gewünschten Daten einfach in den richtigen Spalten einer Excel-Tabelle oder Datenbank erhalten würden?

Nun, das ist unser Ziel hier bei Parseur. Wir bieten Ihnen eine einfache "Point-and-Click"-Oberfläche, mit der Sie ein für alle Mal definieren können, welche Daten für Sie relevant sind. Sie können dann ähnliche E-Mails senden, und deren Daten werden extrahiert und automatisch in eine Excel-Tabelle eingefügt.

Sie müssen keinen eigenen E-Mail-Parser erstellen. Nach dieser ersten kurzen Sitzung des Zeigens und Klickens müssen Sie keine manuelle Bearbeitung mehr vornehmen. Jede E-Mail wird zu einer eigenen Excel-Zeile.

6. In Ihre Unternehmenssoftware integrieren

Sobald Ihre extrahierten Daten ordentlich in Ihrer Excel-Tabelle sitzen, müssen Sie sie "nur noch" dorthin bringen, wo sie hingehören: in Ihre Unternehmensanwendung.

Tools wie Zapier oder Make können Ihnen hier enorm helfen, da sie Ihre E-Mail-Anwendung mit Ihrer Unternehmensanwendung verbinden können. Alles, was Sie tun müssen, ist, einen Konnektor für diese Dienste zu schreiben. Anschließend können Sie die vielen anderen Konnektoren nutzen, die Teil ihres Ökosystems sind.

Parseur lässt sich in Google Sheets, Zapier, Integromat, Microsoft Flow und Getswift integrieren, wodurch sich Ihre geparsten Daten mit nur wenigen Klicks für Tausende von Anwendungen öffnen.

Viel Glück!

Zuletzt aktualisiert am

KI-basierte Datenextraktionssoftware.
Nutzen Sie Parseur noch heute.

Automatisieren Sie die Textextraktion aus E-Mails, PDFs und Tabellen.
Sparen Sie Hunderte von Stunden manueller Arbeit.
Nutzen Sie die Arbeitsautomatisierung mit KI.

Kostenlos anmelden
Parseur rated 5/5 on Capterra
Parseur.com has the highest adoption on G2
Parseur.com has the happiest users badge on Crozdesk
Parseur rated 5/5 on GetApp
Parseur rated 4.5/5 on Trustpilot