E-Mail über Microsoft 365
Microsoft hat die Anmeldung mit Benutzer und Kennwort für SMTP abgeschaltet. Für Postfächer in Microsoft 365 führt deshalb einer der beiden folgenden Wege zum Ziel. Beide brauchen einmalig eine App-Registrierung im Azure-Portal.
Welchen Weg wählen
| OAuth | App-Only | |
|---|---|---|
| Versand als | ein angemeldetes Benutzerkonto | die Anwendung selbst |
| Anmeldung | einmalig im Browser | keine |
| Absender | das angemeldete Postfach | ein frei angegebenes Postfach |
| Nötige Rechte | Delegiert: SMTP.Send, offline_access |
Anwendung: Mail.Send |
Für einen Server, der jahrelang unbeaufsichtigt läuft, ist App-Only der robustere Weg: Es hängt kein Benutzerkonto daran, das gesperrt werden oder das Kennwort wechseln könnte.
App-Only mit Mail.Send als Anwendungsberechtigung erlaubt der Registrierung, als jedes Postfach der Organisation zu senden. Wer das eng ziehen will, beschränkt die Registrierung in Exchange Online über eine Anwendungszugriffsrichtlinie auf das eine Absenderpostfach. Das gehört mit der Microsoft-365-Administration abgestimmt.
Weg 1 — OAuth

1. App registrieren
Im Azure-Portal eine neue App-Registrierung anlegen, mit einem eindeutigen Namen. Als
Umleitungs-URI wird die Adresse dieser FINN.ghost-Installation eingetragen, endend auf
/api/mail/oauth/redirect:
https://finn.kunde.de:8083/api/mail/oauth/redirect

Die Umleitungs-URI muss zeichengenau mit der Adresse übereinstimmen, unter der FINN.ghost erreichbar ist — samt Port. Weicht sie ab, bricht Microsoft die Anmeldung mit einer Meldung zur Redirect-URI ab. Das ist der häufigste Stolperstein.
In älteren Fassungen dieser Anleitung endete die Adresse auf /api/settings/oauth/redirect. Das gilt nicht mehr — der Pfad lautet /api/mail/oauth/redirect.
2. Clientschlüssel erstellen
Unter Zertifikate & Geheimnisse einen neuen Clientschlüssel anlegen und den Wert sofort notieren.

Der Wert wird nur einmal angezeigt. Wer ihn nicht notiert, muss einen neuen Schlüssel anlegen. Clientschlüssel laufen außerdem ab — das Ablaufdatum gehört notiert, sonst bleibt der Mailversand irgendwann ohne Vorwarnung stehen.
3. Berechtigungen setzen
Unter API-Berechtigungen zwei delegierte Berechtigungen von Microsoft Graph hinzufügen und die Zustimmung erteilen:
| Berechtigung | Wofür |
|---|---|
SMTP.Send |
Mails über SMTP AUTH senden |
offline_access |
Zugriff behalten, ohne erneute Anmeldung |

User.Read steht dort in der Regel schon — es wird beim Anlegen der Registrierung mitgegeben und kann bleiben. Wichtig ist der grüne Haken bei Status: ohne erteilte Zustimmung greifen die Berechtigungen nicht.
4. Werte übertragen
Aus dem Reiter Übersicht der Registrierung:
| Feld in Azure | Feld in FINN.ghost |
|---|---|
| Anwendungs-ID (Client) | Client ID |
| Verzeichnis-ID (Mandant) | Tenant ID |
| beim Anlegen hinterlegte Umleitungs-URI | Redirect URI |
| notierter Wert des Clientschlüssels | Client Secret |

5. Verbinden
Nach dem Klick auf Verbinden fragt Microsoft nach der Anmeldung. Danach steht die Verbindung, und in der Karte erscheint die Adresse des verbundenen Kontos.
Angemeldet wird das Postfach, aus dem gesendet wird. Es muss ein Postfach in derselben Organisation sein.
Weg 2 — App-Only

1. App registrieren
Wie oben eine neue App-Registrierung mit eindeutigem Namen. Eine Umleitungs-URI wird hier nicht gebraucht.

2. Clientschlüssel erstellen
Unter Zertifikate & Geheimnisse, Wert notieren.

3. Berechtigung setzen
Unter API-Berechtigungen eine Anwendungsberechtigung von Microsoft Graph hinzufügen und die Zustimmung erteilen:
| Berechtigung | Typ |
|---|---|
Mail.Send |
Anwendung |

Anwendungsberechtigungen brauchen immer die Administratorzustimmung. Ohne sie schlägt der Versand mit einer Rechtemeldung fehl, obwohl alle Werte richtig eingetragen sind.
4. Werte übertragen
| Feld in Azure | Feld in FINN.ghost |
|---|---|
| Anwendungs-ID (Client) | Client ID |
| Verzeichnis-ID (Mandant) | Tenant ID |
| Wert des Clientschlüssels | Client Secret |
| — | Absender-E-Mail |

Die Absender-E-Mail ist das Postfach, aus dem gesendet wird.
Nach dem Speichern verschickt FINN.ghost eine Testmail an die eingetragenen Empfänger und bestätigt das in der Karte. Kommt sie nicht an, fehlt meist die Administratorzustimmung.
Über Trennen wird die Verbindung wieder gelöst.
Wenn der Versand nicht geht
| Meldung oder Symptom | Ursache |
|---|---|
| Fehler zur Redirect-URI beim Verbinden | Umleitungs-URI weicht ab |
| Anmeldung geht, Versand scheitert | Berechtigung fehlt oder ohne Zustimmung |
| lief monatelang, jetzt nicht mehr | Clientschlüssel abgelaufen |
| App-Only meldet fehlende Rechte | Administratorzustimmung nicht erteilt |
| Absender wird abgelehnt | Postfach gehört nicht zur Organisation |
Die Antwort von Microsoft steht im Protokoll. Siehe Log Informationen.