MESO-WorkerService
AddOn für die Mesonic WinLine ©
Stand: 21.10.2025
MESO-WorkerService
.NET Dienst zur Automatisierung von Hintergrundaufgaben zur Mesonic WinLine©
ℹ️ Download dieser Dokumentation als pdf
Inhaltsverzeichnis
- Übersicht
- Systemvoraussetzungen
- Installation
- Lizenzierung
- Grundeinstellungen
- Erste Schritte
- Erweiterte Benutzerdokumentation
- Downloads
- Support und Kontakt
Maildienst
Der dotnet 9 Dienst versendet automatisch eMails auf Basis eines hierarchischen Regelsystems.
Mandantenübergreifend können Workflows zu Workflowgruppen zusammengefasst werden (z.B. alle Workflows, die eine automatische Benachrichtigung an den Kunden erfordern).
Jede Workflowgruppe kann zusätzlich mittels Filterkriterien flexibel eine Selektion der tatsächlich relevanten Fälle zugewiesen werden, so dass z.B. nur Fälle mit einer bestimmten Eigenschaft (“Mailversand = JA”) oder nur für bestimmte Kunden herangezogen werden.
Zusätzliche Einstellungen wie Selektion von Anhängen, die angefügt werden sollen (aus dem ersten, zweiten, letzten oder allen Schritten) - optional auch eingeschränkt auf ein spezifisches Archivformular - die Selektion der Empfänger (Kunde, Ansprechpartner, oder statische Empfänger) sowie einer objektbasierten Gestaltung des Mailtextes aus Kontext-Variablen des Workflows (z.B. Projekt => Bezeichnung, Kunde => FaktStamm => Umsatz) sowie Inhalt von Eigenschaften des Falles (z.B. “Gewählte Ausführung: Rot”) runden den Dienst ab.
Das MesoWorker E-Mail-System bietet ein leistungsstarkes, hierarchisches Empfängerverwaltungssystem für die automatische E-Mail-Versendung basierend auf Workflow-Ereignissen. Es unterstützt sowohl klassische boolean-basierte Konfigurationen als auch erweiterte regelbasierte Empfängerverwaltung mit einem dreistufigen Prioritätssystem (Hauptpriorität, Verarbeitungsreihenfolge, Verarbeitung bei Treffer stoppen) für maximale Flexibilität und Kontrolle.
Es können beliebig viele SMTP-Accounts inkl. M365 mit OAuth Authentifizierung angelegt werden.
Eine grafische Administrationsoberfläche inkl. Mail-Journal und Benachrichtigung per eMail, wenn eine geplante Mail nicht versandt werden konnte, steht für Administratoren zur Verfügung.
Screenshots
Systemvoraussetzungen
Kompatible WinLine Version: ab WinLine Edition 2022
MDP Runtime Lizenz (vom Mesonic Vertriebspartner bereitzustellen)
Optional Mesonic Server 64 Bit um Workflow-Schritte anlegen zu lassen
dotnet 9 Runtime
Um die Anwendung auszuführen, ist die dotnet 9 Runtime erforderlich. Diese kann von der offiziellen Microsoft Webseite heruntergeladen und dann installiert werden: Download dotnet 9 Runtime
Installation
Der MesoWorkerService kann auf zwei verschiedene Arten betrieben werden:
Option 1: On-Premise Windows Dienst
Voraussetzungen: - Windows Server oder Windows 10/11 - dotnet 9 Runtime - Direkte Netzwerkverbindung zur WinLine-Datenbank
Installation: Bitte wenden Sie sich für die On-Premise Installation an [email protected]
Vorteile: - ✅ Direkter Zugriff auf lokale WinLine-Installation - ✅ Optimale Performance bei lokaler Datenbank - ✅ Vollständige Kontrolle über das System - ✅ Einfache Integration in bestehende Windows-Infrastruktur
Nachteile: - ⚠️ Erfordert Windows Server-Umgebung - ⚠️ Manuelle Installation und Wartung - ⚠️ dotnet 9 Runtime muss installiert werden - ⚠️ Skalierung nur über Hardware-Upgrades
Option 2: Container-Deployment
Verfügbare Container Images: -
Service: ghcr.io/css-edv-support/mesoworkerservice-service
- Blazor UI: ghcr.io/css-edv-support/mesoworkerservice-blazor
Deployment-Optionen: - Docker Compose - Portainer Stacks - Kubernetes - Docker Swarm
Beispiel Docker Compose Stack:
services:
mesoworkerservice-ui:
image: ghcr.io/css-edv-support/mesoworkerservice-blazor:${IMAGETAG}
pull_policy: always
container_name: mesoworkerservice-ui
restart: unless-stopped
hostname: mesoworkerservice-ui
ports:
- "8012:5000"
environment:
# Database Connections (REQUIRED)
- ConnectionStrings__ConnectionString=${CONNECTION_STRING}
- ConnectionStrings__WinLineSystemDBConnectionString=${WINLINE_SYSTEM_DB_CONNECTION_STRING}
mesoworkerservice:
image: ghcr.io/css-edv-support/mesoworkerservice-service:beta
pull_policy: always
container_name: mesoworkerservice
hostname: mesoworkerservice
ports:
- "8013:5000"
environment:
# Container Configuration
- ASPNETCORE_ENVIRONMENT=Production
- DOTNET_RUNNING_IN_CONTAINER=true
- ASPNETCORE_URLS=http://+:5000
- TZ=Europe/Berlin
- LANG=de_DE.UTF-8
# License Configuration (REQUIRED)
- LICENSE_CUSTOMER_NR=${LICENSE_CUSTOMER_NR}
- LICENSE_LICENSE_NR=${LICENSE_LICENSE_NR}
# Database Connections (REQUIRED)
- ConnectionStrings__ConnectionString=${CONNECTION_STRING}
- ConnectionStrings__WinLineSystemDBConnectionString=${WINLINE_SYSTEM_DB_CONNECTION_STRING}
# WinLine Configuration (REQUIRED)
- WinLineServer__Url=${WINLINE_SERVER_URL}
- WinLineSettings__WinLinePath=${WINLINE_PATH}
- WinLineSettings__MesospoolServiceUrl=${MESOSPOOL_SERVICE_URL}
- WinLineSettings__TemplateForWorkflowImport=101
# Session Settings
- SessionSettings__MinimumSessions=1
- SessionSettings__DefaultUser=${WINLINE_DEFAULT_USER}
- SessionSettings__DefaultPassword=${WINLINE_DEFAULT_PASSWORD}
- SessionSettings__DefaultCompany=${WINLINE_DEFAULT_COMPANY}
- SessionSettings__ValidationInterval=01:00:00
# Mail Configuration (REQUIRED)
- MailSettings__EmailFrom=${MAIL_FROM}
- MailSettings__DisplayName=MesoWorkerService Production
- MailSettings__SmtpHost=${SMTP_HOST}
- MailSettings__SmtpPort=${SMTP_PORT}
- MailSettings__SmtpUser=${SMTP_USER}
- MailSettings__SmtpPass=${SMTP_PASSWORD}
- MailSettings__UseSSL=${SMTP_USE_SSL}
- MailSettings__UseStartTls=${SMTP_USE_STARTTLS}
- MailSettings__AdminMailRecipients__0=${ADMIN_EMAIL}
# Quartz Job Configuration
- Quartz__MailWorkerJob__scheduler=0/30 * * * * ?
- Quartz__MailWorkerJob__enabled=true
- Quartz__MailWorkerJob__startnow=false
- Quartz__quartz.scheduler.instanceName=Meso Worker Services Scheduler (Production)
# Logging Configuration
- Logging__LogLevel__Default=Information
- Logging__LogLevel__Microsoft.Hosting.Lifetime=Information
- Logging__LogLevel__MesoWorkerService.Jobs.MailWorkerJob=Information
- Logging__LogLevel__Quartz=Information
- Serilog__MinimumLevel__Default=Information
- Serilog__MinimumLevel__Override__Microsoft=Information
- Serilog__MinimumLevel__Override__System=Warning
- Serilog__MinimumLevel__Override__MesoWorkerService=Information
- Serilog__MinimumLevel__Override__MesoWorkerService.Jobs=Information
- Serilog__MinimumLevel__Override__MesoWorkerService.Jobs.MailWorkerJob=Information
- Serilog__MinimumLevel__Override__Quartz=Information
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
interval: 3600s
timeout: 10s
retries: 3
start_period: 60s
# Optional: Resource limits
deploy:
resources:
limits:
memory: 1G
cpus: '1.0'
reservations:
memory: 512M
cpus: '0.5'Vorteile: - ✅ Plattformunabhängig (Linux, Windows, macOS) - ✅ Einfache Skalierung und Deployment - ✅ Containerisierte Umgebung mit definierten Abhängigkeiten - ✅ CI/CD-freundlich - ✅ Keine lokale dotnet-Installation erforderlich - ✅ Isolation und Ressourcenkontrolle - ✅ Einfache Updates über Image-Tags
Nachteile: - ⚠️ Erfordert Container-Runtime (Docker, Podman) - ⚠️ Zusätzliche Netzwerk-Konfiguration für Datenbankzugriff - ⚠️ Container-Orchestrierung kann komplex sein - ⚠️ Debugging kann aufwendiger sein
Empfehlung
- On-Premise: Ideal für kleinere Installationen mit direktem Server-Zugriff
- Container: Empfohlen für moderne Infrastrukturen, Multi-Environment-Deployments und Cloud-Umgebungen
Lizenzierung
Die License-Einstellung enthält die Lizenzdaten, die
Ihnen von Ihrem Mesonic Partner mitgeteilt wurde.
- CustomerNr: Die Kundennummer, die den Lizenzinhaber eindeutig identifiziert. Dieser Wert ist standardmäßig leer und muss vom Benutzer ausgefüllt werden.
- LicenseNr: Die Lizenznummer für die Softwareaktivierung. Auch dieser Wert ist initial leer und muss vom Benutzer bereitgestellt werden.
"License":
{
"CustomerNr": "",
"LicenseNr": ""
}Grundeinstellungen
Der MesoWorkerService benötigt verschiedene Konfigurationseinstellungen für den ordnungsgemäßen Betrieb. Die Konfiguration erfolgt je nach Installationsmethode unterschiedlich:
Lokale Installation (appsettings.json)
Bei der lokalen Windows-Installation werden alle Einstellungen in der
Datei appsettings.json konfiguriert:
{
"Kestrel": {
"Endpoints": {
"Http": { "Url": "http://0.0.0.0:5000" }
}
},
"License": {
"CustomerNr": "IHRE_KUNDENNUMMER",
"LicenseNr": "IHRE_LIZENZNUMMER"
},
"ConnectionStrings": {
"ConnectionString": "Data Source=SERVER;Initial Catalog=MesoWorkerDb;Integrated Security=true;TrustServerCertificate=true",
"WinLineSystemDBConnectionString": "Data Source=SERVER;Initial Catalog=CWLSYSTEM;Integrated Security=true;TrustServerCertificate=true"
},
"WinLineSettings": {
"WinLinePath": "C:\\WinLine\\",
"MesospoolServiceUrl": "http://winline-server:42024",
"TemplateForWorkflowImport": 101
},
"WinLineServer": {
"Url": "http://winline-server:8080"
},
"SessionSettings": {
"MinimumSessions": 1,
"DefaultUser": "mesouser",
"DefaultPassword": "password",
"DefaultCompany": "500M",
"ValidationInterval": "01:00:00"
},
"Quartz": {
"MailWorkerJob": {
"scheduler": "0/30 * * * * ?",
"enabled": true,
"startnow": false
}
}
}Container Installation (Docker Environment Variables)
Bei der Container-Installation werden die Einstellungen über Umgebungsvariablen gesetzt:
environment:
# Kestrel Web Server
- ASPNETCORE_URLS=http://+:5000
# Lizenzierung (ERFORDERLICH)
- LICENSE_CUSTOMER_NR=IHRE_KUNDENNUMMER
- LICENSE_LICENSE_NR=IHRE_LIZENZNUMMER
# Datenbankverbindungen (ERFORDERLICH)
- ConnectionStrings__ConnectionString=Data Source=SERVER;Initial Catalog=MesoWorkerDb;User ID=user;Password=pass;TrustServerCertificate=true
- ConnectionStrings__WinLineSystemDBConnectionString=Data Source=SERVER;Initial Catalog=CWLSYSTEM;User ID=user;Password=pass;TrustServerCertificate=true
# WinLine Einstellungen
- WinLineSettings__WinLinePath=/app/winline/
- WinLineSettings__MesospoolServiceUrl=http://winline-server:42024
- WinLineSettings__TemplateForWorkflowImport=101
# WinLine Server (nur für Workflow-Schritte erforderlich)
- WinLineServer__Url=http://winline-server:8080
# Session Einstellungen
- SessionSettings__MinimumSessions=1
- SessionSettings__DefaultUser=mesouser
- SessionSettings__DefaultPassword=password
- SessionSettings__DefaultCompany=500M
- SessionSettings__ValidationInterval=01:00:00
# Mail Worker Job
- Quartz__MailWorkerJob__scheduler=0/30 * * * * ?
- Quartz__MailWorkerJob__enabled=true
- Quartz__MailWorkerJob__startnow=falseWichtige Konfigurationseinstellungen
🌐 Kestrel (Web Server)
- Zweck: Konfiguration des integrierten Web-Servers
- Standard: Port 5000
- Container: Automatisch über
ASPNETCORE_URLSkonfiguriert
🔑 License (Lizenzierung)
- CustomerNr: Ihre Kundennummer (erhalten Sie über Ihren Mesonic Partner)
- LicenseNr: Ihre Lizenznummer (erhalten Sie über Ihren Mesonic Partner)
- Wichtig: Ohne gültige Lizenz startet der Service nicht
🗄️ ConnectionStrings (Datenbankverbindungen)
- ConnectionString: Hauptdatenbank für MesoWorkerService-Daten
- WinLineSystemDBConnectionString: Verbindung zur WinLine-Systemdatenbank
- Authentifizierung: Windows-Authentifizierung oder SQL-Authentifizierung möglich
⚙️ WinLineSettings (WinLine Konfiguration)
- WinLinePath: Pfad zur WinLine-Installation
- MesospoolServiceUrl: URL zum Mesospool-Service (für Dokumentenarchivierung)
- TemplateForWorkflowImport: Standard-Vorlage für Workflow-Import
🌐 WinLineServer (WebService)
- Url: URL zum WinLine WebService
- ⚠️ Wichtig: Nur erforderlich wenn Workflow-Schritte geschrieben werden sollen
- Lizenz: Benötigt separaten Mesonic WebService User (zusätzliche Lizenz)
👥 SessionSettings (Sitzungsverwaltung)
- MinimumSessions: Mindestanzahl aktiver WinLine-Sitzungen
- DefaultUser/Password/Company: Standard-Anmeldedaten für WinLine
- ValidationInterval: Intervall für Sitzungsvalidierung
📧 MailWorkerJob (E-Mail Verarbeitung)
- scheduler: Cron-Expression für Ausführungszeitpunkt (z.B. alle 30 Sekunden)
- enabled: Job aktivieren/deaktivieren
- startnow: Sofortiger Start beim Service-Start
🚀 Wichtigste Features im Überblick
- ✅ Automatische E-Mail-Versendung basierend auf WinLine-Workflows
- ✅ Hierarchisches Empfängerverwaltungssystem mit erweiterten Regeln
- ✅ Multi-SMTP-Unterstützung mit M365 OAuth-Authentifizierung
- ✅ Flexible Anhangsverwaltung aus Workflows und Belegen
- ✅ Mandantenfähigkeit für Multi-Company-Umgebungen
- ✅ Grafische Administrationsoberfläche (Blazor UI)
- ✅ Mail-Journal mit umfassender Protokollierung
- ✅ Container-ready für moderne DevOps-Umgebungen
- ✅ Automatische Fehlerbenachrichtigung bei Mail-Problemen
- ✅ Template-basierte E-Mails mit dynamischen Platzhaltern
- ✅ Workflow-Filter für zeitgesteuerte Verarbeitung
- ✅ Health-Checks für Monitoring und Überwachung
Erste Schritte
Nach der Installation müssen einige wichtige Schritte zur Ersteinrichtung durchgeführt werden.
1. Anwendungsdatenbank erstellen
Bei der ersten Ausführung der Anwendung wird automatisch die Anwendungsdatenbank erstellt. Dies erfolgt über das DevExpress XAF Framework:
Automatische Datenbankerstellung: - Beim ersten Start erkennt die Anwendung eine leere/fehlende Datenbank - Das XAF Framework erstellt automatisch alle benötigten Tabellen - Standard-Benutzer und -Rollen werden eingerichtet
Für Container-Deployment:
# Erste Ausführung - Datenbank wird automatisch erstellt
docker-compose up mesoworkerserviceFür lokale Installation: - Starten Sie die Anwendung über MesoWorker.Win.exe oder MesoWorker.Blazor.Server.exe - Die Datenbank wird beim ersten Start automatisch initialisiert
2. Benutzer- und Rollenverwaltung
Das System erstellt automatisch Standardbenutzer und -rollen:
Automatisch erstellte Rollen:
- Administrators: Vollzugriff auf alle Funktionen
(
IsAdministrative = true) - Default: Standardrolle für normale Benutzer mit eingeschränkten Rechten
Standard-Administrator:
- Benutzername:
Admin - Passwort: Leer (muss bei erster Anmeldung gesetzt werden)
- Rolle: Administrators
Passwort-Verwaltung:
- Standard-Admin-Benutzer hat initial kein Passwort
- Bei der ersten Anmeldung muss ein Passwort vergeben werden
- Passwörter können über die Benutzeroberfläche geändert werden
- Unterstützung für “Passwort bei nächster Anmeldung ändern”-Funktionalität
3. Administrationsoberflächen
Für die Einrichtung stehen zwei Anwendungen zur Verfügung:
Option A: Windows Desktop Client (MesoWorker.Win)
- Verwendung: Lokale Administration und Konfiguration
- Vorteile:
- ✅ Vollständige XAF Desktop-Funktionalität
- ✅ Erweiterte Entwicklertools verfügbar
- ✅ Optimiert für umfangreiche Konfigurationsarbeiten
- Start:
MesoWorker.Win.exe - Verbindung: Direkte Datenbankverbindung über ConnectionString
Option B: Blazor Web Interface (MesoWorker.Blazor.Server)
- Verwendung: Web-basierte Administration
- Vorteile:
- ✅ Plattformunabhängiger Zugriff über Browser
- ✅ Ideal für Remote-Administration
- ✅ Moderne Web-UI
- ✅ Gleichzeitige Nutzung durch mehrere Administratoren
- URL:
http://localhost:5000(standardmäßig) - Container:
ghcr.io/css-edv-support/mesoworkerservice-blazor
4. E-Mail-Template-Generierung
Das System bietet zwei Methoden zur E-Mail-Inhaltsgenerierung:
Methode 1: Textbausteine mit Objekt-Variablen
Einfache Textbausteine mit dynamischen Platzhaltern für Workflow-Daten:
Verfügbare Platzhalter: Das System stellt
alle Eigenschaften und Untereigenschaften des
CrmIncidencesUndSchritte-Objekts zur Verfügung. Einige
häufig verwendete Beispiele:
{{Kurzbeschreibung}} - Workflow-Kurzbeschreibung
{{LangbeschreibungExtern}} - Externe Langbeschreibung
{{OpNummer}} - Operations-/Workflow-Nummer
{{AktuellsterBeleg.DatumFaktura:dd.MM.yyyy}} - Rechnungsdatum des letzten Beleges mit Formatangabe
{{AktuellsterBeleg.Endbetrag:C2}} - Rechnungsbetrag als Währung
{{Kunde.Kontoname1}} - Firmenname 1 des Kunden
{{Projekt.Bezeichnung1}} - Projektbezeichnung 1
{{DatumSchrittGeschrieben:dd.MM.yyyy}} - Formatiertes Fallerfassungsdatum
{Property:123} - Eigenschaftswert nach ID
{UserColumn:456} - Benutzerdefiniertes Feld
Hinweis: Alle Eigenschaften des
CrmIncidencesUndSchritte-Objekts können verwendet werden, einschließlich
verschachtelter Objekte (z.B. {{Kunde.Adresse.Strasse1}},
{{Projekt.Bezeichnung1}}). Die Formatierung erfolgt über
Standard-.NET-Formatstrings (z.B. :dd.MM.yyyy für Datum,
:C2 für Währung).
Beispiel-Template:
##Empfaenger##
im Anhang finden Sie Ihre Rechnung {{OpNummer}} vom {{AktuellsterBeleg.DatumFaktura:dd.MM.yyyy}}. Der Gesamtbetrag beträgt {{AktuellsterBeleg.Endbetrag:C2}}.
Melden Sie sich gerne, wenn etwas unklar ist – wir unterstützen Sie schnell und unkompliziert.
{{LangbeschreibungExtern}}
##Anlagen##
Methode 2: DevExpress XAF MailMerge-Vorlagen
Erweiterte Rich-Text-Vorlagen mit vollem Funktionsumfang:
Features: - ✅ Rich-Text-Formatierung: Schriftarten, Farben, Tabellen - ✅ Erweiterte Platzhalter: Komplexe Objektnavigation - ✅ Bedingte Logik: If-Then-Else-Konstrukte - ✅ Schleifen: Wiederholung von Inhalten - ✅ Bilder: Eingebettete Grafiken und Logos - ✅ Tabellen: Dynamische Datenbereichstabellen
Erstellung von MailMerge-Vorlagen: 1. In der Administrationsoberfläche zu “Mail Vorlagen” navigieren 2. Neue RichTextMailMergeData-Vorlage erstellen 3. Rich-Text-Editor öffnen und Inhalte gestalten 4. Mail-Merge-Felder über Ribbon-Menü einfügen 5. Vorlage in den Mail-Einstellungen zuweisen
MailMerge-Beispiel:
«TableStart:Fall»
Projekt: «Projekt.Bezeichnung1»
Status: «Status»
«TableEnd:Fall»
«IF «Status» = 50»
⚠️ DRINGEND: Sofortige Bearbeitung erforderlich
«ENDIF»
5. Konfiguration der Mail-Einstellungen
Nach der Benutzeranmeldung konfigurieren Sie die E-Mail-Verarbeitung:
- SMTP-Konten einrichten (unter “SMTP Konten”)
- Mail-Einstellungen konfigurieren (siehe Grundeinstellungen)
- Empfängerregeln definieren (klassisch oder erweitert)
- Mail-Vorlagen zuweisen (Textbausteine oder MailMerge)
- Workflow-Filter einrichten (zeitbasiert)
6. Erste Test-E-Mail
Für einen ersten Test: 1. Workflow-Einstellungen für einen Mandanten aktivieren 2. Test-SMTP-Konto konfigurieren 3. Einfache Mail-Einstellungen mit statischen Empfängern 4. Mail-Worker-Job aktivieren 5. Test-Workflow in WinLine auslösen
Erweiterte Benutzerdokumentation
Ausführliche Anwenderdokumentation für das erweiterte Empfängerverwaltungssystem
SMTP-Konto-Prioritäten
Das System ermittelt SMTP-Konten in folgender Prioritätsreihenfolge:
Priorität 1: Workflow-spezifisches SMTP-Konto
- Konfiguration:
Workflow -> Verwende dieses SMTP Konto - Verwendung: Wenn ein spezifischer Workflow ein eigenes SMTP-Konto definiert hat
- Anwendungsfall: Spezielle Workflows mit besonderen Absenderanforderungen
Priorität 2: Mandanten-spezifisches SMTP-Konto
- Konfiguration:
Mandant -> Verwende dieses SMTP Konto - Verwendung: Fallback wenn kein Workflow-spezifisches SMTP-Konto definiert ist
- Anwendungsfall: Mandanten-spezifische E-Mail-Absender
Priorität 3: Standard-SMTP-Konto
- Konfiguration: SMTP-Konto mit
Standard-Konto = Aktiviert - Verwendung: Systemweiter Fallback wenn keine spezifischen Konten definiert sind
- Anwendungsfall: Allgemeine E-Mail-Versendung
Wichtig: Es muss mindestens ein Standard-SMTP-Konto im System definiert sein!
Klassische Empfängerkonfiguration
Grundeinstellungen
Name und Status
- Name: Eindeutige Bezeichnung für die E-Mail-Einstellungen
- Aktiv: Bestimmt, ob diese Einstellungen verwendet werden
Standardanrede
- Verwendung: Fallback-Anrede wenn keine spezifische Anrede ermittelt werden kann
- Beispiel: “Sehr geehrte Damen und Herren,”
Empfängertypen (Boolean-Flags)
Kundenempfänger
- An Kunden senden: Primäre Firmen-E-Mail-Adresse des Kunden
- An Kundenkontakt senden: E-Mail-Adresse des zugewiesenen Ansprechpartners
- Sende an Emailadresse für Rechnungsempfang: Spezielle Rechnungs-E-Mail-Adresse
- Rückfallempfänger Kunde: Fallback auf Kunden-E-Mail wenn Kontakt nicht verfügbar
- Rückfallempfänger Standardansprechpartner: Fallback auf Standard-Ansprechpartner
Weitere Empfänger
- An Vertreter senden: E-Mail an zugewiesenen Vertriebsmitarbeiter
- Statische Empfänger: Feste E-Mail-Adressen (kommagetrennt)
- Statische Empfänger BCC: Feste BCC-Empfänger
- Zusatzempfänger aus Personenkonto: E-Mail-Adressen aus benutzerdefinierten Feldern
Beispiel: Klassische Konfiguration
✓ An Kundenkontakt senden
✓ Rückfallempfänger Standardansprechpartner
✓ An Vertreter senden
Statische Empfänger BCC: [email protected]
Ergebnis:
- Primär: Kundenkontakt-E-Mail
- Fallback: Standard-Ansprechpartner
- Zusätzlich: Vertriebsmitarbeiter als normale Empfänger
- Immer: [email protected] als BCC
Erweiterte Empfängerregeln
Aktivierung
- Einstellung:
Erweiterte Empfängerregeln verwenden = Aktiviert - Effekt: Klassische Boolean-Flags werden ignoriert, nur Regeln werden verwendet
- Fallback: Bei leeren Regeln wird das klassische System verwendet
- Attachment-Validierung: Alle Attachment-Validierungsregeln (SkipIfArchiveFormAttatchmentIsMissing, SkipIfVoucherArchiveFormAttatchmentIsMissing, OnlyWithAttachments) funktionieren identisch mit dem klassischen System
Regelkonfiguration
Grundparameter
- Aktiv: Regel ein-/ausschalten
- Hauptpriorität: Prioritätsgruppen (10=Primär, 15=Zusätzlich, 20=Sekundär, etc.)
- Verarbeitungsreihenfolge: Feinabstimmung innerhalb derselben Hauptpriorität
- Verarbeitung bei Treffer stoppen: Stoppt die Regelverarbeitung bei einem Treffer
- Regeltyp: Art der Empfängerquelle
- Zustellungsart: To/CC/BCC
- Separate E-Mails pro Empfänger: Individuelle vs. gruppierte E-Mails
Regeltypen
CustomerContact (Kundenkontakt)
- Quelle: Zugewiesener Ansprechpartner des Kunden
- Fallback: Automatisch zum nächsten verfügbaren Kontakt
- Beispiel: Hauptansprechpartner für Rechnungen
Customer (Kunde)
- Quelle: Primäre E-Mail-Adresse der Firma
- Verwendung: Fallback wenn kein Ansprechpartner verfügbar
- Beispiel: [email protected]
InvoiceEmail (Rechnungs-E-Mail)
- Quelle: Spezielle E-Mail-Adresse für Rechnungsempfang
- Verwendung: Oft in bedingter Logik als Hauptempfänger
- Beispiel: [email protected]
SalesRepresentative (Vertriebsmitarbeiter)
- Quelle: Zugewiesener Vertriebsmitarbeiter
- Verwendung: Meist als CC für Information
- Beispiel: [email protected]
StaticRecipients (Statische Empfänger)
- Quelle: Fest konfigurierte E-Mail-Adressen
- Format: Kommagetrennte Liste
- Beispiel: “[email protected],[email protected]”
CustomFieldRecipients (Benutzerdefinierte Felder)
- Quelle: Beliebiges Feld im Kundenstamm
- Konfiguration: Feldname in
Benutzerdefiniertes Feld - Beispiel: Feld “NotfallKontakt” → “[email protected]”
Individuelle vs. Gruppierte E-Mail-Zustellung
Das erweiterte System bietet Kontrolle darüber, ob Empfänger einzelne personalisierte E-Mails oder eine gruppierte E-Mail erhalten.
Separate E-Mails pro Empfänger
Zweck: Steuert die Art der E-Mail-Zustellung pro Regel
Aktiviert: Jeder Empfänger erhält eine separate E-Mail - ✅ Personalisierte ##Empfaenger##-Anrede für jeden Empfänger - ✅ Individuelle Betreffzeile und Inhalte möglich - ✅ Datenschutz: Empfänger sehen sich gegenseitig nicht - ⚠️ Mehr E-Mails versendet
Deaktiviert: Alle Empfänger der Regel in einer
E-Mail - ✅ Weniger E-Mails versendet
- ✅ Effizientere Verarbeitung - ⚠️ Allgemeine ##Empfaenger##-Anrede
(“Sehr geehrte Damen und Herren”) - ⚠️ Empfänger können sich gegenseitig
sehen (je nach Zustellungsart)
Empfohlene Verwendung
- Aktiviert: CustomerContact, Customer, FallbackContact (personalisierte Kommunikation)
- Deaktiviert: SalesRepresentative als CC, interne Teams
- Aktiviert: StaticRecipients wenn externe Partner/Kunden
- Deaktiviert: StaticRecipients wenn interne Verteiler
Bedingte Zustellungslogik
Funktionsweise
Regeln können ihre Zustellungsart dynamisch ändern basierend auf anderen gefundenen Empfängern:
- Bedingung: Empfängertyp vorhanden: Welcher Regeltyp geprüft wird
- Alternative Zustellungsart: Zustellungsart wenn Bedingung erfüllt ist
Beispiel: InvoiceEmail-Priorität
Regel 1: InvoiceEmail, Priorität 1, To
Regel 2: CustomerContact, Priorität 1, To
Bedingung: InvoiceEmail vorhanden → CC
Ergebnis wenn InvoiceEmail existiert:
- InvoiceEmail: To (Hauptempfänger)
- CustomerContact: CC (Information)
Ergebnis wenn InvoiceEmail NICHT existiert:
- CustomerContact: To (Hauptempfänger)
Praktische Regel-Beispiele
Beispiel 1: Standardkonfiguration mit Hierarchie
Regel 1: CustomerContact, Hauptpriorität 10, Verarbeitungsreihenfolge 100, To
Regel 2: Customer, Hauptpriorität 20, Verarbeitungsreihenfolge 100, To
Regel 3: StaticRecipients ("[email protected]"), Hauptpriorität 30, Verarbeitungsreihenfolge 100, To
Verarbeitung:
1. Hauptpriorität 10: Versuche Kundenkontakt
2. Falls gefunden: Fertig
3. Falls nicht: Hauptpriorität 20: Versuche Kunde
4. Falls nicht: Hauptpriorität 30: [email protected]
Beispiel 2: Compliance mit verschiedenen Prioritäten
Regel 1: CustomerContact, Hauptpriorität 10, Verarbeitungsreihenfolge 100, To
Regel 2: SalesRepresentative, Hauptpriorität 10, Verarbeitungsreihenfolge 200, CC
Regel 3: StaticRecipients ("[email protected]"), Hauptpriorität 10, Verarbeitungsreihenfolge 300, BCC
Ergebnis (alle Hauptpriorität 10 werden verarbeitet):
- Kunde erhält E-Mail als Hauptempfänger
- Vertrieb erhält Kopie (falls Kundenkontakt gefunden)
- Compliance erhält Blindkopie (falls Kundenkontakt gefunden)
Anhänge und Vorlagen
E-Mail-Vorlage
- Rich-Text-Editor: Formatierte E-Mail-Inhalte
- Platzhalter: Dynamische Inhalte aus Workflow-Daten
- Textbaustein-Überschreibung: Alternative Textbausteinnummer
Anhangskonfiguration
Grundoptionen
- Anhänge einschließen: Aktiviert Anhangsfunktionalität
- Nur mit Anhängen: E-Mail wird nur gesendet wenn Anhänge vorhanden
- Überspringe bei fehlendem Archivformular-Anhang: Stoppt E-Mail-Versand wenn spezifische Archivformular-Anhänge fehlen
- Überspringe bei fehlendem Beleg-Anhang: Stoppt E-Mail-Versand wenn Beleg-Anhänge fehlen
Attachment-Validierung und Skip-Logik
Das System bietet erweiterte Validierungsoptionen, die den E-Mail-Versand stoppen können:
SkipIfArchiveFormAttatchmentIsMissing
- Zweck: Verhindert E-Mail-Versand wenn erforderliche Archivformular-Anhänge fehlen
- Funktionsweise: Prüft die
FilterArchiveFormIdsund stoppt den Versand wenn keine Uploads mit den entsprechenden Formulartypen vorhanden sind - Anwendungsfall: Sicherstellung dass wichtige Dokumente (z.B. Rechnungen, Verträge) vor dem E-Mail-Versand vorhanden sind
SkipIfVoucherArchiveFormAttatchmentIsMissing
- Zweck: Verhindert E-Mail-Versand wenn Beleg-Anhänge fehlen
- Funktionsweise: Prüft ob Anhänge aus dem verknüpften Beleg geladen werden konnten
- Anwendungsfall: Sicherstellung dass Belege (Rechnungen, Lieferscheine) vor dem Versand vollständig sind
OnlyWithAttachments
- Zweck: Verhindert E-Mail-Versand wenn überhaupt keine Anhänge vorhanden sind
- Funktionsweise: Prüft die Gesamtzahl aller Anhänge (Uploads + Beleg-Anhänge + Auto-Archiv)
- Anwendungsfall: E-Mails die ausschließlich zur Übermittlung von Dokumenten dienen
Workflow-Filter
Zeitbasierte Filter
Zeitraum-Filter (Since)
- Aktiv:
Workflowabruf innerhalb Zeitraum aktiv - Zeitraum:
Abrufen von Workflows seit - Beispiel: Nur Workflows der letzten 24 Stunden
- Format: TimeSpan (z.B. “1.00:00:00” für 1 Tag)
Datum-Filter (After)
- Aktiv:
Workflowabruf ab Datum aktiv - Datum:
Workflowabruf ab Datum - Beispiel: Alle Workflows seit 01.01.2024
- Format: DateTime
Best Practices
Regeldesign
- Hauptpriorität logisch strukturieren:
- 10 = Primäre Empfänger
- 15 = Zusätzliche/parallele Empfänger
- 20 = Fallback-Empfänger
- 30+ = Ultimate Fallback
- Verarbeitungsreihenfolge sinnvoll nutzen: Innerhalb jeder Hauptpriorität logische Reihenfolge
- Verarbeitung bei Treffer stoppen sparsam einsetzen: Nur bei exklusiven Empfängern
- Bedingte Logik gezielt nutzen: Nur wenn wirklich benötigt
- Klare Bemerkungen: Jede Regel mit Hauptpriorität und Zweck dokumentieren
- Separate E-Mails gezielt nutzen: Nur für personalisierte Inhalte
Wartung
- Regelmäßige Überprüfung: Mail-Journal auf Fehler prüfen
- Empfängerdaten aktuell halten: Kundenstamm-Pflege
- SMTP-Konten überwachen: Verbindungen und Authentifizierung
- Test-E-Mails: Regelmäßige Funktionstests
Downloads
ℹ️ Download dieser Dokumentation als pdf - Blazor Server (Win x64) - Worker Service (Win x64) - MesoWorker.Win (Desktop, Win x64) - SHA256SUMS
Support und Kontakt
Bei Fragen oder Problemen wenden Sie sich an das CSS EDV Support Team: - E-Mail: [email protected] - Verbesserungsvorschläge: [email protected]
CSS EDV Support GmbH
Ihr Partner für professionelle EDV-Lösungen
Website: https://css-edv-support.de
Dokumentation erstellt von CSS EDV Support Tobias Forbrich e.K. -
Oktober 2025
Version: 2.0
Erstellt: 2024
Aktualisiert: Oktober 2025