Vielerorts wird von Microsoft Exchange auf Office 365 umgestellt. Damit verbunden ist oft auch die Anpassung von automatisierten Prozessen, insbesondere dem automatischen Versand von E-Mails, beispielsweise nach der Anlage neuer Benutzer. In diesem Artikel möchte ich darauf eingehen, wie wir den Mailversand über einen O365-Account automatisieren und dabei die Credentials gesichert hinterlegen. Auf diese Weise kann der Versand automatisiert und ohne Nutzereingabe erfolgen.
Index
Mailversand über einen O365 Account automatisieren
Wie auch schon bei Verwendung von Exchange-Konten wird zum Versand das Powershell-Command “Send-MailMessage” genutzt. Als SmtpServer muss immer “smtp.office365.com“ und als Port “587” angegeben werden. Port 587 können wir für gesicherte SMTP Verbindungen nutzen. Allerdings müssen sowohl Client als auch Server den Port unterstützen. Gegebenenfalls mussen wir also ihr O365-Server entsprechend anpassen.
Außerdem werden wir die Credentials benötigen, um sich gegen den Office 365 Server anzumelden. Diese müssen immer mit dem Account übereinstimmen, der als Absender hinterlegt wird.
Der Parameter “-UseSsl” müssen wir anfügen, da wir sonst folgende Fehlermeldung erhalten:
Sichern der Credentials
Da wir die Mail jedoch automatisch und ohne manuelle Eingabe von Credential verschicken möchten, müssen wir diese Credentials hinterlegen. Diese, insbesondere das Passwort, müssen wir dabei natürlich verschlüsselt sichern, um Missbrauch zu vermeiden.
Ich arbeite zur Verschlüsselung mit einem kurzem, separatem Skript, das bei Ausführung das Passwort abfragt, verschlüsselt und anschließend in eine Datei namens “pwd.dat” speichert.
Dieses Skript müssen wir unter folgenden Voraussetzungen ausführen, damit die Entschlüsselung später wieder richtig erfolgen kann:
- auf dem Server ausführen, auf dem später der Mailversand erfolgen soll
- mit dem (Service-)Account ausführen, über den das Mailversand-Skript später ausführen wird
Dadurch wird auch gleichzeitig die Sicherheit dieser Verschlüsselungsmethode unterstrichen, denn selbst wenn jemand die Datei mit dem verschlüsselten Passwort stiehlt, kann dieser das Passwort nicht entschlüsseln.
Die Datei mit dem verschlüsselten Passwort müssen wir im selben Ordner abschließend, wie wir das Mail-Versand-Skript abgelegt haben.
Verwendung der gesicherten Credentials
Um das Passwort nun zu verwenden, müssen wir es wieder entschlüsseln und anschließend ein PSCredential Objekt aus Nutzername und Passwort generieren.
Ich empfehle zudem im Anschluss die Variablen, in denen das Passwort im Powershell zwischengespeichert wurde, mit “Remove-Variable” zu löschen, damit diese nicht im Cash erhalten bleiben.
Anwendungsfall IDM-Automation
Wie bereits zu Beginn erwähnt gibt es diverse Anwendungsfälle zum automatisierten Versand von E-Mails. Einer davon ist die Verwendung des FirstWare IDM-Portals mit IDM-Automation Software. Hiermit können wir komplexe Workflows im Hintergrund abarbeiten lassen . Ebenso sind Synchronisation, Massenimports aber auch Genehmigungsworkflows und zeitpunktgesteuerte Aktionen damit möglich.
Dabei spielt natürlich der Versand von Bestätigungsmails eine große Rolle, damit zum Beispiel der Anwender informiert wird, sobald ein solcher Workflow abgeschlossen wurde, oder auch damit ein Benutzer über eine Änderung an seinen Berechtigungen informiert wird, sobald diese aktiv werden.
Fazit
Der Versand von Emails über einen O365-Account lässt sich mit Powershell einfach umsetzen und unterscheidet sich nur wenig davon wie wir(bisher) mit Exchange-Konten umgegangen sind. Die einzige Hürde stellt das Hinterlegen der Credentials dar, aber auch hier gibt es einfache und sichere Möglichkeiten.
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>