次の方法で共有


チュートリアル: Azure Logic Apps と統合して電子メールを送信する

このチュートリアルでは、 Azure Logic Apps を使用して、App Service アプリをビジネス プロセスと統合する方法について説明します。 Azure App Service アプリから Gmail 経由で電子メールを送信するロジック アプリを作成します。

言語フレームワークで簡易メール転送プロトコル (SMTP) 構成を使用するなど、Web アプリからメールを送信する方法は他にもあります。 ただし、Logic Apps は、コードに複雑さを加えることなく、多くのビジネス統合に簡単な構成インターフェイスを提供します。

このチュートリアルで示す手順を使用して、次のようないくつかの一般的な Web アプリ シナリオを実装できます。

  • トランザクションの確認メールの送信。
  • Facebook グループへのユーザーの追加。
  • SAP や Salesforce などの外部システムへの接続。
  • 標準の B2B メッセージの交換。

[前提条件]

このチュートリアルを完了するには、次の前提条件が必要です。


ロジック アプリの作成

  1. 従量課金ロジック アプリ リソースの作成に関するページの手順に従って、 Azure Logic Apps でマルチテナント 従量課金アプリを作成します。 アプリが作成されたら、[ リソースに移動] を選択します。

  2. ロジック アプリ ページで、左側のナビゲーション メニューの [開発ツール] の下にあるロジック アプリ デザイナーを選択します。

トリガーを追加する

  1. ロジック アプリ デザイナー キャンバスで [ トリガーの追加] を選択します。

    [トリガーの追加] が強調表示されている Logic Apps デザイナー キャンバスを示すスクリーンショット。

  2. [組み込みツール] の [トリガーの追加] 画面で [要求] を選択し、次の画面で [HTTP 要求を受信したとき] を選択します。

    [要求] と [HTTP 要求の受信日時] が強調表示されているスクリーンショット。

    トリガーがデザイナー キャンバスに表示されます。

  3. [HTTP 要求の受信時] 画面で、[サンプル ペイロードを使用してスキーマを生成する] を選択します。

    [スキーマの生成] リンクが強調表示された [HTTP 要求の受信時] 画面を示すスクリーンショット。

  4. 次のコードを Enter 画面に貼り付けるか、サンプルの JSON ペイロード画面を貼り付けて 、[完了] を選択 します

    {
        "task": "<description>",
        "due": "<date>",
        "email": "<email-address>"
    }
    

    入力した要求データのスキーマが Azure によって生成されます。 実際には、アプリケーション コードから実際の要求データをキャプチャし、それを使用して JSON スキーマを生成できます。

  5. ロジック アプリ デザイナーの上部のツール バーで、[保存] を選択 します

  6. 生成された HTTP URL は、[HTTP 要求の受信時] 画面の [HTTP URL] の下に表示されるようになりました。 コピー アイコンを選択して、後で使用する URL をコピーします。

    [HTTP 要求の受信時] 画面を示すスクリーンショット。[スキーマの生成] リンクと [HTTP URL] が強調表示されています。

HTTP 要求定義は、メールの送信など、このロジック アプリ ワークフローで行うあらゆる操作のトリガーです。 後で App Service アプリでこの URL を呼び出します。 要求トリガーの詳細については、「 Azure Logic Apps のワークフローに送信される受信 HTTPS 呼び出しの受信と応答」を参照してください。

メールを作成する

電子メール送信アクションを追加し、前に入力した 3 つの HTTP 要求プロパティを電子メールに設定します。

  1. デザイナー キャンバスで、トリガーの下にある + を選択し、[ アクションの追加] を選択します。

  2. [ アクションの追加 ] 画面で、検索ボックスに 「gmail 」と入力し、[ メールの送信 (V2)] を選択します。

    ヒント

    SendGrid、MailChimp、Microsoft 365、SalesForce など、他の種類の統合を検索することができます。 詳細については、Azure Logic Apps のマネージド コネクタに関するページを参照してください。

  3. [ 接続の作成 ] 画面 で、[サインイン ] を選択して、メールを送信する Gmail アカウントへのアクセスを認証します。

    Gmail アカウントにサインインする Gmail アクションを示すスクリーンショット。

  4. サインインした後、[電子メールの送信 (V2)] 画面の [送信先] フィールド内を選択して、動的コンテンツ アイコンを表示します。 アイコンの上部の稲妻部分を選択します。

  5. 動的コンテンツ リストが表示され、前に入力した 3 つの HTTP 要求プロパティが表示されます。 一覧から メール を選択します。

    電子メールが強調表示された動的コンテンツ アイコンと一覧を示すスクリーンショット。

  6. [電子メールの送信 (V2)] 画面の [送信先] フィールドに電子メール アイテムが表示されます。 [詳細パラメーター] の下の一覧をドロップダウンし、[件名] と [本文] を選択します。

    パラメーターの一覧から [件名] と [本文] の選択を示すスクリーンショット。

  7. [件名] フィールドと [本文] フィールドが [電子メールの送信 (V2)] 画面に表示されます。 [件名] フィールドを選択して動的コンテンツ アイコンを表示し、動的コンテンツ リストからタスクを選択します。

  8. タスクの横にある [件名] フィールドに、スペースを入力し、その後に作成します。

  9. [本文] フィールド内で選択し、動的コンテンツ リストを表示して、[期限] を選択します。

  10. [ 本文 ] フィールドで、カーソルを 期限 前に移動し、「 この作業項目の期限」と 入力し、その後にスペースを入力します。

    完了した [電子メールの送信 ] (V2) フォームを示すスクリーンショット。

応答を追加する

HTTP トリガーに非同期 HTTP 応答を追加します。

  1. デザイナー キャンバスで、HTTP 要求トリガーと Gmail アクションの間の + を選択し、[ 並列分岐の追加] を選択します。

    [+ 記号] と [並列分岐の追加] オプションが強調表示されているスクリーンショット。

  2. [ アクションの追加 ] 画面で、検索フィールドに 「応答 」と入力し、[ 応答] を選択します。

    検索バーと応答アクションが強調表示されているスクリーンショット。

    既定では、応答アクションは HTTP 200を送信します。これは、このチュートリアルで十分です。 詳細については、「 Azure Logic Apps のワークフローに送信された受信 HTTPS 呼び出しを受信して応答する」を参照してください。

  3. ロジック アプリ デザイナーのツール バーで [保存] を 選択します。

App Service アプリに HTTP 要求コードを追加する

要求トリガー URL などの機密情報は、App Service アプリ コードに直接入れないようにする必要があります。 代わりに、App Service アプリ設定から環境変数として URL を参照できます。 次のコマンドは、ロジック アプリの HTTP URL に対して LOGIC_APP_URL という環境変数を作成します。

  1. Azure Cloud Shell で、次の Azure CLI コマンドを実行してアプリ設定を作成します。 <app-name><resource-group-name>を App Service アプリとリソース グループの名前に置き換えます。 <http-url>は、ロジック アプリからコピーした HTTP URL に置き換えます。

    az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings LOGIC_APP_URL="<http-url>"
    
  2. コードで、次の構成で、HTTP クライアント言語を使用してロジック アプリ URL への標準 HTTP 投稿を言語フレームワークで使用できるようにします。

    • 要求に見出し Content-Type: application/jsonが含まれていることを確認します。

    • 要求本文でロジック アプリに指定したのと同じ JSON 形式を使用します。

      {
          "task": "<description>",
          "due": "<date>",
          "email": "<email-address>"
      }
      
    • パフォーマンスを最適化するには、可能であれば要求を非同期的に送信します。

    • ログ記録の手順については、お好みのフレームワークのドキュメントを確認してください。

要求/応答コードサンプルの例

希望する言語/フレームワークを選択して、要求と応答の例を表示します。 一部の例では、コード パッケージの使用またはインストールが必要です。

ASP.NET Core では、System.Net.Http.HttpClient クラスを使用して HTTP Post を送信できます。 次のコード サンプルでは、 System.Net.HttpSystem.Text.Jsonを使用する必要があります。 HttpResponseMessageでは、アプリ設定にアクセスするために依存関係挿入 (DI) 構成が必要です。 詳細については、「 Access 環境変数」を参照してください。

// requires using System.Net.Http;
var client = new HttpClient();
// requires using System.Text.Json;
var jsonData = JsonSerializer.Serialize(new
{
    email = "someone@example.com",
    due = "4/1/2025",
    task = "My new task!"
});

HttpResponseMessage result = await client.PostAsync(
    // Requires DI configuration to access app settings
    _configuration["LOGIC_APP_URL"],
    new StringContent(jsonData, Encoding.UTF8, "application/json"));
    
var statusCode = result.StatusCode.ToString();

注意

このデモ コードは、わかりやすくするために記述されています。 実際には、要求ごとに HttpClient オブジェクトをインスタンス化しません。 「IHttpClientFactory を使用して回復力の高い HTTP 要求を実装する」のガイダンスに従ってください。

ヒント

チュートリアル: Azure App Service で ASP.NET Core および SQL Database アプリをビルドするサンプル アプリを使用している場合は、このコードを使用して、Todo項目を追加した後の [作成] アクションで確認メールを送信できます。