Поделиться через


Краткое руководство. Отправка электронной почты нескольким получателям

В этом кратком руководстве вы узнаете, как отправлять сообщения электронной почты нескольким получателям с помощью наших пакетов SDK для электронной почты.

Начало работы с Службы коммуникации Azure с помощью клиентской библиотеки электронной почты служб коммуникации .NET для отправки сообщений электронной почты.

Совет

Переход к интерфейсу отправки электронной почты с Службы коммуникации Azure путем пропуска непосредственно к базовой отправке электронной почты и расширенной отправке электронной почты на GitHub.

Общие сведения об объектной модели электронной почты

Следующие классы и интерфейсы реализуют некоторые основные функции клиентской библиотеки Служб коммуникации электронной почты для C#.

Имя Описание
EmailAddress Этот класс содержит адрес электронной почты и параметр отображаемого имени.
EmailAttachment Этот класс создает вложение электронной почты, принимая уникальный идентификатор, строку типа MIME вложения электронной почты и двоичные данные для содержимого.
EmailClient Этот класс требуется для реализации всех функций электронной почты. Вы создаете его с помощью строки подключения и используете для отправки сообщений электронной почты.
EmailClientOptions Этот класс можно добавить в экземпляр EmailClient для конкретной версии API.
EmailContent Этот класс содержит тему и текст сообщения электронной почты. Необходимо указать по крайней мере одно из содержимого PlainText или Html
EmailCustomHeader Этот класс позволяет добавить пару имени и значения для настраиваемого заголовка. Важность электронной почты также можно указать с помощью этих заголовков с помощью имени заголовка x-priority или x-msmail-priority.
EmailMessage Этот класс объединяет отправителя, содержимое и получателей. Также можно добавить пользовательские заголовки, вложения и адреса электронной почты с ответом.
EmailRecipients Этот класс содержит списки объектов EmailAddress для получателей сообщения электронной почты, включая необязательные списки для получателей CC и BCC.
EmailSendOperation Этот класс представляет асинхронную операцию отправки электронной почты и возвращается из вызова API отправки электронной почты.
EmailSendResult Этот класс содержит результаты операции отправки электронной почты. Он имеет идентификатор операции, состояние операции и объект ошибки (если применимо).

EmailSendResult возвращает следующее состояние операции электронной почты.

Состояние Description
NotStarted В настоящее время мы не отправляем это состояние из нашей службы.
Выполняется Операция отправки электронной почты в настоящее время выполняется и обрабатывается.
Выполнено успешно Операция отправки электронной почты завершена без ошибок, и сообщение электронной почты выходит за доставку. Любое подробное состояние доставки электронной почты за пределами этого этапа можно получить через Azure Monitor или через Сетка событий Azure. Узнайте, как подписаться на события электронной почты
Неудачно Операция отправки электронной почты не прошла успешно и возникла ошибка. Сообщение не было отправлено. Результат содержит объект ошибки с дополнительными сведениями о причине сбоя.

Необходимые компоненты

Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.

Примечание.

Мы также можем отправить сообщение электронной почты из собственного проверенного домена. Добавьте настраиваемые проверенные домены в службу коммуникации электронной почты.

Проверка предварительных условий

  • В окне терминала или команды выполните команду dotnet, чтобы проверить, установлена ли клиентская библиотека .NET.
  • Чтобы посмотреть поддомены, связанные с ресурсом Служб коммуникации, войдите на портал Azure, перейдите к ресурсу коммуникации электронной почты и откройте вкладку Подготовка доменов в области навигации слева.

Создание нового приложения C#

В окне консоли (cmd, PowerShell или Bash) выполните команду dotnet new, чтобы создать консольное приложение с именем EmailQuickstart. Эта команда создает простой проект "Hello World" на языке C# с одним файлом исходного кода Program.cs.

dotnet new console -o EmailQuickstart

Измените каталог на только что созданную папку приложения и выполните команду dotnet build, чтобы скомпилировать приложение.

cd EmailQuickstart
dotnet build

Установка пакета

Оставаясь в каталоге приложения, установите пакет клиентской библиотеки Коммуникации электронной почты для .NET с помощью команды dotnet add package.

dotnet add package Azure.Communication.Email

Создание клиента электронной почты с проверкой подлинности

Откройте файл Program.cs и замените существующий код следующим кодом, чтобы добавить using директивы для включения Azure.Communication.Email пространства имен и отправной точки для выполнения программы.


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)
    {

    }
  }
}

Существует несколько различных вариантов проверки подлинности клиента электронной почты:

Откройте Program.cs в текстовом редакторе и замените текст метода Main кодом, чтобы инициализировать EmailClient с помощью строки подключения. Следующий код извлекает строка подключения ресурса из переменной среды с именемCOMMUNICATION_SERVICES_CONNECTION_STRING. См. сведения о том, как управлять строкой подключения ресурса.

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

Отправка сообщения электронной почты нескольким получателям

Мы можем определить нескольких получателей, добавив дополнительные адреса EmailAddresses в объект EmailRecipients. Эти адреса можно добавить как To, CCили BCC получателей. При необходимости можно также добавить ReplyTo адрес электронной почты для получения ответов.

// Create the email content
var emailContent = new EmailContent("Welcome to Azure Communication Service Email APIs.")
{
    PlainText = "This email message is sent from Azure Communication Service Email.",
    Html = "<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>"
};

// Create the To list
var toRecipients = new List<EmailAddress>
{
  new EmailAddress("<emailalias1@emaildomain.com>"),
  new EmailAddress("<emailalias2@emaildomain.com>"),
};

// Create the CC list
var ccRecipients = new List<EmailAddress>
{
  new EmailAddress("<ccemailalias@emaildomain.com>"),
};

// Create the BCC list
var bccRecipients = new List<EmailAddress>
{
  new EmailAddress("<bccemailalias@emaildomain.com>"),
};

EmailRecipients emailRecipients = new EmailRecipients(toRecipients, ccRecipients, bccRecipients);

// Create the EmailMessage
var emailMessage = new EmailMessage(
    senderAddress: "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net" // The email address of the domain registered with the Communication Services resource
    emailRecipients,
    emailContent);

// Add optional ReplyTo address which is where any replies to the email will go to.
emailMessage.ReplyTo.Add(new EmailAddress("<replytoemailalias@emaildomain.com>"));

try
{
    EmailSendOperation emailSendOperation = emailClient.Send(WaitUntil.Completed, emailMessage);
    Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");

    /// 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}");
}
catch (RequestFailedException ex)
{
    /// OperationID is contained in the exception message and can be used for troubleshooting purposes
    Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}

Запустите приложение из каталога приложения с помощью команды dotnet run.

dotnet run

Пример кода

Пример приложения, демонстрирующего это действие, можно скачать с GitHub

Начало работы со Службами коммуникации Azure с помощью клиентской библиотеки электронной почты Служб коммуникации Azure для JS для отправки сообщений электронной почты.

Совет

Переход к интерфейсу отправки электронной почты с Службы коммуникации Azure путем пропуска непосредственно к базовой отправке электронной почты и расширенной отправке электронной почты на GitHub.

Общие сведения об объектной модели электронной почты

Следующие классы и интерфейсы реализуют некоторые основные функции клиентской библиотеки чата Служб коммуникации электронной почты для JavaScript.

Имя Описание
EmailAddress Этот класс содержит адрес электронной почты и параметр отображаемого имени.
EmailAttachment Этот класс создает вложение электронной почты, принимая уникальный идентификатор, строку типа MIME вложения электронной почты и двоичные данные для содержимого.
EmailClient Этот класс требуется для реализации всех функций электронной почты. Вы создаете его с помощью строки подключения и используете для отправки сообщений электронной почты.
EmailClientOptions Этот класс можно добавить в экземпляр EmailClient для конкретной версии API.
EmailContent Этот класс содержит тему и текст сообщения электронной почты. Необходимо указать по крайней мере одно из содержимого PlainText или Html.
EmailCustomHeader Этот класс позволяет добавить пару имени и значения для настраиваемого заголовка. Важность электронной почты также можно указать с помощью этих заголовков с помощью имени заголовка x-priority или x-msmail-priority.
EmailMessage Этот класс объединяет отправителя, содержимое и получателей. Также можно добавить пользовательские заголовки, вложения и адреса электронной почты с ответом.
EmailRecipients Этот класс содержит списки объектов EmailAddress для получателей сообщения электронной почты, включая необязательные списки для получателей CC и BCC.
EmailSendResult Этот класс содержит результаты операции отправки электронной почты. Он имеет идентификатор операции, состояние операции и объект ошибки (если применимо).
EmailSendStatus Этот класс представляет набор состояний операции отправки электронной почты.

EmailSendResult возвращает следующее состояние операции электронной почты.

Название статуса Description
isStarted Возвращает значение true, если операция отправки электронной почты в настоящее время выполняется и обрабатывается.
IsCompleted Возвращает значение true, если операция отправки электронной почты завершена без ошибок, и сообщение электронной почты выходит за доставку. Любое подробное состояние доставки электронной почты за пределами этого этапа можно получить через Azure Monitor или через Сетка событий Azure. Узнайте, как подписаться на события электронной почты
result Свойство, которое существует, если операция отправки электронной почты завершилась.
error Свойство, которое существует, если операция отправки электронной почты не была успешной и возникла ошибка. Сообщение не было отправлено. Результат содержит объект ошибки с дополнительными сведениями о причине сбоя.

Необходимые компоненты

Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.

Примечание.

Мы также можем отправить сообщение электронной почты из собственного проверенного домена. Добавьте настраиваемые проверенные домены в службу коммуникации электронной почты.

Проверка предварительных условий

  • В терминале или командном окне воспользуйтесь node --version, чтобы проверить, установлен ли пакет Node.js.
  • Чтобы посмотреть домены, проверенные ресурсом Служб коммуникации, войдите на портал Azure, перейдите к ресурсу коммуникации электронной почты и откройте вкладку Подготовка доменов в области навигации слева.

Настройка среды приложения

Создание нового приложения Node.js

Откройте терминал или командное окно, создайте каталог для своего приложения и перейдите к нему.

mkdir email-quickstart && cd email-quickstart

Воспользуйтесь командой npm init -y, чтобы создать файл package.json с параметрами по умолчанию.

npm init -y

Используйте текстовый редактор, чтобы создать файл с именем send-sms.js в корневом каталоге проекта. Измените свойство main в файле package.json на send-email.js. В следующем разделе показано, как добавить исходный код для этого краткого руководства в созданный файл.

Установка пакета

Используйте команду npm install, чтобы установить клиентскую библиотеку Служб коммуникации электронной почты для JavaScript.

npm install @azure/communication-email --save

Параметр --save указывает библиотеку как зависимость в файле пакета package.json.

Создание клиента электронной почты с проверкой подлинности

Существует несколько различных вариантов проверки подлинности клиента электронной почты:

Импортируйте EmailClient из клиентской библиотеки и создайте его экземпляр с помощью строки подключения.

Следующий код извлекает строка подключения ресурса из переменной среды с именем COMMUNICATION_SERVICES_CONNECTION_STRING пакета dotenv. С помощью команды npm install установите пакет dotenv. См. сведения о том, как управлять строкой подключения ресурса.

npm install dotenv

Добавьте в send-sms.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);

Для простоты в этом кратком руководстве используются строка подключения, но в рабочих средах рекомендуется использовать субъекты-службы.

Отправка сообщения электронной почты нескольким получателям

Чтобы отправить сообщение электронной почты нескольким получателям, добавьте объект для каждого типа получателя и объект для каждого получателя. Эти адреса можно добавить как To, CCили BCC получателей. При необходимости добавьте адрес электронной почты в replyTo свойство, если вы хотите получить ответы.

const message = {
  senderAddress: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
  content: {
    subject: "Welcome to Azure Communication Service Email.",
    plainText: "<This email message is sent from Azure Communication Service Email using JS SDK.>"
  },
  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",
      }
    ]
  },
  replyTo: [
    {
      address: "replyToCustomer1@domain.com",
      displayName: "ReplyTo Customer 1",
    }
  ]
};

const poller = await emailClient.beginSend(message);
const response = await poller.pollUntilDone();

Пример кода

Пример приложения, демонстрирующего это действие, можно скачать с GitHub

Приступая к работе с Службы коммуникации Azure с помощью пакета SDK для электронной почты java для служб коммуникации для отправки сообщений электронной почты.

Совет

Переход к интерфейсу отправки электронной почты с Службы коммуникации Azure путем пропуска непосредственно к базовой отправке электронной почты и расширенной отправке электронной почты на GitHub.

Общие сведения об объектной модели электронной почты

Следующие классы и интерфейсы обрабатывают некоторые основные функции пакета SDK для электронной почты Службы коммуникации Azure для Python.

Имя Описание
EmailAddress Этот класс содержит адрес электронной почты и параметр отображаемого имени.
EmailAttachment Этот интерфейс создает вложение электронной почты, принимая уникальный идентификатор, строку типа MIME вложения электронной почты и строку байтов содержимого.
EmailClient Этот класс требуется для реализации всех функций электронной почты. Вы создаете его с помощью строки подключения и используете для отправки сообщений электронной почты.
EmailMessage Этот класс объединяет отправителя, содержимое и получателей. Также можно добавить пользовательские заголовки, вложения и адреса электронной почты с ответом.
EmailSendResult Этот класс содержит результаты операции отправки электронной почты. Он имеет идентификатор операции, состояние операции и объект ошибки (если применимо).
EmailSendStatus Этот класс представляет набор состояний операции отправки электронной почты.

EmailSendResult возвращает следующее состояние операции электронной почты.

Название статуса Description
NOT_STARTED В настоящее время мы не отправляем это состояние из нашей службы.
IN_PROGRESS Операция отправки электронной почты в настоящее время выполняется и обрабатывается.
SUCCESSFULLY_COMPLETED Операция отправки электронной почты завершена без ошибок, и сообщение электронной почты выходит за доставку. Любое подробное состояние доставки электронной почты за пределами этого этапа можно получить через Azure Monitor или через Сетка событий Azure. Узнайте, как подписаться на события электронной почты
СБОЙ Операция отправки электронной почты не прошла успешно и возникла ошибка. Сообщение не было отправлено. Результат содержит объект ошибки с дополнительными сведениями о причине сбоя.

Необходимые компоненты

Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.

Примечание.

Мы также можем отправить сообщение электронной почты из собственного проверенного домена Добавление настраиваемых проверенных доменов в службу коммуникации электронной почты.

Проверка предварительных условий

  • В окне терминала или командной строки запустите mvn -v проверка установленного Maven.
  • Чтобы просмотреть домены, проверенные ресурсом Служб коммуникации электронной почты, войдите в портал Azure. Найдите ресурс Служб коммуникации электронной почты и откройте вкладку "Подготовка доменов " в области навигации слева.

Настройка среды приложения

Чтобы настроить среду для отправки сообщений электронной почты, выполните действия, описанные в следующих разделах.

Создание нового приложения Java

Откройте терминал или командное окно и перейдите в каталог, в котором необходимо создать приложение Java. Выполните следующую команду, чтобы создать проект Java из шаблона 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"

Цель generate создает каталог с тем же именем, что artifactId и значение. В этом каталоге каталог src/main/java содержит исходный код проекта, каталог src/test/java содержит источник теста, а файл pom.xml — объектная модель проекта проекта (POM).

Установка пакета

Откройте файл pom.xml в текстовом редакторе. Добавьте приведенный ниже элемент зависимости в группу зависимостей.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-email</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

Настройка платформы приложения

Откройте /src/main/java/com/communication/quickstart/App.java в текстовом редакторе, добавьте директивы импорта и удалите инструкцию 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.PollResponse;
import com.azure.core.util.polling.SyncPoller;

public class App
{
    public static void main( String[] args )
    {
        // Quickstart code goes here.
    }
}

Создание клиента электронной почты с проверкой подлинности

Существует несколько различных вариантов проверки подлинности клиента электронной почты:

Чтобы выполнить проверку подлинности клиента, создайте экземпляр EmailClient строка подключения. См. сведения о том, как управлять строкой подключения ресурса. Вы также можете инициализировать клиент с помощью любого пользовательского HTTP-клиента, реализующего com.azure.core.http.HttpClient интерфейс.

Чтобы создать экземпляр клиента, добавьте следующий код в main метод:

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

Для простоты в этом кратком руководстве используются строка подключения, но в рабочих средах рекомендуется использовать субъекты-службы.

Отправка сообщения электронной почты нескольким получателям

Чтобы отправить сообщение электронной почты нескольким получателям, добавьте новые адреса в соответствующий EmailMessage метод задания. Эти адреса можно добавить как To, CCили BCC получателей. При необходимости добавьте адрес электронной почты в replyTo свойство, если вы хотите получить ответы.

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.")
    .setToRecipients("<recipient1@emaildomain.com>", "<recipient2@emaildomain.com>")
    .setCcRecipients("<recipient3@emaildomain.com>")
    .setBccRecipients("<recipient4@emaildomain.com>")
    .setReplyTo("<replytoemail@emaildomain.com>");

SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();

System.out.println("Operation Id: " + response.getValue().getId());

Чтобы настроить получателей сообщений электронной почты, можно создать экземпляры EmailAddress объектов и передать их соответствующим EmailMessage наборам.

EmailAddress toAddress1 = new EmailAddress("<recipient1@emaildomain.com>")
    .setDisplayName("Recipient");

EmailAddress toAddress2 = new EmailAddress("<recipient2@emaildomain.com>")
    .setDisplayName("Recipient 2");

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.")
    .setToRecipients(toAddress1, toAddress2)
    .setCcRecipients(toAddress1, toAddress2)
    .setBccRecipients(toAddress1, toAddress2)

SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();

System.out.println("Operation Id: " + response.getValue().getId());

Пример кода

Пример приложения, демонстрирующего это действие, можно скачать с GitHub

Начало работы с Службы коммуникации Azure с помощью пакета SDK для электронной почты Python для служб коммуникации для отправки сообщений электронной почты.

Совет

Переход к интерфейсу отправки электронной почты с Службы коммуникации Azure путем пропуска непосредственно к базовой отправке электронной почты и расширенной отправке электронной почты на GitHub.

Общие сведения об объектной модели электронной почты

В следующем шаблоне сообщения JSON и объекте ответа демонстрируются некоторые основные функции пакета SDK для электронной почты Службы коммуникации Azure для 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.
    }
}

Значения response.status описаны далее в следующей таблице.

Название статуса Description
InProgress Операция отправки электронной почты в настоящее время выполняется и обрабатывается.
Выполнено успешно Операция отправки электронной почты завершена без ошибок, и сообщение электронной почты выходит за доставку. Любое подробное состояние доставки электронной почты за пределами этого этапа можно получить через Azure Monitor или через Сетка событий Azure. Узнайте, как подписаться на события электронной почты
Неудачно Операция отправки электронной почты не прошла успешно и возникла ошибка. Сообщение не было отправлено. Результат содержит объект ошибки с дополнительными сведениями о причине сбоя.

Необходимые компоненты

Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.

Примечание.

Мы также можем отправить сообщение электронной почты из собственного проверенного домена. Добавьте настраиваемые проверенные домены в службу коммуникации электронной почты.

Проверка предварительных условий

  • В окне терминала или команды выполните команду python --version, чтобы проверить, установлен ли пакет Python.
  • Чтобы просмотреть домены, проверенные ресурсом Служб коммуникации электронной почты, войдите в портал Azure. Найдите ресурс Служб коммуникации электронной почты и откройте вкладку "Подготовка доменов " в области навигации слева.

Настройка среды приложения

Чтобы настроить среду для отправки сообщений электронной почты, выполните действия, описанные в следующих разделах.

Создание приложения Python

  1. Откройте терминал или командное окно. Затем выполните следующую команду, чтобы создать виртуальную среду и активировать ее. Эта команда создает новый каталог для приложения.

    python -m venv email-quickstart
    
  2. Перейдите в корневой каталог виртуальной среды и активируйте его с помощью следующих команд.

    cd email-quickstart
    .\Scripts\activate
    
  3. Используйте текстовый редактор, чтобы создать файл с именем send-email.py в корневом каталоге проекта и добавить структуру для программы, включая базовую обработку исключений.

    import os
    from azure.communication.email import EmailClient
    
    try:
        # Quickstart code goes here.
    except Exception as ex:
        print('Exception:')
        print(ex)
    

В следующих разделах вы добавите весь исходный код для этого краткого руководства в созданный файл send-email.py .

Установка пакета

В каталоге приложений установите пакет SDK для электронной почты Службы коммуникации Azure для Python с помощью следующей команды.

pip install azure-communication-email

Создание клиента электронной почты с проверкой подлинности

Существует несколько различных вариантов проверки подлинности клиента электронной почты:

Создайте экземпляр EmailClient с помощью строка подключения. См. сведения о том, как управлять строкой подключения ресурса.

# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)

Для простоты в этом кратком руководстве используются строка подключения, но в рабочих средах рекомендуется использовать субъекты-службы.

Отправка сообщения электронной почты нескольким получателям

Мы можем определить нескольких получателей, добавив в объект дополнительные адреса электронной почты recipients . Эти адреса можно добавить в виде toccсписков получателей или bcc соответствующим образом. При необходимости можно также добавить ReplyTo адрес электронной почты для получения ответов.

message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
            {"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
        ],
        "cc": [
            {"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
            {"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
        ],
        "bcc": [
            {"address": "<recipient1@emaildomain.com>", "displayName": "Customer Name"},
            {"address": "<recipient2@emaildomain.com>", "displayName": "Customer Name 2"}
        ]
    },
    "replyTo": [
        {"address": "<replytoemail@emaildomain.com>", "displayName": "Display Name"}
    ],
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
}

poller = email_client.begin_send(message)
result = poller.result()

Пример кода

Пример приложения, демонстрирующего это действие, можно скачать с GitHub

Устранение неполадок

Доставка электронной почты

Чтобы устранить неполадки, связанные с доставкой электронной почты, можно получить состояние доставки электронной почты для записи сведений о доставке.

Важно!

Результат успешного выполнения, возвращенный опросом состояния операции отправки, проверяет только тот факт, что сообщение электронной почты успешно отправлено для доставки. Чтобы получить дополнительные сведения о состоянии доставки в конце получателя, вам потребуется указать , как обрабатывать события электронной почты.

Регулирование электронной почты

Если вы видите, что приложение зависает, это может быть связано с регулированием отправки электронной почты. Это можно обрабатывать с помощью ведения журнала или реализации настраиваемой политики.

Примечание.

Эта настройка песочницы поможет разработчикам приступить к созданию приложения. Вы можете постепенно запросить увеличение объема отправки после готовности приложения к работе. Отправьте запрос на поддержку, чтобы увеличить требуемое ограничение отправки, если требуется отправить объем сообщений, превышающих ограничения скорости.

Очистка ресурсов Службы коммуникации Azure

Если вы хотите отменить и удалить подписку на Службы коммуникации, можно удалить ресурс или группу ресурсов. При удалении группы ресурсов также удаляются все связанные с ней ресурсы. См. сведения об очистке ресурсов.

Следующие шаги

В этом кратком руководстве вы узнали, как вручную опрашивать состояние при отправке электронной почты с помощью Службы коммуникации Azure.

Полезные ссылки