FeuerSoftware
Tools

MailAgent

Automatisierte E-Mail-Verarbeitung für Alarmierungen mit Connect-Integration

Der MailAgent ist eine Konsolenanwendung zur Auswertung von E-Mails für die Alarmierung. Es können beliebig viele Postfächer ausgewertet werden. Unterstützt werden IMAP und Microsoft Exchange. Pro Postfach kann ein Standort (API-Key) zugeordnet werden.

Aufgrund von Abhängigkeiten von Drittanbietern läuft der MailAgent aktuell nur auf Windows.

Download

Neueste Version herunterladenGitHub Repository

Verarbeitungsmodi

Die Auswertung der E-Mails ist in folgenden Modi möglich:

ModusBeschreibung
ConnectEncryptedPGP-verschlüsselte Klartextmails mit direkter Auswertung nach Connect
ConnectPlainUnverschlüsselte Klartext-E-Mails mit direkter Verarbeitung nach Connect
ConnectPlainHtmlUnverschlüsselte HTML-Mails mit direkter Verarbeitung nach Connect
ConnectEncryptedHtmlPGP-verschlüsselte HTML-Mails mit direkter Verarbeitung nach Connect
ConnectPgpAttachmentPGP-verschlüsselte Anhänge von Klartext-E-Mails mit direkter Auswertung nach Connect
PdfPGP-verschlüsselte E-Mails mit PDF-Anhang ohne Klartext (Ausgabe als Datei)
TextPGP-verschlüsselte E-Mails mit Klartext mit Ausgabe einer Textdatei

Die direkte Auswertung nach Connect erfolgt mit regulären Ausdrücken (RegEx). Falls dieser Modus verwendet wird, muss auch der Abschnitt ConnectPatternOptions gepflegt werden.

Einrichtung

Voraussetzungen

Vor der Inbetriebnahme des MailAgents muss das Tool GnuPG for Windows (GPG4Win) installiert werden, wenn PGP-verschlüsselte Mails verarbeitet werden sollen.

  1. Download unter gnupg.org/download
  2. Installieren Sie GPG4Win (Standard-Installationsverzeichnis: C:\Program Files (x86)\GnuPG\bin)
  3. Öffnen Sie Kleopatra (im Toolset enthalten)
  4. Importieren Sie den öffentlichen und privaten Schlüssel
  5. Stellen Sie eine Vertrauensstellung für die Schlüssel her
Um Fehler zu vermeiden, empfiehlt es sich, beim privaten Schlüssel das Passwort zu entfernen, sollte eines gesetzt sein.

Authentifizierung

Der MailAgent unterstützt zwei Authentifizierungsmethoden:

Basic Authentication

Klassische Authentifizierung mit Benutzername und Passwort. Diese Methode funktioniert mit IMAP und Exchange (EWS).

O365 Modern Authentication

OAuth2-basierte Authentifizierung für Office 365 Postfächer. Diese Methode ist besonders empfohlen für O365-Umgebungen, da Microsoft die Basic Authentication schrittweise deaktiviert.

  • Beim ersten Start wird für jedes konfigurierte O365-Postfach eine interaktive Browser-Anmeldung durchgeführt
  • Die erhaltenen Tokens werden sicher verschlüsselt auf dem System gespeichert (Windows Data Protection API)
  • Bei nachfolgenden Starts werden die gespeicherten Tokens automatisch verwendet und bei Bedarf erneuert
  • Für O365-Authentifizierung muss nur der EMailUsername konfiguriert werden

Konfiguration

Die Konfiguration des MailAgents erfolgt in der appsettings.json-Datei im gleichen Verzeichnis.

Abschnitt MailAgentOptions

E-Mail-Einstellungen (EmailSettings)

Es können beliebig viele E-Mail-Accounts mit den zugehörigen Connect-Standorten hinterlegt werden:

"EmailSettings": [
  {
    "Name": "Standort 1",
    "ApiKey": "IhrConnectApiKey",
    "EMailHost": "imap.example.com",
    "EMailPort": 993,
    "EMailUsername": "alarm@example.com",
    "EMailPassword": "IhrPasswort",
    "EMailSubjectFilter": "ALARM",
    "EMailSenderFilter": "leitstelle@example.com",
    "AuthenticationType": "Basic"
  }
]
EinstellungBeschreibung
NameName des Standorts (zur besseren Zuordnung)
ApiKeySchlüssel für die öffentliche Connect-Schnittstelle
EMailHostHostname des Mailservers (z.B. imap.strato.de oder exchange.meinedomain.de)
EMailPortPort des Mailservers (IMAP: 993, Exchange: 443)
EMailUsernameBenutzername (bei Exchange: xy@meinedomain.de)
EMailPasswordPasswort (nur bei Basic Authentifizierung)
EMailSubjectFilterText, der im Betreff vorhanden sein muss
EMailSenderFilterText, der im Absender vorhanden sein muss
AuthenticationTypeBasic oder O365

Allgemeine Einstellungen

EinstellungBeschreibung
EMailPollingIntervalSecondsAbrufintervall in Sekunden (Standard: 5)
EMailModeImap oder Exchange
ProcessModeVerarbeitungsmodus (siehe oben)
PGPGnuPGPathPfad zu GnuPG (nur bei PGP)
SecretKeyPassphrasePassphrase des Private-Keys (nur bei PGP)
OutputPathAusgabepfad (nur bei Text/PDF-Prozessor)
IgnoreCertificateErrorstrue um Zertifikatsfehler zu ignorieren
HeartbeatIntervalIntervall für Heartbeats (z.B. an UptimeRobot)
HeartbeatUrlHTTP-GET Endpunkt für Heartbeats
O365ClientIdClient-ID für O365 OAuth2 (optional)
DisableEmailAgeThresholdDeaktiviert die 15-Minuten-Altersschwelle (nur für Tests!)

Abschnitt ConnectPatternOptions

Hier werden die regulären Ausdrücke für die Extraktion der Einsatzdaten konfiguriert. Für jedes Feld wird die erste Capture-Group verwendet.

"ConnectPatternOptions": {
  "NumberPattern": "",
  "KeywordPattern": "Alarmstichwort:[^;]*;[^;]*;([^;]*);",
  "FactsPattern": "Alarmstichwort:[^;]*;[^;]*;[^;]*;([^;]*);",
  "StreetPattern": "Adresse:([^;]*)",
  "HouseNumberPattern": "Adresse:[^;]*;([^;]*)",
  "CityPattern": "Einsatzort:([^;]*);",
  "DistrictPattern": "Einsatzort:[^;]*;([^;]*);",
  "ZipCodePattern": "",
  "RicPattern": "Alarmierte Einheiten:([^;]*)",
  "ReporterNamePattern": "",
  "ReporterPhonePattern": "",
  "LatitudePattern": "",
  "LongitudePattern": "",
  "AdditionalProperties": [
    {
      "Name": "Einsatzart",
      "Pattern": "Alarmstichwort:([^;]*);"
    }
  ]
}
PatternExtrahiert
NumberPatternEinsatznummer
KeywordPatternEinsatzstichwort
FactsPatternSachverhalt
StreetPatternStraße
HouseNumberPatternHausnummer
CityPatternStadt/Gemeinde
DistrictPatternStadt-/Ortsteil
ZipCodePatternPostleitzahl
RicPatternSchleifen (RIC)
ReporterNamePatternName des Meldenden
ReporterPhonePatternTelefonnummer des Meldenden
LatitudePatternBreitengrad
LongitudePatternLängengrad

Unter AdditionalProperties können beliebig viele Zusatzinformationen angegeben werden.

Tipp: Zum Entwickeln und Testen von regulären Ausdrücken:

Abschnitt Serilog

Konfiguration der Protokollierung:

"Serilog": {
  "MinimumLevel": "Information",
  "WriteTo": [
    {
      "Name": "File",
      "Args": {
        "path": "C:\\Logs\\MailAgent\\log.txt",
        "retainedFileCountLimit": 30
      }
    }
  ]
}

Gültige Log-Level: Debug, Information, Warning, Error, Critical

Inbetriebnahme

Als Windows-Dienst

  1. Führen Sie die Batchdatei install.bat aus
  2. Prüfen Sie in den Windows-Diensten, ob der automatische Start eingestellt ist

Als Anwendung

Starten Sie die MailAgent.exe direkt für manuellen Betrieb oder Tests.

Prozessoren im Detail

Text-Prozessor (PGP)

Der verschlüsselte text/plain Teil der Mail wird extrahiert und an GnuPG übergeben. Der entschlüsselte Text wird als Textdatei im konfigurierten Ausgabeverzeichnis abgelegt.

PDF-Prozessor (PGP)

Verarbeitet PGP-verschlüsselte E-Mails mit Base64-kodierten PDF-Anhängen. Die entschlüsselten und konvertierten Daten werden als PDF-Datei gespeichert. Danach erfolgt die Verarbeitung mit z.B. EM-OCR.

Connect-Prozessoren

Extrahieren den E-Mail-Inhalt und werten diesen mit den konfigurierten RegEx-Patterns aus. Die extrahierten Daten werden direkt an Connect übertragen.

Support

Bei Fragen oder Problemen:

Copyright © 2026