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.
Azure SDK for Python