Microsoft Azure verfügt nicht über einen E-Mail-Versanddienst. Wenn Sie Anwendungen testen oder Skripte in Azure entwickeln, um E-Mails zu versenden, beachten Sie bitte, dass Ihnen kein nativer E-Mail-Dienst zur Verfügung steht.
Eine ausgehende SMTP-Verbindung über Port 25 ist in Azure ebenfalls vollständig blockiert. Wenn Sie ein Unternehmenskunde sind, können Sie beantragen, dass Port 25 für Ihren Azure-Mandanten freigegeben wird. Andernfalls, wie können Sie sonst E-Mails von Azure aus senden?
Normalerweise gibt es zwei Möglichkeiten, ausgehende E-Mails über Azure zu senden: die Verwendung eines SMTP-Smart Hosts und REST-API-Anfragen. Die meisten E-Mail-Versanddienste bieten sowohl SMTP- als auch API-Methoden zum Senden von E-Mails an. In diesem Artikel erfahren Sie, wie Sie E-Mails von Azure in die ganze Welt senden können.
Voraussetzungen
Dieser Artikel ist ein Leitfaden, und wenn Sie die Beispiele im Verlauf befolgen möchten, müssen Sie einige Anforderungen erfüllen.
- Eine Azure-Abonnement. Sie können sich für ein kostenloses Testabonnement bei Azure registrieren, wenn Sie noch keines haben.
- Eine Azure Virtual Machine (VM).Lesen Sie Erstellen Sie eine Windows Virtual Machine im Azure-Portal, um zu erfahren, wie Sie eine neue VM erstellen, falls Sie noch keine haben.
- Windows PowerShell 5.1 oder PowerShell 7.1.
- A valid sender email address. Using a free email address domain, such as gmail.com, is not recommended. As much as possible, use a sender email address that uses a domain that you own.
Wissen, welche E-Mail-Dienste mit Azure zum Versenden von E-Mails verwendet werden können
Es gibt mehrere Cloud-E-Mail-Dienste, die verwendet werden können. Einige der prominenten Namen sind SendGrid, MailJet und MailGun. Unabhängig vom gewählten E-Mail-Dienst ist das Senden von E-Mails aus Azure ähnlich. Serveradresse und Port für SMTP sowie API-Endpunktadresse für REST.
SendGrid ist ein Beispiel für einen Drittanbieter-E-Mail-Dienst, der in diesem Artikel verwendet wird. Weitere E-Mail-Dienste, die als Beispiele verwendet werden, sind Office 365 SMTP-Relay und Microsoft Graph API.
Verwandt: Welchen Azure-E-Mail-Dienst wählt man für 2021
Verwendung von SendGrid
SendGrid ist wahrscheinlich die beliebteste E-Mail-Serviceoption zum Versenden von E-Mails von Azure aus. Azure und SendGrid sind so beliebt, weil es früher einen kostenlosen Plan mit einem Limit von 25.000 E-Mails pro Monat für Azure-Kunden gab.
Obwohl der kostenlose Plan nicht mehr im Azure-Portal angeboten wird, wie von Microsoft bestätigt, ist es möglich, sich für ein kostenloses Abonnement mit einem Limit von 100 E-Mails pro Tag anzumelden. Sie haben dann Zugang zum SMTP-Relay-Dienst oder zur E-Mail-API von SendGrid, um E-Mails von einer Azure-App oder einem Azure-VM zu versenden.
Erstellen eines SendGrid-Kontos
Um die Dienste von SendGrid nutzen zu können, benötigen Sie zuerst ein SendGrid-Konto. Gehen Sie zur Anmelden-Seite und Sie sollten das unten gezeigte Formular sehen. Geben Sie Ihre E-Mail-Adresse und Ihr gewähltes Passwort ein. Akzeptieren Sie dann die Bedingungen und klicken Sie auf die Schaltfläche Konto erstellen.

Auf der nächsten Seite müssen Sie Ihren Namen und Informationen zu Ihrem Unternehmen eingeben. Wählen Sie auch die entsprechenden Optionen wie Ihre Rolle, die Anzahl der monatlich zu versendenden E-Mails und die Anzahl der Mitarbeiter aus. Klicken Sie dann auf Los geht’s.

Wenn Sie sich zum ersten Mal bei SendGrid anmelden, erhalten Sie möglicherweise eine Fehlermeldung, die besagt: „Sie sind nicht berechtigt, auf SendGrid zuzugreifen; bitte wenden Sie sich an den Support.“ Wenn dies geschieht, eröffnen Sie ein Ticket beim SendGrid-Support. Sie müssen möglicherweise einige Verifikationsfragen beantworten, bevor Ihr Zugriff freigeschaltet wird.
Sie werden aufgefordert, die Zwei-Faktor-Authentifizierung bei Ihrer ersten Anmeldung zu aktivieren. Befolgen Sie die Anweisungen sorgfältig.
Erstellung einer SendGrid-Senderidentität
Nachdem Sie das SendGrid-Konto erstellt haben, ist der nächste Schritt die Autorisierung der Senderidentität. Es gibt zwei Optionen: Authentifizieren Sie einen einzelnen Absender (z. B. [email protected]) oder authentifizieren Sie eine gesamte Domäne (z. B. domain.com).
In diesem Beispiel erstellen Sie eine einzelne Absenderidentität, die als Ihre Absenderadresse fungiert. Nur die überprüfte Absenderadresse darf Nachrichten über den SendGrid-Dienst senden. Befolgen Sie die folgenden Anweisungen, um die einzelne Absenderidentität zu erstellen.
- Auf der Willkommen-Seite klicken Sie auf die Schaltfläche Einen einzelnen Absender erstellen.

2. Geben Sie anschließend auf der Absender erstellen-Seitenleiste alle erforderlichen Informationen ein. Die Pflichtfelder sind mit einem roten Sternchen gekennzeichnet, um sie einfacher zu identifizieren. Nachdem Sie die Details eingegeben haben, klicken Sie auf Erstellen.

Sie sehen dann die neue Absenderadresse aufgeführt unter der Seite Einzelnachweis des Absenders. Wie Sie im untenstehenden Beispiel sehen können, ist die Adresse noch nicht verifiziert, wie durch ein rotes X unter der Spalte VERIFIZIERT angezeigt wird.

3. Um den Absender zu verifizieren, suchen Sie die E-Mail, die an die Absenderadresse gesendet wurde, ähnlich wie im folgenden Screenshot. Klicken Sie dann auf die Schaltfläche Einzelnachweis des Absenders.

Die Absenderadresse wird verifiziert. Sie sollten eine ähnliche Seite sehen, wie unten gezeigt, die bestätigt, dass die Absenderverifizierung abgeschlossen ist.

Erstellung eines SendGrid-API-Schlüssels
Nachdem Sie die Einzelabsenderadresse erstellt haben, steht Ihnen die Schnittstelle zur Erstellung von API-Schlüsseln zur Verfügung. Denken Sie an den SendGrid-API-Schlüssel als das Passwort. Ohne ihn kann Ihr Code sich nicht mit dem SendGrid-SMTP-Relay-Dienst authentifizieren. Befolgen Sie die folgenden Schritte, um einen neuen API-Schlüssel zu erstellen.
- Klicken Sie im linken Menü auf Einstellungen > API-Schlüssel. Klicken Sie dann auf die Schaltfläche API-Schlüssel erstellen oben rechts auf der Seite.

2. Das Flyout API-Schlüssel erstellen wird angezeigt. Geben Sie den Namen des API-Schlüssels ein, den Sie erstellen möchten. Verwenden Sie einen sinnvollen Namen, wie z.B. „Azure Test-API-Schlüssel“. Wählen Sie anschließend der Einfachheit halber Voller Zugriff als Berechtigung aus. Klicken Sie schließlich auf die Schaltfläche Erstellen & Anzeigen.

3. Der neue API-Schlüssel wird daraufhin angezeigt. Kopieren Sie den Schlüsselwert und speichern Sie ihn, da er Ihnen nicht erneut angezeigt wird. Nachdem Sie den Schlüssel kopiert haben, klicken Sie auf Fertig.

Versenden einer E-Mail von Azure mit Hilfe des SendGrid-SMTP-Relay
Jetzt haben Sie die erforderlichen Komponenten (Konto, Absender und Schlüssel), um SendGrid zum Senden von Azure-E-Mails zu verwenden. Es ist Zeit zu überprüfen, ob der SendGrid SMTP-Relay-Dienst funktioniert. In diesem Abschnitt verwenden Sie PowerShell, um E-Mails von einer Azure-VM zu senden.
Bevor Sie Code ausführen, sollten Sie folgende Anforderungen kennen.
- Die Adresse des SendGrid SMTP-Servers lautet smtp.sendgrid.net.
- Der Benutzername für die SMTP-Authentifizierung lautet immer apikey.
- Das zu verwendende Passwort ist der Wert des von Ihnen in SendGrid erstellten API-Schlüssels.
- Verwenden Sie nicht den Port 25. Verwenden Sie stattdessen Port 587.
- Nur die verifizierte Absenderadresse in SendGrid ist gültig, um als Absender Ihrer E-Mails verwendet zu werden. In diesem Beispiel ist der autorisierte Absender [email protected].
Das untenstehende Skript sendet eine E-Mail über den SendGrid SMTP-Relay. Kopieren Sie den untenstehenden Code und ändern Sie die Werte $sendGridApiKey
, From
, To
und Body
. Führen Sie den Code dann in Ihrer PowerShell-Sitzung aus. Lesen Sie die Kommentare, um zu verstehen, was jede Codezeile bewirkt.
Das folgende Beispiel zeigt, wie das Ausführen des oben gezeigten Codes in PowerShell in Echtzeit aussieht.

Um die Zustellbarkeit der E-Mail zu bestätigen, überprüfen Sie das Postfach des Empfängers, um die Testnachricht zu finden, die Sie gesendet haben. Das Ergebnis wäre ähnlich wie das unten gezeigte. Wie Sie sehen können, stammt die Nachricht von der Absenderadresse über sendgrid.net.

Verwandt: Send-MailMessage: Der PowerShell-Weg, um E-Mails zu senden
Senden einer E-Mail von Azure mit der SendGrid-API
Eine weitere Möglichkeit, SendGrid mit Azure zum Versenden von E-Mails zu verwenden, besteht darin, die SendGrid Web API V3 zu verwenden. Anstatt über SMTP mit SendGrid zu kommunizieren, erfolgt die Kommunikation über die API über HTTP. Die HTTP-Anfrage wird an die API-Endpunkt-URL von SendGrid gesendet.
Das folgende Beispiel-Skript für PowerShell verwendet das Cmdlet Invoke-RestMethod
, um die E-Mail-Anfrage von Azure an SendGrid zu senden. Kopieren Sie den Code und ändern Sie die Werte der Variablen $sendGridApiKey
, $fromAddress
, $toAddress
, $mailSubject
und $mailMessage
.
Wenn Sie die Variablen aktualisiert haben, führen Sie den Code in PowerShell aus.
Nachdem Sie den obenstehenden PowerShell-Code ausgeführt haben, überprüfen Sie den Posteingang des Empfängers und bestätigen Sie, dass er die Testnachricht erhalten hat. Das folgende Beispiel zeigt eine erfolgreich zugestellte Testnachricht von Azure über die SendGrid-API.

Wenn Sie mehr über die SendGrid Web-API erfahren möchten, besuchen Sie die Seite V3 Mail Send API.
Verwendung der Office 365 SMTP-Authentifizierung
Eine weitere Möglichkeit, E-Mails von Azure zu senden, besteht darin, das Office 365 SMTP-Relay zu verwenden. Das gilt, wenn Ihre Organisation bereits ein Exchange Online-Abonnement hat. Wie bei der Verwendung von SendGrid als SMTP-Smart Host erfordert das Office 365 SMTP-Relay eine Authentifizierung und die Verwendung von Port 587.
Vor der Verwendung des Office 365 SMTP-Relays müssen Sie die folgenden Bedingungen kennen, damit es funktioniert.
- Die Absenderadresse muss ein gültiges Exchange Online-Empfängerobjekt wie ein Postfach oder ein Mail-Benutzer sein. Verwenden Sie jedoch ein Postfach, wenn Nicht-Zustellungsberichte (NDR) gespeichert werden sollen.
- Der Authentifizierungsbenutzer muss über eine gültige Exchange Online-Lizenz verfügen. Nur lizenzierte Exchange Online-Benutzer dürfen das Office 365 SMTP-Relay verwenden.
- Angenommen, der Authentifizierungsbenutzer ist nicht der Absender. In diesem Fall muss dem Benutzer die Berechtigung „Senden als“ für das Absenderkonto zugewiesen werden.
- Die verwendete Authentifizierungsmethode ist grundlegend (veraltet). Das bedeutet, dass die SMTP-Basisauthentifizierung in Ihrer Organisation deaktiviert ist oder wenn Microsoft die Basisauthentifizierung endgültig einstellt, funktioniert SMTP Auth nicht mehr.
- Die Adresse des SMTP-Relay-Servers lautet smtp.office365.com und die Portnummer ist 587.
Verwandte: Wie man eine E-Mail mit Direktversand von Office 365 und PowerShell versendet
Erstellen einer Office 365 Absenderadresse
In diesem Beispiel sind der Absender und der Authentifizierungsbenutzer getrennt. Stellen Sie sicher, dass Sie zuerst eine Verbindung zu Exchange Online PowerShell herstellen. Sobald Sie verbunden sind, folgen Sie den unten stehenden Schritten.
Erstellen Sie ein gemeinsames Postfach mit dem unten stehenden Befehl. Ändern Sie den -Name
und die -PrimarySMTPAddress
auf Ihre korrekten Werte.
Das gemeinsame Postfach sollte erstellt werden und ein ähnliches Ergebnis wie das unten stehende liefern.

Weisen Sie dann dem Authentifizierungsbenutzer die Senden als-Berechtigung zu. Im folgenden Beispiel wird dem Benutzer die Senden als-Berechtigung für das freigegebene Postfach zugewiesen.
Nach Ausführung des oben genannten Befehls erhalten Sie ein ähnliches Ergebnis wie unten gezeigt.

Senden einer E-Mail über Azure mit Office 365 SMTP-Relay
Nach Erstellung der Absenderadresse und Zuweisen der Senden-als-Berechtigung ist der nächste Schritt das Testen der E-Mail-Zustellung mithilfe von PowerShell und Office 365 SMTP-Relay.
Der folgende Code authentifiziert sich mit [email protected]. Die Adresse [email protected] wird als Absender angezeigt. Stellen Sie sicher, dass Sie Ihre korrekten Werte zuweisen, bevor Sie den Code ausführen.
Die Verwendung von Anmeldeinformationen in Skripten im Klartext wird nicht empfohlen. Produktions-Skripte müssen Anmeldeinformationen verschlüsseln oder geheim halten, um Benutzernamen und Passwörter zu schützen.
Jetzt ist es an der Zeit, das Postfach des Empfängers zu überprüfen. Bestätigen Sie, dass die Testnachricht empfangen wurde.

Verwendung der Microsoft Graph API zum Senden von Azure-E-Mails
Anstelle der Verwendung von Office 365 SMTP-Relay wird empfohlen, Microsoft Graph API zu verwenden, da dies sicherer ist. Mit Microsoft Graph API können Sie E-Mails von jedem Postfach in Ihrer Organisation über REST API-Aufrufe senden.
Um Microsoft Graph API zum Senden von E-Mails zu verwenden, ist eine registrierte Azure AD-App erforderlich. Die registrierte App muss mit der Mail.Send API-Berechtigung versehen sein. Die folgenden Abschnitte zeigen Ihnen, wie Sie Microsoft Graph API konfigurieren und verwenden können, um E-Mails zu senden.
Verwandt: Verwenden der Microsoft Graph API mit PowerShell
Registrierung einer neuen App in Azure Active Directory
In diesem Abschnitt werden Sie eine neue Web-App im Azure Active Directory registrieren. Die neue App dient als Authentifizierungsidentität für Microsoft Graph. Melden Sie sich im Azure-Portal an, wenn Sie noch nicht angemeldet sind.
- Navigieren Sie zu Azure Active Directory —> App-Registrierung. Klicken Sie dann auf die Schaltfläche Neue Registrierung.

2. Geben Sie auf der Seite App registrieren den Namen der App ein.
3. Unter Unterstützte Kontotypen wählen Sie Nur Konten in diesem Organisationsverzeichnis aus. Geben Sie HTTP://localhost als Umleitungs-URI ein. Klicken Sie abschließend auf die Schaltfläche Registrieren.

4. Warten Sie, bis die Registrierung abgeschlossen ist. Der Vorgang dauert nur wenige Sekunden. Notieren Sie sich die resultierende Anwendungs-ID und die Verzeichnis-ID. Sie werden diese später benötigen.

Erstellen eines geheimen Client-Schlüssels
Denken Sie an die Anwendungs-ID, die Sie im vorherigen Abschnitt erstellt haben, als Benutzernamen. Und diese Anwendungs-ID benötigt ein Passwort – den geheimen Schlüssel.
Um einen neuen geheimen Client-Schlüssel hinzuzufügen, befolgen Sie die folgenden Schritte.
- Gehen Sie zu Zertifikate & Geheimnisse und klicken Sie dann auf Neues Client-Geheimnis.
- Geben Sie eine Beschreibung für das Client-Geheimnis ein, z.B. Schlüssel1.
- Wählen Sie aus, wann das Geheimnis abläuft, und klicken Sie auf Hinzufügen. Im folgenden Beispiel läuft der geheime Schlüssel in 1 Jahr ab.

Sie sehen den neuen Schlüssel unter dem Abschnitt Client-Geheimnisse. Jetzt ist der einzige Zeitpunkt, an dem Sie den Schlüsselwert sehen, also speichern Sie eine Kopie.

Zuweisen von API-Berechtigungen und Gewähren der Administratorzustimmung
Jetzt, da Sie die Anwendungs-ID und das Geheimnis erstellt haben, müssen Sie die erforderliche Berechtigung für die Microsoft Graph API zuweisen. Ohne Berechtigung kann die Anwendung authentifiziert werden, hat jedoch keine Autorität, um etwas zu tun, wie z.B. E-Mails zu senden.
Um mit der Zuweisung der Berechtigung zu beginnen, befolgen Sie die folgenden Schritte.
- Klicken Sie im Menü auf der linken Seite auf API-Berechtigungen.
2. Klicken Sie dann auf der Seite Konfigurierte Berechtigungen auf die Schaltfläche Berechtigung hinzufügen.

3. Klicken Sie im Flyout API-Berechtigungen anfordern auf Microsoft Graph API, um es auszuwählen.

4. Wenn Sie nach dem Typ der Berechtigung gefragt werden, die von der Anwendung benötigt wird, klicken Sie auf Anwendungsberechtigungen.
5. Geben Sie in das Suchfeld Mail.Send ein, um danach zu suchen. Klicken Sie in den Suchergebnissen auf die Berechtigung Mail.Send, um sie auszuwählen. Klicken Sie abschließend auf Berechtigungen hinzufügen.

6. Sie werden feststellen, dass der Berechtigungsstatus „Nicht gewährt für <Organisationsname>“ lautet. Zu diesem Zeitpunkt müssen Sie oder ein Globaler Administrator zunächst die Zustimmung für die Anwendung erteilen. Um die Berechtigung zu gewähren, klicken Sie auf die Schaltfläche Admin-Zustimmung für <Organisation> erteilen.

Der Berechtigungsstatus für die API ändert sich dann in „Gewährt für <Organisationsname>“.

Erwerben eines Zugriffstokens
Anfragen an die Microsoft Graph API erfordern ein Zugriffstoken. Zu diesem Zeitpunkt haben Sie bereits Ihre Anwendungs-ID, den geheimen Schlüssel und die Mandanten-ID. Diese drei Informationen sind erforderlich, um ein Zugriffstoken zu erhalten.
Das folgende PowerShell-Skript sendet die Zugriffstoken-Anforderung an den Endpunkt der Microsoft Graph API. Sie müssen die $client_id
, $client_secret
und $tenant_id
zuerst mit den korrekten Werten aktualisieren. Kopieren Sie dann den Code in PowerShell, um das Zugriffstoken anzufordern.
Die folgende Demonstration zeigt das oben stehende PowerShell-Skript in Aktion. Beachten Sie, dass das angeforderte Zugriffstoken in der Variablen $token
gespeichert wird.

Zugriffstoken sind nur eine (1) Stunde lang ab dem Zeitpunkt der Anforderung gültig. Sie müssen ein neues Zugriffstoken anfordern, nachdem das vorherige abgelaufen ist.
Versenden einer E-Mail von Azure mit der Microsoft Graph API
Sie sind jetzt bereit, die Microsoft Graph API mit Azure zu verwenden, um
# Geben Sie die E-Mail-Adresse des Absenders und des Empfängers an
$fromAddress = 'SENDER ADDRESS HERE'
$toAddress = 'RECIPIENT ADDRESS HERE'
# Geben Sie den Betreff und die Nachricht der E-Mail an
$mailSubject = 'This is a test message from Azure via Microsoft Graph API'
$mailMessage = 'This is a test message from Azure via Microsoft Graph API'
# ÄNDERN SIE NICHTS UNTERHALB DIESER LINIE
# Erstellen Sie die Anforderung an die Microsoft Graph API
$params = @{
"URI" = "https://graph.microsoft.com/v1.0/users/$fromAddress/sendMail"
"Headers" = @{
"Authorization" = ("Bearer {0}" -F $token)
}
"Method" = "POST"
"ContentType" = 'application/json'
"Body" = (@{
"message" = @{
"subject" = $mailSubject
"body" = @{
"contentType" = 'Text'
"content" = $mailMessage
}
"toRecipients" = @(
@{
"emailAddress" = @{
"address" = $toAddress
}
}
)
}
}) | ConvertTo-JSON -Depth 10
}
# Senden Sie die Nachricht
Invoke-RestMethod @params -Verbose