御成門プログラマーの技術日記

Microsoft AzureやAngularなどの技術情報を発信します

Azure Communication Services のメール送信機能がGAしたので触ってみた

2023年4月5日にGAしたAzure Communication Services のメール送信機能の紹介&試してみた記事です。

Azure Communication Services のメール送信機能がGA

2023年4月5日にAzure Communication Services のメール送信機能がGAされました。今まで Azure でメール送信を実現しようとする場合、Azure Market Place 経由で Twilio SendGrid を経由する必要がありましたが、今回のGAでメール送信機能を Azure 上で完結して実装することが可能となりました。

本日、Azure Communications Servicesは、マルチチャネル通信APIの包括的なスイートを拡張する「Emailサービス」の一般提供を発表しました。このサービスを使えば、企業は顧客エンゲージメントアプリケーションにメール機能を組み込み、顧客のコミュニケーション体験を向上させることができます。この新しいEmailサービスは、Exchange Onlineを利用しており、企業のセキュリティとプライバシー要件を満たします。さらに、Azure Communication Services Emailは、Power PlatformやAzure Logic Appsを通じたローコード/ノーコード機能を提供しています。また、充実した分析とエンゲージメント追跡機能により、ビジネスは顧客エンゲージメントとコミュニケーション戦略を改善できます。

techcommunity.microsoft.com

Azure Communication Services メール機能 試してみた。実装手順を紹介。

Azure Communication Services メール機能 を利用するには下記のような手順が必要です。

  1. Email Communication Services の作成
  2. ドメインの設定
  3. Communication Services の作成、設定
  4. Communication Services と Email Communication Services の紐づけ
  5. 送信処理のコーデイング

まず最初にEmail Communication Services を作成します。

英語だと Email Communication Services ですが、日本語ですと「メール通信サービス」です。後程出てくる「Communication Service(通信サービス)」とは別物なので注意が必要です。


メール通信サービス作成画面。リージョンはグローバル固定。


データロケーションに日本がないのが気になります。

Email Communication Services の作成の設定は以上です。「確認と作成」を押して作成を行います。
Email Communication Services ができたら、次にドメインの設定を行います。

メール送信元ドメインの設定について(Azureマネージドドメイン)

メール送信を行うということは送信元のメールアドレスが必要になりますが、Azure Communication Service では「Azure マネージドドメイン」を使用するか、自分の所有する「カスタムドメイン」を設定することができます。

Email Communication Service の画面で「ドメインをプロビジョニングする」を選択します。

ドメインの追加で「Azureドメイン」もしくは「カスタムドメイン」を選択できます。
今回は簡単にお手軽な「Azure ドメイン」を使用してみようと思います。

「Azure ドメイン」を選択すると自動的にサブドメインが割り振られます。このドメインは認証済みのドメインとなるためそのまま自分の環境で使用することが可能です。

<ランダムな文字列>.azurecomm.net

今回はこのドメインを利用してメール送信を行ってみましょう。続いて、Azure Communication Service(通信サービス)本体のデプロイを行います。

Communication Services の作成、設定

続いて通信サービスのデプロイを行います。

リソースの作成は「リソース名」と「データの場所」を指定するだけです。ここで注意事項があり、データの場所は先ほど Email Communication Service で設定したデータの場所と同じ場所にする必要があります。こちらには日本があるのですが、メールサービス側に日本がないため仕方なく別のリージョンを指定します。

作成したら Communication Service と Email Communication Service を紐づけする必要があります。
Communication Service 側で左の「メール」の「ドメインを選択します。」
「ドメインを接続する」をクリックします。

メールドメインの接続設定を行います。 「サブスクリプション」、「リソースグループ」、「電子メールサービス」で作成した Email Communication Service、「確認済みのドメイン」で先ほど追加したAzureマネージドドメインを選択します。

紐づけが終わったらAzure 側の準備は完了です。

メール送信処理の実装

最後に作成した Azure Communication Service を使ってメールを送信するコードを紹介します。
基本的には下記ページのクイックスタートを参考にすれば実装できると思います。
learn.microsoft.com

//メール送信設定
string connectionString = "<接続文字列>";
EmailClient emailClient = new EmailClient(connectionString);

//メール内容の設定
var subject = "<件名を入力します>";
var htmlContent = "<html>htmlのコンテンツをここに入力</html>";
var sender = "<Azure側で設定した送信元メールアドレス>";
var recipient = "<宛先メールアドレス>";

// メール送信処理
Console.WriteLine("メール送信中....");
EmailSendOperation emailSendOperation = await emailClient.SendAsync(
    Azure.WaitUntil.Completed,
    sender,
    recipient,
    subject,
    htmlContent);
EmailSendResult statusMonitor = emailSendOperation.Value;
Console.WriteLine($"メール送信完了 Status = {emailSendOperation.Value.Status}");
string operationId = emailSendOperation.Id;
Console.WriteLine($"Email operation id = {operationId}");

実行するとメールの送受信が実際に行われます。
メール送信の実装が簡単に行えることがお分かりいただけましたでしょうか?

今回は長くなってしまったので、独自ドメインの実装や気になった機能などは別に紹介しようとおもいます。

(参考) Azure Communication Services メール機能のメール送信制限機能の引き上げ方法について

Azure Communication Services のメール機能には悪用されないよう、時間当たりの送信数や容量などに制限が設けられています。そのレート制限を引き上げる方法については下記の記事で紹介しておりますのでそちらをご参照ください。
onarimon.jp