subjectprefix added

This commit is contained in:
duffyduck 2026-01-10 13:41:35 +01:00
parent bce38cda67
commit a92c449c71
3 changed files with 63 additions and 2 deletions

Binary file not shown.

View File

@ -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+]", "");

View File

@ -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.