diff --git a/v8-9-10/Mail2FaxBlock.class b/v8-9-10/Mail2FaxBlock.class index 600c9c2..792e582 100644 Binary files a/v8-9-10/Mail2FaxBlock.class and b/v8-9-10/Mail2FaxBlock.class differ diff --git a/v8-9-10/Mail2FaxBlock.java b/v8-9-10/Mail2FaxBlock.java index cbaab48..21aebe3 100644 --- a/v8-9-10/Mail2FaxBlock.java +++ b/v8-9-10/Mail2FaxBlock.java @@ -122,6 +122,13 @@ public class Mail2FaxBlock implements IBaseExecutable { ) public String authorizedSenders = ""; + @InputVar( + label = "Betreff-Präfix", + description = "Präfix im Betreff (optional). Wenn gesetzt, muss der Betreff mit diesem Präfix beginnen (z.B. 'FAXMaik:'). Ermöglicht Filter-Regeln im E-Mail-Client für mehrere Fax-Instanzen.", + type = VariableType.STRING + ) + public String subjectPrefix = ""; + @InputVar( label = "PIN", description = "Sicherheits-PIN (optional). Wenn gesetzt, muss die PIN im E-Mail-Text enthalten sein um das Fax zu senden.", @@ -457,7 +464,12 @@ public class Mail2FaxBlock implements IBaseExecutable { // Ziel-Faxnummer aus Betreff extrahieren String destination = extractFaxNumber(subject); if (destination == null || destination.isEmpty()) { - log.warn("Mail2Fax: Keine gültige Faxnummer im Betreff: " + subject); + // Spezifische Fehlermeldung je nach Grund + if (subjectPrefix != null && !subjectPrefix.trim().isEmpty() && !subject.startsWith(subjectPrefix.trim())) { + log.warn("Mail2Fax: Betreff-Präfix stimmt nicht überein. Erwartet: '" + subjectPrefix.trim() + "', Betreff: " + subject); + } else { + log.warn("Mail2Fax: Keine gültige Faxnummer im Betreff: " + subject); + } if (!isPop3) { message.setFlag(Flags.Flag.SEEN, true); } @@ -609,12 +621,31 @@ public class Mail2FaxBlock implements IBaseExecutable { /** * Extrahiert die Faxnummer aus dem E-Mail-Betreff + * + * Wenn ein Betreff-Präfix konfiguriert ist, muss der Betreff damit beginnen. + * Der Präfix wird dann entfernt, bevor die Faxnummer extrahiert wird. + * + * Beispiel: subjectPrefix="FAXMaik:", subject="FAXMaik: +49721123456" → "+49721123456" */ private String extractFaxNumber(String subject) { if (subject == null || subject.isEmpty()) { return null; } + // Wenn Präfix gesetzt ist, prüfen und entfernen + if (subjectPrefix != null && !subjectPrefix.trim().isEmpty()) { + String prefix = subjectPrefix.trim(); + + if (!subject.startsWith(prefix)) { + log.debug("Mail2Fax: Betreff beginnt nicht mit Präfix '" + prefix + "': " + subject); + return null; + } + + // Präfix entfernen + subject = subject.substring(prefix.length()).trim(); + log.debug("Mail2Fax: Präfix entfernt, verbleibender Betreff: " + subject); + } + // Entferne alle Zeichen außer Ziffern und + String cleaned = subject.replaceAll("[^0-9+]", ""); diff --git a/v8-9-10/README.md b/v8-9-10/README.md index 9ef3691..dc55833 100644 --- a/v8-9-10/README.md +++ b/v8-9-10/README.md @@ -10,6 +10,7 @@ Ein Custom Block für den STARFACE Module Designer, der E-Mails abruft und PDF-A - **Retry-Logik**: Bei besetzter Leitung oder Fehler wird automatisch erneut versucht - **Konfigurierbare Wiederholungen**: Anzahl und Wartezeit einstellbar - **PIN-Schutz**: Optionale Sicherheits-PIN im E-Mail-Text erforderlich +- **Betreff-Präfix**: Mehrere Fax-Instanzen durch Präfix im Betreff (z.B. "FAXMaik:") ## Kompatibilität @@ -77,6 +78,7 @@ Ergebnis: `Mail2FaxBlock.class` und `Mail2FaxCleanup.class` | faxAccountId | STARFACE_USER | Fax-Benutzer (Dropdown) | | | faxSenderNumber | STRING | Absender-Faxnummer | | | authorizedSenders | STRING | Erlaubte Absender (optional) | | +| subjectPrefix | STRING | Betreff-Präfix (optional) | | | pin | STRING | Sicherheits-PIN (optional) | | | maxRetries | NUMBER | Max. Wiederholungsversuche | 3 | | retryDelayMinutes | NUMBER | Minuten zwischen Versuchen | 5 | @@ -107,12 +109,40 @@ Der Block muss regelmäßig ausgeführt werden um E-Mails abzurufen. Dafür den ## Benutzung 1. E-Mail an das konfigurierte Postfach senden -2. **Betreff** = Ziel-Faxnummer (z.B. `+49721123456`) +2. **Betreff** = [Präfix] Ziel-Faxnummer (z.B. `FAXMaik: +49721123456` oder nur `+49721123456`) 3. **Anhang** = PDF-Datei(en) 4. **E-Mail-Text** = PIN (falls konfiguriert) Das Modul ruft regelmäßig E-Mails ab und sendet PDFs als Fax. +## Betreff-Präfix (Multi-Instanz-Betrieb) + +Mit dem Betreff-Präfix können mehrere Mail2Fax-Instanzen parallel betrieben werden, z.B. für verschiedene Benutzer oder Abteilungen. + +**Verwendung:** +1. Erstelle mehrere Modul-Instanzen im Module Designer +2. Setze für jede Instanz einen eigenen Präfix (z.B. `FAXMaik:`, `FAXOlaf:`) +3. Konfiguriere E-Mail-Filter-Regeln im E-Mail-Client: + - Regel 1: Wenn Betreff enthält "FAXMaik:" → verschiebe in Ordner "FaxMaik" + - Regel 2: Wenn Betreff enthält "FAXOlaf:" → verschiebe in Ordner "FaxOlaf" +4. Jede Modul-Instanz überwacht ihren eigenen Ordner + +**Beispiel:** +- **Instanz 1** (Benutzer Maik): + - mailFolder: `FaxMaik` + - subjectPrefix: `FAXMaik:` + - faxAccountId: Maik's STARFACE-Benutzer + +- **Instanz 2** (Benutzer Olaf): + - mailFolder: `FaxOlaf` + - subjectPrefix: `FAXOlaf:` + - faxAccountId: Olaf's STARFACE-Benutzer + +**E-Mail-Beispiele:** +- Betreff: `FAXMaik: +49721123456` → wird von Maik's Instanz verarbeitet +- Betreff: `FAXOlaf: +4989987654` → wird von Olaf's Instanz verarbeitet +- Betreff: `+49721999888` (ohne Präfix) → wird ignoriert, wenn Präfix konfiguriert ist + ## PIN-Schutz Wenn eine PIN konfiguriert ist, muss diese im E-Mail-Text enthalten sein, damit das Fax gesendet wird.