次の方法で共有


クイックスタート: 添付ファイル付きでメールを送信する

このクイック スタートでは、Email SDK を使用して添付ファイル付きのメールを送信する方法について説明します。

Communication Services の .NET Email クライアント ライブラリを使用して電子メール メッセージを送信することによって、Azure Communication Services の使用を開始します。

ヒント

GitHub の基本的な電子メールの送信高度な電子メールの送信サンプル コードに直接スキップして、Azure Communication Services を使用した電子メール送信エクスペリエンスを開始します。

メール オブジェクト モデルについて

C# 用 Azure Communication Services Email クライアント ライブラリが備える主な機能のいくつかは、以下のクラスとインターフェイスにより処理されます。

名前 説明
EmailAddress このクラスには、メール アドレスと表示名のオプションが含まれています。
EmailAttachment このクラスは、一意の ID、メール添付ファイルの MIME の種類の文字列、コンテンツのバイナリ データ、添付ファイルをインライン添付ファイルとして定義するオプションのコンテンツ ID を受け入れて、メールの添付ファイルを作成します。
EmailClient このクラスは、すべてのメール機能に必要となります。 接続文字列を使用してこれをインスタンス化し、それを使用して電子メール メッセージを送信します。
EmailClientOptions このクラスを EmailClient のインスタンス化に追加して、特定の API バージョンをターゲットにすることができます。
EmailContent このクラスには、電子メール メッセージの件名と本文が含まれています。 プレーンテキストまたは Html コンテンツの少なくとも 1 つを指定する必要があります
EmailCustomHeader このクラスにより、カスタム ヘッダーの名前と値のペアを追加できます。 メールの重要度は、ヘッダー名 'x-priority' または 'x-msmail-priority' を使用して、これらのヘッダーで指定することもできます
EmailMessage このクラスは、送信者、コンテンツ、受信者を結合します。 カスタム ヘッダー、添付ファイル、および返信先のメール アドレスも必要に応じて追加できます。
EmailRecipients このクラスは、CC と BCC 受信者のオプション リストなど、メール メッセージの受信者に関する EmailAddress オブジェクトの一覧を保持します。
EmailSendOperation このクラスは、非同期のメール送信操作を表し、メール送信 API 呼び出しから返されます。
EmailSendResult このクラスは、メール送信操作の結果を保持します。 これには、操作 ID、操作の状態、エラー オブジェクト (該当する場合) が含まれます。

EmailSendResult は、実行されたメール操作について次の状態を返します。

Status 説明
NotStarted 現時点では、この状態をサービスから送信していません。
実行中 メール送信操作は現在進行中であり、処理中です。
成功 メール送信操作がエラーなしで完了し、メールは配信中です。 このステージを過ぎたメール配信に関する詳細な状態はすべて、Azure Monitor または Azure Event Grid を使用して取得できます。 メール イベントに登録する方法を確認してください
失敗 メール送信操作が成功せず、エラーが発生しました。 メールは送信されませんでした。 結果には、失敗の理由の詳細を記したエラー オブジェクトが含まれます。

前提条件

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

注意

また、独自の検証済みドメインからメールを送信することもできます。 メール通信サービスに Azure マネージド ドメインを追加する方法

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで dotnet コマンドを実行して、.NET クライアント ライブラリがインストールされていることを確認します。
  • Email Communication Services リソースに関連付けられているサブドメインを表示するには、Azure portal にサインインし、Email Communication Services リソースを見つけて、左側のナビゲーション ペインから [Provision domains] (ドメインのプロビジョニング) タブを開きます。

新しい C# アプリケーションを作成する

コンソール ウィンドウ (cmd、PowerShell、Bash など) で、dotnet new コマンドを使用し、EmailQuickstart という名前で新しいコンソール アプリを作成します。 このコマンドにより、1 つのソース ファイルを使用する単純な "Hello World" C# プロジェクトが作成されます。Program.cs

dotnet new console -o EmailQuickstart

新しく作成したアプリ フォルダーにディレクトリを変更し、dotnet build コマンドを使用してアプリケーションをコンパイルします。

cd EmailQuickstart
dotnet build

パッケージをインストールする

まだアプリケーション ディレクトリにいる間に、dotnet add package コマンドを使用して、.NET 用の Azure Communication Services Email クライアント ライブラリ パッケージをインストールします。

dotnet add package Azure.Communication.Email

認証を使用したメール クライアントの作成

Program.cs を開き、既存のコードを次のコードに置き換えて、Azure.Communication.Email 名前空間とプログラムの開始点を含めるための using ディレクティブを追加します。


using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

using Azure;
using Azure.Communication.Email;

namespace SendEmail
{
  internal class Program
  {
    static async Task Main(string[] args)
    {

    }
  }
}

電子メール クライアントの認証には、いくつかの異なるオプションがあります。

テキスト エディターで Program.cs を開き、Main メソッドの本文を、接続文字列を使用して EmailClient を初期化するコードで置き換えます。 次のコードは、COMMUNICATION_SERVICES_CONNECTION_STRING という名前の環境変数からリソースの接続文字列を取得します。 リソースの接続文字列を管理する方法について確認してください。

// This code demonstrates how to fetch your connection string
// from an environment variable.
string connectionString = Environment.GetEnvironmentVariable("COMMUNICATION_SERVICES_CONNECTION_STRING");
EmailClient emailClient = new EmailClient(connectionString);

添付ファイルを含むメール メッセージを送信する

EmailAttachment オブジェクトを定義し、それを EmailMessage オブジェクトに追加することで、添付ファイルを追加できます。 添付ファイルを読み取り、Base64 を使用してエンコードします。


// Create the email content
var emailContent = new EmailContent("Welcome to Azure Communication Service Email APIs.")
{
    PlainText = "This email message is sent from Azure Communication Service Email.",
    Html = "<html><body><h1>Quick send email test</h1><br/><h4>This email message is sent from Azure Communication Service Email.</h4><p>This mail was sent using .NET SDK!!</p></body></html>"
};

// Create the EmailMessage
var emailMessage = new EmailMessage(
    senderAddress: "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net" // The email address of the domain registered with the Communication Services resource
    recipientAddress: "emailalias@contoso.com"
    content: emailContent);

// Create the EmailAttachment
var filePath = "C:\Users\Documents\attachment.pdf";
byte[] bytes = File.ReadAllBytes(filePath);
var contentBinaryData = new BinaryData(bytes);
var emailAttachment = new EmailAttachment("attachment.pdf", MediaTypeNames.Application.Pdf, contentBinaryData);

emailMessage.Attachments.Add(emailAttachment);

try
{
    EmailSendOperation emailSendOperation = emailClient.Send(WaitUntil.Completed, emailMessage);
    Console.WriteLine($"Email Sent. Status = {emailSendOperation.Value.Status}");

    /// Get the OperationId so that it can be used for tracking the message for troubleshooting
    string operationId = emailSendOperation.Id;
    Console.WriteLine($"Email operation id = {operationId}");
}
catch (RequestFailedException ex)
{
    /// OperationID is contained in the exception message and can be used for troubleshooting purposes
    Console.WriteLine($"Email send operation failed with error code: {ex.ErrorCode}, message: {ex.Message}");
}

アプリケーション ディレクトリから dotnet run コマンドを使用してアプリケーションを実行します。

dotnet run

許可される MIME の種類

メールの添付ファイルに使用できる MIME の種類の詳細については、許可される MIME の種類に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリは GitHub からダウンロードできます

Communication Services の JS Email クライアント ライブラリを使用して電子メール メッセージを送信することによって、Azure Communication Services の使用を開始します。

ヒント

GitHub の基本的な電子メールの送信高度な電子メールの送信サンプル コードに直接スキップして、Azure Communication Services を使用した電子メール送信エクスペリエンスを開始します。

メール オブジェクト モデルについて

JavaScript 用 Azure Communication Services Email クライアント ライブラリが備える主な機能のいくつかは、以下のクラスとインターフェイスにより処理されます。

名前 説明
EmailAddress このクラスには、メール アドレスと表示名のオプションが含まれています。
EmailAttachment このクラスは、一意の ID、メール添付ファイルの MIME の種類の文字列、コンテンツのバイナリ データ、添付ファイルをインライン添付ファイルとして定義するオプションのコンテンツ ID を受け入れて、メールの添付ファイルを作成します。
EmailClient このクラスは、すべてのメール機能に必要となります。 接続文字列を使用してこれをインスタンス化し、それを使用して電子メール メッセージを送信します。
EmailClientOptions このクラスを EmailClient のインスタンス化に追加して、特定の API バージョンをターゲットにすることができます。
EmailContent このクラスには、電子メール メッセージの件名と本文が含まれています。 プレーンテキストまたは Html コンテンツの少なくとも 1 つを指定する必要があります。
EmailCustomHeader このクラスにより、カスタム ヘッダーの名前と値のペアを追加できます。 メールの重要度は、ヘッダー名 'x-priority' または 'x-msmail-priority' を使用して、これらのヘッダーで指定することもできます。
EmailMessage このクラスは、送信者、コンテンツ、受信者を結合します。 カスタム ヘッダー、添付ファイル、および返信先のメール アドレスも必要に応じて追加できます。
EmailRecipients このクラスは、CC と BCC 受信者のオプション リストなど、メール メッセージの受信者に関する EmailAddress オブジェクトの一覧を保持します。
EmailSendResult このクラスは、メール送信操作の結果を保持します。 これには、操作 ID、操作の状態、エラー オブジェクト (該当する場合) が含まれます。
EmailSendStatus このクラスは、メール送信操作の一連の状態を表します。

EmailSendResult は、実行されたメール操作について次の状態を返します。

状態の名前 説明
isStarted メール送信操作が現在進行中であり、処理中である場合に、true を返します。
isCompleted メール送信操作がエラーなしで完了し、メールが配信中の場合に、true を返します。 このステージを過ぎたメール配信に関する詳細な状態はすべて、Azure Monitor または Azure Event Grid を使用して取得できます。 メール イベントに登録する方法を確認してください
結果 メール送信操作が終了した場合に存在するプロパティ。
error メール送信操作が成功せず、エラーが発生した場合に存在するプロパティ。 メールは送信されませんでした。 結果には、失敗の理由の詳細を記したエラー オブジェクトが含まれます。

前提条件

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

注意

また、独自の検証済みドメインからメールを送信することもできます。 メール通信サービスに Azure マネージド ドメインを追加する方法

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで node --version を実行して、Node.js がインストールされていることを確認します。
  • Email Communication Services リソースにより検証済みのドメインを表示するには、Azure portal にサインインし、Email Communication Services リソースを見つけて、左側のナビゲーション ペインから [Provision domains] (ドメインのプロビジョニング) タブを開きます。

アプリケーション環境の設定

新しい Node.js アプリケーションを作成する

まず、ターミナルまたはコマンド ウィンドウを開き、アプリ用の新しいディレクトリを作成して、そこに移動します。

mkdir email-quickstart && cd email-quickstart

既定の設定で npm init -y を実行して、package.json ファイルを作成します。

npm init -y

テキスト エディターを使用して、プロジェクトのルート ディレクトリに send-email.js というファイルを作成します。 package.json の "main" プロパティを "send-email.js" に変更します。 次のセクションでは、新しく作成したファイルにこのクイックスタートのソース コードを追加する方法について説明します。

パッケージをインストールする

npm install コマンドを使用して、JavaScript 用の Azure Communication Services Email クライアント ライブラリをインストールします。

npm install @azure/communication-email --save

--save オプションを使用すると、package.json ファイル内の依存関係としてライブラリが表示されます。

認証を使用したメール クライアントの作成

電子メール クライアントの認証には、いくつかの異なるオプションがあります。

クライアント ライブラリから EmailClient をインポートし、接続文字列を使用してインスタンス化します。

次のコードは、dotenv パッケージを使用して、COMMUNICATION_SERVICES_CONNECTION_STRING という名前の環境変数からリソースの接続文字列を取得します。 dotenv パッケージをインストールするには、npm install コマンドを使います。 リソースの接続文字列を管理する方法について確認してください。

npm install dotenv

次のコードを send-email.js に追加します。

const { EmailClient } = require("@azure/communication-email");
require("dotenv").config();

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];
const emailClient = new EmailClient(connectionString);

このクイックスタートでは、簡潔にするために接続文字列を使用していますが、運用環境では、サービス プリンシパルの使用をお勧めします。

添付ファイルを含むメール メッセージを送信する

添付オブジェクトを定義し、それをメッセージに追加することで、添付ファイルを追加できます。 添付ファイルを読み取り、Base64 を使用してエンコードします。

const filePath = "<path-to-your-file>";

const message = {
  sender: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
  content: {
    subject: "Welcome to Azure Communication Service Email.",
    plainText: "<This email message is sent from Azure Communication Service Email using JavaScript SDK.>"
  },
  recipients: {
    to: [
      {
        address: "<emailalias@emaildomain.com>",
        displayName: "Customer Name",
      }
    ]
  },
  attachments: [
    {
      name: path.basename(filePath),
      contentType: "<mime-type-for-your-file>",
      contentInBase64: readFileSync(filePath, "base64"),
    }
  ]
};

const poller = await emailClient.beginSend(message);
const response = await poller.pollUntilDone();

許可される MIME の種類

メールの添付ファイルに使用できる MIME の種類の詳細については、許可される MIME の種類に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリは GitHub からダウンロードできます

Communication Services Java Email SDK を使用してメール メッセージを送信することによって、Azure Communication Services の使用を開始します。

ヒント

GitHub の基本的な電子メールの送信高度な電子メールの送信サンプル コードに直接スキップして、Azure Communication Services を使用した電子メール送信エクスペリエンスを開始します。

メール オブジェクト モデルについて

Python 用 Azure Communication Services Email SDK が備える主な機能のいくつかは、以下のクラスとインターフェイスにより処理されます。

名前 説明
EmailAddress このクラスには、メール アドレスと表示名のオプションが含まれています。
EmailAttachment このインターフェイスは、一意の ID、メール添付ファイルの MIME の種類の文字列、コンテンツのバイト数の文字列、添付ファイルをインライン添付ファイルとして定義するオプションのコンテンツ ID を受け入れて、メールの添付ファイルを作成します。
EmailClient このクラスは、すべてのメール機能に必要となります。 接続文字列を使用してこれをインスタンス化し、それを使用して電子メール メッセージを送信します。
EmailMessage このクラスは、送信者、コンテンツ、受信者を結合します。 カスタム ヘッダー、添付ファイル、および返信先のメール アドレスも必要に応じて追加できます。
EmailSendResult このクラスは、メール送信操作の結果を保持します。 これには、操作 ID、操作の状態、エラー オブジェクト (該当する場合) が含まれます。
EmailSendStatus このクラスは、メール送信操作の一連の状態を表します。

EmailSendResult は、実行されたメール操作について次の状態を返します。

状態の名前 説明
NOT_STARTED 現時点では、この状態をサービスから送信していません。
InProgress メール送信操作は現在進行中であり、処理中です。
SUCCESSFULLY_COMPLETED メール送信操作がエラーなしで完了し、メールは配信中です。 このステージを過ぎたメール配信に関する詳細な状態はすべて、Azure Monitor または Azure Event Grid を使用して取得できます。 メール イベントに登録する方法を確認してください
FAILED メール送信操作が成功せず、エラーが発生しました。 メールは送信されませんでした。 結果には、失敗の理由の詳細を記したエラー オブジェクトが含まれます。

前提条件

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

Note

独自の検証済みドメインからメールを送信することもできます。メール通信サービスにカスタムの検証済みドメインを追加します。

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで mvn -v を実行して、Maven がインストールされていることを確認します。
  • メール通信サービス リソースによって確認されたドメインを表示するには、Azure portal にサインインします。 メール通信サービス リソースを見つけ、左側のナビゲーション ウィンドウから [Provision domains](ドメインのプロビジョニング) タブを開きます。

アプリケーション環境の設定

メールを送信するための環境を設定するには、次のセクションの手順を実行します。

新しい Java アプリケーションを作成する

ターミナルまたはコマンド ウィンドウを開き、Java アプリケーションを作成するディレクトリに移動します。 次のコマンドを実行して、maven-archetype-quickstart テンプレートから Java プロジェクトを生成します。

mvn archetype:generate -DarchetypeArtifactId="maven-archetype-quickstart" -DarchetypeGroupId="org.apache.maven.archetypes" -DarchetypeVersion="1.4" -DgroupId="com.communication.quickstart" -DartifactId="communication-quickstart"

generate 目標により、artifactId 値と同じ名前のディレクトリが作成されます。 このディレクトリの下の src/main/java ディレクトリにはプロジェクトのソース コードが、src/test/java ディレクトリにはテスト ソースがそれぞれ含まれており、pom.xml ファイルはプロジェクトのプロジェクト オブジェクト モデル (POM) です。

パッケージをインストールする

テキスト エディターで pom.xml ファイルを開きます。 依存関係のグループに、次の dependency 要素を追加します。

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-email</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

アプリのフレームワークを設定する

テキスト エディターで /src/main/java/com/communication/quickstart/App.java を開き、import ディレクティブを追加して、System.out.println("Hello world!"); ステートメントを削除します。

package com.communication.quickstart;

import com.azure.communication.email.models.*;
import com.azure.communication.email.*;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;

public class App
{
    public static void main( String[] args )
    {
        // Quickstart code goes here.
    }
}

認証を使用したメール クライアントの作成

電子メール クライアントの認証には、いくつかの異なるオプションがあります。

クライアントを認証するには、接続文字列を使用して EmailClient をインスタンス化します。 リソースの接続文字列を管理する方法について確認してください。 クライアントは、com.azure.core.http.HttpClient インターフェイスを実装する任意のカスタム HTTP クライアントを使用して初期化することもできます。

クライアントをインスタンス化するには、main メソッドに次のコードを追加します。

// You can get your connection string from your resource in the Azure portal.
String connectionString = "endpoint=https://<resource-name>.communication.azure.com/;accesskey=<access-key>";

EmailClient emailClient = new EmailClientBuilder()
    .connectionString(connectionString)
    .buildClient();

このクイックスタートでは、簡潔にするために接続文字列を使用していますが、運用環境では、サービス プリンシパルの使用をお勧めします。

添付ファイルを含むメール メッセージを送信する

EmailAttachment オブジェクトを定義し、それを EmailMessage オブジェクトに追加することで、添付ファイルを追加できます。 添付ファイルを読み取り、Base64 を使用してエンコードします。

BinaryData attachmentContent = BinaryData.fromFile(new File("C:/attachment.txt").toPath());
EmailAttachment attachment = new EmailAttachment(
    "attachment.txt",
    "text/plain",
    attachmentContent
);

EmailMessage message = new EmailMessage()
    .setSenderAddress("<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>")
    .setToRecipients("<emailalias@emaildomain.com>")
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.");
    .setAttachments(attachment);

SyncPoller<EmailSendResult, EmailSendResult> poller = emailClient.beginSend(message, null);
PollResponse<EmailSendResult> response = poller.waitForCompletion();

System.out.println("Operation Id: " + response.getValue().getId());

許可される MIME の種類

メールの添付ファイルに使用できる MIME の種類の詳細については、許可される MIME の種類に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリは GitHub からダウンロードできます

Communication Services Python Email SDK を使用してメール メッセージを送信することによって、Azure Communication Services の使用を開始します。

ヒント

GitHub の基本的な電子メールの送信高度な電子メールの送信サンプル コードに直接スキップして、Azure Communication Services を使用した電子メール送信エクスペリエンスを開始します。

メール オブジェクト モデルについて

以下の JSON メッセージ テンプレートと応答オブジェクトには、Python 用 Azure Communication Services Email SDK の主な機能がいくつか示されています。

message = {
    "content": {
        "subject": "str",  # Subject of the email message. Required.
        "html": "str",  # Optional. Html version of the email message.
        "plainText": "str"  # Optional. Plain text version of the email
            message.
    },
    "recipients": {
        "to": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ],
        "bcc": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ],
        "cc": [
            {
                "address": "str",  # Email address. Required.
                "displayName": "str"  # Optional. Email display name.
            }
        ]
    },
    "senderAddress": "str",  # Sender email address from a verified domain. Required.
    "attachments": [
        {
            "name": "str"  # Name of the attachment. Required.
            "contentType": "str",  # MIME type of the content being attached. Required.
            "contentInBase64": "str",  # Base64 encoded contents of the attachment. Required.
            "contentId": "str" # Unique identifier (CID) to reference an inline attachment. Optional
        }
    ],
    "userEngagementTrackingDisabled": bool,  # Optional. Indicates whether user engagement tracking should be disabled for this request if the resource-level user engagement tracking setting was already enabled in the control plane.
    "headers": {
        "str": "str"  # Optional. Custom email headers to be passed.
    },
    "replyTo": [
        {
            "address": "str",  # Email address. Required.
            "displayName": "str"  # Optional. Email display name.
        }
    ]
}

response = {
    "id": "str",  # The unique id of the operation. Uses a UUID. Required.
    "status": "str",  # Status of operation. Required. Known values are:
        "NotStarted", "Running", "Succeeded", and "Failed".
    "error": {
        "additionalInfo": [
            {
                "info": {},  # Optional. The additional info.
                "type": "str"  # Optional. The additional info type.
            }
        ],
        "code": "str",  # Optional. The error code.
        "details": [
            ...
        ],
        "message": "str",  # Optional. The error message.
        "target": "str"  # Optional. The error target.
    }
}

response.status 値の詳細については、次の表を参照してください。

状態の名前 説明
InProgress メール送信操作は現在進行中であり、処理中です。
成功 メール送信操作がエラーなしで完了し、メールは配信中です。 このステージを過ぎたメール配信に関する詳細な状態はすべて、Azure Monitor または Azure Event Grid を使用して取得できます。 メール イベントに登録する方法を確認してください
失敗 メール送信操作が成功せず、エラーが発生しました。 メールは送信されませんでした。 結果には、失敗の理由の詳細を記したエラー オブジェクトが含まれます。

前提条件

このクイックスタートを完了すると、ご利用の Azure アカウントでわずかな (数セント未満の) コストが発生します。

注意

また、独自の検証済みドメインからメールを送信することもできます。 メール通信サービスに Azure マネージド ドメインを追加する方法

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで python --version コマンドを実行して、Python がインストールされていることを確認します。
  • メール通信サービス リソースによって確認されたドメインを表示するには、Azure portal にサインインします。 メール通信サービス リソースを見つけ、左側のナビゲーション ウィンドウから [Provision domains](ドメインのプロビジョニング) タブを開きます。

アプリケーション環境の設定

メールを送信するための環境を設定するには、次のセクションの手順を実行します。

新しい Python アプリケーションを作成する

  1. ターミナルまたはコマンド ウィンドウを開きます。 続いて、次のコマンドを使用して仮想環境を作成し、アクティブにします。 このコマンドにより、アプリの新しいディレクトリが作成されます。

    python -m venv email-quickstart
    
  2. 仮想環境のルート ディレクトリに移動し、次のコマンドを使用してアクティブにします。

    cd email-quickstart
    .\Scripts\activate
    
  3. テキスト エディターを使用して send-email.py という名前のファイルをプロジェクトのルート ディレクトリに作成し、基本的な例外処理を含むプログラムの構造を追加します。

    import os
    from azure.communication.email import EmailClient
    
    try:
        # Quickstart code goes here.
    except Exception as ex:
        print('Exception:')
        print(ex)
    

以降のセクションでは、このクイックスタートのすべてのソース コードを、作成した send-email.py ファイルに追加していきます。

パッケージをインストールする

まだアプリケーション ディレクトリにいる間に、次のコマンドを使用して、Python 用の Azure Communication Services Email SDK パッケージをインストールします。

pip install azure-communication-email

認証を使用したメール クライアントの作成

電子メール クライアントの認証には、いくつかの異なるオプションがあります。

接続文字列を使用して EmailClient をインスタンス化します。 リソースの接続文字列を管理する方法について確認してください。

# Create the EmailClient object that you use to send Email messages.
email_client = EmailClient.from_connection_string(<connection_string>)

このクイックスタートでは、簡潔にするために接続文字列を使用していますが、運用環境では、サービス プリンシパルの使用をお勧めします。

添付ファイルを含むメール メッセージを送信する

attachment を定義し、それを message オブジェクトの attachments に追加することで、添付ファイルを追加できます。 添付ファイルを読み取り、Base64 を使用してエンコードします。 バイトを文字列としてデコードし、attachment オブジェクトに渡します。

import base64

with open("<path-to-your-attachment>", "rb") as file:
    file_bytes_b64 = base64.b64encode(file.read())

message = {
    "content": {
        "subject": "This is the subject",
        "plainText": "This is the body",
        "html": "html><h1>This is the body</h1></html>"
    },
    "recipients": {
        "to": [
            {
                "address": "<recipient1@emaildomain.com>",
                "displayName": "Customer Name"
            }
        ]
    },
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
    "attachments": [
        {
            "name": "<your-attachment-name>",
            "contentType": "<your-attachment-mime-type>",
            "contentInBase64": file_bytes_b64.decode()
        }
    ]
}

poller = email_client.begin_send(message)
result = poller.result()

許可される MIME の種類

メールの添付ファイルに使用できる MIME の種類の詳細については、許可される MIME の種類に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリは GitHub からダウンロードできます

トラブルシューティング

電子メール配信

電子メール配信に関連する問題をトラブルシューティングするために、電子メール配信の状態を取得して配信の詳細を取得できます。

重要

送信操作の状態のポーリングによって返された成功の結果は、電子メールが正常に配信されたという事実のみを検証するものです。 受信者側の配信の状態について追加情報を得るには、電子メール イベントの処理方法を参照する必要があります。

電子メール調整

アプリケーションがハングしている場合は、メール送信が調整されていることが原因である可能性があります。 これを処理するには、ログ記録を使用するか、カスタム ポリシーを実装します

注意

このサンドボックスの設定は、開発者によるアプリケーションのビルド開始を支援するためのものです。 アプリケーションを公開する準備ができたら、次第に送信量を増やすことを要求できるようになります。 レート制限を超える量のメッセージを送信する必要がある場合は、必要な送信制限を引き上げるように求めるサポート リクエストを送信してください。

Azure Communication Services のリソースをクリーンアップする

Communication Services サブスクリプションをクリーンアップして解除する場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。 詳細については、リソースのクリーンアップに関する記事を参照してください。

次のステップ

このクイック スタートでは、Azure Communication Services を使って添付ファイル付きメールを送信する方法について説明しました。

次のことも実行できます。