Microsoft 365 SMTP mit OAuth 2 in Shopware 6 einrichten
Die Einrichtung verwendet die Anwendungsberechtigung SMTP.SendAsApp. Dadurch kann Shopware E-Mails über ein festgelegtes Microsoft-365-Postfach versenden, ohne Benutzername und Kennwort direkt für die SMTP-Authentifizierung zu verwenden.
Inhaltsverzeichnis
- Voraussetzungen
- Microsoft Entra ID-App erstellen
- SMTP-Berechtigung hinzufügen
- Client Secret erstellen
- Berechtigungen per PowerShell vergeben
- Microsoft 365 OAuth 2 in Shopware konfigurieren
- Hinweise und Fehlerbehebung
Voraussetzungen
Für die Einrichtung benötigen Sie:
- einen Microsoft-365-Mandanten mit Exchange Online,
- ein vorhandenes Exchange-Online-Postfach für den E-Mail-Versand,
- ausreichende Administratorrechte in Microsoft Entra ID und Exchange Online,
- PowerShell mit Zugriff auf die Microsoft-Module,
- eine Shopware-6-Installation mit Unterstützung für SMTP OAuth 2.
Schritt 1: Microsoft Entra ID-App erstellen
1. App-Registrierungen öffnen
- Öffnen Sie entra.microsoft.com.
- Wechseln Sie zu App-Registrierungen.
- Klicken Sie auf Neue Registrierung.
2. Neue Anwendung registrieren
- Vergeben Sie einen aussagekräftigen Namen, beispielsweise example.com SMTP OAuth 2.
- Wählen Sie unter Unterstützte Kontotypen die Option Nur Konten in diesem Organisationsverzeichnis.
- Klicken Sie auf Registrieren.
Merken Sie sich die Anwendungs-ID:
Nach der Registrierung wird die Übersichtsseite der neuen Entra-ID-Anwendung angezeigt. Die dort angeführte Anwendungs-ID (Client) wird später für die Konfiguration in Shopware benötigt.
SMTP-Berechtigung für Exchange Online hinzufügen
Damit Shopware über die registrierte Anwendung E-Mails versenden darf, muss die Exchange-Online-Berechtigung SMTP.SendAsApp hinzugefügt werden.
- Öffnen Sie in der Entra-ID-Anwendung den Bereich API-Berechtigungen.
- Klicken Sie auf Berechtigung hinzufügen.
- Wählen Sie Von meiner Organisation verwendete APIs.
- Suchen Sie nach Office 365 Exchange Online.
- Öffnen Sie den Eintrag für Office 365 Exchange Online.
- Wählen Sie Anwendungsberechtigungen.
- Suchen Sie nach SMTP.
- Aktivieren Sie die Berechtigung
SMTP.SendAsApp. - Klicken Sie auf Berechtigungen hinzufügen beziehungsweise Schließen.
- Klicken Sie anschließend auf Administratorzustimmung für Ihre Organisation erteilen.
Hinweis:
Die Administratorzustimmung ist erforderlich, damit die Anwendung die SMTP-Berechtigung innerhalb des Microsoft-365-Mandanten verwenden darf.
Client Secret für Shopware erstellen
- Öffnen Sie in der Entra-ID-Anwendung den Bereich Zertifikate und Geheimnisse.
- Öffnen Sie den Bereich Geheime Clientschlüssel.
- Klicken Sie auf Neuer geheimer Clientschlüssel.
- Vergeben Sie eine Beschreibung für den Schlüssel.
- Wählen Sie die gewünschte Gültigkeitsdauer.
- Klicken Sie auf Hinzufügen.
- Kopieren Sie unmittelbar danach den angezeigten Wert des Client Secrets.
Wichtig:
Der Wert des Client Secrets wird nur einmal vollständig angezeigt. Kopieren und speichern Sie den Wert daher direkt nach der Erstellung. Die Secret-ID ist nicht das Client Secret und kann nicht für die Shopware-Konfiguration verwendet werden.
Beachten Sie außerdem die gewählte Laufzeit. Nach Ablauf des Client Secrets muss ein neuer Schlüssel erstellt und in Shopware eingetragen werden. Andernfalls kann Shopware keine E-Mails mehr über Microsoft 365 versenden.
Schritt 2: Exchange-Online-Berechtigungen per PowerShell vergeben
Nach der Konfiguration in Entra ID muss die Anwendung in Exchange Online registriert und für das gewünschte Absenderpostfach berechtigt werden.
1. Erforderliche PowerShell-Module installieren
Install-Module -Name ExchangeOnlineManagement Install-Module Microsoft.Graph
Hinweis:
Führen Sie PowerShell bei Bedarf als Administrator aus. Bereits installierte Module müssen nicht erneut installiert werden.
2. Mit Exchange Online verbinden
Connect-ExchangeOnline -Organization [tenantId]
Ersetzen Sie [tenantId] durch die Mandanten-ID Ihres Microsoft-365-Mandanten.
3. Mit Microsoft Graph verbinden
Connect-MgGraph -Scopes "Application.Read.All"
Beim ersten Aufruf kann ein Microsoft-Anmeldefenster erscheinen. Melden Sie sich mit einem Konto an, das über die erforderlichen Administratorrechte verfügt, und bestätigen Sie die angeforderten Berechtigungen.

4. Service Principal der Entra-ID-Anwendung ermitteln
$entraServicePrincipalDetails = Get-MgServicePrincipal -Filter "DisplayName eq '[Name der Entra-ID-App]'"
Ersetzen Sie [Name der Entra-ID-App] durch den Namen, den Sie bei der App-Registrierung vergeben haben.
5. Service Principal in Exchange Online registrieren
New-ServicePrincipal -AppId $entraServicePrincipalDetails.AppId -ObjectId $entraServicePrincipalDetails.Id -DisplayName "EXO ServicePrincipal for EntraID App $($entraServicePrincipalDetails.DisplayName)"
6. Exchange-Service-Principal abrufen
$EXOServicePrincipal = Get-ServicePrincipal -Identity "EXO ServicePrincipal for EntraID App $($entraServicePrincipalDetails.DisplayName)"
7. Zugriff auf das Absenderpostfach vergeben
Add-MailboxPermission -Identity "[E-Mail-Adresse für Versand]" -User $EXOServicePrincipal.Identity -AccessRights FullAccess
Ersetzen Sie [E-Mail-Adresse für Versand] durch die vollständige E-Mail-Adresse des Postfachs, über das Shopware Nachrichten versenden soll.
8. SendAs-Berechtigung vergeben
Add-RecipientPermission -Identity "[E-Mail-Adresse für Versand]" -Trustee $EXOServicePrincipal.Identity -AccessRights SendAs
Bestätigen Sie eine eventuell angezeigte Sicherheitsabfrage in PowerShell.
Hinweis:
Nach dem Setzen der Berechtigungen kann es bis zu 15 Minuten dauern, bis diese in Exchange Online vollständig aktiv sind.
Schritt 3: Microsoft 365 OAuth 2 in Shopware konfigurieren
Nachdem die Entra-ID-Anwendung und die Exchange-Online-Berechtigungen eingerichtet wurden, können die Zugangsdaten im Shopware-Mailer hinterlegt werden.
- Öffnen Sie die Shopware-Administration.
- Wechseln Sie zu Einstellungen → System → Mailer.
- Wählen Sie als bevorzugten E-Mail-Agenten SMTP-Server mit OAuth 2.
- Tragen Sie als Host
smtp.office365.comein. - Verwenden Sie den Port
587. - Tragen Sie als OAuth-URL
https://login.microsoftonline.com/[tenantId]/oauth2/v2.0/tokenein. - Tragen Sie als OAuth-Scope
https://outlook.office365.com/.defaultein. - Tragen Sie als Client-ID die Anwendungs-ID (Client) der registrierten Entra-ID-App ein.
- Tragen Sie als Client Secret den zuvor kopierten Wert des geheimen Clientschlüssels ein.
- Wählen Sie als Verschlüsselungsmethode TLS.
- Tragen Sie als Absender-Adresse das Postfach ein, für das zuvor die Exchange-Online-Berechtigungen vergeben wurden.
- Speichern Sie die Mailer-Konfiguration.
Übersicht der Shopware-Mailer-Einstellungen
| Einstellung | Wert |
|---|---|
| Bevorzugter E-Mail-Agent | SMTP-Server mit OAuth 2 |
| Host | smtp.office365.com |
| Port | 587 |
| OAuth-URL | https://login.microsoftonline.com/[tenantId]/oauth2/v2.0/token |
| OAuth-Scope | https://outlook.office365.com/.default |
| Client-ID | Anwendungs-ID der Entra-ID-App |
| Client Secret | Wert des geheimen Clientschlüssels |
| Verschlüsselung | TLS |
| Absender-Adresse | Das in Exchange Online berechtigte Postfach |
Hinweise und Fehlerbehebung
OAuth-URL endet auf /token
In Shopware muss die Token-URL hinterlegt werden. Verwenden Sie daher die URL mit /oauth2/v2.0/token und nicht die Autorisierungs-URL mit /authorize.
Client Secret und Secret-ID nicht verwechseln
Shopware benötigt den bei der Erstellung einmalig angezeigten Wert des geheimen Clientschlüssels. Die in Entra ID dauerhaft sichtbare Secret-ID ist dafür nicht geeignet.
Absender-Adresse muss mit dem berechtigten Postfach übereinstimmen
Die in Shopware eingetragene Absender-Adresse muss dem Postfach entsprechen, für das in PowerShell die Berechtigungen FullAccess und SendAs gesetzt wurden.
Änderungen sind nicht sofort aktiv
Neue Berechtigungen können in Microsoft 365 einige Minuten benötigen. Warten Sie nach der PowerShell-Konfiguration bis zu 15 Minuten und führen Sie anschließend erneut einen Testversand durch.
Client Secret regelmäßig erneuern
Prüfen Sie die Gültigkeitsdauer des Client Secrets und erneuern Sie es rechtzeitig. Nach Ablauf des Schlüssels schlägt die OAuth-Authentifizierung fehl, bis ein neues Secret in Entra ID erstellt und in Shopware gespeichert wurde.
Fazit
Mit einer registrierten Microsoft-Entra-ID-Anwendung, der Berechtigung SMTP.SendAsApp und den passenden Exchange-Online-Berechtigungen kann Shopware 6 E-Mails sicher über Microsoft 365 und OAuth 2 versenden.
Nach der einmaligen Einrichtung sollten insbesondere die Laufzeit des Client Secrets sowie die korrekte Berechtigung des verwendeten Absenderpostfachs regelmäßig geprüft werden.