Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie beim Senden von E-Mails mithilfe von E-Mail-SDKs manuell den E-Mail-Status abfragen.
Machen Sie die ersten Schritte mit Azure Communication Services, indem Sie die .NET-Clientbibliothek für E-Mail von Communication Services nutzen, um E-Mail-Nachrichten zu senden.
Um die Anleitungen in diesem Artikel zu befolgen, fallen in Ihrem Azure-Konto geringfügige Kosten von höchstens einigen wenigen Cent (USD) an.
Tipp
Starten Sie ihre E-Mail-Sendeerfahrung mit Azure Communication Services mithilfe von GitHub Azure Samples Basic Email Sending und Advanced Email Sending.
Grundlegendes zum E-Mail-Objektmodell
Die folgenden Klassen und Schnittstellen werden für einige der wichtigsten Features der C#-Clientbibliothek für E-Mail von Azure Communication Services verwendet.
| Name | BESCHREIBUNG |
|---|---|
| E-Mail-Adresse | Diese Klasse enthält eine E-Mail-Adresse und eine Option für einen Anzeigenamen. |
| E-Mail-Anhang | In dieser Klasse wird eine E-Mail-Anlage erstellt, indem eine eindeutige ID, eine MIME-Typ-Zeichenfolge für die E-Mail-Anlage, binäre Daten für Inhalte und eine optionale Inhalts-ID akzeptiert werden, um sie als Inline-Anlage zu definieren. |
| EmailClient | Diese Klasse ist für sämtliche E-Mail-Funktionen erforderlich. Sie instanziieren sie mit Ihrer Verbindungszeichenfolge und verwenden sie zum Senden von E-Mail-Nachrichten. |
| E-Mail-Client-Optionen | Diese Klasse kann der EmailClient-Instanziierung für eine bestimmte API-Version hinzugefügt werden. |
| E-Mail-Inhalt | Diese Klasse enthält den Betreff und Text der E-Mail-Nachricht. Sie müssen mindestens eine der Inhaltsoptionen „PlainText“ oder „Html“ angeben. |
| EmailCustomHeader | Diese Klasse ermöglicht das Hinzufügen eines Name-Wert-Paars für einen benutzerdefinierten Header. Die Wichtigkeit von E-Mails kann auch über diese Header mithilfe des Headernamens „x-priority“ oder „x-msmail-priority“ angegeben werden. |
| E-Mail-Nachricht | Diese Klasse kombiniert Absender, Inhalt und Empfänger. Benutzerdefinierte Header, Anlagen und Antwort-E-Mail-Adressen können optional hinzugefügt werden. |
| E-Mail-Empfänger | Diese Klasse enthält Listen von EmailAddress-Objekten für Empfänger*innen der E-Mail-Nachricht, einschließlich optionaler Listen für CC- und BCC-Empfänger*innen. |
| EmailSendOperation | Diese Klasse stellt den asynchronen E-Mail-Sendevorgang dar und wird vom API-Aufruf des E-Mail-Sendens zurückgegeben. |
| ErgebnisDesEmailVersands | Diese Klasse enthält die Ergebnisse des E-Mail-Sendevorgangs. Es verfügt über eine Vorgangs-ID, einen Vorgangsstatus und ein Fehlerobjekt (falls zutreffend). |
EmailSendResult gibt den folgenden Status für den ausgeführten E-Mail-Vorgang zurück.
| Der Status | BESCHREIBUNG |
|---|---|
| Nicht gestartet | Wir senden diesen Status derzeit nicht von unserem Dienst. |
| Laufen | Der E-Mail-Sendevorgang wird derzeit ausgeführt und verarbeitet. |
| Erfolgreich | Der E-Mail-Sendevorgang wurde ohne Fehler abgeschlossen, und die E-Mail ist zur Zustellung freigegeben. Der detaillierte Status zur E-Mail-Übermittlung über diese Phase hinaus kann entweder über Azure Monitor oder über Azure Event Grid abgerufen werden. Informationen zum Abonnieren von E-Mail-Ereignissen |
| Fehlgeschlagen | Der E-Mail-Sendevorgang war nicht erfolgreich, und es ist ein Fehler aufgetreten. Die E-Mail wurde nicht gesendet. Das Ergebnis enthält ein Fehlerobjekt mit weiteren Details zum Fehlergrund. |
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Die aktuelle Version der .NET Core-Clientbibliothek für Ihr Betriebssystem.
- Eine E-Mail-Communication Service-Ressource wurde in Azure erstellt und steht mit einer bereitgestellten Domänen zur Verfügung Erste Schritte mit dem Erstellen einer E-Mail-Communication Service-Ressource
- Eine aktive Communication Services-Ressource, die mit der E-Mail-Domäne und einer Verbindungszeichenfolge verbunden ist. Beginnen Sie, indem Sie die E-Mail-Ressource mit der Kommunikationsressource verbinden
Um die Anleitungen in diesem Artikel zu befolgen, fallen in Ihrem Azure-Konto geringfügige Kosten von höchstens einigen wenigen Cent (USD) an.
Hinweis
Wir können auch eine E-Mail von unserer eigenen verifizierten Domäne senden. Hinzufügen benutzerdefinierter überprüfter Domänen zu Email Communication Service
Prüfen der Voraussetzungen
- Führen Sie in einem Terminal- oder Befehlsfenster den Befehl
dotnetaus, um sich zu vergewissern, dass die .NET-Clientbibliothek installiert ist. - Melden Sie sich zum Anzeigen der Ihrer E-Mail-Communication Service-Ressource zugeordneten Unterdomänen beim Azure-Portal an. Suchen Sie nach Ihrer E-Mail-Communication Service-Ressource, und öffnen Sie im linken Navigationsbereich die Registerkarte Domänen bereitstellen.
Erstellen einer neuen C#-Anwendung
Verwenden Sie in einem Konsolenfenster (z. B. cmd, PowerShell oder Bash) den Befehl dotnet new zum Erstellen einer neuen Konsolen-App mit dem Namen EmailQuickstart. Dieser Befehl erstellt ein einfaches „Hallo Welt“-C#-Projekt mit einer einzigen Quelldatei: Program.cs.
dotnet new console -o EmailQuickstart
Wechseln Sie zum neu erstellten App-Ordner, und verwenden Sie den Befehl dotnet build, um Ihre Anwendung zu kompilieren.
cd EmailQuickstart
dotnet build
Installieren des Pakets
Installieren Sie, während Sie sich noch im Anwendungsverzeichnis befinden, mithilfe des Befehls dotnet add package das .NET-Clientbibliothekspaket für E-Mail von Azure Communication Services.
dotnet add package Azure.Communication.Email
Erstellen des E-Mail-Clients mit Authentifizierung
Öffnen Sie Program.cs, und ersetzen Sie den vorhandenen Code durch folgendes, um Direktiven zum Einschließen des using Namespaces und einen Ausgangspunkt für die Ausführung für Ihr Programm hinzuzufügenAzure.Communication.Email.
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Azure;
using Azure.Communication.Email;
namespace SendEmail
{
internal class Program
{
static async Task Main(string[] args)
{
}
}
}
Sie haben einige Optionen für die Authentifizierung eines E-Mail-Clients:
Öffnen Sie Program.cs in einem Text-Editor, und ersetzen Sie den Inhalt der Methode Main durch Code, um ein EmailClient mit Ihrer Verbindungszeichenfolge zu initialisieren. Im folgenden Code wird die Verbindungszeichenfolge für die Ressource aus einer Umgebungsvariablen namens COMMUNICATION_SERVICES_CONNECTION_STRING abgerufen. Erfahren Sie, wie Sie die Verbindungszeichenfolge Ihrer Ressource verwalten.
// This code demonstrates how to fetch your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
EmailClient emailClient = new EmailClient(connectionString);
Asynchrones Senden von E-Mails und Abfragen des E-Mail-Sendestatus
Wenn Sie SendAsync mit Azure.WaitUntil.Startedaufrufen, kehrt die Methode nach dem Starten des Vorgangs zurück. Die Methode gibt ein Objekt zurück EmailSendOperation . Sie können die Methode aufrufen UpdateStatusAsync , um den Status des E-Mail-Vorgangs zu aktualisieren.
Das zurückgegebene EmailSendOperation Objekt enthält ein EmailSendStatus Objekt, das Folgendes enthält:
- Aktueller Status des E-Mail-Sendevorgangs.
- Ein Fehlerobjekt mit Fehlerdetails, wenn der aktuelle Status ein fehlerbehafteter Zustand ist.
//Replace with your domain and modify the content, recipient details as required
var subject = "Welcome to Azure Communication Service Email APIs.";
var htmlContent = "<html><body><h1>Quick send email test</h1><br/><h4>This email message is sent from Azure Communication Service Email.</h4><p>This mail was sent using .NET SDK!!</p></body></html>";
var sender = "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net";
var recipient = "emailalias@contoso.com";
/// Send the email message with WaitUntil.Started
EmailSendOperation emailSendOperation = await emailClient.SendAsync(
Azure.WaitUntil.Started,
sender,
recipient,
subject,
htmlContent);
/// Call UpdateStatus on the email send operation to poll for the status
/// manually.
try
{
while (true)
{
await emailSendOperation.UpdateStatusAsync();
if (emailSendOperation.HasCompleted)
{
break;
}
await Task.Delay(100);
}
if (emailSendOperation.HasValue)
{
Console.WriteLine($"Email queued for delivery. Status = {emailSendOperation.Value.Status}");
}
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Email send failed with Code = {ex.ErrorCode} and Message = {ex.Message}");
}
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");
Führen Sie die Anwendung mit dem Befehl dotnet run aus dem Anwendungsverzeichnis aus.
dotnet run
Beispielcode
Sie können die Beispiel-App von GitHub Azure Samples Email Sample Advanced herunterladen.
Problembehandlung
E-Mail-Zustellung
Zur Behebung von Problemen im Zusammenhang mit der E-Mail-Zustellung können Sie den Status der E-Mail-Zustellung abrufen, um Zustellungsdetails zu erfassen.
Wichtig
Die Erfolgsanzeige, die durch Abrufen des Status des Sendevorgangs zurückgegeben wird, bestätigt nur, dass die E-Mail zur Zustellung bereit ist. Weitere Informationen zum Status der Übermittlung am Empfängerende finden Sie in der Behandlung von E-Mail-Ereignissen.
E-Mail-Drosselung
Wenn Ihre Anwendung hängen bleibt, kann dies darauf zurückzuführen sein, dass E-Mails gedrosselt werden. Sie können die E-Mail-Drosselung durch Protokollierung oder die Implementierung einer benutzerdefinierten Richtlinie handhaben.
Hinweis
Dieser Sandkasten soll Entwicklern beim Erstellen der Anwendung helfen. Sie können eine schrittweise Erhöhung des Sendevolumens anfordern, sobald die Anwendung einsatzbereit ist. Übermitteln Sie eine Supportanfrage, um das von Ihnen gewünschte Sendelimit zu erhöhen, wenn Sie ein Nachrichtenvolumen senden müssen, das die Ratenbegrenzungen überschreitet.
Bereinigen von Azure Communication Service-Ressourcen
Wenn Sie ein Communication Services-Abonnement bereinigen und entfernen möchten, können Sie die Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Weitere Informationen zum Bereinigen von Ressourcen finden Sie hier.
Nächste Schritte
- Erfahren Sie, wie Sie E-Mail an mehrere Empfänger senden.
- Erfahren Sie, wie Sie E-Mails mit Anlagen senden.
- Machen Sie sich vertraut mit der E-Mail-Clientbibliothek