Azure

Azure Communication Servicesのメール通信サービスでメール送信する

はじめに

Azureでもメール送信の機能があります。メール通信サービスです。これはAzure Communication Servicesの機能として利用するものです。AWSのSNSとは少々ことなりAzure Communication Servicesの一機能として動作します。また、REST APIのためSMTPで送信などは行えません。

送信方法として公開されているのはNode.js、C#のSDKが公開されています。またREST APIも公開されています。

クイック スタート: Azure Communication Services でメール通信サービスのリソースを作成して管理する - An Azure Communication Services quickstart | Microsoft Learn
クイック スタート: Azure Communication Services でメール通信サービスのリソースを作成して管理する - An Azure Communication Services quickstart | Microsoft Learn

このクイック スタートでは、初めて Azure Email Communication Service のリソースを作成して管理する方法について説明します。

docs.microsoft.com

Email - REST API (Azure Communication) | Microsoft Learn
Email - REST API (Azure Communication) | Microsoft Learn

Learn more about [Communication Email Operations]. How to [Get Send Result,Send].

docs.microsoft.com

このメール通信サービスはパブリックプレビューのため仕様変更が行われる可能があります。

設定

Azure Communication Servicesは立ち上がっていることが前提です。

下記などを参考に作成してください。

クイック スタート - Azure Communication Services でリソースを作成して管理する - An Azure Communication Services quickstart | Microsoft Learn
クイック スタート - Azure Communication Services でリソースを作成して管理する - An Azure Communication Services quickstart | Microsoft Learn

このクイックスタートでは、最初の Azure Communication Services リソースを作成して管理する方法について説明します。

docs.microsoft.com

メール通信サービス

メール通信サービスを作成します。必要事項を入力していきます。

作成自体は簡単です。

次にAzureサブドメインを追加します。

1クリックで追加を押します。自動的に専用のドメインが追加されます。

完了ごは作成されたドメインを確認できます。

作成されたドメインを開きます。詳細を確認できます。

Communication Services

Communication Servicesでも設定が必要です。

メール通信サービスだけでは利用できません。Communication Servicesと連携する必要があります。

メール → ドメインを開き、ドメインを接続します。作成したメール通信サービスを選択します。

以上で設定は完了です。

送信

送信にはSDKを利用します。

Node.jsのSDKを利用してみます。そのためNode.jsはインストールして起きましょう。下記のサンプルを利用します。

communication-services-javascript-quickstarts/send-email at main · Azure-Samples/communication-services-javascript-quickstarts · GitHub
communication-services-javascript-quickstarts/send-email at main · Azure-Samples/communication-services-javascript-quickstarts · GitHub

Sample code for Azure Communication Services JavaScript quickstarts - communication-services-javascr ...

github.com

適当なフォルダにファイルを配置します。

PS > npm init -y
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
Wrote to C:\Users\azureuser\Desktop\communication-services-javascript-quickstarts-main\communication-services-javascript-quickstarts-main\send-email\package.json:

{
  "name": "send-email",
  "version": "1.0.0",
  "description": "--- page_type: sample languages: - javascript - nodejs products: - azure - azure-communication-services ---",
  "main": "send-email.js",
  "scripts": {
    "start": "node send-email.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@azure/communication-email": "^1.0.0-beta.1"
  },
  "keywords": []
}

 

メール通信サービス用のモジュールをインストールします。

PS > npm install @azure/communication-email --save
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

added 41 packages, and audited 42 packages in 10s

found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 8.11.0 -> 8.16.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v8.16.0
npm notice Run npm install -g npm@8.16.0 to update!
npm notice

dotenvをインストールします。

PS > npm install dotenv
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

added 1 package, and audited 43 packages in 636ms

found 0 vulnerabilities

以上で送信の準備は完了です。

送信先などの設定を行います。
send-email.js を編集します。

下記を編集していきます。

<ACS_CONNECTION_STRING>:接続文字列
<SENDER_EMAIL>":送信者のドメイン
<RECIPIENT_EMAIL>:送信先のメールアドレス
<RECIPIENT_DISPLAY_NAME>:送信先の表示名

編集後に送信を行います。

PS > node ./send-email.js
Send email success, MessageId : a8ff59fd-bb48-4a94-ae3b-0b91d18a3395
Email status for {a8ff59fd-bb48-4a94-ae3b-0b91d18a3395} : [OutForDelivery]

あとはメールが送信されているか確認します。
Gmailだと迷惑メールに入っている可能性があります。

以上でメール送信の一連のながれです。

まとめ

Azureでもメールを送信する機能が登場してきました。Communication Servicesの機能とて提供されているため、AWSのようにアラートの通知などのような利用方法ではないことがわかります。もっとシンプルに使いたいと思うところでありますが、やっと送信機能が追加されたので機会があれば使っていきたい機能です。

-Azure
-