Freigeben über


Azure Communication Email-Clientbibliothek für Python – Version 1.0.0

Dieses Paket enthält ein Python SDK für Azure Communication Services für Email.

Wichtige Begriffe

Das Azure Communication Email-Paket wird verwendet, um E-Mails an mehrere Empfängertypen zu senden.

Erste Schritte

Voraussetzungen

Sie benötigen ein Azure-Abonnement, eine Communication Service-Ressource und eine Email Kommunikationsressource mit einer aktiven Domäne.

Zum Erstellen dieser Ressource können Sie das Azure-Portal, die Azure PowerShell oder die .NET-Verwaltungsclientbibliothek verwenden.

Installieren von

Installieren Sie die Azure Communication Email-Clientbibliothek für Python mit pip:

pip install azure-communication-email

Beispiele

EmailClient stellt die Funktionalität zum Senden von E-Mail-Nachrichten bereit.

Authentifizierung

Email Clients können mithilfe der Verbindungszeichenfolge authentifiziert werden, die von einer Azure-Kommunikationsressource im Azure-Portal abgerufen wurde.

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

Alternativ können Sie auch die Active Directory-Authentifizierung mit DefaultAzureCredential verwenden.

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

E-Mail-Clients können auch mithilfe von AzureKeyCredential authentifiziert werden.

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

Senden einer Email Nachricht

Rufen Sie zum Senden einer E-Mail-Nachricht die begin_send-Funktion über den EmailClient auf. Dadurch wird ein Poller zurückgegeben. Sie können diesen Poller verwenden, um die status des Vorgangs zu überprüfen und das Ergebnis abzurufen, sobald er abgeschlossen ist.

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

Senden einer Email Nachricht an mehrere Empfänger

Um eine E-Mail-Nachricht an mehrere Empfänger zu senden, fügen Sie ein Objekt für jeden Empfängertyp und ein Objekt für jeden Empfänger hinzu.

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

Senden von Email mit Anlagen

Azure Communication Services unterstützen das Senden von E-Mails mit Anlagen.

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

Problembehandlung

Email Vorgänge lösen eine Ausnahme aus, wenn die Anforderung an den Server fehlschlägt. Der Email-Client löst ausnahmen aus, die in Azure Core definiert sind.

from azure.core.exceptions import HttpResponseError

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

Nächste Schritte

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.