Azure Communication Servicesでメール送信してみる

Azure環境を構築するうえで、メール送信機能が必要になったので実現できるサービスを実際に使ってみました。

使い勝手としては、AWSで例えてしまって申し訳ないですが、Amazon SESとほぼ一緒でした。

Amazon SESを使ったことがある人なら、特に苦戦せずに使えそうなサービスです。

リソース構成

Azure Communication Servicesでメールを送信する場合、2つサービスを使用することになります。

1つがAzure Communication Servicesです。
こちらは今回メール送信に使用しますが、その他チャット送信などの通知機能も持っており、統括的な通知サービスになっています。
そのような背景もあり、主体ではあるのですが、メール送信関連のコンフィグはもう1つの方で持つことになります。

2つ目がEmail Communication Servicesです。
こちらがAzure Communication Servicesからメール送信するときに参照されるメール関連のコンフィグになります。
使用するドメインやメールアドレス、メールテンプレート等の設定を保持します。

構築手順

Email Communication Services

Email Communication Services作成

  1. Azure Portalで「Email Communication Services」を検索し、移動。
    EmailCommunicationServices検索
  2. 左上の「作成」を押下。
    ECSリソース作成
  3. 必要事項を入力して、「確認と作成」を押下して、確認画面で「作成」を押します。
    ECS作成画面

Email Communication Services設定

  1. 作成が完了したら、リソースのリンクを押下して、設定画面に遷移。
    ECS設定画面遷移
  2. 「Settings」-「Provision domains」を押下。
    Provision domains画面
  3. 「Add domain」でメール送信ドメインを追加する。
    ※「Azure domain」だと、Azureにて自動でメールドメインが払い出される。
    ※「Custom domain」だと自身が所有するドメインを追加することができる。
    Add domain
  4. ドメインを追加する。
    「Azure domain」の場合は、押下すると即時に利用可能なレベル。
    右上に進行中の表示が出て、数分後にはメールアドレスが払い出される。
    Azure domain追加
    払い出されるドメインは<乱数>.azurecomm.net が払い出される。                  

    注意

    Email Communication Services上だとドメインは、「.azurecomm.net」ですが、
    実際に届くメールアドレスは、「.jp1.azurecomm.net」で届きました。
    ドメインレベルで受信許可等が必要な場合は、ご注意ください。

    Azureドメイン     

    「Custom Domain」の場合は、所有しているドメインを入力して、「Confirm」して「Add」を押下。
    Custom Domain追加
    所有するドメインのDNSにレコード追加の指示が出るので、追加を行う。
    指示されたTXTレコードを追加。
    TXTレコード
    レコードを追加して数分すると「Verified」になる。
    承認
    そのまま、SPFとDKIM、DKIM2も有効化するために「Configure」を押下して、指定されたDNSレコードを登録する。

    レコード表示
    ※SPFはドメイン認証のためのTXTレコードと重複するので値に2行目として追加する。
    以下はRoute 53で行った場合の画面イメージ。
    SPF登録

  5. SPF、DKIM、DKIM2の列が全て「Verified」になれば、ECSの設定は完了。

Azure Communication Servicesリソース作成

  1. Azure Portalで「Communication Services」を検索し、移動。
    ACS検索画面
  2. 左上の「作成」を押下。
    ACS作成
  3. 必要事項を記入して、「Review + Create」を押下。その後の確認画面でも「Create」を押下。
    ACS設定情報
  4. 出来上がったリソースのリンクを押下。
    ACSリソース画面
  5. 左メニューから「メール」-「ドメイン」を押下。
    ドメイン設定画面
  6. 「Connect domains」を押下。
    Connect domains
  7. 作成したEmail Communication Servicesとドメインを指定して、「Connect」を押下。
    ※以下の画面は、Azure domainを追加してみた際の画面
    Connect
  8. 追加したドメインが「Connected」になればOK。
    Connected

機能検証

試しに追加したドメインでメールを送信してみます。

  1. 作成したAzure Communication Servicesのリソースで「メール」-「メールを試す」を押下。
    メール送信試行
  2. 送信メールの情報を入力して、「Send」を押下。
    (改行はHTML)
    メール送信
  3. 無事に受信完了。
    メール受信

注意

初期状態だと送信元メールアドレスは「DoNotReply」だけが使用できます。
送信元アドレスを追加したい場合は次の手順を実施してください。

補足(送信元メールアドレスの追加)

送信元メールアドレスは、Email Communication Servicesの方で、「Provision domains」に登録したドメインの中に設定されています。

左メニューの「Email services」-「MailFrom addresses」に登録されています。

MailFrom addresses

そしてこの画面の「Add」から追加できるはずなのですが、グレーアウトされていて使用できません。

なぜか探していたら、同様の事象で困っている人がMicrosoft Igniteで問合せしていました。
https://learn.microsoft.com/en-us/answers/questions/1630281/add-button-disabled-in-email-communication-service

どうやら原因はわからないですが、Azure CLIからなら追加できたという情報です。

ということで、仕方ないのでAzure CLIから追加してみます。Azure CLIはCloudShellから実行しました。

  1. CloudShellを起動。
    CloudShell起動
  2. CloudShellで対象のサブスクリプションにログイン。

    az account set –subscription <サブスクリプション名>

  3. 送信元アドレスを追加してみます。
    az communication email domain sender-username create \
    --domain-name "<追加先のドメイン名>" \
    --email-service-name "<EmailCommunicationServicesのリソース名>" \
    --sender-username "<送信元アドレス名>" \
    --resource-group "<リソースグループ>" \
    --display-name "<表示名>" \
    --username "<送信元アドレス名>""<送信元アドレス名>"

    注意

    「Azure domain」の場合は、「–domain-name」の引数を「AzureManagedDomain」にする必要があります。
    カスタムドメインの場合は、登録したドメイン名でOKです。

    CLIによる追加

  4. 画面に追加されました。
    送信元アドレス追加
  5. 「メールを試す」画面でも、「Sender email username」に追加したユーザー名が選択肢に出てきます。
    メール送信試行画面
  6. 無事に設定したユーザー名と表示名でメールを受信しました。追加ユーザーメール

まとめ

カスタムドメインやAzureのサブドメインでメール送信が簡単に行えました。

ファイルの添付等も可能なので、Azure上のサービスと連携させて、メール通知させるのに適していることがわかりました。

著者について

インフラエンジニアからクラウドエンジニアへ。
主にAWS環境の構築を担当。少しずつAzureを勉強中。

前田光太朗をフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(Azure)は、Azureを最大限活用するためのオールインワンサービスです。40年以上の様々なシステム構築・運用実績で得た業界理解と、Azure構築ナレッジを強みに、クラウドへの移行から運用までトータルでサポートし、お客様のAzure活用を実現します。

Azureクラウド
シェアする
タイトルとURLをコピーしました