Rychlý start: Jak odeslat e-mail pomocí Azure Communication Services
Poznámka:
Podělte se s námi o své nápady a zpětnou vazbu o službě Azure Communication Services tím, že si probereme tento krátký průzkum.
Tento rychlý start popisuje, jak odesílat e-maily pomocí našich e-mailových sad SDK.
Začněte se službou Azure Communication Services pomocí služby Communication Services Try Email k odesílání e-mailových zpráv.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Nejnovější verze klientské knihovny .NET Core pro váš operační systém.
- Prostředek služby Azure Email Communication Services vytvořený a připravený se zřízenou doménou Začínáme s vytvářením prostředku pro e-mailovou komunikaci
- Aktivní prostředek Komunikační služby připojený k e-mailové doméně. Začínáme připojením e-mailového prostředku pomocí komunikačního prostředku
Dokončením tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.
Odeslání e-mailu pomocí try Email
Vyzkoušejte e-mail, který vám pomůže začít odesílat e-maily požadovaným příjemcům pomocí služeb Azure Communication Services a také ověřit konfiguraci aplikace pro odesílání e-mailů. Pomůže vám také rychle začít s vývojem e-mailových oznámení pomocí fragmentu kódu v preferovaném jazyce.
Odeslání zprávy příjemci a zadání předmětu a textu zprávy
Na stránce přehledu zřízeného prostředku služby Azure Communication Service klikněte na tlačítko Vyzkoušet e-mail na levém navigačním panelu v části E-mail .
V rozevíracím seznamu vyberte jednu z ověřených domén.
Vytvoření e-mailu k odeslání
- Zadejte e-mailovou adresu příjemce.
- Zadat předmět
- Napsání textu e-mailu
Klikněte na Odeslat.
E-mail byl úspěšně odeslán.
Teď můžete také zkopírovat ukázkový fragment kódu a odeslat e-mail, který použijete v ukázkovém projektu k odesílání oznámení.
Fragment kódu e-mailu je teď připravený k použití v projektu oznámení.
Začínáme se službou Azure Communication Services pomocí rozšíření komunikace Rozhraní příkazového řádku Azure k odesílání e-mailových zpráv
Dokončením tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Prostředek Azure Email Communication Services vytvořený a připravený se zřízenou doménou. Začínáme s vytvářením prostředku pro e-mailovou komunikaci
- Aktivní prostředek služby Azure Communication Services připojený k e-mailové doméně a jeho připojovací řetězec. Začněte tím, že připojíte prostředek komunikace e-mailu s prostředkem komunikace Azure.
- Nejnovější Azure CLI.
Kontrola požadovaných součástí
- V terminálu nebo příkazovém okně spusťte
az --version
příkaz a zkontrolujte, jestli jsou nainstalované Rozhraní příkazového řádku Azure a rozšíření komunikace. - Pokud chcete zobrazit domény ověřené pomocí vašeho prostředku e-mailové komunikace, přihlaste se k webu Azure Portal. Vyhledejte prostředek e-mailové komunikace a v levém navigačním podokně otevřete kartu Zřizovací domény .
Nastavení
Přidání rozšíření
Pomocí příkazu přidejte rozšíření Azure Communication Services pro Azure CLI az extension
.
az extension add --name communication
Přihlášení k Azure CLI
Musíte se přihlásit k Azure CLI. Můžete se přihlásit spuštěním az login
příkazu z terminálu a zadat své přihlašovací údaje.
Uložení připojovací řetězec do proměnné prostředí
Proměnnou AZURE_COMMUNICATION_CONNECTION_STRING
prostředí můžete nakonfigurovat tak, aby používala operace klíčů Azure CLI, aniž byste museli předávat --connection_string
připojovací řetězec. Pokud chcete nakonfigurovat proměnnou prostředí, otevřete okno konzoly a na následujících kartách vyberte operační systém. Nahraďte <connectionString>
skutečnými připojovací řetězec.
Poznámka:
Neukládejte připojovací řetězec jako nešifrovanou proměnnou prostředí pro produkční prostředí. To je určené jenom pro účely testování. V produkčních prostředích byste měli vygenerovat nové připojovací řetězec. Doporučujeme vám šifrovat připojovací řetězec a pravidelně je měnit.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
Po přidání proměnné prostředí možná bude nutné restartovat všechny spuštěné programy, které budou potřebovat číst tuto proměnnou prostředí, a to včetně okna konzoly. Pokud například jako editor používáte Sadu Visual Studio, restartujte sadu Visual Studio před spuštěním příkladu.
Odeslání e-mailové zprávy
az communication email send
--connection-string "yourConnectionString"
--sender "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
--to "<emailalias@emaildomain.com>"
--subject "Welcome to Azure Communication Services Email" --text "This email message is sent from Azure Communication Services Email using Azure CLI."
Proveďte tyto nahrazení v kódu:
- Nahraďte
<yourConnectionString>
připojovací řetězec. - Nahraďte
<emailalias@emaildomain.com>
e-mailovou adresou, na kterou chcete poslat zprávu. - Nahraďte
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
adresou MailFrom vaší ověřené domény.
Výše uvedený příkaz také provede dotazování na id zprávy a vrátí stav doručení e-mailu. Stav může být jeden z následujících:
Název stavu | Popis |
---|---|
NotStarted | V tuto chvíli tento stav neodesíláme z naší služby. |
Spuštěno | Právě probíhá a zpracovává se operace odeslání e-mailu. |
Úspěšný | Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí. |
Neúspěšný | Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání. |
Volitelné parametry
V Azure CLI jsou k dispozici následující volitelné parametry.
--html
místo textu e-mailu html lze použít--text
.--importance
nastaví typ důležitosti e-mailu. Známé hodnoty jsou: vysoká, normální a nízká. Výchozí hodnota je normální.--to
nastaví seznam příjemců e-mailu.--cc
nastaví e-mailové adresy pro kopírování uhlíku.--bcc
nastaví e-mailové adresy pro slepou kopii.--reply-to
nastaví e-mailovou adresu odpovědět.--disable-tracking
označuje, jestli by pro tuto žádost mělo být zakázáno sledování zapojení uživatelů.--attachments
nastaví seznam e-mailových příloh.--attachment-types
nastaví seznam typů příloh e-mailu ve stejném pořadí jako přílohy.
Můžete také použít seznam příjemců s --cc
podobnými a --bcc
podobnými --to
. Musí existovat alespoň jeden příjemce nebo --to
--cc
--bcc
.
Začněte se službou Azure Communication Services pomocí e-mailové klientské knihovny komunikačních služeb C# k odesílání e-mailových zpráv.
Tip
Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.
Principy modelu objektu e-mailu
Následující třídy a rozhraní zpracovávají některé z hlavních funkcí e-mailové knihovny e-mailových služeb Azure pro C#.
Název | Popis |
---|---|
EmailAddress | Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména. |
Připojení e-mailu | Tato třída vytvoří e-mailovou přílohu přijetím jedinečného ID, řetězcem typu MIME přílohy e-mailu, binárními daty pro obsah a volitelným ID obsahu, které ji definuje jako vloženou přílohu. |
EmailClient | Tato třída je potřebná pro všechny funkce e-mailu. Vytvoříte instanci s připojovací řetězec a použijete ji k odesílání e-mailových zpráv. |
EmailClientOptions | Tuto třídu je možné přidat do instance EmailClient pro cílení na konkrétní verzi rozhraní API. |
EmailContent | Tato třída obsahuje předmět a text e-mailové zprávy. Musíte zadat alespoň jeden z obsahu PlainText nebo Html. |
EmailCustomHeader | Tato třída umožňuje přidání dvojice názvů a hodnot pro vlastní hlavičku. Důležitost e-mailu lze také zadat prostřednictvím těchto hlaviček pomocí názvu záhlaví x-priority nebo x-msmail-priority. |
EmailMessage | Tato třída kombinuje odesílatele, obsah a příjemce. Můžete také přidat vlastní záhlaví, přílohy a e-mailové adresy pro odpovědi. |
E-mailRecipients | Tato třída obsahuje seznamy objektů EmailAddress pro příjemce e-mailové zprávy, včetně volitelných seznamů pro příjemce kopie a skryté kopie. |
EmailSendOperation | Tato třída představuje asynchronní operaci odeslání e-mailu a je vrácena z volání rozhraní API pro odesílání e-mailů. |
EmailSendResult | Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici). |
Funkce EmailSendResult vrátí následující stav provedené e-mailové operace.
Status | Popis |
---|---|
NotStarted | V tuto chvíli tento stav neodesíláme z naší služby. |
Spuštěno | Právě probíhá a zpracovává se operace odeslání e-mailu. |
Úspěšný | Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí. |
Neúspěšný | Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání. |
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Nejnovější verze klientské knihovny .NET Core pro váš operační systém.
- Prostředek služby Azure Email Communication Services vytvořený a připravený se zřízenou doménou Začínáme s vytvářením prostředku pro e-mailovou komunikaci
- Aktivní prostředek komunikační služby připojený k e-mailové doméně a připojovacímu řetězci. Začínáme připojením e-mailového prostředku pomocí komunikačního prostředku
Dokončením tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.
Poznámka:
Můžeme také poslat e-mail z naší vlastní ověřené domény. Přidání vlastních ověřených domén do e-mailové komunikační služby
Kontrola požadovaných součástí
- V terminálu nebo příkazovém okně spusťte
dotnet
příkaz a zkontrolujte, jestli je nainstalovaná klientská knihovna .NET. - Pokud chcete zobrazit subdomény přidružené k vašemu prostředku e-mailové komunikační služby, přihlaste se k webu Azure Portal, vyhledejte prostředek e-mailové komunikační služby a v levém navigačním podokně otevřete kartu Zřizovací domény .
Vytvoření nové aplikace jazyka C#
V okně konzoly (například cmd, PowerShell nebo Bash) pomocí dotnet new
příkazu vytvořte novou konzolovou aplikaci s názvem EmailQuickstart
. Tento příkaz vytvoří jednoduchý projekt "Hello World" C# s jedním zdrojovým souborem: Program.cs.
dotnet new console -o EmailQuickstart
Změňte adresář na nově vytvořenou složku aplikace a pomocí dotnet build
příkazu zkompilujte aplikaci.
cd EmailQuickstart
dotnet build
Nainstalujte balíček .
V adresáři aplikace nainstalujte pomocí příkazu klientskou knihovnu e-mailových služeb Azure Communication Services pro balíček dotnet add package
.NET.
dotnet add package Azure.Communication.Email
Vytvoření e-mailového klienta s ověřováním
Otevřete Program.cs a nahraďte stávající kód následujícími direktivami pro přidání using
direktiv pro zahrnutí Azure.Communication.Email
oboru názvů a výchozího bodu pro spuštění 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)
{
}
}
}
Pro ověřování e-mailového klienta je k dispozici několik různých možností:
Otevřete Program.cs v textovém editoru a nahraďte text Main
metody kódem, který inicializuje EmailClient
připojovací řetězec. Následující kód načte připojovací řetězec pro prostředek z proměnné prostředí s názvem COMMUNICATION_SERVICES_CONNECTION_STRING
. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.
// 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);
Poznámka:
K odeslání e-mailu doporučujeme použít ruční dotazování (odeslat e-mail s asynchronním dotazováním stavu).
Základní odesílání e-mailů
Vytvoření e-mailové zprávy
Pokud chcete poslat e-mailovou zprávu, musíte:
- Definujte předmět a text e-mailu.
- Definujte adresu odesílatele. Vytvořte e-mailovou zprávu s informacemi odesílatele, které získáte z vaší ověřené domény adresu MailFrom.
- Definujte adresu příjemce.
- Volejte metodu SendAsync. Přidejte tento kód na konec
Main
metody v Program.cs:
Nahraďte podrobnosti o vaší doméně a podle potřeby upravte obsah, podrobnosti o příjemci.
//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";
Odeslání a získání stavu odeslání e-mailu
Když zavoláte SendAsync s Azure.WaitUntil.Started, vaše metoda se vrátí zpět po spuštění operace. Metoda vrátí EmailSendOperation objekt. K aktualizaci stavu e-mailové operace můžete volat metodu UpdateStatusAsync.
Vrácený Objekt EmailSendOperation obsahuje Objekt EmailSendStatus, který obsahuje:
- Aktuální stav operace Odeslání e-mailu
- Objekt chyby s podrobnostmi o selhání, pokud je aktuální stav ve stavu selhání.
/// 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}");
Spusťte aplikaci z adresáře aplikace pomocí dotnet run
příkazu.
dotnet run
Ukázkový kód
Ukázkovou aplikaci si můžete stáhnout z GitHubu.
Začněte se službou Azure Communication Services pomocí e-mailové knihovny JS komunikačních služeb k odesílání e-mailových zpráv.
Tip
Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.
Principy e-mailového objektového modelu
Následující třídy a rozhraní zpracovávají některé z hlavních funkcí e-mailové knihovny e-mailových služeb Azure pro JavaScript.
Název | Popis |
---|---|
EmailAddress | Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména. |
Připojení e-mailu | Tato třída vytvoří e-mailovou přílohu přijetím jedinečného ID, řetězcem typu MIME přílohy e-mailu, binárními daty pro obsah a volitelným ID obsahu, které ji definuje jako vloženou přílohu. |
EmailClient | Tato třída je potřebná pro všechny funkce e-mailu. Vytvoříte instanci s připojovací řetězec a použijete ji k odesílání e-mailových zpráv. |
EmailClientOptions | Tuto třídu je možné přidat do instance EmailClient pro cílení na konkrétní verzi rozhraní API. |
EmailContent | Tato třída obsahuje předmět a text e-mailové zprávy. Musíte zadat alespoň jeden obsah PlainText nebo Html. |
EmailCustomHeader | Tato třída umožňuje přidání dvojice názvů a hodnot pro vlastní hlavičku. Důležitost e-mailu lze také zadat prostřednictvím těchto hlaviček pomocí názvu záhlaví x-priority nebo x-msmail-priority. |
EmailMessage | Tato třída kombinuje odesílatele, obsah a příjemce. Můžete také přidat vlastní záhlaví, přílohy a e-mailové adresy pro odpovědi. |
E-mailRecipients | Tato třída obsahuje seznamy objektů EmailAddress pro příjemce e-mailové zprávy, včetně volitelných seznamů pro příjemce kopie a skryté kopie. |
EmailSendResult | Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici). |
EmailSendStatus | Tato třída představuje sadu stavů operace odeslání e-mailu. |
Funkce EmailSendResult vrátí následující stav provedené e-mailové operace.
Název stavu | Popis |
---|---|
isStarted | Vrátí hodnotu true, pokud právě probíhá operace odeslání e-mailu a zpracovává se. |
isCompleted | Vrátí hodnotu true, pokud se operace odeslání e-mailu dokončila bez chyby a e-mail je mimo doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí. |
result | Vlastnost, která existuje, pokud operace odeslání e-mailu skončila. |
chyba | Vlastnost, která existuje, pokud operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání. |
Požadavky
- Node.js (~14).
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Prostředek Azure Email Communication Services vytvořený a připravený se zřízenou doménou. Začínáme s vytvářením prostředku pro e-mailovou komunikaci
- Aktivní prostředek služby Azure Communication Services připojený k e-mailové doméně a jeho připojovací řetězec. Začněte tím, že připojíte prostředek komunikace e-mailu s prostředkem komunikace Azure.
Dokončením tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.
Poznámka:
Můžeme také poslat e-mail z naší vlastní ověřené domény. Přidání vlastních ověřených domén do e-mailové komunikační služby
Kontrola požadovaných součástí
- V terminálu nebo příkazovém okně spusťte kontrolu
node --version
, jestli je nainstalovaná Node.js. - Pokud chcete zobrazit domény ověřené prostředkem e-mailové komunikační služby, přihlaste se k webu Azure Portal, vyhledejte prostředek e-mailové komunikační služby a v levém navigačním podokně otevřete kartu Zřizovat domény .
Nastavení aplikačního prostředí
Vytvoření nové aplikace Node.js
Nejprve otevřete terminál nebo příkazové okno, vytvořte pro aplikaci nový adresář a přejděte na něj.
mkdir email-quickstart && cd email-quickstart
Spuštěním příkazu npm init -y
vytvořte soubor package.json s výchozím nastavením.
npm init -y
Pomocí textového editoru vytvořte soubor s názvem send-email.js v kořenovém adresáři projektu. Změňte vlastnost main v package.json na send-email.js. Následující část ukazuje, jak přidat zdrojový kód pro tento rychlý start do nově vytvořeného souboru.
Nainstalujte balíček .
npm install
Pomocí příkazu nainstalujte klientskou knihovnu e-mailových služeb Azure Communication Services pro JavaScript.
npm install @azure/communication-email --save
Tato --save
možnost vypíše knihovnu jako závislost v souboru package.json .
Vytvoření e-mailového klienta s ověřováním
Pro ověřování e-mailového klienta je k dispozici několik různých možností:
Naimportujte e-mailový klient z klientské knihovny a vytvořte instanci pomocí svého připojovací řetězec.
Následující kód načte připojovací řetězec prostředku z proměnné prostředí pojmenované COMMUNICATION_SERVICES_CONNECTION_STRING
pomocí balíčku dotenv. npm install
Pomocí příkazu nainstalujte balíček dotenv. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.
npm install dotenv
Do send-email.js přidejte následující kód:
const { EmailClient } = require("@azure/communication-email");
require("dotenv").config();
// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
const emailClient = new EmailClient(connectionString);
Pro zjednodušení tento rychlý start používá připojovací řetězec, ale v produkčních prostředích doporučujeme používat instanční objekty.
Základní odesílání e-mailů
Odeslání e-mailové zprávy
Pokud chcete odeslat e-mailovou beginSend
zprávu, zavolejte funkci z EmailClient. Tato metoda vrátí poller, který zkontroluje stav operace a po dokončení načte výsledek.
async function main() {
const POLLER_WAIT_TIME = 10
try {
const message = {
senderAddress: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
content: {
subject: "Welcome to Azure Communication Services Email",
plainText: "This email message is sent from Azure Communication Services Email using the JavaScript SDK.",
},
recipients: {
to: [
{
address: "<emailalias@emaildomain.com>",
displayName: "Customer Name",
},
],
},
};
const poller = await emailClient.beginSend(message);
if (!poller.getOperationState().isStarted) {
throw "Poller was not started."
}
let timeElapsed = 0;
while(!poller.isDone()) {
poller.poll();
console.log("Email send polling in progress");
await new Promise(resolve => setTimeout(resolve, POLLER_WAIT_TIME * 1000));
timeElapsed += 10;
if(timeElapsed > 18 * POLLER_WAIT_TIME) {
throw "Polling timed out.";
}
}
if(poller.getResult().status === KnownEmailSendStatus.Succeeded) {
console.log(`Successfully sent the email (operation id: ${poller.getResult().id})`);
}
else {
throw poller.getResult().error;
}
} catch (e) {
console.log(e);
}
}
main();
Proveďte tyto nahrazení v kódu:
- Nahraďte
<emailalias@emaildomain.com>
e-mailovou adresou, na kterou chcete poslat zprávu. - Nahraďte
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
adresou MailFrom vaší ověřené domény.
Spuštění kódu
pomocí příkazu node spusťte kód, který jste přidali do souboru send-email.js.
node ./send-email.js
Ukázkový kód
Ukázkovou aplikaci si můžete stáhnout z GitHubu.
Začínáme se službou Azure Communication Services pomocí e-mailové sady SDK pro komunikační služby Java k odesílání e-mailových zpráv
Tip
Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.
Principy e-mailového objektového modelu
Následující třídy a rozhraní zpracovávají některé z hlavních funkcí e-mailové sady SDK služby Azure Communication Services pro Python.
Název | Popis |
---|---|
EmailAddress | Tato třída obsahuje e-mailovou adresu a možnost zobrazovaného jména. |
Připojení e-mailu | Toto rozhraní vytvoří e-mailovou přílohu tím, že přijme jedinečné ID, řetězec typu MIME přílohy e-mailu, řetězec bajtů obsahu a volitelné ID obsahu, které ji definuje jako vloženou přílohu. |
EmailClient | Tato třída je potřebná pro všechny funkce e-mailu. Vytvoříte instanci s připojovací řetězec a použijete ji k odesílání e-mailových zpráv. |
EmailMessage | Tato třída kombinuje odesílatele, obsah a příjemce. Můžete také přidat vlastní záhlaví, přílohy a e-mailové adresy pro odpovědi. |
EmailSendResult | Tato třída obsahuje výsledky operace odeslání e-mailu. Má ID operace, stav operace a objekt chyby (pokud je k dispozici). |
EmailSendStatus | Tato třída představuje sadu stavů operace odeslání e-mailu. |
Funkce EmailSendResult vrátí následující stav provedené e-mailové operace.
Název stavu | Popis |
---|---|
NOT_STARTED | V tuto chvíli tento stav neodesíláme z naší služby. |
IN_PROGRESS | Právě probíhá a zpracovává se operace odeslání e-mailu. |
SUCCESSFULLY_COMPLETED | Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí. |
CHYBA | Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání. |
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Java Development Kit (JDK) verze 8 nebo novější.
- Apache Maven
- Nasazený prostředek komunikační služby a připojovací řetězec. Podrobnosti najdete v tématu Vytvoření prostředku komunikační služby.
- Vytvořte prostředek Azure Email Communication Services, který začne odesílat e-maily.
- Nastavení spravované identity pro vývojové prostředí najdete v tématu Autorizace přístupu pomocí spravované identity.
Při dokončení tohoto rychlého zprovoznění vzniknou ve vašem účtu Azure náklady ve výši několika centů USD (nebo menší).
Poznámka:
Můžeme také odeslat e-mail z naší vlastní ověřené domény Přidat vlastní ověřené domény do e-mailové komunikační služby.
Kontrola požadovaných součástí
- V terminálu nebo příkazovém okně spusťte kontrolu
mvn -v
, jestli je maven nainstalovaný. - Pokud chcete zobrazit domény ověřené pomocí vašeho prostředku e-mailové komunikace, přihlaste se k webu Azure Portal. Vyhledejte prostředek e-mailové komunikace a v levém navigačním podokně otevřete kartu Zřizovací domény .
Nastavení aplikačního prostředí
Pokud chcete nastavit prostředí pro odesílání e-mailů, postupujte podle kroků v následujících částech.
Vytvoření nové aplikace v Javě
Otevřete terminál nebo příkazové okno a přejděte do adresáře, do kterého chcete vytvořit aplikaci v Javě. Spuštěním následujícího příkazu vygenerujte projekt Java ze šablony maven-archetype-quickstart.
mvn archetype:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart"
Cíl generate
vytvoří adresář se stejným názvem jako artifactId
hodnota. V tomto adresáři obsahuje adresář src/main/java zdrojový kód projektu, adresář src/test/java obsahuje zdroj testů a soubor pom.xml je projektový objektový model (POM).
Nainstalujte balíček .
Otevřete soubor pom.xml v textovém editoru. Do skupiny závislostí přidejte následující prvek závislosti.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-email</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
Nastavení architektury aplikace
Otevřete /src/main/java/com/communication/quickstart/App.java v textovém editoru, přidejte direktivy importu System.out.println("Hello world!");
a odeberte příkaz:
package com.communication.quickstart;
import com.azure.communication.email.models.*;
import com.azure.communication.email.*;
import com.azure.core.util.polling.*;
public class App
{
public static void main( String[] args )
{
// Quickstart code goes here.
}
}
Vytvoření e-mailového klienta s ověřováním
Pro ověřování e-mailového klienta je k dispozici několik různých možností.
Pokud chcete ověřit klienta, vytvořte instanci EmailClient
s připojovací řetězec. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku. Klienta můžete také inicializovat pomocí libovolného vlastního klienta HTTP, který implementuje com.azure.core.http.HttpClient
rozhraní.
Pokud chcete vytvořit instanci synchronního klienta, přidejte do main
metody následující kód:
// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";
EmailClient emailClient = new EmailClientBuilder()
.connectionString(connectionString)
.buildClient();
Pokud chcete vytvořit instanci asynchronního klienta, přidejte do main
metody následující kód:
// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";
EmailAsyncClient emailClient = new EmailClientBuilder()
.connectionString(connectionString)
.buildAsyncClient();
Pro zjednodušení tento rychlý start používá připojovací řetězec, ale v produkčních prostředích doporučujeme používat instanční objekty.
Základní odesílání e-mailů
E-mailovou zprávu lze vytvořit pomocí objektu EmailMessage
v sadě SDK.
EmailMessage message = new EmailMessage()
.setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
.setToRecipients("<emailalias@emaildomain.com>")
.setSubject("Welcome to Azure Communication Services Email")
.setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.");
Proveďte tyto nahrazení v kódu:
- Nahraďte
<emailalias@emaildomain.com>
e-mailovou adresou, na kterou chcete poslat zprávu. - Nahraďte
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
adresou MailFrom vaší ověřené domény.
Chcete-li odeslat e-mailovou beginSend
zprávu, zavolejte funkci z funkce EmailClient
.
Volání beginSend
synchronizačního klienta vrátí SyncPoller
objekt, který se dá použít ke kontrole stavu operace a načtení výsledku po dokončení operace. Všimněte si, že počáteční požadavek na odeslání e-mailu se odešle hned po beginSend
zavolání metody. Odeslání e-mailu je dlouhotrvající operace. Je důležité poznamenat, že getFinalResult()
metoda na poller je blokující operace, dokud se nedosáhl stav terminálu (SUCCESSFULLY_COMPLETED
nebo FAILED
). Doporučenou metodou je provést ruční dotazování v intervalu, který je vhodný pro potřeby vaší aplikace, jak je znázorněno v ukázce níže.
try
{
SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null); // This will send out the initial request to send an email
PollResponse<EmailSendResult> pollResponse = null;
Duration timeElapsed = Duration.ofSeconds(0);
Duration POLLER_WAIT_TIME = Duration.ofSeconds(10);
// Polling is done manually to avoid blocking the application in case of an error
while (pollResponse == null
|| pollResponse.getStatus() == LongRunningOperationStatus.NOT_STARTED
|| pollResponse.getStatus() == LongRunningOperationStatus.IN_PROGRESS)
{
pollResponse = poller.poll();
System.out.println("Email send poller status: " + pollResponse.getStatus());
Thread.sleep(POLLER_WAIT_TIME.toMillis());
timeElapsed = timeElapsed.plus(POLLER_WAIT_TIME);
if (timeElapsed.compareTo(POLLER_WAIT_TIME.multipliedBy(18)) >= 0)
{
throw new RuntimeException("Polling timed out.");
}
}
if (poller.getFinalResult().getStatus() == EmailSendStatus.SUCCEEDED)
{
System.out.printf("Successfully sent the email (operation id: %s)", poller.getFinalResult().getId());
}
else
{
throw new RuntimeException(poller.getFinalResult().getError().getMessage());
}
}
catch (Exception exception)
{
System.out.println(exception.getMessage());
}
Spuštění kódu
Přejděte do adresáře, který obsahuje soubor pom.xml , a pomocí příkazu zkompilujte projekt
mvn
.mvn compile
Sestavte balíček.
mvn package
Spuštěním následujícího
mvn
příkazu spusťte aplikaci.mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
Ukázkový kód
Ukázkovou aplikaci si můžete stáhnout z GitHubu.
Začněte se službou Azure Communication Services pomocí e-mailové sady SDK pro komunikační služby Python k odesílání e-mailových zpráv.
Tip
Přeskočením přímo na Základní odesílání e-mailů a pokročilým odesíláním e-mailů na GitHubu můžete začít s prostředím pro odesílání e-mailů pomocí Azure Communication Services.
Principy e-mailového objektového modelu
Následující objekt šablony zpráv JSON a odpovědi předvádí některé z hlavních funkcí e-mailové sady SDK služby Azure Communication Services pro Python.
message = {
"content": {
"subject": "str", # Subject of the email message. Required.
"html": "str", # Optional. Html version of the email message.
"plainText": "str" # Optional. Plain text version of the email
message.
},
"recipients": {
"to": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
],
"bcc": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
],
"cc": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
]
},
"senderAddress": "str", # Sender email address from a verified domain. Required.
"attachments": [
{
"contentInBase64": "str", # Base64 encoded contents of the attachment. Required.
"contentType": "str", # MIME type of the content being attached. Required.
"name": "str" # Name of the attachment. Required.
}
],
"userEngagementTrackingDisabled": bool, # Optional. Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.
"headers": {
"str": "str" # Optional. Custom email headers to be passed.
},
"replyTo": [
{
"address": "str", # Email address. Required.
"displayName": "str" # Optional. Email display name.
}
]
}
response = {
"id": "str", # The unique id of the operation. Uses a UUID. Required.
"status": "str", # Status of operation. Required. Known values are:
"NotStarted", "Running", "Succeeded", and "Failed".
"error": {
"additionalInfo": [
{
"info": {}, # Optional. The additional info.
"type": "str" # Optional. The additional info type.
}
],
"code": "str", # Optional. The error code.
"details": [
...
],
"message": "str", # Optional. The error message.
"target": "str" # Optional. The error target.
}
}
Hodnoty response.status
jsou vysvětleny dále v následující tabulce.
Název stavu | Popis |
---|---|
Probíhající | Právě probíhá a zpracovává se operace odeslání e-mailu. |
Úspěšný | Operace odeslání e-mailu se dokončila bez chyby a e-mail je k doručení. Jakýkoli podrobný stav o doručení e-mailu nad rámec této fáze je možné získat prostřednictvím služby Azure Monitor nebo prostřednictvím služby Azure Event Grid. Zjistěte, jak se přihlásit k odběru e-mailových událostí. |
Neúspěšný | Operace odeslání e-mailu nebyla úspěšná a došlo k chybě. E-mail se neodeslal. Výsledek obsahuje objekt chyby s dalšími podrobnostmi o důvodu selhání. |
Požadavky
- Účet Azure s aktivním předplatným. Vytvoření účtu zdarma
- Python 3.7+.
- Prostředek Azure Email Communication Services vytvořený a připravený se zřízenou doménou. Začínáme s vytvářením prostředku pro e-mailovou komunikaci
- Aktivní prostředek služby Azure Communication Services připojený k e-mailové doméně a jeho připojovací řetězec. Začněte tím, že připojíte prostředek komunikace e-mailu s prostředkem komunikace Azure.
Dokončením tohoto rychlého startu se v účtu Azure účtují malé náklady na pár centů nebo méně USD.
Poznámka:
Můžeme také poslat e-mail z naší vlastní ověřené domény. Přidání vlastních ověřených domén do e-mailové komunikační služby
Kontrola požadovaných součástí
- V terminálu nebo příkazovém okně spusťte
python --version
příkaz a zkontrolujte, jestli je Python nainstalovaný. - Pokud chcete zobrazit domény ověřené pomocí vašeho prostředku e-mailové komunikace, přihlaste se k webu Azure Portal. Vyhledejte prostředek e-mailové komunikace a v levém navigačním podokně otevřete kartu Zřizovací domény .
Nastavení aplikačního prostředí
Pokud chcete nastavit prostředí pro odesílání e-mailů, postupujte podle kroků v následujících částech.
Vytvoření nové aplikace v Pythonu
Otevřete terminál nebo příkazové okno. Pak pomocí následujícího příkazu vytvořte virtuální prostředí a aktivujte ho. Tento příkaz vytvoří pro vaši aplikaci nový adresář.
python -m venv email-quickstart
Přejděte do kořenového adresáře virtuálního prostředí a aktivujte ho pomocí následujících příkazů.
cd email-quickstart .\Scripts\activate
Pomocí textového editoru vytvořte soubor s názvem send-email.py v kořenovém adresáři projektu a přidejte strukturu programu, včetně základního zpracování výjimek.
import os from azure.communication.email import EmailClient try: # Quickstart code goes here. except Exception as ex: print('Exception:') print(ex)
V následujících částech přidáte veškerý zdrojový kód pro tento rychlý start do send-email.py souboru, který jste vytvořili.
Nainstalujte balíček .
V adresáři aplikace nainstalujte sadu SDK e-mailu služby Azure Communication Services pro Python pomocí následujícího příkazu.
pip install azure-communication-email
Vytvoření e-mailového klienta s ověřováním
Pro ověřování e-mailového klienta je k dispozici několik různých možností:
Vytvořte instanci e-mailového klienta pomocí svého připojovací řetězec. Zjistěte, jak spravovat připojovací řetězec vašeho prostředku.
# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)
Pro zjednodušení tento rychlý start používá připojovací řetězec, ale v produkčních prostředích doporučujeme používat instanční objekty.
Základní odesílání e-mailů
Odeslání e-mailové zprávy
Pokud chcete poslat e-mailovou zprávu, musíte:
- Vytvořte zprávu s následujícími hodnotami:
senderAddress
: Platná e-mailová adresa odesílatele, která se nachází v poli MailFrom v podokně přehledu domény propojené s prostředkem e-mailové komunikační služby.recipients
: Objekt se seznamem příjemců e-mailu a volitelně i seznamy příjemců e-mailu CC &BCC.content
: Objekt obsahující předmět a volitelně i prostý text nebo obsah HTML e-mailové zprávy.
- Volání begin_send metoda, která vrátí výsledek operace.
message = {
"content": {
"subject": "This is the subject",
"plainText": "This is the body",
"html": "<html><h1>This is the body</h1></html>"
},
"recipients": {
"to": [
{
"address": "<emailalias@emaildomain.com>",
"displayName": "Customer Name"
}
]
},
"senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
}
poller = email_client.begin_send(message)
print("Result: " + poller.result())
Proveďte tyto nahrazení v kódu:
- Nahraďte
<emailalias@emaildomain.com>
e-mailovou adresou, na kterou chcete poslat zprávu. - Nahraďte
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
adresou MailFrom vaší ověřené domény.
Získání stavu doručení e-mailu
Můžeme se dotazovat na stav doručení e-mailu tak, že nastavíme smyčku u objektu stavu operace vráceného z metody EmailClient begin_send
:
POLLER_WAIT_TIME = 10
try:
email_client = EmailClient.from_connection_string(connection_string)
poller = email_client.begin_send(message);
time_elapsed = 0
while not poller.done():
print("Email send poller status: " + poller.status())
poller.wait(POLLER_WAIT_TIME)
time_elapsed += POLLER_WAIT_TIME
if time_elapsed > 18 * POLLER_WAIT_TIME:
raise RuntimeError("Polling timed out.")
if poller.result()["status"] == "Succeeded":
print(f"Successfully sent the email (operation id: {poller.result()['id']})")
else:
raise RuntimeError(str(poller.result()["error"]))
except Exception as ex:
print(ex)
Spuštění kódu
Spusťte aplikaci z adresáře aplikace pomocí python
příkazu.
python send-email.py
Ukázkový kód
Ukázkovou aplikaci si můžete stáhnout z GitHubu.
Požadavky
Účet Azure s aktivním předplatným nebo si zdarma vytvořte účet Azure.
Aktivní prostředek služby Azure Communication Services nebo vytvořte prostředek služby Communication Services.
Aktivní prostředek Azure Logic Apps (aplikace logiky) a pracovní postup nebo vytvořte nový prostředek a pracovní postup aplikace logiky s triggerem, který chcete použít. E-mailový konektor Azure Communication Services v současné době poskytuje jenom akce, takže pracovní postup aplikace logiky vyžaduje minimálně aktivační událost. Můžete vytvořit prostředek aplikace logiky Consumption nebo Standard .
Prostředek e-mailu služby Azure Communication Services s nakonfigurovanou doménou nebo vlastní doménou.
Prostředek Azure Communication Services připojený k e-mailové doméně Azure.
Odeslat e-mail
Pokud chcete do pracovního postupu přidat nový krok pomocí e-mailového konektoru služby Azure Communication Services, postupujte takto:
V návrháři otevřete pracovní postup aplikace logiky.
Využití
Pod krokem, do kterého chcete přidat novou akci, vyberte Nový krok. Pokud chcete přidat novou akci mezi kroky, přesuňte ukazatel myši na šipku mezi těmito kroky, vyberte znaménko plus (+) a vyberte Přidat akci.
V části Zvolit vyhledávací pole operace vyberte Premium. Do vyhledávacího pole zadejte Komunikační e-mail Azure.
V seznamu akcí vyberte Odeslat e-mail.
Standard
V kroku, do kterého chcete přidat novou akci, vyberte znaménko plus (+). Pokud chcete přidat novou akci mezi kroky, přesuňte ukazatel myši na šipku mezi těmito kroky, vyberte znaménko plus (+) a vyberte Přidat akci.
Pod vyhledávacím polem Přidat akci vyberte v rozevíracím seznamu modulu runtime Premium . Do vyhledávacího pole zadejte Komunikační e-mail Azure.
V seznamu akcí vyberte Odeslat e-mail.
Zadejte název připojení.
Zadejte připojovací řetězec prostředku služby Azure Communications Service. Chcete-li najít tento řetězec, postupujte takto:
Na webu Azure Portal otevřete prostředek služby Azure Communication Service.
V nabídce prostředků v části Nastavení vyberte Klíče a zkopírujte připojovací řetězec.
Až budete hotovi, vyberte Vytvořit.
V poli Od použijte e-mailovou adresu, kterou jste nakonfigurovali v požadavcích. Zadejte hodnoty polí Do e-mailu, Předmět a Text , například:
Uložte pracovní postup. Na panelu nástrojů návrháře vyberte Uložit.
Otestování pracovního postupu
Na základě toho, jestli máte pracovní postup Consumption nebo Standard, spusťte pracovní postup ručně:
- Spotřeba: Na panelu nástrojů návrháře vyberte Spustit spuštění triggeru>.
- Standardní: V nabídce pracovního postupu vyberte Přehled. Na panelu nástrojů vyberte Spustit spuštění aktivační události>.
Pracovní postup vytvoří uživatele, vydá přístupový token pro daného uživatele a pak uživatele odebere a odstraní. Po úspěšném spuštění pracovního postupu můžete zkontrolovat výstupy těchto akcí.
Měli byste dostat e-mail na zadanou adresu. Pomocí akce Získat stav e-mailové zprávy můžete také zkontrolovat stav e-mailů odeslaných prostřednictvím akce Odeslat e-mail. Další akce najdete v referenční dokumentaci k e-mailovému konektoru služby Azure Communication Services.
Vyčištění prostředků pracovního postupu
Pokud chcete vyčistit prostředky aplikace logiky, pracovní postup a související prostředky, přečtěte si , jak vyčistit prostředky aplikace logiky Consumption nebo jak vyčistit prostředky standardní aplikace logiky.
Řešení problému
Doručování e-mailů
Pokud chcete vyřešit problémy související s doručováním e-mailů, můžete získat stav doručení e-mailu a zaznamenat podrobnosti o doručení.
Důležité
Výsledek úspěchu vrácený dotazem na stav operace odeslání ověří pouze skutečnost, že se e-mail úspěšně odeslal k doručení. Pokud chcete získat další informace o stavu doručení na konci příjemce, budete muset odkazovat na zpracování e-mailových událostí.
Omezení e-mailu
Pokud zjistíte, že aplikace je zablokovaná, může to být kvůli omezování odesílání e-mailů. Můžete to zpracovat prostřednictvím protokolování nebo implementací vlastních zásad.
Poznámka:
Toto nastavení sandboxu pomáhá vývojářům začít vytvářet aplikaci. Jakmile je aplikace připravená k živému provozu, můžete postupně požádat o zvýšení odesílajícího svazku. Odešlete žádost o podporu pro zvýšení požadovaného limitu odesílání, pokud požadujete odeslání objemu zpráv překračujících limity rychlosti.
Vyčištění prostředků služby Azure Communication Service
Pokud chcete vyčistit a odebrat předplatné komunikačních služeb, můžete odstranit prostředek nebo skupinu prostředků. Odstraněním skupiny prostředků se odstraní také všechny ostatní přidružené prostředky. Přečtěte si další informace o čištění prostředků.
Další kroky
V tomto rychlém startu jste zjistili, jak odesílat e-maily pomocí služeb Azure Communication Services. Můžete také chtít:
- Přečtěte si o konceptech e-mailu.
- Seznamte se s e-mailovou klientskou knihovnou.
- Přečtěte si další informace o tom, jak pomocí Azure Communication Services odeslat chatovací zprávu z Power Automate.
- Přečtěte si další informace o vracení přístupových tokenů se změnami vytvoření a správa uživatelů a přístupových tokenů Azure Communication Services.