Bagikan melalui


Pustaka klien Azure Communication Email untuk Python - versi 1.0.0

Paket ini berisi Python SDK untuk Azure Communication Services untuk Email.

Konsep utama

Paket Azure Communication Email digunakan untuk mengirim email ke beberapa jenis penerima.

Memulai

Prasyarat

Anda memerlukan langganan Azure, Sumber Daya Communication Service, dan Sumber Daya Komunikasi Email dengan Domain aktif.

Untuk membuat sumber daya ini, Anda dapat menggunakan Portal Microsoft Azure, Azure PowerShell, atau pustaka klien manajemen .NET.

Menginstal

Instal pustaka klien Azure Communication Email untuk Python dengan pip:

pip install azure-communication-email

Contoh

EmailClient menyediakan fungsionalitas untuk mengirim pesan email.

Autentikasi

Email klien dapat diautentikasi menggunakan string koneksi yang diperoleh dari Sumber Daya Komunikasi Azure di Portal Microsoft 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);

Atau, Anda juga dapat menggunakan autentikasi Direktori Aktif menggunakan 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 klien juga dapat diautentikasi menggunakan 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);

Mengirim Pesan Email

Untuk mengirim pesan email, panggil begin_send fungsi dari EmailClient. Ini akan mengembalikan poller. Anda dapat menggunakan poller ini untuk memeriksa status operasi dan mengambil hasilnya setelah selesai.

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

Mengirim Pesan Email ke Beberapa Penerima

Untuk mengirim pesan email ke beberapa penerima, tambahkan objek untuk setiap jenis penerima dan objek untuk setiap penerima.

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

Kirim Email dengan Lampiran

Azure Communication Services mendukung pengiriman email dengan lampiran.

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

Pemecahan Masalah

Email operasi akan memberikan pengecualian jika permintaan ke server gagal. Klien Email akan memunculkan pengecualian yang ditentukan di Azure Core.

from azure.core.exceptions import HttpResponseError

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

Langkah berikutnya

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi cla.microsoft.com.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Tata Tertib atau hubungi opencode@microsoft.com untuk pertanyaan atau komentar lainnya.