MailAgent
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.
Download
Neueste Version herunterladenGitHub RepositoryVerarbeitungsmodi
Die Auswertung der E-Mails ist in folgenden Modi möglich:
| Modus | Beschreibung |
|---|---|
ConnectEncrypted | PGP-verschlüsselte Klartextmails mit direkter Auswertung nach Connect |
ConnectPlain | Unverschlüsselte Klartext-E-Mails mit direkter Verarbeitung nach Connect |
ConnectPlainHtml | Unverschlüsselte HTML-Mails mit direkter Verarbeitung nach Connect |
ConnectEncryptedHtml | PGP-verschlüsselte HTML-Mails mit direkter Verarbeitung nach Connect |
ConnectPgpAttachment | PGP-verschlüsselte Anhänge von Klartext-E-Mails mit direkter Auswertung nach Connect |
Pdf | PGP-verschlüsselte E-Mails mit PDF-Anhang ohne Klartext (Ausgabe als Datei) |
Text | PGP-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.
- Download unter gnupg.org/download
- Installieren Sie GPG4Win (Standard-Installationsverzeichnis:
C:\Program Files (x86)\GnuPG\bin) - Öffnen Sie Kleopatra (im Toolset enthalten)
- Importieren Sie den öffentlichen und privaten Schlüssel
- Stellen Sie eine Vertrauensstellung für die Schlüssel her
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
EMailUsernamekonfiguriert 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"
}
]
| Einstellung | Beschreibung |
|---|---|
Name | Name des Standorts (zur besseren Zuordnung) |
ApiKey | Schlüssel für die öffentliche Connect-Schnittstelle |
EMailHost | Hostname des Mailservers (z.B. imap.strato.de oder exchange.meinedomain.de) |
EMailPort | Port des Mailservers (IMAP: 993, Exchange: 443) |
EMailUsername | Benutzername (bei Exchange: xy@meinedomain.de) |
EMailPassword | Passwort (nur bei Basic Authentifizierung) |
EMailSubjectFilter | Text, der im Betreff vorhanden sein muss |
EMailSenderFilter | Text, der im Absender vorhanden sein muss |
AuthenticationType | Basic oder O365 |
Allgemeine Einstellungen
| Einstellung | Beschreibung |
|---|---|
EMailPollingIntervalSeconds | Abrufintervall in Sekunden (Standard: 5) |
EMailMode | Imap oder Exchange |
ProcessMode | Verarbeitungsmodus (siehe oben) |
PGPGnuPGPath | Pfad zu GnuPG (nur bei PGP) |
SecretKeyPassphrase | Passphrase des Private-Keys (nur bei PGP) |
OutputPath | Ausgabepfad (nur bei Text/PDF-Prozessor) |
IgnoreCertificateErrors | true um Zertifikatsfehler zu ignorieren |
HeartbeatInterval | Intervall für Heartbeats (z.B. an UptimeRobot) |
HeartbeatUrl | HTTP-GET Endpunkt für Heartbeats |
O365ClientId | Client-ID für O365 OAuth2 (optional) |
DisableEmailAgeThreshold | Deaktiviert 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:([^;]*);"
}
]
}
| Pattern | Extrahiert |
|---|---|
NumberPattern | Einsatznummer |
KeywordPattern | Einsatzstichwort |
FactsPattern | Sachverhalt |
StreetPattern | Straße |
HouseNumberPattern | Hausnummer |
CityPattern | Stadt/Gemeinde |
DistrictPattern | Stadt-/Ortsteil |
ZipCodePattern | Postleitzahl |
RicPattern | Schleifen (RIC) |
ReporterNamePattern | Name des Meldenden |
ReporterPhonePattern | Telefonnummer des Meldenden |
LatitudePattern | Breitengrad |
LongitudePattern | Längengrad |
Unter AdditionalProperties können beliebig viele Zusatzinformationen angegeben werden.
- regex101.com - Testen und Entwickeln
- MDN RegEx Cheatsheet - Allgemeine Informationen
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
- Führen Sie die Batchdatei
install.bataus - 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:
