Snabbstart: Så här skickar du ett e-postmeddelande med Hjälp av Azure Communication Services
Kommentar
Dela dina tankar och feedback om Azure Communication Services med oss genom att göra den här korta undersökningen.
Den här snabbstarten beskriver hur du skickar e-post med hjälp av våra E-post-SDK:er.
Kom igång med Azure Communication Services med hjälp av Communication Services Try Email för att skicka e-postmeddelanden.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Den senaste versionen av .NET Core-klientbiblioteket för ditt operativsystem.
- En Azure Email Communication Services-resurs som skapats och är redo med en etablerad domän Kom igång med att skapa en e-postkommunikationsresurs
- En aktiv Communication Services-resurs som är ansluten till e-postdomänen. Kom igång genom att ansluta e-postresurs med en kommunikationsresurs
Att slutföra den här snabbstarten medför en liten kostnad på några USD cent eller mindre i ditt Azure-konto.
Skicka ett e-postmeddelande med prova e-post
Prova E-post hjälper dig att kickstarta att skicka e-postmeddelanden till önskade mottagare med hjälp av Azure Communication Services, samt verifiera konfigurationen för att ditt program ska skicka e-post. Det hjälper också till att få igång utvecklingen av e-postmeddelanden med kodfragmentet i önskat språkval.
Om du vill skicka ett meddelande till en mottagare och ange meddelandets ämne och brödtext,
På översiktssidan för en etablerad Azure Communication Service-resurs klickar du på Prova e-post på den vänstra navigeringspanelen under E-post.
Välj en av de verifierade domänerna i listrutan.
Skriv e-postmeddelandet som ska skickas
- Ange mottagarens e-postadress
- Ange ämne
- Skriv e-posttexten
Klicka på Skicka
E-post har skickats.
Nu kan du också kopiera kodfragmentexemplet för att skicka ett e-postmeddelande som ska användas i exempelprojektet för att skicka meddelanden.
Kodfragment för e-post är nu redo att användas i meddelandeprojektet.
Kom igång med Azure Communication Services med hjälp av Azure CLI-kommunikationstillägget för att skicka e-postmeddelanden.
Att slutföra den här snabbstarten medför en liten kostnad på några USD cent eller mindre i ditt Azure-konto.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En Azure Email Communication Services-resurs som skapats och är klar med en etablerad domän. Kom igång med att skapa en e-postkommunikationsresurs.
- En aktiv Azure Communication Services-resurs som är ansluten till en e-postdomän och dess anslutningssträng. Kom igång genom att ansluta en e-postkommunikationsresurs till en Azure Communication-resurs.
- Den senaste Azure CLI.
Kravkontroll
- I ett terminal- eller kommandofönster kör du
az --version
kommandot för att kontrollera att Azure CLI och kommunikationstillägget är installerade. - Logga in på Azure Portal om du vill visa domänerna som verifierats med din e-postkommunikationstjänstresurs. Leta upp din e-postkommunikationstjänstresurs och öppna fliken Etablera domäner i det vänstra navigeringsfönstret.
Konfigurera
Lägga till tillägget
Lägg till Azure Communication Services-tillägget för Azure CLI med hjälp az extension
av kommandot .
az extension add --name communication
Logga in på Azure CLI
Du måste logga in på Azure CLI. Du kan logga in med az login
kommandot från terminalen och ange dina autentiseringsuppgifter.
Lagra anslutningssträng i en miljövariabel
Du kan konfigurera AZURE_COMMUNICATION_CONNECTION_STRING
miljövariabeln så att den använder Azure CLI-nycklar utan att behöva använda --connection_string
för att skicka in anslutningssträng. Om du vill konfigurera en miljövariabel öppnar du ett konsolfönster och väljer ditt operativsystem på flikarna nedan. Ersätt <connectionString>
med din faktiska anslutningssträng.
Kommentar
Lagra inte dina anslutningssträng som en okrypterad miljövariabel för produktionsmiljöer. Detta är endast avsett för testning. För produktionsmiljöer bör du generera nya anslutningssträng. Vi rekommenderar att du krypterar anslutningssträng och ändrar dem regelbundet.
setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"
När du har lagt till miljövariabeln kan du behöva starta om alla program som körs och som behöver läsa in miljövariabeln, däribland konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.
Skicka ett e-postmeddelande
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."
Gör följande ersättningar i koden:
- Ersätt
<yourConnectionString>
med din anslutningssträng. - Ersätt
<emailalias@emaildomain.com>
med den e-postadress som du vill skicka ett meddelande till. - Ersätt
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
med MailFrom-adressen för din verifierade domän.
Kommandot ovan utför också en avsökning på messageId och returnerar status för e-postleveransen. Statusen kan vara något av följande:
Statusnamn | beskrivning |
---|---|
NotStarted | Vi skickar inte den här statusen från vår tjänst just nu. |
Körs | E-postsändningsåtgärden pågår och bearbetas. |
Klart | E-postsändningsåtgärden har slutförts utan fel och e-postmeddelandet är ute för leverans. Detaljerad status om e-postleveransen utöver det här steget kan hämtas antingen via Azure Monitor eller via Azure Event Grid. Lär dig hur du prenumererar på e-posthändelser |
Misslyckad | Åtgärden för att skicka e-post lyckades inte och påträffade ett fel. E-postmeddelandet skickades inte. Resultatet innehåller ett felobjekt med mer information om orsaken till felet. |
Valfria parametrar
Följande valfria parametrar är tillgängliga i Azure CLI.
--html
kan användas i stället--text
för för html-e-posttext.--importance
anger prioritetstypen för e-postmeddelandet. Kända värden är: hög, normal och låg. Standardvärdet är normalt.--to
anger listan över e-postmottagare.--cc
anger e-postadresser för koldioxidkopior.--bcc
anger blinda e-postadresser för koldioxidkopior.--reply-to
anger svarsadress till e-postadress.--disable-tracking
anger om spårning av användarengagemang ska inaktiveras för den här begäran.--attachments
anger listan över e-postbilagor.--attachment-types
anger listan över typer av e-postbilagor i samma ordning som bifogade filer.
Du kan också använda en lista över mottagare med --cc
och --bcc
som liknar --to
. Det måste finnas minst en mottagare i --to
eller --cc
.--bcc
Kom igång med Azure Communication Services med hjälp av C# E-postklientbiblioteket för Kommunikationstjänster för att skicka e-postmeddelanden.
Dricks
Kom igång med att skicka e-post med Azure Communication Services genom att hoppa direkt till exempelkoden Grundläggande e-postsändning och Avancerad e-postsändning på GitHub.
Förstå e-postobjektmodellen
Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services e-postklientbibliotek för C#.
Name | beskrivning |
---|---|
EmailAddress | Den här klassen innehåller en e-postadress och ett alternativ för ett visningsnamn. |
EmailAttachment | Den här klassen skapar en e-postbilaga genom att acceptera ett unikt ID, MIME-typsträng för e-postbilagor, binära data för innehåll och ett valfritt innehålls-ID för att definiera det som en infogad bifogad fil. |
EmailClient | Den här klassen behövs för alla e-postfunktioner. Du instansierar den med din anslutningssträng och använder den för att skicka e-postmeddelanden. |
EmailClientOptions | Den här klassen kan läggas till i e-postklientinstansiationen för att rikta in sig på en specifik API-version. |
EmailContent | Den här klassen innehåller ämnet och brödtexten i e-postmeddelandet. Du måste ange minst ett av PlainText- eller Html-innehåll |
EmailCustomHeader | Den här klassen tillåter tillägg av ett namn och värdepar för en anpassad rubrik. E-postprioritet kan också anges via dessa rubriker med rubriknamnet "x-priority" eller "x-msmail-priority" |
EmailMessage | Den här klassen kombinerar avsändaren, innehållet och mottagarna. Anpassade rubriker, bifogade filer och svarsadresser kan också läggas till. |
EmailRecipients | Den här klassen innehåller listor över EmailAddress-objekt för mottagare av e-postmeddelandet, inklusive valfria listor för CC & BCC-mottagare. |
EmailSendOperation | Den här klassen representerar den asynkrona e-postsändningsåtgärden och returneras från API-anropet för att skicka e-post. |
EmailSendResult | Den här klassen innehåller resultatet av e-postsändningsåtgärden. Den har ett åtgärds-ID, åtgärdsstatus och felobjekt (om tillämpligt). |
EmailSendResult returnerar följande status för den e-poståtgärd som utförts.
Status | beskrivning |
---|---|
NotStarted | Vi skickar inte den här statusen från vår tjänst just nu. |
Körs | E-postsändningsåtgärden pågår och bearbetas. |
Klart | E-postsändningsåtgärden har slutförts utan fel och e-postmeddelandet är ute för leverans. Detaljerad status om e-postleveransen utöver det här steget kan hämtas antingen via Azure Monitor eller via Azure Event Grid. Lär dig hur du prenumererar på e-posthändelser |
Misslyckad | Åtgärden för att skicka e-post lyckades inte och påträffade ett fel. E-postmeddelandet skickades inte. Resultatet innehåller ett felobjekt med mer information om orsaken till felet. |
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Den senaste versionen av .NET Core-klientbiblioteket för ditt operativsystem.
- En Azure Email Communication Services-resurs som skapats och är redo med en etablerad domän Kom igång med att skapa en e-postkommunikationsresurs
- En aktiv Communication Services-resurs som är ansluten till e-postdomänen och en anslutningssträng. Kom igång genom att ansluta e-postresurs med en kommunikationsresurs
Att slutföra den här snabbstarten medför en liten kostnad på några USD cent eller mindre i ditt Azure-konto.
Kommentar
Vi kan också skicka ett e-postmeddelande från vår egen verifierade domän. Lägg till anpassade verifierade domäner i e-postkommunikationstjänsten.
Kravkontroll
- I ett terminal- eller kommandofönster kör du
dotnet
kommandot för att kontrollera att .NET-klientbiblioteket är installerat. - Om du vill visa de underdomäner som är associerade med resursen För e-postkommunikationstjänster loggar du in på Azure Portal, letar upp resursen För e-postkommunikationstjänster och öppnar fliken Etablera domäner i det vänstra navigeringsfönstret.
Skapa ett nytt C#-program
I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du dotnet new
kommandot för att skapa en ny konsolapp med namnet EmailQuickstart
. Det här kommandot skapar ett enkelt "Hello World"-C#-projekt med en enda källfil: Program.cs.
dotnet new console -o EmailQuickstart
Ändra katalogen till den nyligen skapade appmappen dotnet build
och använd kommandot för att kompilera programmet.
cd EmailQuickstart
dotnet build
Installera -paketet
Installera Azure Communication Services e-postklientbibliotek för .NET-paketet med hjälp av kommandot medan du fortfarande är i programkatalogen dotnet add package
.
dotnet add package Azure.Communication.Email
Skapa e-postklienten med autentisering
Öppna Program.cs och ersätt den befintliga koden med följande för att lägga using
till direktiv för att inkludera Azure.Communication.Email
namnområdet och en startpunkt för körning för programmet.
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)
{
}
}
}
Det finns några olika alternativ för att autentisera en e-postklient:
Öppna Program.cs i en textredigerare och ersätt metodens Main
brödtext med kod för att initiera en EmailClient
med din anslutningssträng. Följande kod hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING
. Lär dig hur du hanterar resursens anslutningssträng.
// 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);
Kommentar
Vi rekommenderar att du använder den manuella avsökningen (Skicka e-post med asynkron statussökning) för att skicka e-post.
Grundläggande e-postsändning
Skapa ditt e-postmeddelande
Om du vill skicka ett e-postmeddelande måste du:
- Definiera e-postämnet och brödtexten.
- Definiera din Avsändaradress. Skapa ditt e-postmeddelande med din avsändarinformation som du får din MailFrom-adress från din verifierade domän.
- Definiera mottagaradressen.
- Anropa metoden SendAsync. Lägg till den här koden i slutet av
Main
metoden i Program.cs:
Ersätt med din domäninformation och ändra innehållet, mottagarinformationen efter behov
//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";
Skicka och hämta status för e-postsändning
När du anropar SendAsync med Azure.WaitUntil.Started returnerar metoden tillbaka när åtgärden har startats. Metoden returnerar Objektet EmailSendOperation. Du kan anropa metoden UpdateStatusAsync för att uppdatera e-poståtgärdens status.
Det returnerade Objektet EmailSendOperation innehåller ett EmailSendStatus-objekt som innehåller:
- Aktuell status för åtgärden Skicka e-post.
- Ett felobjekt med felinformation om den aktuella statusen är i ett feltillstånd.
/// 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}");
Kör programmet från programkatalogen dotnet run
med kommandot .
dotnet run
Exempelkod
Du kan ladda ned exempelappen från GitHub
Kom igång med Azure Communication Services med hjälp av JS E-postklientbiblioteket för Communication Services för att skicka e-postmeddelanden.
Dricks
Kom igång med att skicka e-post med Azure Communication Services genom att hoppa direkt till exempelkoden Grundläggande e-postsändning och Avancerad e-postsändning på GitHub.
Förstå e-postobjektmodellen
Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services e-postklientbibliotek för JavaScript.
Name | beskrivning |
---|---|
EmailAddress | Den här klassen innehåller en e-postadress och ett alternativ för ett visningsnamn. |
EmailAttachment | Den här klassen skapar en e-postbilaga genom att acceptera ett unikt ID, MIME-typsträng för e-postbilagor, binära data för innehåll och ett valfritt innehålls-ID för att definiera det som en infogad bifogad fil. |
EmailClient | Den här klassen behövs för alla e-postfunktioner. Du instansierar den med din anslutningssträng och använder den för att skicka e-postmeddelanden. |
EmailClientOptions | Den här klassen kan läggas till i e-postklientinstansiationen för att rikta in sig på en specifik API-version. |
EmailContent | Den här klassen innehåller ämnet och brödtexten i e-postmeddelandet. Du måste ange minst ett av PlainText- eller Html-innehåll. |
EmailCustomHeader | Den här klassen tillåter tillägg av ett namn och värdepar för en anpassad rubrik. E-postprioritet kan också anges via dessa rubriker med rubriknamnet "x-priority" eller "x-msmail-priority". |
EmailMessage | Den här klassen kombinerar avsändaren, innehållet och mottagarna. Anpassade rubriker, bifogade filer och svarsadresser kan också läggas till. |
EmailRecipients | Den här klassen innehåller listor över EmailAddress-objekt för mottagare av e-postmeddelandet, inklusive valfria listor för CC & BCC-mottagare. |
EmailSendResult | Den här klassen innehåller resultatet av e-postsändningsåtgärden. Den har ett åtgärds-ID, åtgärdsstatus och felobjekt (om tillämpligt). |
EmailSendStatus | Den här klassen representerar statusuppsättningen för en e-postsändningsåtgärd. |
EmailSendResult returnerar följande status för den e-poståtgärd som utförts.
Statusnamn | beskrivning |
---|---|
isStarted | Returnerar sant om e-postsändningsåtgärden pågår och bearbetas. |
isCompleted | Returnerar sant om e-postsändningsåtgärden har slutförts utan fel och e-postmeddelandet är ute för leverans. Detaljerad status om e-postleveransen utöver det här steget kan hämtas antingen via Azure Monitor eller via Azure Event Grid. Lär dig hur du prenumererar på e-posthändelser |
resultat | Egenskap som finns om e-postsändningsåtgärden har slutförts. |
fel | Egenskapen som finns om e-postsändningsåtgärden inte lyckades och påträffade ett fel. E-postmeddelandet skickades inte. Resultatet innehåller ett felobjekt med mer information om orsaken till felet. |
Förutsättningar
- Node.js (~14).
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- En Azure Email Communication Services-resurs som skapats och är klar med en etablerad domän. Kom igång med att skapa en e-postkommunikationsresurs.
- En aktiv Azure Communication Services-resurs som är ansluten till en e-postdomän och dess anslutningssträng. Kom igång genom att ansluta en e-postkommunikationsresurs till en Azure Communication-resurs.
Att slutföra den här snabbstarten medför en liten kostnad på några USD cent eller mindre i ditt Azure-konto.
Kommentar
Vi kan också skicka ett e-postmeddelande från vår egen verifierade domän. Lägg till anpassade verifierade domäner i e-postkommunikationstjänsten.
Kravkontroll
- I ett terminal- eller kommandofönster kör du
node --version
för att kontrollera att Node.js är installerat. - Om du vill visa domänerna som verifierats med resursen e-postkommunikationstjänster loggar du in på Azure Portal, letar upp resursen För e-postkommunikationstjänster och öppnar fliken Etablera domäner i det vänstra navigeringsfönstret.
Konfigurera programmiljön
Skapa ett nytt Node.js-program
Öppna först terminalen eller kommandofönstret, skapa en ny katalog för din app och navigera till den.
mkdir email-quickstart && cd email-quickstart
Kör npm init -y
för att skapa en package.json fil med standardinställningar.
npm init -y
Använd en textredigerare för att skapa en fil med namnet send-email.js i projektets rotkatalog. Ändra egenskapen "main" i package.json till "send-email.js". I följande avsnitt visas hur du lägger till källkoden för den här snabbstarten i den nyligen skapade filen.
Installera -paketet
npm install
Använd kommandot för att installera Azure Communication Services-klientbiblioteket för e-post för JavaScript.
npm install @azure/communication-email --save
Alternativet --save
visar biblioteket som ett beroende i din package.json-fil .
Skapa e-postklienten med autentisering
Det finns några olika alternativ för att autentisera en e-postklient:
Importera EmailClient från klientbiblioteket och instansiera det med din anslutningssträng.
Följande kod hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING
med dotenv-paketet. npm install
Använd kommandot för att installera dotenv-paketet. Lär dig hur du hanterar resursens anslutningssträng.
npm install dotenv
Lägg till följande kod i send-email.js:
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);
För enkelhetens skull använder den här snabbstarten anslutningssträng, men i produktionsmiljöer rekommenderar vi att du använder tjänstens huvudnamn.
Grundläggande e-postsändning
Skicka ett e-postmeddelande
Om du vill skicka ett e-postmeddelande anropar du beginSend
funktionen från EmailClient. Den här metoden returnerar en poller som kontrollerar status för åtgärden och hämtar resultatet när den är klar.
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();
Gör följande ersättningar i koden:
- Ersätt
<emailalias@emaildomain.com>
med den e-postadress som du vill skicka ett meddelande till. - Ersätt
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
med MailFrom-adressen för din verifierade domän.
Kör koden
använd nodkommandot för att köra koden som du lade till i filen send-email.js.
node ./send-email.js
Exempelkod
Du kan ladda ned exempelappen från GitHub
Kom igång med Azure Communication Services med hjälp av Communication Services Java Email SDK för att skicka e-postmeddelanden.
Dricks
Kom igång med att skicka e-post med Azure Communication Services genom att hoppa direkt till exempelkoden Grundläggande e-postsändning och Avancerad e-postsändning på GitHub.
Förstå e-postobjektmodellen
Följande klasser och gränssnitt hanterar några av de viktigaste funktionerna i Azure Communication Services Email SDK för Python.
Name | beskrivning |
---|---|
EmailAddress | Den här klassen innehåller en e-postadress och ett alternativ för ett visningsnamn. |
EmailAttachment | Det här gränssnittet skapar en e-postbilaga genom att acceptera ett unikt ID, MIME-typsträng för e-postbilagor, en sträng med innehållsbyte och ett valfritt innehålls-ID för att definiera den som en infogad bifogad fil. |
EmailClient | Den här klassen behövs för alla e-postfunktioner. Du instansierar den med din anslutningssträng och använder den för att skicka e-postmeddelanden. |
EmailMessage | Den här klassen kombinerar avsändaren, innehållet och mottagarna. Anpassade rubriker, bifogade filer och svarsadresser kan också läggas till. |
EmailSendResult | Den här klassen innehåller resultatet av e-postsändningsåtgärden. Den har ett åtgärds-ID, åtgärdsstatus och felobjekt (om tillämpligt). |
EmailSendStatus | Den här klassen representerar statusuppsättningen för en e-postsändningsåtgärd. |
EmailSendResult returnerar följande status för den e-poståtgärd som utförts.
Statusnamn | beskrivning |
---|---|
NOT_STARTED | Vi skickar inte den här statusen från vår tjänst just nu. |
IN_PROGRESS | E-postsändningsåtgärden pågår och bearbetas. |
SUCCESSFULLY_COMPLETED | E-postsändningsåtgärden har slutförts utan fel och e-postmeddelandet är ute för leverans. Detaljerad status om e-postleveransen utöver det här steget kan hämtas antingen via Azure Monitor eller via Azure Event Grid. Lär dig hur du prenumererar på e-posthändelser |
MISSLYCKADE | Åtgärden för att skicka e-post lyckades inte och påträffade ett fel. E-postmeddelandet skickades inte. Resultatet innehåller ett felobjekt med mer information om orsaken till felet. |
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Java Development Kit (JDK) version 8 eller senare.
- Apache Maven.
- En distribuerad Communication Services-resurs och anslutningssträng. Mer information finns i Skapa en Communication Services-resurs.
- Skapa en Azure Email Communication Services-resurs för att börja skicka e-post.
- En konfigurerad hanterad identitet för en utvecklingsmiljö finns i Auktorisera åtkomst med hanterad identitet.
Slutförande av den här snabbstarten medför en liten kostnad på några USD-cent eller mindre på ditt Azure-konto.
Kommentar
Vi kan också skicka ett e-postmeddelande från vår egen verifierade domän Lägg till anpassade verifierade domäner i e-postkommunikationstjänsten.
Kravkontroll
- I ett terminal- eller kommandofönster kör du
mvn -v
för att kontrollera att Maven är installerat. - Logga in på Azure Portal om du vill visa domänerna som verifierats med din e-postkommunikationstjänstresurs. Leta upp din e-postkommunikationstjänstresurs och öppna fliken Etablera domäner i det vänstra navigeringsfönstret.
Konfigurera programmiljön
Utför stegen i följande avsnitt för att konfigurera en miljö för att skicka e-post.
Skapa ett nytt Java-program
Öppna terminalen eller kommandofönstret och gå till katalogen där du vill skapa java-programmet. Kör följande kommando för att generera Java-projektet från mallen 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"
Målet generate
skapar en katalog med samma namn som värdet artifactId
. Under den här katalogen innehåller katalogen src/main/java projektets källkod, katalogen src/test/java innehåller testkällan och filen pom.xml är projektets projektobjektmodell (POM).
Installera -paketet
Öppna filen pom.xml i textredigeraren. Lägg till följande beroendeelement i gruppen med beroenden.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-communication-email</artifactId>
<version>1.0.0-beta.2</version>
</dependency>
Konfigurera appramverket
Öppna /src/main/java/com/communication/quickstart/App.java i en textredigerare, lägg till importdirektiv och ta bort instruktionen System.out.println("Hello world!");
:
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.
}
}
Skapa e-postklienten med autentisering
Det finns några olika alternativ för att autentisera en e-postklient.
Om du vill autentisera en klient instansierar du en EmailClient
med din anslutningssträng. Lär dig hur du hanterar resursens anslutningssträng. Du kan också initiera klienten med en anpassad HTTP-klient som implementerar com.azure.core.http.HttpClient
gränssnittet.
Om du vill instansiera en synkron klient lägger du till följande kod i main
metoden:
// 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();
Om du vill instansiera en asynkron klient lägger du till följande kod i main
metoden:
// 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();
För enkelhetens skull använder den här snabbstarten anslutningssträng, men i produktionsmiljöer rekommenderar vi att du använder tjänstens huvudnamn.
Grundläggande e-postsändning
Ett e-postmeddelande kan skapas med hjälp av EmailMessage
objektet i SDK:et.
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.");
Gör följande ersättningar i koden:
- Ersätt
<emailalias@emaildomain.com>
med den e-postadress som du vill skicka ett meddelande till. - Ersätt
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
med MailFrom-adressen för din verifierade domän.
Om du vill skicka e-postmeddelandet anropar du beginSend
funktionen från EmailClient
.
När du anropar beginSend
synkroniseringsklienten returneras ett SyncPoller
objekt som kan användas för att kontrollera åtgärdens status och hämta resultatet när det är klart. Observera att den första begäran om att skicka ett e-postmeddelande skickas så snart beginSend
metoden anropas. Att skicka ett e-postmeddelande är en tidskrävande åtgärd. Det är viktigt att observera att getFinalResult()
metoden i pollern är en blockerande åtgärd tills ett terminaltillstånd (SUCCESSFULLY_COMPLETED
eller FAILED
) har nåtts. Den rekommenderade metoden är att utföra manuell avsökning med ett intervall som är lämpligt för dina programbehov, vilket visas i exemplet nedan.
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());
}
Kör koden
Navigera till katalogen som innehåller pom.xml-filen och kompilera projektet med hjälp
mvn
av kommandot .mvn compile
Skapa paketet.
mvn package
Kör följande
mvn
kommando för att köra appen.mvn exec:java -D"exec.mainClass"="com.communication.quickstart.App" -D"exec.cleanupDaemonThreads"="false"
Exempelkod
Du kan ladda ned exempelappen från GitHub
Kom igång med Azure Communication Services med hjälp av E-post-SDK:et för Communication Services Python för att skicka e-postmeddelanden.
Dricks
Kom igång med att skicka e-post med Azure Communication Services genom att hoppa direkt till exempelkoden Grundläggande e-postsändning och Avancerad e-postsändning på GitHub.
Förstå e-postobjektmodellen
Följande JSON-meddelandemall och svarsobjekt visar några av de viktigaste funktionerna i Azure Communication Services Email SDK för 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.
}
}
Värdena response.status
förklaras ytterligare i följande tabell.
Statusnamn | beskrivning |
---|---|
InProgress | E-postsändningsåtgärden pågår och bearbetas. |
Klart | E-postsändningsåtgärden har slutförts utan fel och e-postmeddelandet är ute för leverans. Detaljerad status om e-postleveransen utöver det här steget kan hämtas antingen via Azure Monitor eller via Azure Event Grid. Lär dig hur du prenumererar på e-posthändelser |
Misslyckad | Åtgärden för att skicka e-post lyckades inte och påträffade ett fel. E-postmeddelandet skickades inte. Resultatet innehåller ett felobjekt med mer information om orsaken till felet. |
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Python 3.7+.
- En Azure Email Communication Services-resurs som skapats och är klar med en etablerad domän. Kom igång med att skapa en e-postkommunikationsresurs.
- En aktiv Azure Communication Services-resurs som är ansluten till en e-postdomän och dess anslutningssträng. Kom igång genom att ansluta en e-postkommunikationsresurs till en Azure Communication-resurs.
Att slutföra den här snabbstarten medför en liten kostnad på några USD cent eller mindre i ditt Azure-konto.
Kommentar
Vi kan också skicka ett e-postmeddelande från vår egen verifierade domän. Lägg till anpassade verifierade domäner i e-postkommunikationstjänsten.
Kravkontroll
- I ett terminal- eller kommandofönster kör du
python --version
kommandot för att kontrollera att Python är installerat. - Logga in på Azure Portal om du vill visa domänerna som verifierats med din e-postkommunikationstjänstresurs. Leta upp din e-postkommunikationstjänstresurs och öppna fliken Etablera domäner i det vänstra navigeringsfönstret.
Konfigurera programmiljön
Utför stegen i följande avsnitt för att konfigurera en miljö för att skicka e-post.
Skapa ett nytt Python-program
Öppna terminalen eller kommandofönstret. Använd sedan följande kommando för att skapa en virtuell miljö och aktivera den. Det här kommandot skapar en ny katalog för din app.
python -m venv email-quickstart
Navigera till rotkatalogen i den virtuella miljön och aktivera den med hjälp av följande kommandon.
cd email-quickstart .\Scripts\activate
Använd en textredigerare för att skapa en fil med namnet send-email.py i projektets rotkatalog och lägga till strukturen för programmet, inklusive grundläggande undantagshantering.
import os from azure.communication.email import EmailClient try: # Quickstart code goes here. except Exception as ex: print('Exception:') print(ex)
I följande avsnitt lägger du till all källkod för den här snabbstarten i den send-email.py fil som du skapade.
Installera -paketet
Installera Azure Communication Services E-post-SDK för Python-paketet med hjälp av följande kommando medan du fortfarande är i programkatalogen.
pip install azure-communication-email
Skapa e-postklienten med autentisering
Det finns några olika alternativ för att autentisera en e-postklient:
Instansiera en EmailClient med din anslutningssträng. Lär dig hur du hanterar resursens anslutningssträng.
# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)
För enkelhetens skull använder den här snabbstarten anslutningssträng, men i produktionsmiljöer rekommenderar vi att du använder tjänstens huvudnamn.
Grundläggande e-postsändning
Skicka ett e-postmeddelande
Om du vill skicka ett e-postmeddelande måste du:
- Skapa meddelandet med följande värden:
senderAddress
: En giltig e-postadress för avsändare som finns i fältet MailFrom i översiktsfönstret för domänen som är länkad till din e-postkommunikationstjänstresurs.recipients
: Ett objekt med en lista över e-postmottagare, och valfritt, listor över CC & BCC-e-postmottagare.content
: Ett objekt som innehåller ämnet, och eventuellt oformaterad text eller HTML-innehåll, för ett e-postmeddelande.
- Anropa metoden begin_send som returnerar resultatet av åtgärden.
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())
Gör följande ersättningar i koden:
- Ersätt
<emailalias@emaildomain.com>
med den e-postadress som du vill skicka ett meddelande till. - Ersätt
<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>
med MailFrom-adressen för din verifierade domän.
Hämta status för e-postleveransen
Vi kan söka efter status för e-postleveransen genom att ange en loop för åtgärdsstatusobjektet som returneras från Metoden 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)
Kör koden
Kör programmet från programkatalogen python
med kommandot .
python send-email.py
Exempelkod
Du kan ladda ned exempelappen från GitHub
Förutsättningar
Ett Azure-konto med en aktiv prenumeration eller skapa ett Azure-konto kostnadsfritt.
En aktiv Azure Communication Services-resurs eller skapa en Communication Services-resurs.
En aktiv Azure Logic Apps-resurs (logikapp) och arbetsflöde, eller skapa en ny logikappresurs och ett nytt arbetsflöde med utlösaren som du vill använda. För närvarande tillhandahåller e-postanslutningsappen för Azure Communication Services endast åtgärder, så arbetsflödet för logikappen kräver minst en utlösare. Du kan skapa antingen en förbruknings - eller standardlogikappresurs .
En Azure Communication Services-e-postresurs med en konfigurerad domän eller anpassad domän.
En Azure Communication Services-resurs som är ansluten till en Azure-e-postdomän.
Skicka e-postmeddelande
Följ dessa steg om du vill lägga till ett nytt steg i arbetsflödet med hjälp av Azure Communication Services-e-postanslutningen:
Öppna arbetsflödet för logikappen i designern.
Förbrukning
Under steget där du vill lägga till den nya åtgärden väljer du Nytt steg. Du kan också lägga till den nya åtgärden mellan stegen genom att flytta pekaren över pilen mellan dessa steg, välja plustecknet (+) och välja Lägg till en åtgärd.
Under sökrutan Välj en åtgärd väljer du Premium. I sökrutan anger du Azure Communication Email.
I åtgärdslistan väljer du Skicka e-post.
Standard
Under steget där du vill lägga till den nya åtgärden väljer du plustecknet (+). Du kan också lägga till den nya åtgärden mellan stegen genom att flytta pekaren över pilen mellan dessa steg, välja plustecknet (+) och välja Lägg till en åtgärd.
Under rutan Lägg till en åtgärdssökning väljer du Premium i listrutan Körning. I sökrutan anger du Azure Communication Email.
I åtgärdslistan väljer du Skicka e-post.
Ange ett namn för anslutningen.
Ange anslutningssträng för din Azure Communications Service-resurs. Följ dessa steg för att hitta den här strängen:
Öppna din Azure Communication Service-resurs i Azure Portal.
På resursmenyn går du till Inställningar, väljer Nycklar och kopierar anslutningssträng.
Välj Skapa när du är klar.
I fältet Från använder du den e-postadress som du konfigurerade i förutsättningarna. Ange värdena för fälten Till e-post, Ämne och Brödtext , till exempel:
Spara arbetsflödet. I verktygsfältet för designern väljer du Spara.
Testa arbetsflödet
Baserat på om du har ett arbetsflöde för förbrukning eller standard startar du arbetsflödet manuellt:
- Förbrukning: Välj Kör utlösarkörning> i designerverktygsfältet.
- Standard: Välj Översikt på arbetsflödesmenyn. I verktygsfältet väljer du Kör utlösarkörning>.
Arbetsflödet skapar en användare, utfärdar en åtkomsttoken för den användaren och tar sedan bort och tar bort användaren. Du kan kontrollera utdata från dessa åtgärder när arbetsflödet har körts.
Du bör få ett e-postmeddelande på den angivna adressen. Du kan också använda åtgärden Hämta status för e-postmeddelanden för att kontrollera statusen för e-postmeddelanden som skickas via åtgärden Skicka e-post . Fler åtgärder finns i referensdokumentationen för Azure Communication Services-anslutningsappen för e-post.
Rensa arbetsflödesresurser
Om du vill rensa logikappens resurs, arbetsflöde och relaterade resurser kan du läsa om hur du rensar resurser för förbrukningslogikappen eller hur du rensar standardlogikappresurser.
Felsökning
E-postleverans
Om du vill felsöka problem som rör e-postleverans kan du få status för e-postleveransen för att samla in leveransinformation.
Viktigt!
Det lyckade resultatet som returneras av avsökningen för sändningsåtgärdens status verifierar bara det faktum att e-postmeddelandet har skickats ut för leverans. Om du vill få ytterligare information om statusen för leveransen på mottagarsidan måste du referera till hur du hanterar e-posthändelser.
Begränsning av e-post
Om du ser att programmet hänger kan det bero på att e-postsändningen begränsas. Du kan hantera detta genom loggning eller genom att implementera en anpassad princip.
Kommentar
Den här sandbox-installationen hjälper utvecklare att börja skapa programmet. Du kan gradvis begära att öka sändningsvolymen när programmet är redo att gå live. Skicka en supportbegäran för att höja den önskade sändningsgränsen om du behöver skicka en mängd meddelanden som överskrider hastighetsgränserna.
Rensa Azure Communication Service-resurser
Om du vill rensa och ta bort en Communication Services-prenumeration kan du ta bort resursen eller resursgruppen. Om du tar bort resursgruppen tas även andra associerade resurser bort. Läs mer om att rensa resurser.
Nästa steg
I den här snabbstarten har du lärt dig hur du skickar e-postmeddelanden med Hjälp av Azure Communication Services. Du kanske också vill:
- Läs mer om e-postbegrepp.
- Bekanta dig med e-postklientbiblioteket.
- Läs mer om hur du skickar ett chattmeddelande från Power Automate med Hjälp av Azure Communication Services.
- Läs mer om incheckning av åtkomsttoken i Skapa och hantera Azure Communication Services-användare och åtkomsttoken.