Udostępnij za pośrednictwem


Biblioteka klienta usługi Azure Communication Email dla języka Python — wersja 1.0.0

Ten pakiet zawiera zestaw SDK języka Python dla Azure Communication Services dla Email.

Kluczowe pojęcia

Pakiet Email usługi Azure Communication służy do wysyłania wiadomości e-mail do wielu typów adresatów.

Wprowadzenie

Wymagania wstępne

Potrzebna jest subskrypcja platformy Azure, zasób usługi komunikacji i zasób komunikacji Email z aktywną domeną.

Aby utworzyć ten zasób, możesz użyć witryny Azure Portal, Azure PowerShell lub biblioteki klienta zarządzania platformy .NET.

Instalowanie

Zainstaluj bibliotekę klienta usługi Azure Communication Email dla języka Python przy użyciu narzędzia pip:

pip install azure-communication-email

Przykłady

EmailClient udostępnia funkcje wysyłania wiadomości e-mail.

Authentication

Email klientów można uwierzytelnić przy użyciu parametrów połączenia uzyskanych z zasobu komunikacji platformy Azure w witrynie Azure Portal.

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

Alternatywnie można również użyć uwierzytelniania usługi Active Directory przy użyciu opcji 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 klientów można również uwierzytelniać przy użyciu obiektu 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);

Wysyłanie komunikatu Email

Aby wysłać wiadomość e-mail, wywołaj begin_send funkcję z pliku EmailClient. Spowoduje to zwrócenie pollera. Możesz użyć tego narzędzia poller, aby sprawdzić stan operacji i pobrać wynik po zakończeniu.

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

Wysyłanie wiadomości Email 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.

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

Wysyłanie Email z załącznikami

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

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

Rozwiązywanie problemów

Email operacje zgłaszają wyjątek, jeśli żądanie do serwera zakończy się niepowodzeniem. Klient Email zgłosi wyjątki zdefiniowane w usłudze Azure Core.

from azure.core.exceptions import HttpResponseError

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

Następne kroki

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę cla.microsoft.com.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.