Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo pacchetto contiene un SDK JavaScript/TypeScript per Servizi di comunicazione di Azure per la posta elettronica.
Come iniziare
Prerequisiti
Sono necessari una sottoscrizione di Azure, una risorsa del servizio di comunicazione e una risorsa di comunicazione tramite posta elettronica con un dominio attivo.
Per creare queste risorse, è possibile usare il portale di Azure, Azure PowerShell o la libreria client di gestione .NET.
Installazione in corso
npm install @azure/communication-email
Esempi
EmailClient Fornisce la funzionalità per l'invio di messaggi di posta elettronica.
Authentication
I client di posta elettronica possono essere autenticati usando la stringa di connessione acquisita da una risorsa di comunicazione di Azure nel portale di Azure.
import { EmailClient } from "@azure/communication-email";
const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client = new EmailClient(connectionString);
È anche possibile eseguire l'autenticazione con Azure Active Directory usando la libreria di identità di Azure. Per usare il provider DefaultAzureCredential
npm install @azure/identity
Il pacchetto @azure/identity offre diversi tipi di credenziali che l'applicazione può usare per eseguire questa operazione. README per @azure/identity fornisce altri dettagli ed esempi per iniziare.
AZURE_CLIENT_SECRET, AZURE_CLIENT_ID e AZURE_TENANT_ID variabili di ambiente sono necessarie per creare un oggetto DefaultAzureCredential.
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);
Invio di un messaggio e-mail
Per inviare un messaggio di posta elettronica, chiamare la funzione beginSend dal EmailClient. Questo restituirà un poller. È possibile utilizzare questo poller per controllare lo stato dell'operazione e recuperare il risultato una volta terminata.
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();
Invio di un messaggio e-mail a più destinatari
Per inviare un messaggio di posta elettronica a più destinatari, aggiungere un oggetto per ogni tipo di destinatario e un oggetto per ogni destinatario.
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();
Invia messaggio di posta elettronica con allegati
Servizi di comunicazione di Azure supporta l'invio di messaggi di posta elettronica con allegati.
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();
Inviare e-mail con allegati in linea
Servizi di comunicazione di Azure supporta l'invio di messaggi di posta elettronica con allegati incorporati.
L'aggiunta di un parametro facoltativo contentId a un attachment collegamento lo renderà un allegato in linea.
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();
Risoluzione dei problemi
Registrazione
L'abilitazione della registrazione può aiutare a individuare informazioni utili sugli errori. Per visualizzare un log di richieste e risposte HTTP, impostare la variabile di ambiente AZURE_LOG_LEVEL su info. In alternativa, la registrazione può essere abilitata in fase di esecuzione chiamando setLogLevel nel @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Passaggi successivi
Contributing
Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede l'accettazione di un Contratto di licenza collaboratore (CLA) che dichiara di avere il diritto e, in realtà, concedere a Microsoft i diritti per l'uso del contributo. Per ulteriori informazioni, visitare il sito cla.microsoft.com.
Questo progetto ha adottato il codice di comportamento open source Microsoft. Per altre informazioni, vedere domande frequenti sul codice di comportamento o contattare opencode@microsoft.com con eventuali domande o commenti aggiuntivi.
Azure SDK for JavaScript