Von lokalem SharePoint aus Emails über Exchange Online versenden

In diesem Beitrag geht es darum, wie man von einem lokalen System (z.B. SharePoint) aus Emails über Exchange Online versenden kann.

Dieses Szenario ist immer dann relevant, wenn z.B. der SharePoint noch lokal betrieben wird, der Exchange Server sich allerdings in Office 365 befindet. Damit das Versenden von Emails vom SharePoint Server weiterhin funktioniert, benötigt man einen kleinen Umweg. An dieser Stelle kommt wieder das Problem zu tragen, dass SharePoint keine Authentifizierung beim Versenden von Emails anbietet.

Damit man Emails über Exchange Online versenden kann, kann man den in Windows eingebauten SMTP-Server nutzen. Dieser wird auch z.B. für eingehende Emails beim SharePoint genutzt. Der SMTP-Server nimmt die Email ohne Authentifizierung an und leitet die Email mit Authentifizierung an Exchange Online weiter.

Zuerst muss sichergestellt sein, dass der SMTP-Server auch installiert ist. Dies Prüfung/Installation kann ganz einfach über den Server Manager erfolgen.

Emails über Exchange Online versenden

Ist der SMTP-Server installiert, kann dieser über den Internet Information Services (IIS) 6.0 Manager konfiguriert werden. Standardmäßig startet der SMTP-Server Dienst nicht automatisch nach einem Neustart des Systems. Deshalb ist es sinnvoll, dies in den Diensten noch entsprechend anzupassen.

Zuerst müssen wir noch den Port 587 hinzufügen. Dies geschieht im Tab General.

Danach wechseln wir zum Tab Access.  Dort aktivieren wir unter Authentication den anonymen Zugriff.

Bei Connection Control und Relay Restrictions tragen wir die IP-Adresse vom SharePoint Server ein. Denn wir wollen ja, dass nur der SharePoint Server anonym Emails versenden darf und nicht jeder.

Danach wechseln wir in den Tab Delivery und wählen den Punkt Outbound Security.  Dort wählen wir die Basic-Authentifizierung aus und hinterlegen einen Benutzer aus Office 365, der eine entsprechende Exchange Online Lizenz besitzt.

Danach müssen wir noch den Smarthost eintragen, dies geschieht über den Punkt Advanced. Wir tragen weiterhin den FQDN des Servers ein, auf dem der SMTP-Server läuft. Zu beachten ist, dass sich der Smarthost bei der Office 365 Deutschland Cloud von der „normalen“ Office 365 Cloud unterscheidet. Für die Deutschland Cloud benötigt man den Server smtp.office.de. Ansonsten nutzt man den Smarthost mit der Adresse smtp.office365.com.

Nun sind wir mit der Konfiguration fertig und können unseren SMTP-Server in SharePoint hinterlegen.

Nun kann der lokale SharePoint Server Emails über Exchange Online versenden. Möchte man den Versand gleich einmal testen, kann man dies einfach per PowerShell tun:

if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) 
{
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}

$email = ""
$subject = "Das ist ein Betreff"
$body = "Das ist der Inhalt"
$spUrl = "http://sharepoint"
$site = Get-SPSite $spUrl
$web = $site.OpenWeb()
[Microsoft.SharePoint.Utilities.SPUtility]::SendEmail($web,0,0,$email,$subject,$body)
# Gibt entweder true oder false zurück, ob das Versenden erfolgreich war

In diesem Sinne, Happy SharePointing…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert