Neue Wegwerf-Mailadressen Software auf spamwc.de

Auf meinem Trashmailsystem spamwc.de wurde eine komplett neue Softwarelösung entwickelt und in Betrieb genommen. Das Frontend der neuen Software basiert auf der alten Lösung, das alte IMAP Backend wurde jedoch durch eine komplett neu entwickelten Software, die MongoDB für die Speicherung der E-Mails verwendet, ersetzt.

Backend

Das Backend lmtp-server ist ein LMTP Interface, das z.B. mit Postfix verwendet werden kann. Es nimmt die Mails, sofern sie von Postfix angenommen werden, entgegen und speichert sie in MongoDB ab. Ein CleanUp Skript löscht die Mails entsprechend dem in der Konfiguration angegebenen Frist. Implementiert wurde das in Python3.

Frontend

Das Frontend Trashmail2 wurde zunächst auf Basis der alten Lösung implementiert. Neben dem neuen Backend wurden auch alte Out-Of-Support NPM Libraries entfernt bzw. durch aktuelle Versionen ersetzt. Der Code wurde insgesamt aufgeräumt sowie als deprecated gekennzeichnete Funktionen durch aktuelle Versionen ersetzt, damit auch NodeJS Updates problemlos bleiben.

Infrastruktur

Der Core (Backend, Frontend und MongoDB) wurden mit Docker implementiert, um die Möglichkeit automatisierter Tests zu erleichtern und ein konsistentes Deployment von Entwicklung -> Test -> Produktion zu gewährleisten. Die Dockerfiles ziehen von Github den aktuellen Sourcecode und generieren daraus ein Image.

Auswirkungen

Die neue Architektur hat in Verbindung mit der Codeoptimierung im Frontend zu erheblichen Verbesserungen in der Performance und Skalierbarkeit geführt. Der LMTP Server ist schon in einer Instanz schnell genug, um binnen weniger Sekunden alle Mails vom Postfix anzunehmen und zu speichern. Selbst bei sehr hohem Mailaufkommen enthält die Postfix Mailqueue keine oder nur sehr wenige Mails, auch MongoDB kann hier seine Stärken ausspielen. Das Frontend findet die Mails sehr viel schneller, weil die Suche in MongoDB sehr schnell geht.

Fazit

Die Neuentwicklung war überfällig, weil die alte Lösung auf IMAP4 Basis zunehmend Probleme gemacht hat. Die veralteten Libraries hätten früher oder später sich Sicherheitsproblemen geführt. Das Ergebnis kann sich zumindest sehen lassen, insbesondere stellen die Mailmengen keine Probleme mehr auf der vorhandenen Infrastruktur mehr dar.