Python 用 Azure Communication Email クライアント ライブラリ - バージョン 1.0.0

このパッケージには、Email用の Python SDK for Azure Communication Servicesが含まれています。

主要な概念

Azure Communication Email パッケージは、複数の種類の受信者にメールを送信するために使用されます。

作業の開始

前提条件

Azure サブスクリプションCommunication Service リソース、およびアクティブなドメインを持つEmail通信リソースが必要です。

これらのリソースを作成するには、Azure PortalAzure PowerShell、または .NET 管理クライアント ライブラリを使用できます。

[インストール中]

pip を使用して Python 用 Azure Communication Email クライアント ライブラリをインストールします。

pip install azure-communication-email

EmailClient は、電子メール メッセージを送信する機能を提供します。

認証

Emailクライアントは、Azure Portal の Azure Communication Resource から取得した接続文字列を使用して認証できます。

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

または、DefaultAzureCredential を使用して Active Directory 認証を使用することもできます。

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

メール クライアントは、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 メッセージを送信する

メール メッセージを送信するには、EmailClient から begin_send 関数を呼び出します。 これにより、投票者が返されます。 このポーリングツールを使用すると、操作の状態をチェックし、完了したら結果を取得できます。

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 メッセージを送信する

複数の受信者にメール メッセージを送信するには、受信者の種類ごとに オブジェクトを追加し、受信者ごとに 1 つのオブジェクトを追加します。

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 Communication Servicesは、添付ファイルを含むメールの送信をサポートしています。

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) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。