Hanfhandel
Mitglied
Das Feature um Absender Namen von E-Mails selbst definieren zu können wird hier im Issue Ticket schon lange diskutiert, ist aber von JTL noch immer nicht umgesetzt.
Daher hab ich mich Abends mal hingesetzt und einen eigenen kleinen SMTP Forwarding Server (in python) geschrieben.
[Danke an Tim S. Kommentar vom 16.03.2023 - denke das Script hier hat keine Limits bzgl der E-Mail Länge]
E-Mail Änderungen per Filter
Die Idee dabei ist, dass der Forwarding Server den Absender ändert - anhand von "Filtern", welche getriggert werden.
Trigger können dabei E-Mail Adressen des Absenders sein oder auch einzelnen Wörter im Betreff.
Somit kommen Mails beim Kunden nicht mehr als "Meine Beispiel GmbH" - sondern mit dem Absender "My Great Onlineshop" an.
Hat man verschiedene Mail Vorlagen, so kann man anhand von Trigger Wörtern im Betreff einen anderen Filter nutzen.
Bsp: Setzt man den Trigger auf "Rechnung", so könnten E-Mails mit dem Betreff "Ihre Rechnung vom 12.03.2022" vom Absender "Great Onlineshop - Buchhaltung" versandt werden.
Oder wenn die Mail Vorlage so eingestellt ist, dass sie den Nutzername im Betreff mit reinschreibt, kann man darauf triggern lassen, dann aber das Triggerwort durch einen beliebigen String (ich empfehle einen leeren String) ersetzen lassen.
Somit würde aus dem E-Mail Betreff "Nutzer1 Ihr Angebot von Great Onlineshop" der Betreff "Ihr Angebot von Great Onlineshop" und man kann die E-Mail über das Konto "nutzer1@my-onlineshop.com" versenden.
Auch ist es möglich den Trigger auf die E-Mail Adresse zu legen, welche die E-Mail versendet.
So können Mails von "firma1@my-onlineshop.com" einen anderen Filter triggern (und durch den Filter versendet werden), als E-Mails welche über "firma2@my-onlineshop.com" verschickt werden sollen.
Wenn also verschiedene Firmen in der JTl-WaWi eingetragen sind, kann eine einzelne Forwarder-Instanz den Versand von E-Mails mehrerer Firmen abdecken.
Funktionsweise und Features
Da Bilder mehr sagen als Worte, hier der Ablaufplan wie im JTL E-Mails versendet werden und wie der SMTP Forwarding Server eingreift.
Der SMTP Forwarder muss dabei auf einem Server laufen, der vom JTL-Server selbst und von allen JTL Clients aus erreichbar ist.
Ideal ist hier der Windows Server selbst, auf dem die JTL-WaWi läuft.
Da der Forwarder dadurch (oft) öffentlich erreichbar ist, kann man den SMTP Server im Forwarder einstellen auf
- Authentifizierung via username / password
- Verschlüsselung mit STARTTLS mit selbst generiertem SSL-Zertifikat
- IP Ban (für y Minuten) nach X fehlerhaften Versuchen
Als Client zum (externen) SMTP Server unterstützt der SMTP Forwarder alle gängigen Methoden der Verschlüsselung und Authentifizierung.
Installation und Inbetriebnahme
Ich hab das Script auf Python 3.11 auf Windows entwickelt. (Linux tests habe ich noch keine durchgeführt)
Im Anhang findet Ihr das python Script in der aktuellen TEST-Version 0.51
Zudem die requirements.txt (welche Module eure Python Umgebung benötigt)
In der ZIP ist außerdem ein Script zum Versenden von Mails mitgeliefert, um die Funktionsweise der Filter einfach testen zu können.
Alternativ könnt ihr auch den Mail Client eurer Wahl nutzen und auf den Forwarder konfigurieren.
Die benötigten Module können mittels "pip install -r requirements.txt" installiert werden.
Falls Verschlüsselung aktiviert sein soll: OpenSSL muss auf dem Host installiert sein. Das Script generiert die SSL-Zertifikate dann selbst.
Wenn das Script "SMTP-Forwarder-JTL_v0.51.py" das erste mal gestartet wird, erzeugt es eine ausgiebig kommentierte Config Datei (im Text Format - TOML).
Dort müsst ihr die Einstellungen zum Mailversand(Filter) und zur Authentifizierung von Clients setzen.
Zum Testen empfehle ich das Script erstmal auf dem eigenen Rechner lokal laufen zu lassen und sich selbst (mittels des Scripts 'smtp_client_test_message.py') E-Mails zu senden um die Config Einstellungen und das Filter Handling zu verstehen. Zudem sollte die 'Ausführliche Ausgabe' (in der Config) aktiviert sein damit ihr seht was passiert.
Es wird auch eine LOG Datei geschrieben. Deren Detailgrad ist einstellbar.
Hinweis
Um aus JTL heraus E-Mails an den SMTP-Forwarder [mit aktivierter Verschlüsselung] senden zu können, muss die Verschlüsselung auf
STARTTLS ohne Zertifikatsprüfung gestellt sein (das generierte SSL Zertifikat ist self signed und kann daher nicht gegen eine Zertifizierungsstelle geprüft werden)
Das Script wird hier "so wie es ist" zur Verfügung gestellt und kann beliebig abgeändert werden. (GNU GPL)
Diese Software wendet sich direkt an Admins.
Man muss mindestens im Stande sein python Module zu installieren und in einer Config Datei Werte nach bestem Wissen zu setzen.
Außerdem greift man in den Mail- Workflow seiner WaWi ein.
Wenn Euch nicht klar ist, was ihr hier tut, lasst die Finder davon und fragt euren Admin.
Feedback und Verbesserungen gerne hier oder direkt per E-Mail.
Daher hab ich mich Abends mal hingesetzt und einen eigenen kleinen SMTP Forwarding Server (in python) geschrieben.
[Danke an Tim S. Kommentar vom 16.03.2023 - denke das Script hier hat keine Limits bzgl der E-Mail Länge]
E-Mail Änderungen per Filter
Die Idee dabei ist, dass der Forwarding Server den Absender ändert - anhand von "Filtern", welche getriggert werden.
Trigger können dabei E-Mail Adressen des Absenders sein oder auch einzelnen Wörter im Betreff.
Somit kommen Mails beim Kunden nicht mehr als "Meine Beispiel GmbH" - sondern mit dem Absender "My Great Onlineshop" an.
Hat man verschiedene Mail Vorlagen, so kann man anhand von Trigger Wörtern im Betreff einen anderen Filter nutzen.
Bsp: Setzt man den Trigger auf "Rechnung", so könnten E-Mails mit dem Betreff "Ihre Rechnung vom 12.03.2022" vom Absender "Great Onlineshop - Buchhaltung" versandt werden.
Oder wenn die Mail Vorlage so eingestellt ist, dass sie den Nutzername im Betreff mit reinschreibt, kann man darauf triggern lassen, dann aber das Triggerwort durch einen beliebigen String (ich empfehle einen leeren String) ersetzen lassen.
Somit würde aus dem E-Mail Betreff "Nutzer1 Ihr Angebot von Great Onlineshop" der Betreff "Ihr Angebot von Great Onlineshop" und man kann die E-Mail über das Konto "nutzer1@my-onlineshop.com" versenden.
Auch ist es möglich den Trigger auf die E-Mail Adresse zu legen, welche die E-Mail versendet.
So können Mails von "firma1@my-onlineshop.com" einen anderen Filter triggern (und durch den Filter versendet werden), als E-Mails welche über "firma2@my-onlineshop.com" verschickt werden sollen.
Wenn also verschiedene Firmen in der JTl-WaWi eingetragen sind, kann eine einzelne Forwarder-Instanz den Versand von E-Mails mehrerer Firmen abdecken.
Funktionsweise und Features
Da Bilder mehr sagen als Worte, hier der Ablaufplan wie im JTL E-Mails versendet werden und wie der SMTP Forwarding Server eingreift.
Der SMTP Forwarder muss dabei auf einem Server laufen, der vom JTL-Server selbst und von allen JTL Clients aus erreichbar ist.
Ideal ist hier der Windows Server selbst, auf dem die JTL-WaWi läuft.
Da der Forwarder dadurch (oft) öffentlich erreichbar ist, kann man den SMTP Server im Forwarder einstellen auf
- Authentifizierung via username / password
- Verschlüsselung mit STARTTLS mit selbst generiertem SSL-Zertifikat
- IP Ban (für y Minuten) nach X fehlerhaften Versuchen
Als Client zum (externen) SMTP Server unterstützt der SMTP Forwarder alle gängigen Methoden der Verschlüsselung und Authentifizierung.
Installation und Inbetriebnahme
Ich hab das Script auf Python 3.11 auf Windows entwickelt. (Linux tests habe ich noch keine durchgeführt)
Im Anhang findet Ihr das python Script in der aktuellen TEST-Version 0.51
Zudem die requirements.txt (welche Module eure Python Umgebung benötigt)
In der ZIP ist außerdem ein Script zum Versenden von Mails mitgeliefert, um die Funktionsweise der Filter einfach testen zu können.
Alternativ könnt ihr auch den Mail Client eurer Wahl nutzen und auf den Forwarder konfigurieren.
Die benötigten Module können mittels "pip install -r requirements.txt" installiert werden.
Falls Verschlüsselung aktiviert sein soll: OpenSSL muss auf dem Host installiert sein. Das Script generiert die SSL-Zertifikate dann selbst.
Wenn das Script "SMTP-Forwarder-JTL_v0.51.py" das erste mal gestartet wird, erzeugt es eine ausgiebig kommentierte Config Datei (im Text Format - TOML).
Dort müsst ihr die Einstellungen zum Mailversand(Filter) und zur Authentifizierung von Clients setzen.
Zum Testen empfehle ich das Script erstmal auf dem eigenen Rechner lokal laufen zu lassen und sich selbst (mittels des Scripts 'smtp_client_test_message.py') E-Mails zu senden um die Config Einstellungen und das Filter Handling zu verstehen. Zudem sollte die 'Ausführliche Ausgabe' (in der Config) aktiviert sein damit ihr seht was passiert.
Es wird auch eine LOG Datei geschrieben. Deren Detailgrad ist einstellbar.
Hinweis
Um aus JTL heraus E-Mails an den SMTP-Forwarder [mit aktivierter Verschlüsselung] senden zu können, muss die Verschlüsselung auf
STARTTLS ohne Zertifikatsprüfung gestellt sein (das generierte SSL Zertifikat ist self signed und kann daher nicht gegen eine Zertifizierungsstelle geprüft werden)
Das Script wird hier "so wie es ist" zur Verfügung gestellt und kann beliebig abgeändert werden. (GNU GPL)
Diese Software wendet sich direkt an Admins.
Man muss mindestens im Stande sein python Module zu installieren und in einer Config Datei Werte nach bestem Wissen zu setzen.
Außerdem greift man in den Mail- Workflow seiner WaWi ein.
Wenn Euch nicht klar ist, was ihr hier tut, lasst die Finder davon und fragt euren Admin.
Feedback und Verbesserungen gerne hier oder direkt per E-Mail.
Anhänge
Zuletzt bearbeitet: