# Mail2Fax - Installations- und Konfigurationshandbuch Detaillierte Schritt-für-Schritt-Anleitung zur Installation und Konfiguration des Mail2Fax-Moduls für STARFACE. **Aktuelle Version**: v54 ([`fax2Mail_v54.sfm`](../fax2Mail_v54.sfm)) **Enthält alle Features**: PIN-Schutz, Betreff-Präfix (Multi-Instanz), Retry-Logik, etc. --- ## Inhaltsverzeichnis 1. [Voraussetzungen](#voraussetzungen) 2. [Teil 1: Modul-Erstellung im Module Designer](#teil-1-modul-erstellung-im-module-designer) 3. [Teil 2: Modul-Konfiguration](#teil-2-modul-konfiguration) 4. [Fertig-Modul importieren](#fertig-modul-importieren) 5. [Mehrere Instanzen für verschiedene Benutzer](#mehrere-instanzen-für-verschiedene-benutzer) --- ## Voraussetzungen - STARFACE 8.x, 9.x oder 10.x - Admin-Zugriff auf STARFACE (SSH-Zugang für JavaMail-Installation) - **JavaMail-Bibliothek** muss auf STARFACE installiert sein ### JavaMail installieren (vor dem Import!) **Einfachste Methode** - Automatisches Script: ```bash cd .. ./install-javamail.sh ssh root@ 'systemctl restart tomcat' ``` **Manuelle Installation:** ```bash # Bibliotheken herunterladen curl -L -o javax.mail.jar https://repo1.maven.org/maven2/com/sun/mail/javax.mail/1.6.2/javax.mail-1.6.2.jar curl -L -o activation.jar https://repo1.maven.org/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar # Auf STARFACE kopieren scp javax.mail.jar root@:/opt/tomcat/webapps/localhost/starface/WEB-INF/lib/ scp activation.jar root@:/opt/tomcat/webapps/localhost/starface/WEB-INF/lib/ # STARFACE neustarten ssh root@ 'systemctl restart tomcat' ``` --- ## Teil 1: Modul-Erstellung im Module Designer ### Schritt 1: Neues Modul erstellen Öffne den STARFACE Module Designer und erstelle ein neues Modul. ![01. Create Module and Description](screenshots/Modul%20Creation/01.%20Create%20Modul%20and%20Description.png) **Auszufüllen:** - **Modul-Name**: `Mail2Fax` (oder beliebiger Name) - **Beschreibung**: "Ruft E-Mails ab und sendet PDF-Anhänge als Fax" - **Version**: `1.0.0` --- ### Schritt 2: Class-Dateien hochladen Lade beide kompilierten `.class` Dateien als Ressourcen hoch. ![02. Upload Classes](screenshots/Modul%20Creation/02.%20Upload%20Classes.png) **Hochzuladen:** - `Mail2FaxBlock.class` (Hauptfunktion) - `Mail2FaxCleanup.class` (Cleanup-Funktion) **Tab**: Ressourcen → "Datei hochladen" --- ### Schritt 3: Cleanup-Funktion im Entrypoint einrichten Verknüpfe die Cleanup-Klasse mit dem `activate` Event. ![03. Set Cleanup Class in Module Settings](screenshots/Modul%20Creation/03.%20Set%20Cleanup%20Class%20in%20Modul%20Settings.png) **Konfiguration:** - **Tab**: Entrypoints - **Event**: `activate` - **Klasse**: `Mail2FaxCleanup.class` Dies stellt sicher, dass beim Modul-Start die Cleanup-Routine ausgeführt wird. --- ### Schritt 4: Haupt-Funktion erstellen Erstelle die Hauptfunktion, die vom Timer aufgerufen wird. ![04. Create main function](screenshots/Modul%20Creation/04.%20Create%20main%20function.png) **Konfiguration:** - **Tab**: Funktionen - **Neuer Funktionsbaustein**: "Mail2Fax" - **Klasse**: `Mail2FaxBlock.class` --- ### Schritt 5: Timer einrichten Konfiguriere einen Timer, der die Hauptfunktion regelmäßig ausführt. ![05. Create Timer for function](screenshots/Modul%20Creation/05.%20Create%20Timer%20for%20function.png) **Konfiguration:** - **Tab**: Timer - **Neuer Schedule**: [+] klicken - **Intervall**: 60 Sekunden (empfohlen) - **Verknüpfte Funktion**: Mail2Fax (Hauptfunktion) **Hinweis**: Der eingebaute Lock-Mechanismus verhindert parallele Ausführungen automatisch. --- ### Schritt 6: GUI-Elemente erstellen Erstelle die Eingabefelder für die Konfiguration. ![06. Create GUI elements](screenshots/Modul%20Creation/06.%20Create%20GUI%20elements.png) **Zu erstellende Felder:** | Feldname | Typ | Label | Beschreibung | |----------|-----|-------|--------------| | mailServer | STRING | Mail Server | IMAP/POP3 Server-Adresse | | mailPort | NUMBER | Port | Server-Port (993 für IMAPS) | | mailProtocol | STRING | Protokoll | "IMAP" oder "POP3" | | mailUsername | STRING | Benutzername | E-Mail-Benutzername | | mailPassword | PASSWORD | Passwort | E-Mail-Passwort | | mailUseSsl | BOOLEAN | SSL verwenden | SSL/TLS aktivieren | | mailFolder | STRING | Ordner | E-Mail-Ordner (z.B. INBOX) | | deleteAfterProcess | BOOLEAN | Nach Verarbeitung löschen | E-Mails löschen (nur IMAP) | | faxAccountId | STARFACE_USER | Fax-Benutzer | Benutzer für Fax-Versand | | faxSenderNumber | STRING | Absender-Faxnummer | Ausgehende Faxnummer | | authorizedSenders | STRING | Erlaubte Absender | Komma-getrennte Liste (optional) | | subjectPrefix | STRING | Betreff-Präfix | Präfix für Multi-Instanz (optional) | | pin | STRING | PIN | Sicherheits-PIN (optional) | | maxRetries | NUMBER | Max. Wiederholungen | Anzahl Wiederholungsversuche | | retryDelayMinutes | NUMBER | Wartezeit (Minuten) | Minuten zwischen Versuchen | --- ### Schritt 7: GUI-Vorschau prüfen Überprüfe die GUI-Elemente in der Vorschau. ![07. Preview GUI Elements to see it looks good](screenshots/Modul%20Creation/07.%20Preview%20GUI%20Elemets%20to%20see%20it%20looks%20good.png) Stelle sicher, dass alle Felder korrekt angezeigt werden und sinnvoll beschriftet sind. --- ### Schritt 8: Mail2Fax Block zur Hauptfunktion hinzufügen Füge den Mail2Fax-Block zur Hauptfunktion hinzu. ![08. Add Mail2Fax Block to main function](screenshots/Modul%20Creation/08.%20Add%20Mail2FAx%20Block%20to%20main%20funtion.png) **Im Funktions-Editor:** - Block "Mail2FaxBlock" aus der Palette ziehen - In den Ablauf der Hauptfunktion einfügen --- ### Schritt 9: GUI-Felder zuweisen Weise die GUI-Felder den Block-Parametern zu. ![09. Assign GUI Fields](screenshots/Modul%20Creation/09.%20Assign%20GUI%20Fields.png) **Mapping:** - Jedes GUI-Element mit dem entsprechenden Block-Parameter verbinden - Alle @InputVar Felder des Blocks müssen mit GUI-Elementen verknüpft werden --- ### Schritt 10: Modul speichern Speichere das Modul und aktiviere es. ![10. Save Module](screenshots/Modul%20Creation/10.%20Save%20Modul.png) Das Modul ist jetzt bereit zur Konfiguration! --- ## Teil 2: Modul-Konfiguration ### Schritt 1: Neue Konfiguration hinzufügen Erstelle eine neue Instanz des Mail2Fax-Moduls. ![01. Add new config](screenshots/Modul%20Konfiguration/01.%20Add%20new%20config.png) **Navigation:** - Module → Modulkonfigurationen → [+] Neu --- ### Schritt 2: Mail2Fax Modul auswählen Wähle das zuvor erstellte Mail2Fax-Modul aus. ![02. Choose Mail2Fax Module](screenshots/Modul%20Konfiguration/02.%20Choose%20fax2mail%20Modul.png) --- ### Schritt 3: Instanz benennen Gib der Modul-Instanz einen eindeutigen Namen. ![03. Set module name](screenshots/Modul%20Konfiguration/03.%20Set%20modul%20name.png) **Beispiele:** - "Mail2Fax - Hauptbüro" - "Mail2Fax - Maik" - "Mail2Fax - Vertrieb" --- ### Schritt 4: Felder ausfüllen Fülle alle erforderlichen Konfigurationsfelder aus. ![04. Fill out fields](screenshots/Modul%20Konfiguration/04.%20Fill%20out%20fields.png) **Beispiel-Konfiguration:** #### E-Mail-Einstellungen - **Mail Server**: `mail.example.com` - **Port**: `993` - **Protokoll**: `IMAP` - **Benutzername**: `fax@example.com` - **Passwort**: `********` - **SSL verwenden**: ✓ Ja - **Ordner**: `INBOX` - **Nach Verarbeitung löschen**: ☐ Nein (für IMAP) #### Fax-Einstellungen - **Fax-Benutzer**: (Aus Dropdown wählen - z.B. "Stefan Hacker") - **Absender-Faxnummer**: `+49721123456` #### Sicherheit (optional) - **Erlaubte Absender**: `info@example.com, team@example.com` - **Betreff-Präfix**: `FAXStefan:` (für Multi-Instanz) - **PIN**: `1234` (wenn PIN-Schutz gewünscht) #### Retry-Einstellungen - **Max. Wiederholungen**: `3` - **Wartezeit (Minuten)**: `5` --- ### Schritt 5: Modul aktivieren Aktiviere die Modul-Instanz. ![05. Activate module, finish](screenshots/Modul%20Konfiguration/05.%20Aktivate%20modul%2C%20finish.png) **Fertig!** Das Modul läuft jetzt und prüft alle 60 Sekunden auf neue E-Mails. --- ## Fertig-Modul importieren Alternativ zur manuellen Erstellung kannst du das fertig konfigurierte Modul importieren: **Datei**: [`../fax2Mail_v54.sfm`](../fax2Mail_v54.sfm) **Import:** 1. STARFACE Admin → Module → Module Designer 2. "Modul importieren" 3. `.sfm` Datei hochladen 4. Modul wird automatisch erstellt (inkl. aller Felder und Funktionen) 5. Weiter mit [Teil 2: Modul-Konfiguration](#teil-2-modul-konfiguration) **Hinweis**: - Du musst trotzdem die `.class` Dateien und JavaMail-Bibliothek installieren! - Das Modul enthält alle aktuellen Features inkl. `subjectPrefix` und `pin` Parameter --- ## Mehrere Instanzen für verschiedene Benutzer Du kannst mehrere Instanzen des Moduls für verschiedene Benutzer erstellen. > **⚠️ WICHTIG für Multi-Instanz-Betrieb:** > > **Voraussetzungen:** > - **Nur IMAP verwenden** (POP3 ist NICHT geeignet für mehrere Instanzen) > - **Separate Ordner empfohlen** für beste Zuverlässigkeit und Performance > > **Warum separate Ordner?** > - Keine Race Conditions möglich > - Jede Instanz sieht nur relevante E-Mails > - Bessere Performance (keine unnötigen Prüfungen) > - Klare Trennung und einfacheres Debugging > > **Alternative (nicht empfohlen):** Mehrere Instanzen auf demselben Ordner funktionieren technisch, aber E-Mails werden mehrfach geprüft und es kann zu Verzögerungen kommen. ### Beispiel: Zwei Benutzer **Instanz 1: Maik** - **Name**: "Mail2Fax - Maik" - **Mail Server**: `mail.example.com` - **Ordner**: `FaxMaik` (mit E-Mail-Filter) - **Betreff-Präfix**: `FAXMaik:` - **Fax-Benutzer**: Maik (aus Dropdown) - **Absender-Faxnummer**: Maiks Nummer **Instanz 2: Olaf** - **Name**: "Mail2Fax - Olaf" - **Mail Server**: `mail.example.com` - **Ordner**: `FaxOlaf` (mit E-Mail-Filter) - **Betreff-Präfix**: `FAXOlaf:` - **Fax-Benutzer**: Olaf (aus Dropdown) - **Absender-Faxnummer**: Olafs Nummer ### E-Mail-Filter einrichten Im E-Mail-Client (z.B. Thunderbird, Outlook): **Regel 1:** - Wenn Betreff enthält: `FAXMaik:` - Dann verschiebe nach: `FaxMaik` **Regel 2:** - Wenn Betreff enthält: `FAXOlaf:` - Dann verschiebe nach: `FaxOlaf` ### Benutzung **Maik sendet Fax:** ``` An: fax@example.com Betreff: FAXMaik: +49721123456 Anhang: dokument.pdf ``` **Olaf sendet Fax:** ``` An: fax@example.com Betreff: FAXOlaf: +498999887766 Anhang: rechnung.pdf ``` Beide E-Mails landen im selben Postfach, werden aber durch Filter in verschiedene Ordner sortiert und von unterschiedlichen Modul-Instanzen verarbeitet. --- ## Logs und Fehlersuche **Log-Dateien:** ``` /var/log/starface/starface.log ``` **Nützliche Log-Meldungen:** ```bash # Erfolgreiche Verarbeitung grep "Mail2Fax: Fax erfolgreich gesendet" /var/log/starface/starface.log # Fehler grep "Mail2Fax.*ERROR" /var/log/starface/starface.log # BUSY (für Retry) grep "Mail2Fax.*BUSY" /var/log/starface/starface.log # Präfix-Fehler grep "Mail2Fax: Betreff-Präfix stimmt nicht" /var/log/starface/starface.log # PIN-Fehler grep "Mail2Fax: PIN" /var/log/starface/starface.log ``` **Tracking-Dateien:** ``` /var/starface/module-data/mail2fax_processed.txt # Verarbeitete E-Mails (POP3) /var/starface/module-data/mail2fax_retry.txt # Retry-Queue ``` --- ## Support Bei Problemen: 1. Logs prüfen (siehe oben) 2. JavaMail-Bibliothek installiert? (`/opt/tomcat/webapps/localhost/starface/WEB-INF/lib/javax.mail.jar`) 3. Fax-Benutzer hat Fax-Berechtigung? 4. E-Mail-Server erreichbar? (Firewall, Ports) 5. PDF-Anhänge vorhanden und gültig? Weitere Details in der [README.md](README.md).