Quickstart: Handmatig peilen naar de e-mailstatus bij het verzenden van e-mail
In deze quickstart leert u hoe u handmatig kunt peilen naar de e-mailstatus tijdens het verzenden van e-mail met behulp van onze E-mail-SDK's.
Ga aan de slag met Azure Communication Services met behulp van de Clientbibliotheek voor .NET-e-mail van Communication Services om e-mailberichten te verzenden.
Tip
Start uw e-mailverzendingservaring met Azure Communication Services door rechtstreeks over te slaan naar de voorbeeldcode Basic Email Verzenden en Geavanceerd e-mail verzenden op GitHub.
Informatie over het e-mailobjectmodel
De volgende klassen en interfaces verwerken enkele van de belangrijkste functies van de E-mailclientbibliotheek van Azure Communication Services voor C#.
Name | Beschrijving |
---|---|
EmailAddress | Deze klasse bevat een e-mailadres en een optie voor een weergavenaam. |
E-mailbijlage | Met deze klasse wordt een e-mailbijlage gemaakt door een unieke id, MIME-type tekenreeks voor e-mailbijlagen, binaire gegevens voor inhoud en een optionele inhouds-id te accepteren om deze te definiëren als een inlinebijlage. |
EmailClient | Deze klasse is nodig voor alle e-mailfunctionaliteit. U maakt een instantie met uw verbindingsreeks en gebruikt deze om e-mailberichten te verzenden. |
EmailClientOptions | Deze klasse kan worden toegevoegd aan de instantie van EmailClient om een specifieke API-versie te targeten. |
EmailContent | Deze klasse bevat het onderwerp en de hoofdtekst van het e-mailbericht. U moet ten minste één van plaintext- of HTML-inhoud opgeven |
EmailCustomHeader | Met deze klasse kunt u een naam- en waardepaar toevoegen voor een aangepaste header. Het belang van e-mail kan ook worden opgegeven via deze headers met behulp van de headernaam 'x-priority' of 'x-msmail-priority' |
EmailMessage | Deze klasse combineert de afzender, inhoud en geadresseerden. Aangepaste kopteksten, bijlagen en e-mailadressen voor antwoorden kunnen ook worden toegevoegd. |
EmailRecipients | Deze klasse bevat lijsten met EmailAddress-objecten voor geadresseerden van het e-mailbericht, inclusief optionele lijsten voor CC & BCC-geadresseerden. |
EmailSendOperation | Deze klasse vertegenwoordigt de asynchrone verzendbewerking voor e-mail en wordt geretourneerd vanuit de API-aanroep voor e-mail verzenden. |
EmailSendResult | Deze klasse bevat de resultaten van de verzendbewerking voor e-mail. Het heeft een bewerkings-id, de bewerkingsstatus en het foutobject (indien van toepassing). |
EmailSendResult retourneert de volgende status van de e-mailbewerking die is uitgevoerd.
-Status | Beschrijving |
---|---|
NotStarted | Deze status wordt momenteel niet verzonden vanuit onze service. |
Wordt uitgevoerd | De verzendbewerking voor e-mail wordt momenteel uitgevoerd en verwerkt. |
Geslaagd | De verzendbewerking voor e-mail is zonder fouten voltooid en het e-mailbericht is niet bezorgd. Elke gedetailleerde status van de e-mailbezorging buiten deze fase kan worden verkregen via Azure Monitor of via Azure Event Grid. Meer informatie over het abonneren op e-mailevenementen |
Mislukt | De verzendbewerking voor e-mail is mislukt en er is een fout opgetreden. Het e-mailbericht is niet verzonden. Het resultaat bevat een foutobject met meer informatie over de reden voor de fout. |
Vereisten
- Een Azure-account met een actief abonnement. Gratis een account maken
- De nieuwste versie van .NET Core-clientbibliotheek voor uw besturingssysteem.
- Een Azure Email Communication Services-resource die is gemaakt en gereed is met een ingericht domein Aan de slag met het maken van een e-mailcommunicatieresource
- Een actieve Communication Services-resource die is verbonden met e-maildomein en een verbindingsreeks. Aan de slag door e-mailresource te verbinden met een communicatieresource
Voor het voltooien van deze quickstart worden kleine kosten in rekening gebracht van een paar dollarcenten of minder in uw Azure-account.
Notitie
We kunnen ook een e-mail verzenden vanuit ons eigen geverifieerde domein. Aangepaste geverifieerde domeinen toevoegen aan e-mailcommunicatieservice.
Controle van vereisten
- Voer in een terminal- of opdrachtvenster de opdracht
dotnet
uit om te controleren of de .NET-clientbibliotheek is geïnstalleerd. - Als u de subdomeinen wilt weergeven die zijn gekoppeld aan uw Resource voor e-mailcommunicatieservices, meldt u zich aan bij Azure Portal, zoekt u uw Resource voor e-mailcommunicatieservices en opent u het tabblad Domeinen inrichten in het linkernavigatiedeelvenster.
Een nieuwe C#-toepassing maken
Gebruik in een consolevenster (zoals cmd, PowerShell of Bash) de opdracht dotnet new
om een nieuwe console-app te maken met de naam EmailQuickstart
. Met deze opdracht maakt u een eenvoudig C#-project Hallo wereld met één bronbestand: Program.cs.
dotnet new console -o EmailQuickstart
Wijzig uw map in de zojuist gemaakte app-map en gebruik de opdracht dotnet build
om uw toepassing te compileren.
cd EmailQuickstart
dotnet build
Het pakket installeren
Terwijl u zich nog in de toepassingsmap bevindt, installeert u de e-mailclientbibliotheek van Azure Communication Services voor .NET-pakket met behulp van de dotnet add package
opdracht.
dotnet add package Azure.Communication.Email
De e-mailclient maken met verificatie
Open Program.cs en vervang de bestaande code door het volgende om instructies toe te voegen voor het toevoegen using
van de Azure.Communication.Email
naamruimte en een beginpunt voor uitvoering voor uw programma.
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)
{
}
}
}
Er zijn enkele verschillende opties beschikbaar voor het verifiëren van een e-mailclient:
Open Program.cs in een teksteditor en vervang de hoofdtekst van de Main
-methode door code om een EmailClient
te initialiseren met uw verbindingsreeks. Met de volgende code wordt de verbindingsreeks voor de resource opgehaald uit een omgevingsvariabele met de naam COMMUNICATION_SERVICES_CONNECTION_STRING
. Meer informatie over het beheren van de verbindingsreeks van uw resource.
// 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);
E-mail asynchroon verzenden en peilen voor de e-mailstatus verzenden
Wanneer u SendAsync aanroept met Azure.WaitUntil.Started, keert uw methode terug na het starten van de bewerking. De methode retourneert het Object EmailSendOperation. U kunt de methode UpdateStatusAsync aanroepen om de status van de e-mailbewerking te vernieuwen.
Het geretourneerde EmailSendOperation-object bevat een EmailSendStatus-object met:
- Huidige status van de bewerking E-mail verzenden.
- Een foutobject met foutdetails als de huidige status de status Mislukt heeft.
//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}");
Voer de toepassing uit vanuit uw toepassingsmap met de opdracht dotnet run
.
dotnet run
Voorbeeldcode
U kunt de voorbeeld-app downloaden uit GitHub.
Probleemoplossing
E-mailbezorging
Als u problemen met betrekking tot e-mailbezorging wilt oplossen, kunt u de status van de e-mailbezorging ophalen om details van de bezorging vast te leggen.
Belangrijk
Het resultaat dat is geretourneerd door te peilen naar de status van de verzendbewerking, valideert alleen het feit dat het e-mailbericht is verzonden voor bezorging. Als u meer informatie wilt over de status van de bezorging aan het einde van de geadresseerde, moet u verwijzen naar het afhandelen van e-mailevenementen.
Beperking van e-mail
Als u ziet dat uw toepassing vasthangt, kan dit komen doordat het verzenden van e-mail wordt beperkt. U kunt dit afhandelen via logboekregistratie of door een aangepast beleid te implementeren.
Notitie
Deze sandbox-installatie is bedoeld om ontwikkelaars te helpen bij het bouwen van de toepassing. U kunt geleidelijk aanvragen om het verzendvolume te verhogen zodra de toepassing klaar is om live te gaan. Dien een ondersteuningsaanvraag in om de gewenste verzendlimiet te verhogen als u een aantal berichten wilt verzenden dat de frequentielimieten overschrijdt.
Azure Communication Service-resources opschonen
Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van resources.
Volgende stappen
In deze quickstart hebt u geleerd hoe u handmatig kunt peilen naar status bij het verzenden van e-mail met behulp van Azure Communication Services.
U wilt mogelijk ook:
- Meer informatie over het verzenden van e-mail naar meerdere geadresseerden
- Meer informatie over het verzenden van e-mail met bijlagen
- Vertrouwd raken met de e-mailclientbibliotheek