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


Клиентская библиотека azure Communication Email для Python версии 1.0.0

Этот пакет содержит пакет SDK python для Службы коммуникации Azure для Email.

Основные понятия

Пакет azure Communication Email используется для отправки сообщений электронной почты нескольким типам получателей.

Начало работы

Предварительные требования

Вам потребуется подписка Azure, ресурс Службы коммуникации и ресурс Email связи с активным доменом.

Для создания этих ресурсов можно использовать портал Azure, Azure PowerShell или клиентская библиотека управления .NET.

Установка

Установите клиентную библиотеку azure Communication Email для Python с помощью pip:

pip install azure-communication-email

Примеры

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

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

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

from azure.communication.email import EmailClient

connection_string = "endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>"
client = EmailClient.from_connection_string(connection_string);

Кроме того, можно использовать проверку подлинности Active Directory с помощью DefaultAzureCredential.

from azure.communication.email import EmailClient
from azure.identity import DefaultAzureCredential

# To use Azure Active Directory Authentication (DefaultAzureCredential) make sure to have AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET as env variables.
endpoint = "https://<resource-name>.communication.azure.com"
client = EmailClient(endpoint, DefaultAzureCredential())

Email клиенты также могут проходить проверку подлинности с помощью AzureKeyCredential.

from azure.communication.email import EmailClient
from azure.core.credentials import AzureKeyCredential

credential = AzureKeyCredential("<api_key>")
endpoint = "https://<resource-name>.communication.azure.com/"
client = EmailClient(endpoint, credential);

Отправка сообщения Email

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

message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "<html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {
                "address": "customer@domain.com",
                "displayName": "Customer Name"
            }
        ]
    },
    "senderAddress": "sender@contoso.com"
}

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

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

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

message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "<html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {"address": "customer@domain.com", "displayName": "Customer Name"},
            {"address": "customer2@domain.com", "displayName": "Customer Name 2"}
        ],
        "cc": [
            {"address": "ccCustomer@domain.com", "displayName": "CC Customer Name"},
            {"address": "ccCustomer2@domain.com", "displayName": "CC Customer Name 2"}
        ],
        "bcc": [
            {"address": "bccCustomer@domain.com", "displayName": "BCC Customer Name"},
            {"address": "bccCustomer2@domain.com", "displayName": "BCC Customer Name 2"}
        ]
    },
    "senderAddress": "sender@contoso.com"
}

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

Отправка Email с вложениями

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

import base64

with open("C://readme.txt", "r") as file:
    file_contents = file.read()

file_bytes_b64 = base64.b64encode(bytes(file_contents, 'utf-8'))

message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "<html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {
                "address": "customer@domain.com",
                "displayName": "Customer Name"
            }
        ]
    },
    "senderAddress": "sender@contoso.com",
    "attachments": [
        {
            "name": "attachment.txt",
            "attachmentType": "text/plain",
            "contentInBase64": file_bytes_b64.decode()
        }
    ]
}

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

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

Email операции будут вызывать исключение в случае сбоя запроса к серверу. Клиент Email вызовет исключения, определенные в Azure Core.

from azure.core.exceptions import HttpResponseError

try:
    response = email_client.send(message)
except HttpResponseError as ex:
    print('Exception:')
    print(ex)

Дальнейшие действия

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см. на странице cla.microsoft.com.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.