1
2

More than 1 year has passed since last update.

ロジックアプリから Email Azure Communication Services を用いてメール通知を行う

Last updated at Posted at 2023-08-04

1. はじめに

これまで Azure 環境からのメール転送サービスは Twilio SendGrid が有名だったのですが、この度 2023/7/30 に Azure Native の電子メール転送サービス (Azure Communication Service) の日本リージョンが正式に対応しました。本記事では Azure の運用でよく用いるロジックアプリからの通知を Email Azure Communication Services を用いてメール通知を実践した内容をまとめています。

2. 背景

AWS を利用している方であれば、Amazon CloudWatch のメトリクスや Amazon Cloud Watch Logs のアラートを Amazon SNS/SES を用いてメール通知、SMS 通知を設定された方は多いと思います。Azure 環境では Native のメール送信サービスが遅れていたため、代替手段として SendGrid を Martket Place から用いていたケースが多いのではないかと思います。
筆者は Microsoft Sentinel をサポートするお仕事が多いのですが、インシデント検知時に通報するための電子メールの通知サンプルが O365 コネクタであるため、システムアラートを発砲するためだけに Office 365 のユーザーを作成するのは割に合わないと思います。(1ユーザー分のライセンスを消費したり、不要なメール受信を受けてしまう、というのもあります)

Azure Communication Services の電子メール対応が Japan East で対応することで、これらの課題が解決出来るようになります。2023.7 現在、東日本リージョンでの価格、制限は以下のようになっています。

内容 詳細
価格 ¥0.03532/メール送信
¥0.01696/MB 転送
制限 メール送信
- 30 mail/分/サブスクリプション
- 100 mail/60分/サブスクリプション

3. 設定

以下、設定画面を簡単にご紹介いたします。

3.1 Azure Communication Services のリソースを作成する

はじめに基盤となる Azure Communication Services のリソースを作成します。
日本語化画面では「通信サービス」と表示されますのでご注意ください。
image.png

3.2. Email Azure Communication Services のリソースを作成する

次に SMTP 転送サービスとなる Email Communication Services のリソースを作成します。
日本語化画面では「メール通信サービス」と表示されますのでご注意下さい。

3.3 [オプション] SMTP 転送時のカスタムドメインを登録する

Email Communication Services リソースが作成すると、Azure サブドメインである XXXXX.azurecomm.net のドメインが作成されます。ドメインを自社ドメイン名等を用いた送信を行う場合は、送信ドメイン認証(SPF / DKIM)を通じてカスタムドメインを登録することが出来ます。

image.png

3.4 メール送信サービスを Azure Communication Services に登録する

作成した Email Communication Services を母体となる Azure Communication Services に登録します。これにて、SDK のエンドポイントや、転送時のキーが認証情報として用いることが出来るようになります。

3.5 テストしてみる

AzureCLI / Python / JavaScript 等のサンプルメール送信テスト方法が掲載されています。

試しに AzureCLI で実行してみました。設定したカスタムドメイン経由のユーザーで SMTP 転送されていることが分かります。
image.png
image.png

4. ロジックアプリで発砲してみる

Email Communication Services が動作することが分かったので、ロジックアプリのメール送信処理を Azure Communication Services 経由で実践してみます。
ロジックアプリでは Email Azure Communication Services 用の標準コネクタが提供されていますので、O365 コネクタや SendGrid コネクタから切り替えるだけでOKです。
image.png

4.1 ロジックアプリの流れ

以下は Microsoft Sentinel のインシデント発砲時に、Azure Communication Services Email を用いてメール送信するフロー例です。
image.png
細かいので、Email 処理の部分だけ抜粋して紹介します。

4.2 変数の初期化 (HTML メールの成型)

Azure Email Communication Service Email では、BODY を HTML Email として送信してもらえるので、CSS (スタイルシート) を用いて成型化を行っています。CSS を用いないと既読性が悪いので、設定することを強くお勧めします。
image.png

4.3 電子メールの送信 (Azure Communication Services による sendmail)

最初にコネクタを接続する際に接続文字列 = Azure Communication Service の主キーを入れます。
image.png

認証が通ると、コネクタ経由で送信元/宛先の Email アドレス、本文(BODY)を入れることが出来ます。BODY 部分は HTML Email が出来るので、前ステップでまとめた変数を当てています。
image.png

4.4 テストしてみる

実際にトリガーを起動させて、ロジックアプリを実行してみます。
Azure Email Communication Services 経由で SMTP 転送によるメール処理が出来ました。
image.png

5. まとめ

これまで Azure 標準サービスではあまり用いられていなかった Email Azure Communication Services ですが、日本リージョン GA になりましたので、国内環境で活用が出来るようになりました。Azure 運用では O365 コネクタ利用のまま放置しているケースも多いと思いますので、これを機会に SMTP 通知サービスへの切替もご検討いただけたらと思います。

*本稿は、個人の見解に基づいた内容であり、所属する会社の公式見解ではありません。また、いかなる保証を与えるものでもありません。正式な情報は、各製品の販売元にご確認ください

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2