Udostępnij za pomocą


Biblioteka klienta poczty e-mail usługi Azure Communication dla języka JavaScript — wersja 1.1.0

Ten pakiet zawiera zestaw SDK języka JavaScript/TypeScript dla usług Azure Communication Services dla poczty e-mail.

Wprowadzenie

Wymagania wstępne

Potrzebna jest subskrypcja platformy Azure, zasób usługi komunikacyjnej i zasób komunikacji e-mail z aktywną domeną.

Aby utworzyć te zasoby, możesz użyć Azure Portal, Azure PowerShell lub biblioteki klienta zarządzania platformy .NET.

Instalowanie

npm install @azure/communication-email

Przykłady

EmailClient Udostępnia funkcję wysyłania wiadomości e-mail.

Authentication

Klientów poczty e-mail można uwierzytelniać przy użyciu parametrów połączenia uzyskanych z zasobu komunikacyjnego platformy Azure w witrynie Azure Portal.

import { EmailClient } from "@azure/communication-email";

const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client = new EmailClient(connectionString);

Możesz również uwierzytelnić się za pomocą Azure Active Directory przy użyciu biblioteki tożsamości platformy Azure. Aby użyć domyślnego dostawcyAzureCredential pokazanego poniżej lub innych dostawców poświadczeń dostarczonych z zestawem Azure SDK, zainstaluj @azure/identity pakiet:

npm install @azure/identity

Pakiet @azure/identity udostępnia różne typy poświadczeń, których aplikacja może użyć do tego celu. Plik README dla @azure/identity zawiera więcej szczegółów i przykładów, żeby pomóc Ci rozpocząć. AZURE_CLIENT_SECRET, AZURE_CLIENT_ID i AZURE_TENANT_ID zmienne środowiskowe są potrzebne do utworzenia obiektu 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);

Wyślij wiadomość e-mail

Aby wysłać wiadomość e-mail, wywołaj funkcję beginSend z EmailClient. Spowoduje to zwrócenie odpytnika. Możesz użyć tego programu do odpytywania w celu sprawdzenia stanu operacji i pobrania wyniku po jej zakończeniu.

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();

Wysyłanie wiadomości e-mail do wielu adresatów

Aby wysłać wiadomość e-mail do wielu adresatów, dodaj obiekt dla każdego typu adresata i obiekt dla każdego adresata.

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();

Wysyłanie wiadomości e-mail z załącznikami

Azure Communication Services obsługuje wysyłanie wiadomości e-mail z załącznikami.

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();

Wysyłanie wiadomości e-mail z wbudowanymi załącznikami

Azure Communication Services obsługuje wysyłanie wiadomości e-mail z wbudowanymi załącznikami. Dodanie opcjonalnego contentId parametru do elementu spowoduje attachment , że stanie się on wbudowanym załącznikiem.

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();

Rozwiązywanie problemów

Logging

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Dalsze kroki

Contributing

Ten projekt z zadowoleniem przyjmuje wkład i sugestie. Większość kontrybucja wymaga zgody na umowę licencyjną współautora (CLA), deklarując, że masz prawo, a w rzeczywistości przyznaj nam prawa do korzystania z twojego wkładu. Szczegółowe informacje można znaleźć na stronie cla.microsoft.com.

W tym projekcie jest używany Kodeks postępowania firmy Microsoft dla oprogramowania typu open source. Aby uzyskać więcej informacji, zobacz Kodeks postępowania — często zadawane pytania lub skontaktuj się z opencode@microsoft.com z dodatkowymi pytaniami lub komentarzami.