インライン アタッチメント付きのメールを送信する

この記事では、電子メール SDK を使用してインライン添付ファイルを含む電子メールを送信する方法について説明します。

重要

Azure Communication Services のこの機能は、現在プレビュー段階にあります。 プレビュー段階の機能は一般公開されており、新規および既存の Microsoft のすべてのお客様が使用できます。

このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能がサポートされていないか、機能が制約されている可能性があります。

詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

インライン アタッチメント付きのメール メッセージを送信する

Azure CLI 通信拡張機能を使用して、インライン添付ファイルを含む電子メール メッセージを送信します。

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

前提条件

前提条件のチェック

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

セットアップ開始

拡張機能の追加

az extension コマンドを使用して、Azure CLI の Azure Communication Services 拡張機能を追加します。

az extension add --name communication

Azure CLI へのサインイン

Azure CLI にサインインする必要があります。 ターミナルから az login コマンドを実行し、資格情報を入力してサインインできます。

環境変数に接続文字列を格納する

AZURE_COMMUNICATION_CONNECTION_STRING 環境変数を構成して Azure CLI のキー操作を使用できます。このとき、--connection_string を使用して接続文字列を渡す必要はありません。 環境変数を構成するには、コンソール ウィンドウを開き、以下のタブからお使いのオペレーティン グシステムを選択します。 <connectionString> は、実際の接続文字列に置き換えてください。

運用環境については、暗号化されていない環境変数として接続文字列を格納しないでください。 この例は、テストのみを目的としています。 運用環境については、新しい接続文字列を生成してください。 接続文字列を暗号化し、定期的に変更することをお勧めします。

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

実行中のプログラムのうち、環境変数の読み取りを必要とするプログラム (コンソール ウィンドウを含む) については、環境変数を追加した後で再起動が必要となる場合があります。 たとえば、Visual Studio をエディターとして使用している場合、サンプルを実行する前に Visual Studio を再起動します。

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

az communication email send
	--connection-string "yourConnectionString"
	--sender "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
	--to "<emailalias@emaildomain.com>"
	--subject "Welcome to Azure Communication Services Email"
	--attachment-types "<inlineattachmenttype1>" # MIME type of the content being attached. Example: "png"
	--inline-attachments "<filepath>/<contentid>" # Example: "MicrosoftLogo.png/MSLogo"
	--html "<html><head><title>Welcome to Azure Communication Services Email</title></head><body><h1>This email message is sent from Azure Communication Services Email using Azure CLI.</h1><img src='cid:<contentid>' alt='<alternatetext>'/></body></html>"

コードを次のように置き換えます。

  • <yourConnectionString> を対象の接続文字列に置き換えてください。
  • <emailalias@emaildomain.com> を、メッセージの送信先メール アドレスに置き換えます。
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> を、確認済みドメインの MailFrom アドレスに置き換えます。
  • <inlineattachmenttype1>ファイルの実際の添付ファイルの種類に置き換えます。
  • <filepath>/<contentid>を添付ファイルのファイル パスと、インライン添付ファイルの cid 名または ID に置き換えます。
  • <contentid>をインライン添付ファイルの CID に置き換えます。これは HTML の img src 部分で参照されます。
  • <alternatetext>を、アクセシビリティに役立つ画像の説明テキストに置き換えます。

添付ファイルとインライン添付ファイルを含む電子メール メッセージを送信する

az communication email send
	--connection-string "yourConnectionString"
	--sender "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
	--to "<emailalias@emaildomain.com>"
	--subject "Welcome to Azure Communication Services Email"
	--attachment-types "<attachmenttype1>" "<inlineattachmenttype1>" # MIME type of the content being attached. Example1: "jpg" "png" & Example2: "png" "png"
	--attachments "<filepath>" # Example: "MSLogo.jpg"
	--inline-attachments "<filepath>/<contentid>" # Example: "MicrosoftLogo.png/MSLogo"
	--html "<html><head><title>Welcome to Azure Communication Services Email</title></head><body><h1>This email message is sent from Azure Communication Services Email using Azure CLI.</h1><img src='cid:<contentid>' alt='<alternatetext>'/></body></html>"

コードを次のように置き換えます。

  • <yourConnectionString> を対象の接続文字列に置き換えてください。
  • <emailalias@emaildomain.com> を、メッセージの送信先メール アドレスに置き換えます。
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> を、確認済みドメインの MailFrom アドレスに置き換えます。
  • <attachmenttype1> <inlineattachmenttype1>ファイルの実際の添付ファイルの種類に置き換えます。
  • <filepath>を添付ファイルのファイル パスに置き換えます。
  • <filepath>/<contentid>を添付ファイルのファイル パスと、インライン添付ファイルの cid 名または ID に置き換えます。
  • <contentid>をインライン添付ファイルの CID に置き換えます。これは HTML の img src 部分で参照されます。
  • <alternatetext>を、アクセシビリティに役立つ画像の説明テキストに置き換えます。

複数の添付ファイルとインライン添付ファイルを含む電子メール メッセージを送信する

az communication email send
	--connection-string "yourConnectionString"
	--sender "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>"
	--to "<emailalias@emaildomain.com>"
	--subject "Welcome to Azure Communication Services Email"
	--attachment-types "<attachmenttype1>" "<attachmenttype2>" "<inlineattachmenttype1>" "<inlineattachmenttype2>" "<inlineattachmenttype3>" # MIME type of the content being attached. Example: "png" "jpg" "png" "jpg" "bmp"
	--attachments "<filepath1>" "<filepath2>"
	--inline-attachments "<filepath1>/<contentid1>" "<filepath2>/<contentid2>" "<filepath3>/<contentid3>"
	--html "<html><head><title>Welcome to Azure Communication Services Email</title></head><body><h1>This email message is sent from Azure Communication Services Email using Azure CLI.</h1><img src='cid:<contentid1>' alt='<alternatetext>'/><img src='cid:<contentid2>' alt='<alternatetext>'/><img src='cid:<contentid3>' alt='<alternatetext>'/></body></html>"

コードを次のように置き換えます。

  • <yourConnectionString> を対象の接続文字列に置き換えてください。
  • <emailalias@emaildomain.com> を、メッセージの送信先メール アドレスに置き換えます。
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> を、確認済みドメインの MailFrom アドレスに置き換えます。
  • <attachmenttype1> <attachmenttype2> <inlineattachmenttype1> <inlineattachmenttype2> <inlineattachmenttype3>ファイルの実際の添付ファイルの種類に置き換えます。
  • <filepath1> <filepath2>を添付ファイルへのファイル パスに置き換えます。
  • <filepath1>/<contentid1> <filepath2>/<contentid2> <filepath3>/<contentid3>は、添付ファイルへのファイル パスと、インライン添付ファイルの cid 名または ID に置き換えます。
  • <contentid1> <contentid2> <contentid3>をインライン添付ファイルの CID に置き換えます。これは HTML の img src 部分で参照されます。
  • <alternatetext>を、アクセシビリティに役立つ画像の説明テキストに置き換えます。

前のコマンドでは、messageId に対するポーリングも実行され、電子メール配信の状態が返されます。 状態には、次のいずれかの値を指定できます。

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

省略可能なパラメーター

Azure CLI では、次の省略可能なパラメーターを使用できます。

  • --html は、HTML 電子メール本文で --text の代わりに使用できます。

  • --importance は、電子メールの重要度の種類を設定します。 既知の値は、high、normal、および low です。 既定値は normal です。

  • --to は、メール受信者の一覧を設定します。

  • --cc は、カーボン コピーのメール アドレスを設定します。

  • --bcc は、ブラインド カーボン コピーのメール アドレスを設定します。

  • --reply-to は、Reply-To メール アドレスを設定します。

  • --disable-tracking は、この要求に対してユーザー エンゲージメントの追跡を無効にする必要があるかどうかを示します。

  • --attachments は、電子メールの添付ファイルの一覧を設定します。

電子メール要求の合計サイズ (通常の添付ファイルとインライン添付ファイルの両方を含む) を 10 MB に制限します。

  • --attachment-types は、電子メールの添付ファイルの種類の一覧を、添付ファイルと同じ順序で設定します。

  • --inline-attachments パラメーターは、別のダウンロード可能なファイルとしてではなく、電子メール本文内に添付ファイルを直接埋め込みます。 インライン添付ファイルは、電子メール コンテンツにインラインで表示される画像またはメディア ファイルでよく使用されます。

--to--cc、または --bcc では、少なくとも 1 人の受信者が必要です。

メール メッセージの送信に Azure PowerShell の Communication モジュールを使って、Azure Communication Services の使用を始めます。

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

前提条件

前提条件のチェック

  • Windows PowerShell で Get-Module -ListAvailable -Name Az.Communication コマンドを実行して、Communication モジュールがインストールされているかどうかを確認します。
  • メール通信サービス リソースによって確認されたドメインを表示するには、Azure portal にサインインします。 メール通信サービス リソースを見つけ、左側のナビゲーション ウィンドウから [Provision domains](ドメインのプロビジョニング) タブを開きます。

セットアップ開始

Communication モジュールをインストールする

Install-Module -Name Az.Communication コマンドを使って、Azure PowerShell 用の Azure Communication Services モジュールをインストールします。

Install-Module -Name Az.Communication

Communication モジュールをインストールした後、Get-Command -Module Az.Communication コマンドを実行してすべての通信モジュールを取得します。

Get-Command -Module Az.Communication

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

1 人以上の受信者に対して送信される、必要なフィールドのみが指定されたメール メッセージを、キューに入れます。

$emailRecipientTo = @(
   @{
        Address = "<emailalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    },
   @{
        Address = "<emailalias1@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$fileBytes = [System.IO.File]::ReadAllBytes("<image file path>")

$emailAttachment = @(
    @{
        ContentInBase64 = $fileBytes
        ContentType = "<image/png>"
        Name = "<inline-attachment.png>"
        contentId = "<contentId>"
    }
)

$message = @{
    ContentSubject = "Test Email"
    RecipientTo = @($emailRecipientTo)  # Array of email address objects
    SenderAddress = '<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>'
    Attachment = @($emailAttachment) # Array of attachments
    ContentHtml = "<html><head><title>Enter title</title></head><body><img src='cid:<contentId>' alt='Company Logo'/><h1>This is the first email from ACS - Azure PowerShell</h1></body></html>"
    ContentPlainText = "This is the first email from ACS - Azure PowerShell"
}

コードを次のように置き換えます。

  • <yourEndpoint> を実際のエンドポイントに置き換えてください。
  • <emailalias@emaildomain.com> を、メッセージの送信先メール アドレスに置き換えます。
  • <donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net> を、確認済みドメインの MailFrom アドレスに置き換えます。
  • <image file path> は、送信する添付ファイルの実際のファイル パスに置き換えます。
  • <image/png> は、添付ファイルの適切なコンテンツ タイプに置き換えます。
  • <inline-attachment.png> は、添付ファイルのファイル名に置き換えます。
  • <contentId> は、インライン添付ファイルのコンテンツ ID に置き換えます。

1 つ以上のインライン添付ファイルに送信する電子メール メッセージをキューに入れます。

$emailRecipientTo = @(
   @{
        Address = "<emailalias@emaildomain.com>"
        DisplayName = "Email DisplayName"
    },
   @{
        Address = "<emailalias1@emaildomain.com>"
        DisplayName = "Email DisplayName"
    }
)

$fileBytes1 = [System.IO.File]::ReadAllBytes("<image file path1>")
$fileBytes2 = [System.IO.File]::ReadAllBytes("<image file path2>")
$fileBytes3 = [System.IO.File]::ReadAllBytes("<image file path3>")

$emailAttachment = @(
    @{
        ContentInBase64 = $fileBytes1
        ContentType = "<image/png>"
        Name = "<inline-attachment1.png>"
        contentId = "<contentId1>"
    },
    @{
        ContentInBase64 = $fileBytes2
        ContentType = "<image/png>"
        Name = "<inline-attachment2.png>"
        contentId = "<contentId2>"
    },
    @{
        ContentInBase64 = $fileBytes3
        ContentType = "<image/png>"
        Name = "<inline-attachment3.png>"
        contentId = "<contentId3>"
    }
)

$message = @{
    ContentSubject = "Test Email"
    RecipientTo = @($emailRecipientTo)  # Array of email address objects
    SenderAddress = '<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>'
    Attachment = @($emailAttachment) # Array of attachments
    ContentHtml = "<html><head><title>Enter title</title></head><body><img src='cid:<contentId1>' alt='Company Logo'/><img src='cid:<contentId2>' alt='Company Logo'/><img src='cid:<contentId3>' alt='Company Logo'/><h1>This is the first email from ACS - Azure PowerShell</h1></body></html>"
    ContentPlainText = "This is the first email from ACS - Azure PowerShell"
}

コードを次のように置き換えます。

  • <yourEndpoint> を実際のエンドポイントに置き換えてください。
  • <emailalias@emaildomain.com> and <emailalias1@emaildomain.com> は、メッセージの送信先のメール アドレスに置き換えます。
  • <image file path1> <image file path2> <image file path3>を、送信する添付ファイルの実際のファイル パスに置き換えます。
  • <image/png> は、添付ファイルの適切なコンテンツ タイプに置き換えます。
  • <inline-attachment1.png> <inline-attachment2.png> <inline-attachment3.png>を添付ファイルのファイル名に置き換えます。
  • <contentId1> <contentId2> <contentId3>をインライン添付ファイルのコンテンツ ID に置き換えます。

省略可能なパラメーター

Azure PowerShell では、次の省略可能なパラメーターを使用できます。

  • ContentHtml を使って、メールの HTML 本文を指定できます。

  • メールのプレーンテキスト本文を指定するために使われる ContentPlainText

  • Attachment は、電子メールの添付ファイルとインライン添付ファイルの一覧を設定します。 このパラメーターは、ファイル パスまたは添付ファイル オブジェクトの配列を受け取ります。

メール要求の合計サイズ (通常の添付ファイルとインライン添付ファイルの両方を含む) は 10 MB に制限されることに注意してください。

  • Header は渡されるカスタム メール ヘッダーであり、メールの重要度レベル (high、normal、low) を設定します。

  • RecipientBcc は、BCC フィールドの受信者の配列です。

  • RecipientCc は、CC フィールドの受信者の配列です。

  • ReplyTo は、受信者の返信の送信先メール アドレスの配列です。

  • UserEngagementTrackingDisabled は、リソース レベルのユーザー エンゲージメント追跡の設定がコントロール プレーンで既に有効になっている場合に、この要求に対してユーザー エンゲージメント追跡を無効にする必要があるかどうかを示します。

また RecipientCc と同様に、RecipientBccRecipientTo でも受信者の一覧を使用できます。 RecipientToRecipientCc、または RecipientBcc では、少なくとも 1 人の受信者が必要です。

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

この記事を完了すると、ご利用の Azure アカウントでわずかな (米国ドルで数セント未満の) コストが発生します。

ヒント

GitHub Azure サンプル の基本的な電子メール送信と高度な電子メール 送信を使用して、Azure Communication Services で 電子メール送信エクスペリエンスをすぐに開始できます。

電子メール オブジェクト モデルを理解する

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

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

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

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

前提条件

この記事を完了すると、ご利用の 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を開き、既存のコードを次のコードに置き換えて、using名前空間とプログラムの実行の開始点を含めるAzure.Communication.Emailディレクティブを追加します。


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

インライン アタッチメント付きのメール メッセージを送信する

インライン添付ファイルを追加するには、1 つ以上の EmailAttachment オブジェクトを定義し、それぞれに一意の ContentId を定義し、EmailMessage オブジェクトに追加します。 添付ファイルを読み取り、Base64 を使用してエンコードします。

var jpgFilePath = "./inline-attachment.jpg";
byte[] jpgBytes = File.ReadAllBytes(jpgFilePath);
var jpgBinaryData = new BinaryData(jpgBytes);
var jpgInlineAttachment = new EmailAttachment(
    "inline-attachment.jpg",
    "image/jpeg",
    jpgBinaryData);
jpgInlineAttachment.ContentId = "my-inline-attachment-1";

var pngFilePath = "./inline-attachment.png";
byte[] pngBytes = File.ReadAllBytes(pngFilePath);
var pngBinaryData = new BinaryData(pngBytes);
var pngInlineAttachment = new EmailAttachment(
    "inline-attachment.png",
    "image/png",
    pngBinaryData);
pngInlineAttachment.ContentId = "my-inline-attachment-2";

メッセージの HTML 本文内で、ContentId タグのソース内でその<img>を参照することで、画像を埋め込むことができます。

var emailContent = new EmailContent("Welcome to Azure Communication Services Email")
{
    PlainText ="This email message is sent from Azure Communication Services Email using the .NET SDK.",
    Html = "<html><h1>HTML body inline images:</h1><img src=\"cid:my-inline-attachment-1\" /><img src=\"cid:my-inline-attachment-2\" /></html>"
};

var emailMessage = new EmailMessage(
    senderAddress: "donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net"
    recipientAddress: "emailalias@contoso.com"
    content: emailContent);

emailMessage.Attachments.Add(jpgInlineAttachment);
emailMessage.Attachments.Add(pngInlineAttachment);

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

通常の添付ファイルとインライン添付ファイルを組み合わせることができます。 ContentIdを定義すると、添付ファイルはインラインとして扱われますが、ContentIdのない添付ファイルは通常の添付ファイルとして扱われます。

許可される MIME の種類

現代的なクライアントのほとんどはインライン アタッチメントをサポートしていますが、インライン アタッチメントのレンダリング動作は、受信者のメール クライアントに大きく依存します。 このため、可能な限り、 .png.jpg.gifなど、より一般的な画像形式をインラインで使用することをお勧めします。 電子メールの添付ファイルに使用できる MIME の種類の詳細については、 サポートされている MIME の種類 に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリは、GitHub Azure Samples Send email inline attachments using .NET からダウンロードできます。

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

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

ヒント

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

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

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

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

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

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

前提条件

このクイックスタートを完了すると、ご利用の 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);

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

インライン アタッチメント付きのメール メッセージを送信する

1 つ以上の添付ファイル オブジェクトを定義することで、インライン添付ファイルを追加できます。 それぞれの一意の contentId を含め、メッセージに追加してください。 添付ファイルを読み取り、Base64 を使用してエンコードします。

const jpgFilePath = "./inline-attachment.jpg";
const pngFilePath = "./inline-attachment.png";

const inlineAttachments = [
    {
        name: path.basename(jpgFilePath),
        contentId: "my-inline-attachment-1"
        contentType: "image/jpeg",
        contentInBase64: readFileSync(jpgFilePath, "base64"),
    },
    {
        name: path.basename(pngFilePath),
        contentId: "my-inline-attachment-2"
        contentType: "image/png",
        contentInBase64: readFileSync(pngFilePath, "base64"),
    }
];

メッセージの HTML 本文内で、contentId タグのソース内でその<img>を参照して画像を埋め込みます。

const message = {
  sender: "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
  content: {
    subject: "Welcome to Azure Communication Services Email",
    plainText: "This email message is sent from Azure Communication Services Email using the JavaScript SDK.",
    html: "<html><h1>HTML body inline images:</h1><img src=\"cid:my-inline-attachment-1\" /><img src=\"cid:my-inline-attachment-2\" /></html>"
  },
  recipients: {
    to: [
      {
        address: "<emailalias@contoso.com>",
        displayName: "Customer Name",
      }
    ]
  },
  attachments: inlineAttachments
};

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

通常の添付ファイルとインライン添付ファイルを組み合わせることができます。 添付ファイルをインラインとして扱う contentId を定義します。 contentIdのない添付ファイルは、通常の添付ファイルとして扱われます。

許可される MIME の種類

現代的なクライアントのほとんどはインライン アタッチメントをサポートしていますが、インライン アタッチメントのレンダリング動作は、受信者のメール クライアントに大きく依存します。 このため、可能な限り、 .png.jpg.gifなど、より一般的な画像形式をインラインで使用することをお勧めします。 電子メールの添付ファイルに使用できる MIME の種類の詳細については、 サポートされている MIME の種類 に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリを GitHub Azure Samples からダウンロードし、JavaScript を使用して電子メールのインライン添付ファイルを送信できます

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

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

ヒント

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

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

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

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

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

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

前提条件

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

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

前提条件のチェック

  • ターミナルまたはコマンド ウィンドウで 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();

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

インライン アタッチメント付きのメール メッセージを送信する

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

byte[] jpgContent = Files.readAllBytes(new File("./inline-attachment.jpg").toPath());
byte[] jpgEncodedContent = Base64.getEncoder().encodeToString(jpgContent).getBytes();
EmailAttachment jpgInlineAttachment = new EmailAttachment(
    "inline-attachment.jpg",
    "image/jpeg",
    BinaryData.fromBytes(jpgEncodedContent)
).setContentId("my-inline-attachment-1");

byte[] pngContent = Files.readAllBytes(new File("./inline-attachment.png").toPath());
byte[] pngEncodedContent = Base64.getEncoder().encodeToString(pngContent).getBytes();
EmailAttachment pngInlineAttachment = new EmailAttachment(
    "inline-attachment.png",
    "image/png",
    BinaryData.fromBytes(pngEncodedContent)
).setContentId("my-inline-attachment-2");

メッセージの HTML 本文内で、画像の埋め込みを行うには、ContentId タグのソース内でその <img> を参照します。

EmailMessage message = new EmailMessage()
    .setSenderAddress(senderAddress)
    .setToRecipients(recipientAddress)
    .setSubject("Welcome to Azure Communication Services Email")
    .setBodyPlainText("This email message is sent from Azure Communication Services Email using the Java SDK.");
    .setBodyHtml("<html><h1>HTML body inline images:</h1><img src=\"cid:my-inline-attachment-1\" /><img src=\"cid:my-inline-attachment-2\" /></html>")
    .setAttachments(jpgInlineAttachmentContent, pngInlineAttachmentContent);

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

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

通常の添付ファイルとインライン添付ファイルを組み合わせることができます。 ContentIdを定義すると、添付ファイルがインラインとして扱います。 ContentIdのない添付ファイルは、通常の添付ファイルとして扱われます。

許可される MIME の種類

現代的なクライアントのほとんどはインライン アタッチメントをサポートしていますが、インライン アタッチメントのレンダリング動作は、受信者のメール クライアントに大きく依存します。 このため、可能な限り、 .png.jpg.gifなど、より一般的な画像形式をインラインで使用することをお勧めします。 電子メールの添付ファイルに使用できる MIME の種類の詳細については、 サポートされている MIME の種類 に関するドキュメントを参照してください。

サンプル コード

このアクションを示すサンプル アプリを GitHub Azure Samples からダウンロードできます 。Java を使用して電子メールのインライン添付ファイルを送信する

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

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

ヒント

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 値の詳細については、次の表を参照してください。

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

前提条件

このクイックスタートを完了すると、ご利用の 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>)

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

インライン アタッチメント付きのメール メッセージを送信する

インライン アタッチメントを追加するには、1 つ以上の attachments を定義し、それぞれに一意の contentId を含めるように注意し、それらをメッセージに追加します。 添付ファイルを読み取り、Base64 を使用してエンコードします。 バイトを文字列としてデコードし、attachment オブジェクトに渡します。

import base64

with open("./inline-attachment.jpg", "rb") as file:
    jpg_file_bytes_b64 = base64.b64encode(file.read())

with open("./inline-attachment.png", "rb") as file:
    png_file_bytes_b64 = base64.b64encode(file.read())

inlineAttachments = [
    {
        "name": "inline-attachment.jpg",
        "contentId": "my-inline-attachment-1",
        "contentType": "image/jpeg",
        "contentInBase64": jpg_file_bytes_b64.decode()
    },
    {
        "name": "inline-attachment.png",
        "contentId": "my-inline-attachment-2",
        "contentType": "image/png",
        "contentInBase64": png_file_bytes_b64.decode()
    }
]

メッセージの HTML 本文内で、画像の埋め込みを行うには、contentId タグのソース内でその <img> を参照します。

message = {
    "content": {
        "subject": "Welcome to Azure Communication Services Email",
        "plainText": "This email message is sent from Azure Communication Services Email using the Python SDK.",
        "html": "<html><h1>HTML body inline images:</h1><img src=\"cid:my-inline-attachment-1\" /><img src=\"cid:my-inline-attachment-2\" /></html>"
    },
    "recipients": {
        "to": [
            {
                "address": "<emailalias@contoso.com>",
                "displayName": "Customer Name"
            }
        ]
    },
    "senderAddress": "<donotreply@xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.azurecomm.net>",
    "attachments": inlineAttachments
}

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

通常の添付ファイルをインライン アタッチメントと組み合わせることもできます。 contentId を定義すると、アタッチメントはインラインとして扱われますが、contentId のないアタッチメントは通常の添付ファイルとして扱われます。

許可される MIME の種類

現代的なクライアントのほとんどはインライン アタッチメントをサポートしていますが、インライン アタッチメントのレンダリング動作は、受信者のメール クライアントに大きく依存します。 この理由から、インラインでは可能な限り .png、.jpg、.gif などの一般的な画像形式を使用することが推奨されます。 メールの添付ファイルに使用できる MIME の種類の詳細については、許可される MIME の種類に関するドキュメントを参照してください。

サンプル コード

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

トラブルシューティング

電子メール配信

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

重要

送信操作の状態をポーリングして返された成功の結果は、電子メールが配信のために送信されたという事実のみを検証します。 受信者側での配信の状態の詳細については、 電子メール イベントを処理する方法を参照してください。

電子メール送信制限

アプリケーションがハングしている場合は、メールの制限が原因である可能性があります。 ログの記録またはカスタムポリシーの実装によって、メールの調整を処理できます。

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

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

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

次の手順