Parameter
Die OAuth-Authentifizierung kann in den systemweiten Einstellungen unter E-Mail aktiviert werden.
1. Grundeinstellungen (immer erforderlich)
SMTP-Server Bereich
Feld | Beschreibung | Beispiel |
SMTP-Server | Der Hostname des Mailservers |
|
Port | Der SMTP-Port |
|
Benutzername | Die E-Mail-Adresse des Absenders | |
Passwort | Nur bei Basic Auth (ohne OAuth) | (wird nicht empfohlen) |
Verschlüsselte Verbindung | Aktivieren für sichere Übertragung | ✓ Immer aktivieren |
Message-ID Header erzeugen | Automatische Message-ID-Generierung | ✓ Optional |
Standard CC Adresse | Standard-CC-Empfänger für alle E-Mails | Optional |
OAuth Authentifizierung | Moderne, sichere Authentifizierung | ✓ Empfohlen |
2. OAuth-Konfiguration
2.1 Verfahren: Auswahl zwischen Graph API und Standard SMTP
MS Graph API (empfohlen für Cloud)
Vorteile:
Kein SMTP-Server erforderlich
Moderne REST-API
Bessere Integration mit Microsoft 365
Unterstützt erweiterte Funktionen (z.B. Shared Mailboxes)
Nachteile:
Nur für Microsoft 365 / Exchange Online
Nicht für On-Premises Exchange Server
Erforderliche Felder:
SMTP-Server: wird ignoriert
Port: wird ignoriert
Benutzername: Erforderlich (E-Mail-Adresse)
Scopes:
https://graph.microsoft.com/Mail.Send,https://graph.microsoft.com/User.Read
#Standard SMTP
Vorteile:
Standard SMTP-Protokoll
Funktioniert mit Exchange On-Premises und Exchange Online
Kompatibel mit anderen SMTP-Servern
Nachteile:
SMTP-Server muss erreichbar sein
Zusätzliche Netzwerkkonfiguration erforderlich
Erforderliche Felder:
SMTP-Server: Erforderlich (z.B.
smtp.office365.com)Port: Erforderlich (z.B.
587)Benutzername: Erforderlich
Scopes:
https://outlook.office365.com/SMTP.Send,https://outlook.office365.com/User.Read
2.2 Authentifizierung: Auswahl der OAuth-Methode
A) Client Credentials (App-Only)
Wann verwenden:
Automatisierte Batch-Jobs ohne Benutzerinteraktion
Geplante Aufgaben (z.B. nächtlicher Rechnungsversand)
Service-Accounts ohne angemeldeten Benutzer
KEINE Multi-Faktor-Authentifizierung (MFA) erforderlich
Erforderliche Felder:
Feld | Erforderlich | Beschreibung |
Tenant ID | ✓ Ja | Die Azure AD Tenant ID (GUID) |
Client ID | ✓ Ja | Die Application (Client) ID aus Azure AD |
Client Secret | ✓ Ja | Das Client Secret aus der App-Registrierung |
Scopes | ✓ Ja |
|
Authority | Optional | Standard: |
Redirect Url | Nein | nicht verwendet |
Azure AD Konfiguration:
App-Registrierung erstellen:
Portal: https://portal.azure.com → "Azure Active Directory" → "App-Registrierungen"
"Neue Registrierung" → Namen vergeben
"Nur Konten in diesem Organisationsverzeichnis" auswählen
Client Secret erstellen:
In der App: "Zertifikate & Geheimnisse" → "Neuer geheimer Clientschlüssel"
Beschreibung eingeben → Ablaufdatum wählen → "Hinzufügen"
Wert sofort kopieren (wird nur einmal angezeigt!)
API-Berechtigungen hinzufügen:
"API-Berechtigungen" → "Berechtigung hinzufügen"
"Microsoft Graph" → "Anwendungsberechtigungen"
Berechtigungen auswählen:
Mail.Send(E-Mails im Namen der App senden)
"Administratoreinwilligung erteilen" (erforderlich!)
Exchange Online Konfiguration:
Da App-Only-Berechtigungen, muss ein Service-Principal in Exchange angelegt werden:
# Exchange Online PowerShell verbinden Connect-ExchangeOnline # Service Principal für bestimmtes Postfach autorisieren New-ServicePrincipal -AppId "<Client ID>" -ServiceId "<Object ID der App>" Add-MailboxPermission -Identity "[email protected]" -User "<Client ID>" -AccessRights SendAs
Einschränkungen:
❌ Keine MFA-Unterstützung
❌ Benutzer muss nicht angemeldet sein
⚠ Höhere Sicherheitsanforderungen (Client Secret muss geschützt werden)
B) Device Code Flow (empfohlen für MFA)
Wann verwenden:
Benutzer hat Multi-Faktor-Authentifizierung (MFA) aktiviert
Anwendung ohne eingebauten Browser
Terminalserver / Citrix-Umgebungen
Remote-Desktop-Sitzungen
Der Benutzer soll sich auf einem anderen Gerät authentifizieren können
Erforderliche Felder:
Feld | Erforderlich | Beschreibung |
Tenant ID | ✓ Ja | Die Azure AD Tenant ID (GUID) |
Client ID | ✓ Ja | Die Application (Client) ID aus Azure AD |
Client Secret | Nein | nicht verwendet |
Scopes | ✓ Ja | Graph: |
Authority | Optional | Standard: |
Redirect Url | Nein | nicht verwendet |
Azure AD Konfiguration:
App-Registrierung erstellen (wie bei Client Credentials)
Öffentlichen Client aktivieren:
"Authentifizierung" → "Erweiterte Einstellungen"
"Öffentliche Clientflows zulassen" → JA
API-Berechtigungen hinzufügen:
"API-Berechtigungen" → "Berechtigung hinzufügen"
"Microsoft Graph" → "Delegierte Berechtigungen"
Berechtigungen auswählen:
Mail.Send(E-Mails im Namen des Benutzers senden)User.Read(Benutzerprofil lesen)
ODER für Standard SMTP:
"APIs, die meine Organisation verwendet" → "Office 365 Exchange Online"
SMTP.Send
Keine Administratoreinwilligung erforderlich (Benutzer stimmt selbst zu)
Ablauf beim Senden:
Anwendung zeigt einen Code und eine URL an (z.B. https://microsoft.com/devicelogin)
Benutzer öffnet die URL auf einem beliebigen Gerät (PC, Smartphone, Tablet)
Code eingeben → Mit Microsoft-Konto anmelden
MFA durchführen (SMS, Authenticator App, etc.)
Zustimmung erteilen → Anwendung kann E-Mails senden
Token wird für zukünftige Nutzung gespeichert (kein erneuter Login erforderlich)
Vorteile:
✓ Volle MFA-Unterstützung
✓ Benutzerfreundlich bei fehlender Browserintegration
✓ Funktioniert auf Terminalservern
✓ Token-Caching (kein wiederholter Login)
C) Interaktiv (MFA)
Wann verwenden:
Benutzer hat Multi-Faktor-Authentifizierung (MFA) aktiviert
Desktop-Anwendung mit Browserintegration
Beste Benutzererfahrung gewünscht
Interaktive Umgebung (kein automatisierter Batch-Job)
Erforderliche Felder:
Feld | Erforderlich | Beschreibung |
Tenant ID | ✓ Ja | Die Azure AD Tenant ID (GUID) |
Client ID | ✓ Ja | Die Application (Client) ID aus Azure AD |
Client Secret | Nein | nicht verwendet |
Scopes | ✓ Ja | Graph: |
Authority | Optional | Standard: |
Redirect Url | ✓ Ja | Standard: |
Azure AD Konfiguration:
App-Registrierung erstellen (wie bei Device Code Flow)
Öffentlichen Client aktivieren:
"Authentifizierung" → "Erweiterte Einstellungen"
"Öffentliche Clientflows zulassen" → JA
Redirect URI konfigurieren:
"Authentifizierung" → "Plattformkonfigurationen hinzufügen"
"Mobile und Desktopanwendungen" auswählen
Redirect URI hinzufügen:
http://localhostODEREmpfohlen:
https://login.microsoftonline.com/common/oauth2/nativeclient
API-Berechtigungen hinzufügen: (wie bei Device Code Flow)
"API-Berechtigungen" → "Microsoft Graph" → "Delegierte Berechtigungen"
Mail.Send,User.Read
Ablauf beim Senden:
Anwendung öffnet automatisch einen Browser (eingebettet oder extern)
Benutzer meldet sich mit Microsoft-Konto an
MFA durchführen (falls aktiviert)
Zustimmung erteilen → Browser schließt sich automatisch
Anwendung erhält Token und kann E-Mails senden
Token wird für zukünftige Nutzung gespeichert
Vorteile:
✓ Volle MFA-Unterstützung
✓ Beste Benutzererfahrung (automatischer Browser-Login)
✓ Single Sign-On möglich
✓ Token-Caching
Einschränkungen:
⚠ Erfordert Browser-Zugriff
⚠ Funktioniert nicht in Batch-Jobs / geplanten Aufgaben
3. Schritt-für-Schritt Anleitungen
3.1 Szenario: Automatischer Rechnungsversand (ohne MFA)
Empfohlene Konfiguration:
Verfahren: MS Graph API
Authentifizierung: Client Credentials
Konfiguration:
✓ OAuth Authentifizierung aktivieren
Verfahren: MS Graph API
Authentifizierung: Client Credentials
Tenant ID eingeben (aus Azure Portal kopieren)
Client ID eingeben (aus App-Registrierung)
Client Secret eingeben (aus App-Registrierung)
Scopes:
https://graph.microsoft.com/.defaultBenutzername: E-Mail-Adresse des Absenders
Azure AD Schritte:
App-Registrierung mit Anwendungsberechtigungen (
Mail.Send)Administratoreinwilligung erteilen
Exchange Online Service Principal konfigurieren
3.2 Szenario: Benutzer mit MFA (Desktop-Anwendung)
Empfohlene Konfiguration:
Verfahren: MS Graph API
Authentifizierung: Interaktiv (MFA)
Konfiguration:
✓ OAuth Authentifizierung aktivieren
Verfahren: MS Graph API
Authentifizierung: Interaktiv (MFA)
Tenant ID eingeben
Client ID eingeben
Scopes:
https://graph.microsoft.com/Mail.Send,https://graph.microsoft.com/User.ReadRedirect Url:
http://localhostBenutzername: E-Mail-Adresse des Benutzers
Azure AD Schritte:
App-Registrierung mit delegierten Berechtigungen
Öffentliche Clientflows aktivieren
Redirect URI konfigurieren (
http://localhost)
Beim ersten E-Mail-Versand:
Browser öffnet sich automatisch
Benutzer meldet sich an und führt MFA durch
Token wird gespeichert (kein erneuter Login erforderlich)
3.3 Szenario: Terminalserver / Citrix mit MFA
Empfohlene Konfiguration:
Verfahren: MS Graph API
Authentifizierung: Device Code
Konfiguration:
✓ OAuth Authentifizierung aktivieren
Verfahren: MS Graph API
Authentifizierung: Device Code
Tenant ID eingeben
Client ID eingeben
Scopes:
https://graph.microsoft.com/Mail.Send,https://graph.microsoft.com/User.ReadBenutzername: E-Mail-Adresse des Benutzers
Azure AD Schritte:
App-Registrierung mit delegierten Berechtigungen
Öffentliche Clientflows aktivieren
Beim ersten E-Mail-Versand:
Anwendung zeigt Code und URL an (z.B.
https://microsoft.com/devicelogin)Benutzer öffnet URL auf Smartphone oder anderem Gerät
Code eingeben → Anmelden mit MFA
Token wird gespeichert
3.4 Szenario: Exchange On-Premises mit OAuth
Empfohlene Konfiguration:
Verfahren: Standard SMTP
Authentifizierung: Device Code oder Interaktiv (MFA)
Konfiguration:
✓ OAuth Authentifizierung aktivieren
Verfahren: Standard SMTP
Authentifizierung: Device Code oder Interaktiv (MFA)
SMTP-Server:
mail.firma.local(On-Premises Server)Port:
587Tenant ID eingeben
Client ID eingeben
Scopes:
https://outlook.office365.com/SMTP.SendBenutzername: E-Mail-Adresse
Wichtig: On-Premises Exchange Server muss OAuth2 unterstützen (Exchange 2019+ mit Hybrid-Konfiguration)
4. Felder-Referenz
Tenant ID
Wo finden: Azure Portal → "Azure Active Directory" → "Übersicht" → "Mandanten-ID"
Format: GUID (z.B.
f71c2e5d-XXXX-XXXX-XXXX-51ed6de7e531)Erforderlich für: Alle OAuth-Methoden
Client ID
Wo finden: Azure Portal → "App-Registrierungen" → Ihre App → "Übersicht" → "Anwendungs-ID (Client)"
Format: GUID (z.B.
fa0c330b-XXXX-XXXX-XXXX-a246841b23a4)Erforderlich für: Alle OAuth-Methoden
Client Secret
Wo erstellen: Azure Portal → Ihre App → "Zertifikate & Geheimnisse" → "Neuer geheimer Clientschlüssel"
Wichtig: Wert sofort kopieren (wird nur einmal angezeigt!)
Ablaufdatum: Maximal 24 Monate (muss dann erneuert werden)
Erforderlich für: Nur Client Credentials
Scopes
Graph API Mail senden:
Anwendungsberechtigungen:
https://graph.microsoft.com/.defaultDelegierte Berechtigungen:
https://graph.microsoft.com/Mail.Send,https://graph.microsoft.com/User.Read
Standard SMTP:
Delegierte Berechtigungen:
https://outlook.office365.com/SMTP.Send,https://outlook.office365.com/User.Read
Mehrere Scopes: Mit Komma trennen
Authority
Standard:
https://login.microsoftonline.com/Multi-Tenant:
https://login.microsoftonline.com/commonNur Organisationen:
https://login.microsoftonline.com/organizationsIn 99% der Fälle: Standard-Wert beibehalten
Redirect Url
Standard:
http://localhostAlternativ:
https://login.microsoftonline.com/common/oauth2/nativeclientWichtig: Muss exakt mit Azure AD Konfiguration übereinstimmen
Erforderlich für: Nur Interactive Flow
5. Häufige Fehler und Lösungen
"AADSTS700016: Application not found in directory"
Ursache: Client ID ist falsch oder App wurde gelöscht
Lösung: Client ID aus Azure Portal überprüfen
"AADSTS65001: The user or administrator has not consented"
Ursache: Berechtigungen wurden nicht erteilt
Lösung:
Bei Client Credentials: Administratoreinwilligung erteilen
Bei delegierten Berechtigungen: Benutzer muss zustimmen (passiert automatisch beim ersten Login)
"AADSTS50076: Application password required"
Ursache: MFA ist aktiviert, aber Client Credentials Flow wird verwendet
Lösung: Wechsel zu Device Code oder Interactive Flow
"Fehler beim Senden der E-Mail über Graph API. Status: Forbidden"
Ursache: App hat keine Berechtigung für das Postfach
Lösung:
Exchange Online Berechtigungen prüfen
Bei Client Credentials: Service Principal konfigurieren
Bei delegierten Berechtigungen: Benutzer muss Postfachbesitzer sein
"AADSTS7000218: The request body must contain the following parameter: 'client_assertion'"
Ursache: Client Secret fehlt bei Client Credentials Flow
Lösung: Client Secret korrekt eingeben
#Token läuft ab / "AADSTS70011: The provided value for the input parameter 'scope' is not valid"
Ursache: Falsche Scopes für gewähltes Verfahren
Lösung:
Graph API:
https://graph.microsoft.com/...Standard SMTP:
https://outlook.office365.com/...
6. Sicherheitshinweise
Client Secret Schutz
⚠ Client Secret niemals in Quellcode speichern
✓ Verwenden Sie sichere Konfigurationsdateien mit eingeschränkten Berechtigungen
✓ Regelmäßig erneuern (vor Ablauf)
✓ Bei Kompromittierung sofort in Azure AD widerrufen und neu erstellen
Token-Caching
✓ Tokens werden verschlüsselt gespeichert (Windows DPAPI)
✓ Speicherort:
%LocalAppData%\eurosoft\esMail\TokenCache.bin✓ Pro Benutzerkonto isoliert
ℹ Bei Device Code / Interactive Flow: Token ist ~1 Stunde gültig, Refresh Token bis zu 90 Tage
MFA Empfehlung
✓ Aktivieren Sie MFA für alle Benutzerkonten
✓ Verwenden Sie Device Code oder Interactive Flow statt Client Credentials
✓ Nur für automatisierte Dienste: Client Credentials mit besonders geschütztem Client Secret
7. Checkliste für die Einrichtung
Vor der Konfiguration
Azure AD Tenant ID notiert
Entscheidung: Graph API oder Standard SMTP?
Entscheidung: Welcher OAuth Flow? (MFA vorhanden?)
E-Mail-Adresse des Absenders bekannt
Azure AD App-Registrierung
App-Registrierung erstellt
Client ID notiert
Nur für Client Credentials:
Client Secret erstellt und sofort kopiert
Anwendungsberechtigungen (
Mail.Send) hinzugefügtAdministratoreinwilligung erteilt
Exchange Online Service Principal konfiguriert
Nur für Device Code / Interactive:
Öffentliche Clientflows aktiviert
Delegierte Berechtigungen (
Mail.Send) hinzugefügtNur für Interactive: Redirect URI konfiguriert
In der Anwendung
OAuth Authentifizierung aktiviert
Verfahren gewählt (Graph API / Standard SMTP)
Authentifizierung gewählt (Client Credentials / Device Code / Interactive)
Tenant ID eingegeben
Client ID eingegeben
Client Secret eingegeben (nur Client Credentials)
Scopes korrekt eingegeben (passend zu Verfahren)
Redirect Url eingegeben (nur Interactive)
Benutzername (E-Mail-Adresse) eingegeben
Test
Test-E-Mail versendet
Bei Device Code / Interactive: Login erfolgreich durchgeführt
E-Mail wurde erfolgreich zugestellt
8. Support und weitere Informationen
Microsoft Dokumentation
Azure AD App-Registrierung: https://docs.microsoft.com/azure/active-directory/develop/quickstart-register-app
Microsoft Graph API: https://docs.microsoft.com/graph/overview
Bei Problemen
Azure Portal → "App-Registrierungen" → Ihre App → "Anmeldeprotokolle" (zeigt Fehler bei der Authentifizierung)
Überprüfen Sie die Berechtigungen: "API-Berechtigungen" → Status muss "Erteilt" sein
Bei Exchange-Fehlern: Exchange Online Admin Center → "Postfächer" → Berechtigungen prüfen
