3.3 KiB
SMTPGraphRelay 1.8.0
V1.8 ergänzt zwei Betriebsfunktionen:
- Failed-Queue-Verwaltung im Setup-/Manager
- kooperativer Graceful Shutdown für Update, Repair und manuelles Stoppen über den Manager
Alle Funktionen aus V1.7 bleiben erhalten, insbesondere SMTP AUTH LOGIN/PLAIN, Queue-ID, Retry/Backpressure, Zertifikatsrotation, Health Check und Online-Update.
Installation
Windows PowerShell 5.1 als Administrator:
$u='https://me-gitea.maieredv.cloud/MAIEREDV/SMTPGraphRelay/raw/branch/main/Setup-SMTPGraphRelay.ps1';$f="$env:TEMP\Setup-SMTPGraphRelay.ps1";Invoke-WebRequest $u -UseBasicParsing -OutFile $f;& $f
Failed Queue verwalten
Im Manager:
[10] Failed Queue verwalten
Untermenü:
[1] Failed Queue anzeigen
[2] Details einer Mail anzeigen
[3] Eine Mail erneut zustellen
[4] Alle Mails erneut zustellen
[5] Eine Mail endgültig löschen
[6] Alle Failed-Mails endgültig löschen
[0] Zurück
Die Übersicht zeigt u. a.:
- Queue-ID
- Zeitpunkt
- RetryCount
- Envelope-From
- Empfänger
- letzten HTTP-/Graph-Status
- Größe
In den Details steht zusätzlich die letzte Fehlermeldung und – falls vorhanden – der SMTP-AUTH-Benutzer.
Requeue
Beim erneuten Zustellen wird die .eml samt Metadaten von failed nach
queue\pending verschoben.
Dabei werden:
RetryCount = 0
NextAttemptUtc = jetzt
RequeuedUtc = jetzt
gesetzt. Die alte Fehlerbeschreibung bleibt in den Metadaten erhalten, bis ein neuer Versandversuch sie aktualisiert.
Der laufende Queue-Worker nimmt die Mail anschließend automatisch wieder auf.
Graceful Shutdown
Update und Repair verwenden nicht mehr zuerst Stop-ScheduledTask.
Stattdessen erstellt der Manager:
C:\Program Files\SMTPGraphRelay\shutdown.request
Der Relay erkennt das Signal kurzfristig und führt diesen Ablauf aus:
Shutdown angefordert
|
v
SMTP-Listener schließen
|
+--> keine neuen Verbindungen mehr
|
v
laufende SMTP-Sessions auslaufen lassen
|
v
Queue-/Graph-Worker beendet aktuellen Versand
|
+--> startet keine weitere Queue-Mail
|
v
Runspaces schließen
|
v
Graph-Verbindung trennen
|
v
Relay beendet sich selbst
Standard-Timeout:
"Smtp": {
"GracefulShutdownSeconds": 30
}
Zulässiger Bereich:
5 bis 300 Sekunden
Wenn der Relay innerhalb dieses Zeitraums nicht selbst beendet ist, verwendet
der Manager als Fallback einen harten Stop-ScheduledTask.
Beim nächsten Start wird ein eventuell altes shutdown.request vorsorglich
entfernt.
Warum das für Updates wichtig ist
Ein Update/Repair kann damit nicht mehr unnötig mitten in:
- einer SMTP-DATA-Übertragung
- einer aktiven SMTP-Session
- oder einem laufenden Graph-sendMail-Aufruf
den Prozess beenden.
Wenn ein Client oder Graph länger als das konfigurierte Grace-Timeout hängt, wird nach Ablauf des Timeouts kontrolliert auf den bisherigen harten Stop zurückgefallen.
Manager
[1] Neuinstallation aus Gitea
[2] Installation aus Gitea reparieren
[3] Nach Online-Updates suchen
[4] Entra / Exchange RBAC prüfen
[5] Zertifikat erneuern
[6] Health Check ausführen
[7] Deinstallieren
[8] Status anzeigen
[9] SMTP-AUTH verwalten
[10] Failed Queue verwalten
[0] Beenden