Product

Wöchentliches Produkt-Update: Verbesserungen des Control Panels und 135-mal schnellere Rechtschreibprüfung für die E-Mail-Verifizierung

Erste Änderungen und Verbesserungen am Control Panel und der E-Mail-Verifizierungs-API in den Anfangstagen von Mailgun. Weiterlesen...
Bild für Wöchentliches Produkt-Update: Verbesserungen des Control Panels und 135-mal schnellere Rechtschreibprüfung für die E-Mail-Verifizierung

Diese Woche haben wir uns auf die Verbesserung des Mailgun-Control-Panels und der Rechtschreibkorrektur für die E-Mail-Verifizierungs-API konzentriert.

Control Panel erhält ein Facelift und einige neue Funktionen

Es ist Ihnen vielleicht nicht aufgefallen, aber unser Control Panel hat keine Designpreise gewonnen. : ) Das hiesige Team war in der Vergangenheit stark auf die Entwicklung fokussiert und kannte sich besser mit Python und Golang aus als mit HTML5 und CSS. Aber wir haben kürzlich fantastische UX-Design- und Front-End-Fachleute eingestellt, um die Nutzungserfahrung von Mailgun über das Control Panel zu verbessern. Daher haben wir diese Woche eine neue Version des Control Panels mit einigen dezenten optischen Verbesserungen und einer neuen Funktion eingeführt, die Sie bestimmt nützlich finden werden: Domain-Status. Dies ist nur der erste Schritt, und wir werden in Zukunft weitere UX-Verbesserungen und -Funktionen einführen.

Domain-Status

Jede Mailgun-Domain kann einen von drei Status haben: aktiv, unbestätigt und deaktiviert. Folgendes bedeuten diese Status und deshalb sind sie wichtig:

  • Aktiv – dies bedeutet, dass für Ihre Domain alle entsprechenden DNS-Einträge eingerichtet sind und sie sich in einem guten Zustand befindet.
  • Unbestätigt – dies bedeutet, dass für Ihre Domain einige oder alle erforderlichen Sende-DNS-Einträge nicht eingerichtet sind. Dies ist ein Problem, denn ohne diese eingerichteten Einträge landen Ihre E-Mails höchstwahrscheinlich im Spam. Sie sollten dies so schnell wie möglich beheben.
  • Deaktiviert – dies bedeutet, dass Ihre Domain keine E-Mails mehr versenden kann, was höchstwahrscheinlich auf eine hohe Anzahl an Bounces oder erhaltenen Beschwerden zurückzuführen ist. Kontaktieren Sie uns unter support@mailgun.com zur Klärung.

Diese Statusangaben bieten Ihnen einen schnellen Überblick über all Ihre Domains. Das ist besonders nützlich, wenn Sie auf Basis von Mailgun eine große Plattform für Ihre Kundschaft betreiben. So ist es nun viel einfacher zu erkennen, wer in Ihrer Kundschaft Probleme hat und Ihre Hilfe benötigt. Der Domain-Status ist auch als Teil der Domains-API  verfügbar, falls Sie den Status lieber auf diese Weise abrufen möchten.

Beschleunigung der Rechtschreibkorrektur der E-Mail-Validierung um das 135-Fache

Zu Beginn unserer Arbeit an Guardpost, unserer E-Mail-Verifizierungs-API, wussten wir, dass wir Tippfehlervorschläge in den Dienst integrieren wollten (dies fängt Tippfehler wie gmall.com anstelle von gmail.com ab). Wir sehen jeden Tag unzählige E-Mails, die aufgrund von Tippfehlern nicht an ihren eigentlichen Bestimmungsort zugestellt werden, und wir wollten etwas dagegen tun. Wir haben intern gebrainstormt und recherchiert, wie andere dieses Problem lösen. Wie viele andere stießen wir auf Peter Norvigs Artikel über das Schreiben einer Rechtschreibkorrektur und bauten unsere erste Rechtschreibkorrektur für die initial eingeführte Version von Guardpost auf seiner Idee auf.

Wir stellten schnell fest, dass unsere CPU stark belastet wurde, wodurch Guardpost langsamer wurde – und das, obwohl Guardpost auf einem ziemlich leistungsstarken Server lief. Ein Profiling zeigte schnell, dass wir unverhältnismäßig viel Zeit in der Rechtschreibkorrektur verbrachten.

Um noch einmal auf die Rechtschreibkorrektur zurückzukommen: Die erste Version funktionierte so, dass viele verschiedene Zeichenfolgenkombinationen auf Basis des ursprünglichen Wortes (sogenannte Edits) erstellt wurden. Anschließend wurden all diese Edits durchsucht, um dasjenige mit der geringsten Anzahl an Änderungen zum Originalwort (Edit-Distanz) zu finden. Dies war dann die vorgeschlagene Rechtschreibkorrektur.

Das ist großartig für englische Wörter, aber wir hatten es nicht mit regulären englischen Wörtern zu tun. Wir betrachteten eine sehr spezifische Teilmenge: Domains. Daher sahen wir uns nach verschiedenen Algorithmen um, die für unseren spezifischen Anwendungsfall der Tippfehlerkorrektur bei Domains besser geeignet waren. Wir führten viele Experimente durch, um herauszufinden, was am besten funktionierte. Für die Leistung achteten wir sowohl auf die Geschwindigkeit als auch auf die Genauigkeit des Algorithmus.

Nach viel Recherche, Experimenten und Feinabstimmung verwendeten wir schließlich eine in Python integrierte Bibliothek namens difflib, die den Ratcliff-Obershelp-Algorithmus  nutzt, um die Ähnlichkeit zweier Zeichenfolgen zu berechnen. Dieser Algorithmus ist nicht nur genau, sondern auch sehr schnell bei der Korrektur von Domains. Wie viel schneller? 135 × schneller.

Und wie sieht es mit der Genauigkeit aus?

Um die Genauigkeit zu messen, haben wir einen Testdatensatz erstellt, der sowohl häufige Tippfehler umfasste, die unser DNS-Server erfasst hatte, als auch zufällige Mutationen. Zufällige Mutationen sind beispielsweise das Löschen oder Hinzufügen zufälliger Zeichen in einer Domain sowie das Verkürzen oder Verlängern von Wörtern. Insgesamt hatten wir etwa 1.000 Tests.

Beim gesamten Datensatz wies die neue Korrektur eine Genauigkeit von 93,9 % auf, während die alte Korrektur bei 98,9 % lag.

Wie Sie sehen können, scheinen diese Tests die ursprüngliche Korrektur stark zu begünstigen. Genau hier, bei der Betrachtung von Edits, spielt sie ihre Stärken aus.

Wenn man diese Tests weglässt und sich nur auf reale Tippfehler konzentriert, die unsere DNS-Server erfasst haben, erreicht unsere neue Korrektur eine Genauigkeit von 95,8 %, während unsere ursprüngliche Korrektur bei 96,3 % lag. Das bedeutet einen Genauigkeitsverlust von weniger als einem Prozent bei realistischen Tippfehlern – bei einem 135-fachen Geschwindigkeitszuwachs. Das ist absolut kein schlechter Kompromiss.

Das ist nur eines der Dinge, an denen wir hinter den Kulissen gearbeitet haben, um Guardpost und dessen Nutzungserfahrung zu verbessern. All dies (und mehr) wird bald als Open Source zur Verfügung gestellt, sodass Sie es sich selbst ansehen (und damit experimentieren) können. Bleiben Sie dran!

Das war es für diese Woche.

Viel Spaß beim Senden!

Ihr Mailgun-Team