はじめに
株式会社ネクストスケープ、ソリューションビジネス部所属の小野塚です。
以前、プレビュー機能であったAzure Coommunication Serviceを使ってのメール配信を試してみました。
この記事が2022年の6月になりますので、既に1年以上経っている形になります。
当時はプレビューかつ始まったばかりで「とりあえず」メールを配信できるサービスという雰囲気がありましたが、1年経ってより洗練されてきましたので、どれだけ変わっているかを今回の記事で紹介していきたいと思います。
リソース作成
まずはリソース作成から見てみましょう。
Email Communication Serviceを作成します。
作成にあたって入力する項目のうち「Data Loation」、以前は「United States」しか選べなかったのですが、現在は以下のようにJapanを含む様々なロケーションが選べるようになっています。
昨年は1個だけだったにもかかわらず、なかなかの増えっぷりですね。
次にメールドメインを追加(作成)します。
最初の「概要」画面で以下の画面になりますので無料のAzureサブドメインか、カスタムドメインを選びます。
今回はお試しということもあり、無料の方を選びましょう。
次に「ドメインの追加」をクリック。
これでドメインが作成できました。
次にCommunication Serviceを作成します。
前回はCommunication ServiceとEmail Commucation Service、同じリージョンに作成しなかったために余計な手間がかかってしまいましたが、今回はそこも配慮済みです。
Communication Serviceが作成できたら、左側のメニューから「ドメイン」を選び、下の画面の「ドメインを接続する」をクリックします。
以下の画面になりますので、先ほど作成したメールドメインを選択・設定します。
これで一通りの設定が完了しました。
こちらは以前無かった機能かと思うのですが、メニューに「メール」ー>「メールを試す」というのがありますのでそれを選択すると以下のような画面が表示されます。
前回はメール送信を試してみるにはコードを書く必要があったのですが、現在は以下のようにAzureポータルから送信することができます。
送信先メールアドレスだけでなく、件名や本文も設定可能です。
また、右側の部分を見ていただくとわかるようにC#やJavaScriptでのソースコードのサンプルが記述されていますので、これをそのまま流用することが可能です。
色々便利になりましたね。。
また、前回の自身の記事を見ると配信するまでに5分程度かかっていたようですが、今回は配信後すぐに配信先のメールアドレスに送られており、通常のメール配信サービスと同じレベルになっています。
実用にあたっては当然といえば当然なのですが、前回から比べると感慨深いものがあります。
配信状況の確認
さて、前回ではMail Communication ServiceではAPIによって配信状況を確認することができました。
これをログ出力すれば独自で配信状況を記録することができたわけですが、現在はそういった手間をかけなくても状況を確認することができます。
まずは「メトリック」による確認方法があります(データが少なくてスミマセン。。)。
メトリックで「Email Service Delivery Status Update」を選択し、
以下のように配信結果(Result)等を確認することができます。
ただ、メトリックですと細かい情報が見づらかったりするので、Log Analyticsで分析情報を見れるようにします。
以下の「診断設定」で赤枠の部分がEmail Communication Serviceに関する情報なので、この3つにチェックを入れます。
その後、配信を何回か試して分析情報を見るとAPIの呼び出し結果やメールのサイズ、
サイズ別のメール数、メール受信者数、
そして、以下の画面、「RecipientId」のプルダウンに今まで送った宛先が表示されるので、それを選択することでその宛先の配信履歴が参照できるようになります。
この配信履歴の中にDeliveryStatusがあるので、これで配信結果が確認できます。
試しに存在しないメールアドレスに送ると以下の様にDeliveryStatusが「Failed」、SMTPのステータスコードが550で返ってきて、それも記録されています。便利ですね。。
LogAnalyticsであればKustoも利用可能なので独自のクエリで取得したい情報だけ取得することもできます。
あとは前回は触れていませんでしたが、注意点として以下のような配信制限、スロットリングがあります。
例えば1分間に配信できる数が30通までといったものがありますが、これもサポートに依頼することで制限解除できるようです(ちなみにこの制限はExchange Onlineでも存在しています)。
Azure Communication Serviceの主要原則として大量のメール配信も謳っておりますのでこういった制限解除も恐らく対応してくれるはずですが、このあたりは実践にあたって確認しておくことをお勧めします。
これから期待すること
一旦ここまでで留めておきますが、特定の状況・設定でメールの開封状況も調べることができるようですので、機会があればそれも試してみたいと思います。
あとは個人的な希望を書いておきます。
メール配信サービスとして有名なSendGridはSMTPサーバーとして利用できるのですが、残念ながらEmail Communication Serviceは現在もまだSMTPサーバーとしては利用できない状況でした。
例えばCMS等でメール配信を行う場合、別途SMTPサーバーが必要になります。
私の携わった案件ではそういった時にSendGridを使って設定・配信できるようにしていたため、Email Communication ServiceもSMTPサーバーとして使えれば更に利用の機会が広がるのですが。。
終わりに
というように1年経過した今、かなり実用的なレベルとなっておりますので皆さんのサイト・サービスでも利用できるかと思います。
是非お試しください。
また、弊社はMicrosoftのパートナーとしてAzureを利用したWebサイト、ツール開発を得意としており、更にスマホアプリやHoloLensと多岐に渡って開発を行っております。
お気軽にお問い合わせください。