Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här paketet innehåller en JavaScript/TypeScript SDK för Azure Communication Services för e-post.
Komma igång
Förutsättningar
Du behöver en Azure-prenumeration, en kommunikationstjänstresurs och en e-postkommunikationsresurs med en aktiv domän.
Om du vill skapa dessa resurser kan du använda Azure-portalen, Azure PowerShell eller klientbiblioteket för .
Installera
npm install @azure/communication-email
Examples
EmailClient Tillhandahåller funktioner för att skicka e-postmeddelanden.
Authentication
E-postklienter kan autentiseras med hjälp av συμβολοσειρά σύνδεσης som hämtats från en Azure-kommunikationsresurs i Azure-portalen.
import { EmailClient } from "@azure/communication-email";
const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client = new EmailClient(connectionString);
Du kan också autentisera med Azure Active Directory med hjälp av Azure Identity-biblioteket. Installera -paketet om du vill använda @azure/identity som visas nedan eller andra leverantörer av autentiseringsuppgifter som tillhandahålls med Azure SDK:
npm install @azure/identity
@azure/identity-paketet innehåller en mängd olika typer av autentiseringsuppgifter som programmet kan använda för att göra detta. README för @azure/identity innehåller mer information och exempel för att komma igång.
AZURE_CLIENT_SECRET, AZURE_CLIENT_ID och AZURE_TENANT_ID miljövariabler krävs för att skapa ett DefaultAzureCredential objekt.
import { DefaultAzureCredential } from "@azure/identity";
import { EmailClient } from "@azure/communication-email";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client = new EmailClient(endpoint, credential);
Skicka ett e-postmeddelande
Om du vill skicka ett e-postmeddelande anropar du funktionen beginSend från EmailClient. Detta kommer att returnera en avfrågare. Du kan använda den här avsökaren för att kontrollera åtgärdens status och hämta resultatet när den är klar.
import { DefaultAzureCredential } from "@azure/identity";
import { EmailClient } from "@azure/communication-email";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client = new EmailClient(endpoint, credential);
const message = {
senderAddress: "sender@contoso.com",
content: {
subject: "This is the subject",
plainText: "This is the body",
},
recipients: {
to: [
{
address: "customer@domain.com",
displayName: "Customer Name",
},
],
},
};
const poller = await client.beginSend(message);
const response = await poller.pollUntilDone();
Skicka ett e-postmeddelande till flera mottagare
Om du vill skicka ett e-postmeddelande till flera mottagare lägger du till ett objekt för varje mottagartyp och ett objekt för varje mottagare.
import { DefaultAzureCredential } from "@azure/identity";
import { EmailClient } from "@azure/communication-email";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client = new EmailClient(endpoint, credential);
const message = {
senderAddress: "sender@contoso.com",
content: {
subject: "This is the subject",
plainText: "This is the body",
},
recipients: {
to: [
{
address: "customer1@domain.com",
displayName: "Customer Name 1",
},
{
address: "customer2@domain.com",
displayName: "Customer Name 2",
},
],
cc: [
{
address: "ccCustomer1@domain.com",
displayName: " CC Customer 1",
},
{
address: "ccCustomer2@domain.com",
displayName: "CC Customer 2",
},
],
bcc: [
{
address: "bccCustomer1@domain.com",
displayName: " BCC Customer 1",
},
{
address: "bccCustomer2@domain.com",
displayName: "BCC Customer 2",
},
],
},
};
const poller = await client.beginSend(message);
const response = await poller.pollUntilDone();
Skicka e-post med bifogade filer
Azure Communication Services har stöd för att skicka e-post med bifogade filer.
import { DefaultAzureCredential } from "@azure/identity";
import { EmailClient } from "@azure/communication-email";
import { basename } from "node:path";
import { readFileSync } from "node:fs";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client = new EmailClient(endpoint, credential);
const filePath = "path/to/readme.txt";
const message = {
senderAddress: "sender@contoso.com",
content: {
subject: "This is the subject",
plainText: "This is the body",
},
recipients: {
to: [
{
address: "customer@domain.com",
displayName: "Customer Name",
},
],
},
attachments: [
{
name: basename(filePath),
contentType: "text/plain",
contentInBase64: readFileSync(filePath, "base64"),
},
],
};
const poller = await client.beginSend(message);
const response = await poller.pollUntilDone();
Skicka e-post med infogade bilagor
Azure Communication Services har stöd för att skicka e-post med infogade bifogade filer.
Om du lägger till en valfri contentId parameter i en attachment blir den en infogad bilaga.
import { DefaultAzureCredential } from "@azure/identity";
import { EmailClient } from "@azure/communication-email";
import { readFileSync } from "node:fs";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client = new EmailClient(endpoint, credential);
const imageBuffer = readFileSync("path/to/my_inline_image.jpg");
const contentInBase64 = imageBuffer.toString("base64");
const message = {
senderAddress: "sender@contoso.com",
content: {
subject: "This is the subject",
plainText: "This is the body",
html: '<html>This is the body<br /><img src="cid:inline_image" /></html>',
},
recipients: {
to: [
{
address: "customer@domain.com",
displayName: "Customer Name",
},
],
},
attachments: [
{
name: "my_inline_image.jpg",
contentType: "image/jpeg",
contentInBase64: contentInBase64,
contentId: "inline_image",
},
],
};
const poller = await client.beginSend(message);
const response = await poller.pollUntilDone();
Felsökning
Loggning / Skogsavverkning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL miljövariabeln till info. Du kan också aktivera loggning vid körning genom att anropa setLogLevel i @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Nästa steg
Contributing
Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag. Mer information finns på cla.microsoft.com.
Det här projektet har antagit Microsoft Open Source Code of Conduct (Microsofts regler för uppförande för öppen källkod). Mer information finns i vanliga frågor och svar om uppförandekod eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.
Azure SDK for JavaScript