Azure Communication Services 新機能 Email Service をデプロイ、メール送信を Web API 化 [BUILD2022 Update] ①サービスのデプロイと設定

Azure Communication Services は、リアルタイム コミュニケーション基盤となるサービスで、テキスト | 音声 | ビデオ によるコミュニケーションのハブとなり、接続やコントロールを行うアプリやサービスを SDK などを用いて容易に開発できます。

今回は BUILD 2022 で公開された、Azure Communication Services (以下 ACS) の Email Service (以下 ACS Email) を利用してメール送信サービスをデプロイ(作成)して、Web API でメールが送信できる仕組みを Azure Function を利用して構築してみます。

1. **ACS および ACS Mail のデプロイと設定** ← イマココ
2. [ACS および ACS Mail を使ったメール送信 Web API の作成](https://qiita.com/annie/items/bdebaf49bde73fd27cc8)

# 手順

## 0. 事前準備

### Azure サブスクリプション申し込み

[Microsoft Azure & Cognitive Services 利用準備](https://qiita.com/annie/items/3c9ddc3fb8f120769239) を参考に、Azure サブスクリプションの申し込みしておきます。(無料版でOKです。)

### メールが受信できるアカウント

ACS Email Service からメールを受信できるアカウントをご準備ください。(Hotmail,Gmail 他、何でもOKです)

## 1. Azure Communication Servce & Email Communicaion Service の作成、設定

Azure Portal から ACS および ACS Email のサービスを新規作成し、設定を行います。

### 1-1. Azure Communication Service の作成

ブラウザーから [Azure Portal](https://portal.azure.com/) にアクセスして、Azure サブスクリプションが紐づいたアカウントでサインインします。**[リソースの作成]** をクリックします。

![AcsEmail_01-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/dd76b175-77f2-2369-78fa-992eef90a3c1.png)

**リソースの作成** ペインで、検索窓に **Communication Services** と入力して、ドロップダウンリストから **Communication Services** を選択します。

![AcsEmail_01-02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/605b948c-9f4d-6db4-2a33-aabebf571144.png)

**Communication Services** 作成ペインで、**[作成]** をクリックして、作成ステップに進みます。

![AcsEmail_01-03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/de752448-5092-4c75-7f74-0e947ad6bb68.png)

**リソースの作成** ペインで、以下の情報を入力します。

- **サブスクリプション**: デフォルト(または適切なものを選択) 
    - **リソースグループ**: **新規作成** をクリックして識別しやすいお好みの名前を付けて作成、または既存のリソースグループから選択
- **リソース名**: 識別しやすいお好みの名前を入力
- **データの場所**: 今回は **United States** を選択

> ACS と 次のステップで作成する ACS Email は同じデータ場所を選択している必要があります。2022年6月現在、ACS Mail は United States のみしか選択できないため、そちらに合わせます。

**[レビューと作成]** をクリックして次のステップに進みます。

![AcsEmail_01-04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/4a692df7-4d93-b7ed-38a4-f5179d068e8d.png)

設定した内容を確認して **[作成]**　をクリックして ACS サービスの作成を行います。

![AcsEmail_01-05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/6982f802-7b4e-41f8-f14c-c541a5bdf497.png)

画面が遷移して、**デプロイ完了** と表示されたら、サービス作成は完了です。**[リソースに移動]** をクリックします。

![AcsEmail_01-06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/0686eab1-8383-46a6-61b6-c2fdc1a294b9.png)

作成された ACS サービスが表示されます。
左メニューバーの **[キー]** をクリックします。

![AcsEmail_01-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/99bcb9f5-14cb-ce56-fa3a-15e80faaa4a1.png)

**主キー** の接続文字列をコピーしてローカルに保存しておきます。
(右端のアイコンをクリックすると、内容をコピーできます)

![AcsEmail_01-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/1434900f-9971-fa58-c2b9-5df648b8c94a.png)

### 1-2. Azure Email Communication Service の作成、ドメインの取得＆設定

ACS サービスの画面、左メニュバーのドメインをクリックします。
中央画面に表示される **ドメインをプロビジョニングしていませんか．．．** をクリックして、Email Communication Service の作成に進みます。

![AcsEmail_01-09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/0f24b4e4-8ca6-294d-b6dd-c34d86a09120.png)

Email Communication Service の **Create Resource** ペインで以下の情報を入力します。

- **サブスクリプション**: デフォルト(または適切なものを選択) 
    - **リソースグループ**: デフォルト(ACSサービスと同じグループが分かりやすいかと)
- **リソース名**: 識別しやすいお好みの名前を入力
- **データの場所**: **United States** を選択

**[確認と作成]** をクリックして次のステップに進みます。

![AcsEmail_01-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/91424fd7-ad37-58d8-e10b-5a6dce826776.png)

設定した内容を確認して **[作成]**　をクリックして ACS Mail サービスの作成を行います。

![AcsEmail_01-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/d23bec2e-fc5c-4f4e-d72c-df2d2d39158e.png)

画面が遷移して、**デプロイ完了** と表示されたら、サービス作成は完了です。**[リソースに移動]** をクリックします。

![AcsEmail_01-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/715299fe-281c-7eff-f29e-fbb78ddbaa41.png)

作成された ACS Email サービスが表示されます。
メール送信を行うドメイン(Azure 配下のサブドメインを無料で利用可能)を取得、設定します。
**無料の Azure サブドメインを追加する** という欄にある **[1クリックで追加]** をクリックします。 

![AcsEmail_01-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/daa3f837-efb8-cb32-1f83-e8abf53fddf9.png)

**[ドメインをプロビジョニングする]** ペインに遷移します。画面に新規 Azure サブドメインが表示され、Domain Status 他項目が **✓検証済み** になれば取得完了です。
追加された Azure サブドメインをクリックして内容を確認します。

![AcsEmail_01-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/5375311b-66df-eb99-72de-17bf8b4e1226.png)

ドメイン情報が表示されます。**ドメインからのメール** の欄にある **(edit)** をクリックします。

![AcsEmail_01-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/c6c81bde-5801-7f60-0fe4-07c1d0278bfb.png)

お好みで、メール送信アドレスや表示名を変更することができます。
**MailFrom** に表示されるメール送信アドレス (デフォルトでは *DoNotReply@xxxxxxxxxx.azurecomm.net*) をコピーしてローカルに保存しておきます。
**[Save]** をクリックして保存、編集ペインを閉じます。

![AcsEmail_01-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/c4fbd307-e258-edeb-05f0-daf54fd16768.png)

### 1-3. Azure Communication Service 側に Email Communication Service のドメインを接続

1-1 で作成した ACS を再度開きます。
左メニューバーから **[ドメイン]** をクリックして、中央画面に表示される **[ドメインを接続する]** をクリックします。

![AcsEmail_01-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/0e040068-b295-9cc0-5543-6bba85b84a52.png)

**メールドメインの接続** ペインで、1-2 で作成＆設定した ACS Mail のドメインを選択します。

- 電子メールサービス: 1-2 で作成した ACS Email サービスをドロップダウンリストから選択
- 確認済みドメイン: 1-2 で作成した ACS Email サービスに設定した Azure サブドメインをドロップダウンリストから選択

**[接続]** をクリックして接続します。

![AcsEmail_01-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/8126abd4-e882-4ebc-0808-5acc2e454013.png)

**メール通信サービス** に設定した ACS Mail が表示され、状態が **✓接続済み** と表示されたら設定は完了です。

![AcsEmail_01-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/117583/fe24c3d1-6418-81d7-c204-34e8d1de5502.png)