Szybki start: ręczne sondowania stanu wiadomości e-mail podczas wysyłania wiadomości e-mail
W tym przewodniku Szybki start dowiesz się, jak ręcznie sondować stan wiadomości e-mail podczas wysyłania wiadomości e-mail przy użyciu naszych zestawów SDK poczty e-mail.
Rozpocznij pracę z usługami Azure Communication Services przy użyciu biblioteki klienta poczty e-mail usługi Communication Services .NET w celu wysyłania wiadomości e-mail.
Napiwek
Rozpocznij wysyłanie wiadomości e-mail za pomocą usług Azure Communication Services, przechodząc bezpośrednio do przykładowego kodu podstawowego wysyłania wiadomości e-mail i zaawansowanego wysyłania wiadomości e-mail w usłudze GitHub.
Opis modelu obiektów poczty e-mail
Następujące klasy i interfejsy obsługują niektóre główne funkcje biblioteki klienta poczty e-mail usług Azure Communication Services dla języka C#.
Nazwa/nazwisko | opis |
---|---|
EmailAddress (Adres e-mail) | Ta klasa zawiera adres e-mail i opcję nazwy wyświetlanej. |
Dołączenie wiadomości e-mail | Ta klasa tworzy załącznik wiadomości e-mail, akceptując unikatowy identyfikator, ciąg typu MIME załącznika wiadomości e-mail, dane binarne zawartości i opcjonalny identyfikator zawartości, aby zdefiniować go jako załącznik wbudowany. |
EmailClient | Ta klasa jest wymagana dla wszystkich funkcji poczty e-mail. Utwórz wystąpienie za pomocą parametry połączenia i użyjesz go do wysyłania wiadomości e-mail. |
EmailClientOptions | Tę klasę można dodać do wystąpienia elementu EmailClient, aby określić określoną wersję interfejsu API. |
Wiadomość e-mailContent | Ta klasa zawiera temat i treść wiadomości e-mail. Musisz określić co najmniej jedną zawartość w postaci zwykłego tekstu lub html |
EmailCustomHeader | Ta klasa umożliwia dodanie pary nazw i wartości dla nagłówka niestandardowego. Ważność wiadomości e-mail można również określić za pomocą tych nagłówków przy użyciu nazwy nagłówka "x-priority" lub "x-msmail-priority" |
Wiadomość e-mail | Ta klasa łączy nadawcę, zawartość i adresatów. Niestandardowe nagłówki, załączniki i adresy e-mail odpowiedzi można również dodawać. |
Adresy e-mailRecipients | Ta klasa zawiera listy obiektów EmailAddress dla adresatów wiadomości e-mail, w tym opcjonalne listy dla adresatów CC & BCC. |
EmailSendOperation | Ta klasa reprezentuje asynchroniczną operację wysyłania wiadomości e-mail i jest zwracana z wywołania interfejsu API wysyłania wiadomości e-mail. |
EmailSendResult | Ta klasa zawiera wyniki operacji wysyłania wiadomości e-mail. Ma identyfikator operacji, stan operacji i obiekt błędu (jeśli ma to zastosowanie). |
Funkcja EmailSendResult zwraca następujący stan operacji poczty e-mail.
Stan | opis |
---|---|
Nierozpoczęte | Obecnie nie wysyłamy tego stanu z naszej usługi. |
Uruchomiono | Operacja wysyłania wiadomości e-mail jest obecnie w toku i jest przetwarzana. |
Powodzenie | Operacja wysyłania wiadomości e-mail została ukończona bez błędu i wiadomość e-mail jest obecnie dostępna do dostarczenia. Każdy szczegółowy stan dostarczania wiadomości e-mail poza tym etapem można uzyskać za pośrednictwem usługi Azure Monitor lub usługi Azure Event Grid. Dowiedz się, jak subskrybować zdarzenia e-mail |
Niepowodzenie | Operacja wysyłania wiadomości e-mail nie powiodła się i wystąpił błąd. Wiadomość e-mail nie została wysłana. Wynik zawiera obiekt błędu z bardziej szczegółowymi informacjami na temat przyczyny niepowodzenia. |
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Najnowsza wersja biblioteki klienta .NET Core dla systemu operacyjnego.
- Zasób usługi Azure Email Communication Services utworzony i gotowy z aprowizowaną domeną Rozpoczynanie pracy z tworzeniem zasobu komunikacji poczty e-mail
- Aktywny zasób usług komunikacyjnych połączony z domeną poczty e-mail i parametrami połączenia. Rozpocznij pracę, łącząc zasób poczty e-mail z zasobem komunikacji
Ukończenie tego przewodnika Szybki start wiąże się z niewielkim kosztem kilku centów USD lub mniej na koncie platformy Azure.
Uwaga
Możemy również wysłać wiadomość e-mail z własnej zweryfikowanej domeny. Dodaj niestandardowe zweryfikowane domeny do usługi komunikacji poczty e-mail.
Sprawdzanie wymagań wstępnych
- W terminalu lub oknie polecenia uruchom
dotnet
polecenie , aby sprawdzić, czy zainstalowano bibliotekę klienta platformy .NET. - Aby wyświetlić poddomeny skojarzone z zasobem usług komunikacji poczty e-mail, zaloguj się do witryny Azure Portal, znajdź zasób usług komunikacji poczty e-mail i otwórz kartę Aprowizacja domen w okienku nawigacji po lewej stronie.
Tworzenie nowej aplikacji w języku C#
W oknie konsoli (takim jak cmd, PowerShell lub Bash) użyj dotnet new
polecenia , aby utworzyć nową aplikację konsolową o nazwie EmailQuickstart
. To polecenie tworzy prosty projekt języka C# "Hello World" z jednym plikiem źródłowym: Program.cs.
dotnet new console -o EmailQuickstart
Zmień katalog na nowo utworzony folder aplikacji i użyj dotnet build
polecenia , aby skompilować aplikację.
cd EmailQuickstart
dotnet build
Instalowanie pakietu
Nadal w katalogu aplikacji zainstaluj bibliotekę klienta poczty e-mail usług Azure Communication Services dla pakietu .NET przy użyciu dotnet add package
polecenia .
dotnet add package Azure.Communication.Email
Tworzenie klienta poczty e-mail przy użyciu uwierzytelniania
Otwórz Program.cs i zastąp istniejący kod następującym kodem, aby dodać using
dyrektywy dotyczące dołączania Azure.Communication.Email
przestrzeni nazw i punktu początkowego do wykonania programu.
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)
{
}
}
}
Istnieje kilka różnych opcji uwierzytelniania klienta poczty e-mail:
Otwórz Program.cs w edytorze tekstów i zastąp treść Main
metody kodem, aby zainicjować element EmailClient
parametry połączenia. Poniższy kod pobiera parametry połączenia zasobu ze zmiennej środowiskowej o nazwie COMMUNICATION_SERVICES_CONNECTION_STRING
. Dowiedz się, jak zarządzać parametry połączenia zasobu.
// 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);
Wysyłanie wiadomości e-mail asynchronicznych i sondowanie stanu wysyłania wiadomości e-mail
Po wywołaniu metody SendAsync z elementem Azure.WaitUntil.Started metoda powraca po uruchomieniu operacji. Metoda zwraca obiekt EmailSendOperation. Możesz wywołać metodę UpdateStatusAsync, aby odświeżyć stan operacji poczty e-mail.
Zwrócony obiekt EmailSendOperation zawiera obiekt EmailSendStatus zawierający:
- Bieżący stan operacji Wyślij wiadomość e-mail.
- Obiekt błędu ze szczegółami niepowodzenia, jeśli bieżący stan jest w stanie niepowodzenia.
//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}");
Uruchom aplikację z katalogu aplikacji za dotnet run
pomocą polecenia .
dotnet run
Przykładowy kod
Przykładową aplikację można pobrać z usługi GitHub
Rozwiązywanie problemów
Dostarczanie wiadomości e-mail
Aby rozwiązać problemy związane z dostarczaniem wiadomości e-mail, możesz uzyskać stan dostarczania wiadomości e-mail w celu przechwycenia szczegółów dostawy.
Ważne
Wynik powodzenia zwrócony przez sondowanie stanu operacji wysyłania weryfikuje tylko fakt, że wiadomość e-mail została pomyślnie wysłana do dostarczenia. Aby uzyskać dodatkowe informacje o stanie dostawy na końcu adresata, należy odwołać się do sposobu obsługi zdarzeń poczty e-mail.
Ograniczanie poczty e-mail
Jeśli zobaczysz, że aplikacja zawiesza się, może to być spowodowane ograniczaniem wysyłania wiadomości e-mail. Można to obsłużyć za pomocą rejestrowania lub implementując zasady niestandardowe.
Uwaga
Ta konfiguracja piaskownicy ułatwia deweloperom rozpoczęcie tworzenia aplikacji. Możesz stopniowo żądać zwiększenia woluminu wysyłania, gdy aplikacja będzie gotowa do wygaśnięcia. Prześlij wniosek o pomoc techniczną, aby podnieść żądany limit wysyłania, jeśli potrzebujesz wysyłania liczby komunikatów przekraczających limity szybkości.
Czyszczenie zasobów usługi Azure Communication Service
Jeśli chcesz wyczyścić i usunąć subskrypcję usług Komunikacyjnych, możesz usunąć zasób lub grupę zasobów. Usunięcie grupy zasobów powoduje również usunięcie wszelkich innych skojarzonych z nią zasobów. Dowiedz się więcej o czyszczeniu zasobów.
Następne kroki
W tym przewodniku Szybki start przedstawiono sposób ręcznego sondowania stanu podczas wysyłania wiadomości e-mail przy użyciu usług Azure Communication Services.
Możesz również wykonać następujące czynności:
- Dowiedz się, jak wysyłać wiadomość e-mail do wielu adresatów
- Dowiedz się więcej o wysyłaniu wiadomości e-mail z załącznikami
- Zapoznaj się z biblioteką klienta poczty e-mail