教學:在 Azure Logic Apps 中使用 Azure Functions 和 Azure 儲存體 建立自動化的電子郵件處理工作流程

適用於:Azure Logic Apps (使用量)

本教學課程示範如何使用 Azure Logic Apps 建置整合 Azure Functions 和 Azure 儲存體的範例工作流程。 這個範例特別建立了一個 Consumption 邏輯應用程式的工作流程,負責處理來信和任何附件。 工作流程會利用 Azure Functions 分析電子郵件內容,將內容儲存到 Azure 儲存空間,並發送電子郵件進行內容審查。

當您完成時,工作流程看起來會像下列概括範例:

截圖顯示了一個高階的消費工作流程範例。

秘訣

若要深入了解,您可以詢問 Azure Copilot 下列問題:

  • 什麼是 Azure Logic Apps?
  • 什麼是 Azure Functions?
  • 什麼是 Azure 儲存體?
  • 什麼是使用量邏輯應用程式工作流程?

若要尋找 Azure Copilot,請在 Azure 入口網站工具列上,選取 [Copilot]。

您可以使用標準邏輯應用程式資源建立類似的工作流程,其中某些連接器作業 (例如 Azure Blob 儲存體) 也可作為以服務提供者為基礎的內建作業使用。 不過,使用者體驗和教學課程步驟會與使用量版本稍有不同。

先決條件

  • Azure 帳戶和訂用帳戶。 申請一個免費的 Azure 帳號。

  • Azure Logic Apps 支援的任何電子郵件提供者 (例如 Office 365 Outlook、Outlook.com 或 Gmail) 所提供的電子郵件帳戶。 如需其他支援的電子郵件提供者,請參閱適用於 Azure Logic Apps 的連接器。

    此範例會使用 Office 365 Outlook 搭配公司或學校帳戶。 如果您使用不同的電子郵件帳戶,整體步驟將維持不變,但使用者體驗可能略有不同。 如果您使用 Outlook.com,請改用您的個人 Microsoft 帳戶登入。

    附註

    如果您想要使用 Gmail 連接器,只有 G-Suite 商務帳戶可以在邏輯應用程式工作流程中使用此連接器,而不受限制。 如果您有 Gmail 取用者帳戶,您只能使用此連接器搭配特定的 Google 核准服務,或者您可以建立 Google 用戶端應用程式,以用來向 Gmail 連接器進行驗證。 如需詳細資訊,請參閱 Azure Logic Apps 中 Google 連接器的資料安全性和隱私權原則。

  • 下載並安裝免費 Microsoft Azure 儲存體總管。 此工具可協助您確認儲存體容器已正確設定。

  • 如果您的工作流程需要透過限制特定 IP 位址流量的防火牆進行通訊,對於您的邏輯應用程式所在的 Azure 區域,該防火牆必須允許存取 Azure Logic Apps 所用 IP 位址的輸入和輸出。 如果您的工作流程也使用受控連接器 (例如 Office 365 Outlook 連接器或 SQL 連接器),或是使用了自訂連接器,則防火牆也需要開放邏輯應用程式的 Azure 區域中所有受控連接器輸出 IP 位址,讓工作流程進行存取。

設定用來儲存附件的儲存體

下列步驟會設定 Azure 記憶體,以便您可以將傳入的電子郵件和附件儲存為 Blob。

  1. 在 Azure 入口網站 中,使用您的 Azure 帳戶認證登入。

  2. 除非您已經有記憶體帳戶,否則請遵循下列步驟來建立儲存體帳戶。

    在 [基本概念] 索引標籤中提供下列資訊:

    屬性 必要 值 說明
    訂用帳戶 是的 < Azure-訂閱-名稱> 您的 Azure 訂用帳戶名稱。

    此範例使用隨用隨付。
    資源群組 是的 < Azure-resource-group> 用來組織及管理相關資源的 Azure 資源群組的名稱。

    注意:資源群組會存在於某個特定區域內。 雖然此教學課程中提及的項目可能並非適用於所有區域,但請盡可能使用相同的區域。

    此範例使用 LA-Tutorial-RG。
    儲存體帳戶名稱 是的 < Azure-storage-account-name> 您的唯一儲存體帳戶名稱,必須有 3-24 個字元,且只能包含小寫字母和數字。

    此範例使用 attachmentstorageacct。
    區域 是的 < Azure Region> 儲存體帳戶的 Azure 資料區域。

    此範例會使用「美國西部」。
    主要服務 否 < Azure-storage-service> 要用於儲存體帳戶的主要儲存體類型。 請參閱檢查在 Azure 中儲存資料的選項。
    效能 是的 - 標準
    - 進階
    此設定會指定支援的資料類型和用來儲存資料的媒體。 請參閱儲存體帳戶概觀。

    此範例使用標準。
    備援性 是的 - 本地備援儲存體
    - 異地備援儲存體 (GRS)
    此設定可讓您將資料的多個複本儲存為已規劃和未規劃事件的保護。 如需詳細資訊,請參閱 Azure 儲存體備援。

    此範例使用 異地備援記憶體 (GRS)。

    若要建立儲存體帳戶,您也可以使用 Azure PowerShell 或 Azure CLI。

  3. 準備好時,選取 [檢閱 + 建立]。 在 Azure 驗證儲存體帳戶資源的相關資訊之後,請選取 [建立]。

  4. 在 Azure 部署儲存體帳戶之後,選取 [移至資源]。 或者,使用 Azure 搜尋方塊尋找並選取您的儲存體帳戶。

  5. 依照下列步驟取得儲存體帳戶的存取金鑰:

    1. 在儲存體帳戶功能表的 [安全性 + 網路] 之下,選取 [存取金鑰]。

    2. 複製儲存體帳戶名稱和 key1。 將這些值儲存在安全的位置,以供稍後使用。

    若要取得儲存體帳戶的存取金鑰,您也可以使用 Azure PowerShell 或 Azure CLI。

  6. 建立電子郵件附件的 Blob 儲存體容器。

    1. 在儲存體帳戶功能表的 [資料儲存體] 下,選取 [容器]。

    2. 在 容器 頁面工具列中,選擇 + 新增容器。

    3. 在 [新增容器] 窗格中,提供下列資訊:

      屬性 值 說明
      名稱 attachments 容器名稱。
      匿名存取層級 容器 (容器和 Blob 的匿名讀取存取)
    4. 選取 [建立]。

    完成之後,容器清單現在會顯示新的儲存體容器。

若要建立儲存體容器,您也可以使用 Azure PowerShell 或 Azure CLI。

接著,將儲存體總管連線至您的儲存體帳戶。

設定儲存體總管

以下步驟將 儲存體總管 連接到你的儲存帳號,讓你能確認你的工作流程是否正確地將附件以 blob 形式儲存在儲存容器中。

  1. 啟動 Microsoft Azure 儲存體總管。 使用您的 Azure 帳戶進行登入。

    附註

    如果未出現提示,請在 [儲存體總管] 活動列上選取 [帳戶管理] (設定檔圖示)。

  2. 在 [選取 Azure 環境] 視窗中,選取您的 Azure 環境,然後選取 [下一步]。

    此範例會繼續選取全域、多租用戶 Azure。

  3. 在出現的瀏覽器視窗中,使用您的 Azure 帳戶登入。

  4. 返回儲存體總管和 [帳戶管理] 視窗。 確認已選取正確的 Microsoft Entra 租用戶和訂用帳戶。

  5. 在 [儲存體總管] 活動列上,選取 [開啟連線對話方塊]。

  6. 在 [選取資源] 視窗中,選取 [儲存體帳戶或服務]。

  7. 在 [選取連線方法] 視窗中,選取 [帳戶名稱和金鑰]>[下一步]。

  8. 在 [連線至 Azure 儲存體] 視窗中,提供下列資訊:

    屬性 值
    顯示名稱 連線的自訂名稱
    帳戶名稱 您的儲存體帳戶名稱
    帳戶金鑰 您先前儲存的存取金鑰
  9. 針對 [儲存體網域],確認已選取 [Azure (core.windows.net)],然後選取 [下一步]。

  10. 在 [摘要] 視窗中,確認您的連線資訊,然後選取 [連線]。

    儲存體總管隨即建立連線。 您的儲存體帳戶會顯示在 [模擬器與已附加]>[儲存體帳戶] 下的 [總管] 視窗中。

  11. 若要尋找 Blob 儲存體容器,請在 [儲存體帳戶] 下展開您的儲存體帳戶,此範例中為 attachmentstorageacct。 在 [Blob 容器] 下,您可以在其中找到附件容器,例如:

    顯示儲存體總管 - 尋找儲存體容器的螢幕擷取畫面。

接下來,建立 Azure 函數應用程式,以及用於從內容移除 HTML 的函數。

建立函數應用程式

下列步驟會建立 Azure 函數,讓工作流程呼叫以從傳入的電子郵件移除 HTML。

  1. 在您可以建立函數之前,請先建立函數應用程式,選取 [使用量] 方案,並遵循下列步驟:

    1. 在 [基本概念] 索引標籤中提供下列資訊:

      屬性 必要 值 說明
      訂用帳戶 是的 < Azure-訂閱-名稱> 您先前用於儲存體帳戶的相同 Azure 訂用帳戶。
      資源群組 是的 < Azure-資源-群組-名稱> 您先前用於儲存體帳戶的相同 Azure 資源群組。

      在此範例中,選取 [LA-Tutorial-RG]。
      函式應用程式名稱 是的 < 函數應用程式名稱> 函數應用程式名稱,在 Azure 區域中必須是唯一,而且只能包含字母 (不區分大小寫)、數字 (0-9) 和連字號 (-)。

      此範例已使用 CleanTextFunctionApp,因此請提供不同的名稱,例如 MyCleanTextFunctionApp-<您的名稱>
      執行階段堆疊 是的 < 程式設計語言> 偏好函數程式設計語言的執行階段。 針對 C# 和 F# 函式,選取 [.NET]。

      此範例使用 .NET。

      入口網站內編輯僅適用於下列語言:

      - JavaScript
      - PowerShell
      - TypeScript
      - C# 指令碼

      您必須在本機開發任何 C# 類別庫、Java 和 Python 函數。
      版本 是的 < 版本號> 選取已安裝執行階段的版本。
      區域 是的 < Azure Region> 您先前使用的相同區域。

      此範例會使用「美國西部」。
      作業系統 是的 < 您的作業系統> 作業系統會根據你的執行時堆疊選擇預先為你選擇。 不過,你可以選擇支援你喜愛函式程式語言的作業系統。 入口網站內編輯僅在 Windows 上提供支援。

      此範例會選取 [Windows]。
    2. 選取 [下一步:儲存空間]。 在 [儲存體] 索引標籤中提供下列資訊:

      屬性 必要 值 說明
      儲存體帳戶 是的 < Azure-storage-account-name> 為函數應用程式建立要使用的儲存體帳戶。 儲存體帳戶名稱的長度必須介於 3 到 24 個字元之間,且只能包含小寫字母和數字。

      此範例使用 cleantextfunctionstorageacct。

      注意:此儲存體帳戶包含您的函數應用程式,且不同於您先前為電子郵件附件建立的儲存體帳戶。 您也可以使用現有帳戶,條件是必須符合儲存體帳戶需求。
    3. 當您完成時,請選取 [檢視 + 建立]。 在 Azure 驗證提供的資訊之後,選取 [建立]。

    4. 在 Azure 部署函數應用程式資源之後,選取 [移至資源]。

建立函式以移除 HTML

下列步驟會使用範例程式碼片段,透過 C# 建立 Azure 函數以從每個傳入的電子郵件移除 HTML。 此函數可讓電子郵件內容更簡潔且更容易處理。 您可以從工作流程呼叫此函數。

  1. 在 Azure 入口網站中,如果尚未開啟,請開啟您的函數應用程式。

  2. 若要稍後在 Azure 入口網站中執行您的函數,請設定您的函數應用程式以明確接受來自入口網站的要求。 在函數應用程式功能表的 [API] 下方,選取 [CORS]。 在 [允許的來源] 下,輸入 https://portal.azure.com,然後選取 [儲存]。

  3. 在函數應用程式功能表上,選取 [概觀]。 在 [函數] 索引標籤上,選取 [建立]。

    附註

    如果您未看到 [建立] 按鈕,則必須改為在本機建立函數。

  4. 請遵循下列一般步驟,使用 HTTP 觸發程序範本,透過 C# 建立函數,並為函數提供下列資訊:

    參數 值
    函數名稱 RemoveHTMLFunction
    授權層級 功能
  5. 在 [程式碼 + 測試] 索引標籤上,輸入下列 C# 範例程式碼以移除 HTML 並將結果傳回給呼叫端。

    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    using System.Text.RegularExpressions;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
       log.LogInformation("HttpWebhook triggered");
    
       // Parse query parameter
       string emailBodyContent = await new StreamReader(req.Body).ReadToEndAsync();
    
       // Replace HTML with other characters
       string updatedBody = Regex.Replace(emailBodyContent, "<.*?>", string.Empty);
       updatedBody = updatedBody.Replace("\\r\\n", " ");
       updatedBody = updatedBody.Replace(@"&nbsp;", " ");
    
       // Return cleaned text
       return (ActionResult)new OkObjectResult(new {updatedBody});
    }
    
  6. 當您完成時,請在 [程序代碼 + 測試] 工具列上,選取 [儲存],然後選取 [測試/執行]。

  7. 在 [測試/執行] 窗格的 [輸入] 索引標籤上,於 [本文] 方塊中,輸入下列範例輸入,然後選取 [執行]:

    {"name": "<p><p>Testing my function</br></p></p>"}

    您的函式輸出看起來會類似以下結果:

    {"updatedBody": "{\"name\": \"Testing my function\"}"}

確認函式是否正常運作之後,請建立邏輯應用程式資源和工作流程。 雖然本教學課程說明的是如何建立從電子郵件中移除 HTML 的函式,但 Azure Logic Apps 也提供 HTML 轉換為文字的連接器。

建立取用方案邏輯應用程式資源

  1. 在 Azure 入口網站搜尋方塊中輸入邏輯應用程式,然後選取 [邏輯應用程式]。

  2. 在 [邏輯應用程式] 頁面工具列上,選取 [新增]。

    [建立邏輯應用程式] 頁面隨即出現,並顯示下列選項:

    計畫 說明
    使用量 建立僅支援在多租用戶 Azure Logic Apps 中所執行一個工作流程的邏輯應用程式資源,並使用使用量模型進行計費。
    Standard 建立支援多個工作流程的邏輯應用程式資源。 您有下列選擇:

    - 工作流程服務方案:工作流程會在單一租用戶 Azure Logic Apps 中執行,並使用標準模型進行計費。

    - App Service 環境 V3:工作流程會在單一租用戶 Azure Logic Apps 中執行,並使用 App Service 環境方案進行計費。

    - 混合式:工作流程可在本地及多個雲端運行,使用 Kubernetes 事件驅動自動擴展(KEDA)。 如需詳細資訊,請參閱建立混合式部署的標準工作流程。
  3. 在 [建立邏輯應用程式] 頁面上,選取 [使用量 (多租用戶)]。

  4. 在 [基本] 索引標籤上,提供邏輯應用程式資源的下列資訊:

    參數 必要 值 說明
    訂用帳戶 是的 < Azure-訂閱-名稱> 您先前使用的相同 Azure 訂用帳戶。
    資源群組 是的 LA-Tutorial-RG 您先前使用的相同 Azure 資源群組。
    邏輯應用程式名稱 是的 < 邏輯應用程式名稱> 您的邏輯應用程式資源名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧 (()) 和句點 (.)。

    此範例會建立名為 LA-ProcessAttachment 的邏輯應用程式資源。 使用量邏輯應用程式和工作流程一律具有相同的名稱。
    區域 是的 美國西部 您先前使用的相同區域。
    啟用記錄分析 是的 否 只有在您想要啟用診斷記錄時,才會變更此選項。 在本教學課程中,請保留預設的選取項目。

    注意:此選項僅適用於使用量邏輯應用程式。

    附註

    可用性區域會自動針對支援可用性區域的 Azure 區域中新的和現有的使用量邏輯應用程式工作流程啟用。 如需詳細資訊,請參閱 Azure Functions 中的可靠性與使用區域備援和可用性區域保護邏輯應用程式免於發生區域失敗。

  5. 準備好時,選取 [檢閱 + 建立]。 在 Azure 驗證邏輯應用程式資源的相關資訊之後,請選取 [建立]。

  6. 在 Azure 部署您的邏輯應用程式資源之後,請選取 [移至資源]。 或者,使用 Azure 搜尋方塊以尋找並選取您的邏輯應用程式資源。

新增觸發程序以監視傳入的電子郵件

下列步驟會新增觸發程序以等候含有附件的傳入電子郵件。

  1. 在邏輯應用程式功能表上的 [開發工具] 底下,選取 [邏輯應用程式設計工具]。

  2. 在工作流程設計工具上,遵循下列一般步驟來新增名為 [新電子郵件送達時]的 Office 365 Outlook 觸發程序。

    Office 365 Outlook 連接器需要您使用 Microsoft 公司或學校帳戶登入。 如果您使用個人 Microsoft 帳戶,請使用 Outlook.com 連接器。

  3. 請登入您的電子郵件帳戶,以在您的工作流程與電子郵件帳戶之間建立連線。

  4. 在觸發程序資訊方塊中,從 [進階參數] 清單中,新增下列參數,如果未顯示,請提供下列資訊:

    參數 值 說明
    重要性 任何 指定您所需的電子郵件重要性層級。
    僅限包含附件 是 僅取得含附件的電子郵件。

    注意:觸發程序並不會從您的帳戶移除任何電子郵件,而只會檢查新的訊息及處理符合主旨篩選條件的電子郵件。
    包含附件 是 取得附件並作為工作流程的輸入,而非只是檢查是否有附件。
    資料夾 收件匣 要檢查的電子郵件資料夾。
    主旨篩選 商務分析師 2 #423501 指定要在電子郵件主旨中尋找的文字。

    完成時,觸發程序看起來會類似下列範例:

    螢幕擷取畫面顯示取用工作流程和 Office 365 Outlook 觸發程序。

  5. 儲存您的工作流程。 在設計工具的工具列上,選取 [儲存]。

    你的工作流程現在已經上線,但除了查看郵件外,什麼都不做。 接下來新增條件,指定準則以繼續工作流程中的後續動作。

新增條件以檢查附件

下列步驟會新增只會選取含附件之電子郵件的條件。

  1. 在工作流程設計工具中,遵循下列一般步驟以新增名為 [條件] 的控制項動作。

  2. 在 [條件] 動作資訊窗格中,使用「如果電子郵件包含附件和關鍵主旨片語」來重新命名動作。

  3. 建置會檢查電子郵件是否有附件的條件。

    1. 在 [參數] 索引標籤上,於 AND 清單下的第一個資料列中,選取左側方塊內部,然後選取動態內容清單 (閃電圖示)。 從此清單的觸發程式區段中,選取 [具有附件] 輸出。

      秘訣

      如果您未看到 [具有附件] 輸出,請選取 [查看更多]。

      螢幕擷取畫面顯示條件動作、第二個資料列中游標位於最左側欄位、開啟動態內容清單,以及已選取 [具有附件]。

    2. 在中間的方塊中,保留等於(=)運算子。

    3. 在右側的方塊中輸入 True,該值用於與觸發程序中的 [具有附件] 屬性值進行比較。 如果這兩個值相等,表示電子郵件至少有一個附件,因此符合條件,工作流程會繼續執行。

      顯示完整條件的螢幕擷取畫面。

    在基礎工作流程定義中,您可以選取設計工具列上的 [程式碼] 檢視來進行檢視,條件看起來會類似下列範例:

    "Condition": {
       "actions": { <actions-to-run-when-condition-passes> },
       "expression": {
          "and": [ {
             "equals": [
                "@triggerBody()?['HasAttachment']",
                  "true"
             ]
          } ]
       },
       "runAfter": {},
       "type": "If"
    }
    
  4. 儲存您的工作流程。

測試您的條件

  1. 在設計工具的工具列上,選取 [執行]>[執行]。

    此步驟會手動啟動並執行您的工作流程,但在您將測試電子郵件傳送至收件匣之前,不會發生任何動作。

  2. 將符合下列準則的電子郵件傳送給自己:

    • 您的電子郵件主旨具有您在觸發程序的 [主旨篩選條件] 中指定的文字:Business Analyst 2 #423501

    • 您的電子郵件有一個附件。 現在,請建立一個空的文字檔,並將該檔案附加到您的電子郵件。

    當電子郵件送達時,工作流程會檢查是否有附件和指定的主旨文字。 如果條件通過,觸發程序就會引發,並導致 Azure Logic Apps 具現化並執行工作流程執行個體。

  3. 若要確認觸發程序已引發且工作流程已成功執行,請在邏輯應用程式功能表上選取 [概觀]。

    • 若要檢視成功執行的工作流程,請選取 [執行歷程記錄]。

    • 若要檢視成功引發的觸發程序,請選取 [觸發程序歷程記錄]。

    如果觸發程序未引發,或即使觸發程序成功而工作流程仍未執行,請參閱針對邏輯應用程式工作流程進行疑難排解。

接著,請定義要為 True 分支採取的動作。 若要儲存電子郵件及任何附件,請從電子郵件內文中移除任何 HTML,然後在儲存體容器中為電子郵件與附件建立 Blob。

附註

您的工作流程可以將 False 分支保留空白,且在電子郵件沒有附件時,不會採取任何動作。 如果您在完成此教學課程後想要做額外練習,您可以新增任何要為 False 分支執行的適當動作。

呼叫 RemoveHTMLFunction

下列步驟會新增您先前建立的 Azure 函數以接受來自電子郵件觸發程序的電子郵件本文內容作為輸入。

  1. 在邏輯應用程式功能表上的 [開發工具] 底下,選取 [邏輯應用程式設計工具]。 在 True 分支中,選取 [新增動作]。

  2. 請遵循下列一般步驟來新增名為 [選擇 Azure 函數] 的 Azure Functions。

  3. 選取您先前建立的函式應用程式,也就是此範例中的 CleanTextFunctionApp。

  4. 選取您的函式,此範例中名為 RemoveHTMLFunction,然後選取 [新增動作]。

  5. 在 [Azure Functions] 動作資訊窗格中,使用呼叫 RemoveHTMLFunction 重新命名動作。

  6. 現在,指定您的函式要處理的輸入。

    1. 針對 [要求本文],輸入下列文字並包含尾端空格:

      { "emailBody":

      當您在後續步驟中處理此輸入時,在您的輸入正確地格式化為 JSON 之前,都會出現 JSON 無效的相關錯誤。 在您先前測試此函式時,為此函式指定的輸入使用的是 JavaScript 物件標記法 (JSON)。 因此,要求本文也必須使用相同的格式。

    2. 選取 [要求本文] 方塊內部,然後選取動態內容清單 (閃電圖示),以便從先前的動作選取輸出。

    3. 在動態內容清單中的 [新的電子郵件送達時] 下方,選取 [本文] 輸出。 在 [要求本文] 方塊中解析此值之後,請記得新增右大括弧 (})。

      螢幕擷取畫面顯示已選取動態內容清單和本文的 Azure 函數資訊方塊。

    完成作業後,Azure 函數會如同下列範例所示:

    螢幕擷取畫面顯示已完成的 Azure 函數,其中包含要傳遞至函數的要求本文內容。

  7. 儲存您的工作流程。

接下來,新增動作以建立 Blob 以儲存電子郵件本文。

新增動作以建立電子郵件本文的 Blob

下列步驟會建立 Blob 以將電子郵件本文儲存在您的儲存體容器中。

  1. 在設計工具上,於條件 True 區塊的 Azure 函數下,選取 [新增動作]。

  2. 請遵循下列一般步驟,以新增名為 [建立 blob] 的 Azure Blob 儲存體動作。

  3. 提供儲存體帳戶的連線資訊,例如:

    參數 必要 值 說明
    連接名稱 是的 < 連接名稱> 連線的描述性名稱。

    此範例使用 AttachmentStorageConnection。
    驗證類型 是的 < 驗證類型> 要用於連線的驗證類型。

    此範例使用存取金鑰。
    Azure 儲存體帳戶名稱或 Blob 端點 是的 < 儲存帳戶名稱> 您先前建立的儲存體帳戶名稱。

    此範例使用 attachmentstorageacct。
    Azure 儲存體帳戶存取金鑰 是的 < 儲存帳戶存取金鑰> 您先前所建立儲存體帳戶的存取金鑰。
  4. 當您完成時,請選取 [新建]。

  5. 在 [建立 Blob] 動作資訊窗格中,使用 [為電子郵件內文建立 Blob] 重新命名動作。

  6. 提供下列動作資訊:

    秘訣

    如果您在動態內容清單中找不到指定的輸出,請選取作業名稱旁的 [查看更多]。

    參數 必要 值 說明
    儲存體帳戶名稱或 Blob 端點 是的 使用連線設定 (<storage-account-name-or-blob-endpoint>) 選取包含儲存體帳戶名稱的選項。

    此範例會使用 https://attachmentstorageacct.blob.core.windows.net。
    資料夾路徑 是的 < 路徑和容器名稱> 您先前建立之容器的路徑和名稱。

    在此範例中,請選取資料夾圖示,然後選取 [附件]。
    Blob 名稱 是的 < 寄件者名稱> 此範例中,請使用寄件者的名稱作為 Blob 名稱。

    1. 在 [Blob 名稱] 方塊內選取,然後選取動態內容清單選項 (閃電圖示)。

    2. 從 [新的電子郵件送達時] 區段,選取 [寄件者]。
    Blob 內容 是的 < 已清理的電子郵件內容> 在此範例中,請使用無 HTML 電子郵件內文作為 Blob 內容。

    1.在 [Blob 內容] 方塊內選取,然後選取動態內容清單選項 (閃電圖示)。

    2.從 [呼叫 RemoveHTMLFunction] 區段,選取 [本文]。

    下列螢幕擷取畫面顯示要針對 [為電子郵件內文建立 Blob] 動作選取的輸出:

    螢幕擷取畫面顯示 [建立 Blob] 動作中的儲存體容器、寄件者和無 HTML 電子郵件本文。

    完成時,此動作會類似下列範例:

    螢幕擷取畫面顯示已完成 [建立 Blob] 動作的範例電子郵件本文資訊。

  7. 儲存您的工作流程。

測試附件處理

  1. 在設計工具的工具列上,選取 [執行]>[執行]。

    此步驟會手動啟動並執行您的工作流程,但在您將測試電子郵件傳送至收件匣之前,不會發生任何動作。

  2. 將符合下列準則的電子郵件傳送給自己:

    • 您的電子郵件主旨具有您在觸發程序的 [主旨篩選條件] 參數中指定的文字:Business Analyst 2 #423501

    • 您的電子郵件有一或多個附件。 現在,請建立一個空的文字檔,並將該檔案附加到您的電子郵件。

    • 您的電子郵件本文中有一些測試內容,例如:測試我的邏輯應用程式工作流程

    如果工作流程未觸發,或雖然成功觸發但未執行,請參閱對邏輯應用程式工作流程進行疑難排解。

  3. 確認工作流程已將電子郵件儲存至正確的儲存體容器。

    1. 在儲存體總管中,展開 [模擬器和已連結]>[儲存體帳戶]>[attachmentstorageacct (金鑰)]>[Blob 容器]>[附件]。

    2. 檢查附件容器中是否有電子郵件。

      此時,只有電子郵件會出現在容器中,因為工作流程尚未處理附件。

      顯示儲存體總管只有已儲存電子郵件的螢幕擷取畫面。

    3. 完成作業後,請刪除儲存體總管中的電子郵件。

  4. (選擇性) 若要測試 False 分支 (至此尚未執行任何動作),您可以傳送不符合準則的電子郵件。

接下來,請新增 [針對每個] 迴圈以處理每個電子郵件附件。

新增迴圈以處理附件

下列步驟會新增迴圈以處理電子郵件中的每個附件。

  1. 返回工作流程設計工具。 在 [為電子郵件本文建立 Blob] 動作下方,選取 [新增動作]。

  2. 請遵循下列一般步驟來新增名為 [針對每個] 的控制項動作。

  3. 在 [針對每個] 動作資訊窗格中,使用 [針對每個電子郵件附件] 重新命名動作。

  4. 現在選取要處理的迴圈內容。

    1. 在 [針對每個電子郵件附件] 迴圈中,在 [選取先前步驟中的輸出] 方塊內選取,然後選取動態內容清單選項 (閃電圖示)。

    2. 從 [新的電子郵件送達時] 區段,選取 [附件]。

      附件輸出包含具有電子郵件中所有附件的陣列。 [針對每個] 迴圈會在每個陣列項目上重複動作。

      秘訣

      如果未看到 [附件],請選取 [查看更多]。

      螢幕擷取畫面顯示動態內容清單,其中已選取名為附件的輸出。

  5. 儲存您的工作流程。

接下來,新增動作,將每個附件作為 Blob 儲存在附件儲存體容器中。

新增動作以為每個附件建立 Blob

下列步驟會新增動作以為每個附件建立 Blob。

  1. 在設計工具的 [針對每個電子郵件附件] 迴圈中,選取 [新增動作]。

  2. 請遵循下列一般步驟,以新增名為 [建立 blob] 的 Azure Blob 儲存體動作。

  3. 在 [建立 Blob] 動作資訊窗格中,使用 [為電子郵件附件建立 Blob] 重新命名動作。

  4. 提供下列動作資訊:

    秘訣

    如果您在動態內容清單中找不到指定的輸出,請選取作業名稱旁的 [查看更多]。

    參數 必要 值 說明
    儲存體帳戶名稱或 Blob 端點 是的 使用連線設定 (<storage-account-name-or-blob-endpoint>) 選取包含儲存體帳戶名稱的選項。

    此範例會使用 https://attachmentstorageacct.blob.core.windows.net。
    資料夾路徑 是的 < 路徑和容器名稱> 您先前建立之容器的路徑和名稱。

    在此範例中,請選取資料夾圖示,然後選取 [附件]。
    Blob 名稱 是的 < 附件名稱> 在此範例中,請使用附件名稱作為 Blob 名稱。

    1. 在 [Blob 名稱] 方塊內選取,然後選取動態內容清單選項 (閃電圖示)。

    2. 從 [新的電子郵件送達時] 區段,選取 [名稱]。
    Blob 內容 是的 < 電子郵件內容> 在此範例中,請使用電子郵件內容作為 Blob 內容。

    1.在 [Blob 內容] 方塊內選取,然後選取動態內容清單選項 (閃電圖示)。

    2. 從 [新的電子郵件送達時] 區段,選取 [內容]。

    附註

    如果您選取包含陣列的輸出 (例如 [內容] 輸出,這是包含附件的陣列),設計工具會自動為參考該輸出的動作新增 [針對每個] 迴圈。 如此一來,工作流程可以在每個陣列項目上執行該動作。 要移除迴圈,請將引用輸出的動作移到迴圈外,並刪除迴圈。

    下列螢幕擷取畫面顯示要針對 [為電子郵件附件建立 Blob] 動作選取的輸出:

    螢幕擷取畫面顯示 [建立 Blob] 動作中的儲存體容器和附件資訊。

    完成時,此動作會類似下列範例:

    螢幕擷取畫面顯示已完成 [建立 Blob] 動作的範例附件資訊。

  5. 儲存您的工作流程。

重新測試附件處理

  1. 在設計工具的工具列上,選取 [執行]>[執行]。

    此步驟會手動啟動並執行您的工作流程,但在您將測試電子郵件傳送至收件匣之前,不會發生任何動作。

  2. 將符合下列準則的電子郵件傳送給自己:

    • 您的電子郵件主旨具有您在觸發程序的 [主旨篩選條件] 參數中指定的文字:Business Analyst 2 #423501

    • 您的電子郵件有兩個以上的附件。 現在,請建立兩個空的文字檔,並將這些檔案附加到您的電子郵件。

    如果工作流程未觸發,或雖然成功觸發但未執行,請參閱對邏輯應用程式工作流程進行疑難排解。

  3. 確認工作流程已將電子郵件和附件儲存至正確的儲存體容器。

    1. 在儲存體總管中,展開 [模擬器和已連結]>[儲存體帳戶]>[attachmentstorageacct (金鑰)]>[Blob 容器]>[附件]。

    2. 檢查附件容器中是否有電子郵件和附件。

      螢幕擷取畫面顯示儲存體總管及已儲存的電子郵件和附件。

    3. 當您完成時,請刪除儲存體總管中的電子郵件和附件。

接下來,在您的工作流程中新增動作,以傳送電子郵件以檢閱附件。

新增動作來傳送電子郵件

下列步驟會新增動作,讓您的工作流程傳送電子郵件以檢閱附件。

  1. 返回工作流程設計工具。 在 [True] 分支中的 [針對每個電子郵件附件] 迴圈下,選取 [新增動作]。

  2. 遵循下列一般步驟以新增名為 [傳送電子郵件] 的 Office 365 Outlook 動作。

    此範例會繼續進行 Office 365 Outlook 連接器,此連接器僅適用於 Azure 公司或學校帳戶。 對於個人 Microsoft 帳戶,選取 Outlook.com 連接器。

  3. 如果系統要求您提供認證,請登入您的電子郵件帳戶,讓 Azure Logic Apps 能夠建立您電子郵件帳戶的連線。

  4. 在 [傳送電子郵件] 動作資訊窗格中,使用 [傳送電子郵件以供檢閱] 重新命名動作。

  5. 提供下列動作資訊,並選取要包含在電子郵件中的輸出:

    秘訣

    如果您在動態內容清單中找不到指定的輸出,請選取作業名稱旁的 [查看更多]。

    參數 必要 值 說明
    若要 是的 < 收件者電子郵件地址> 若要進行測試,請使用自己的電子郵件地址。
    主旨 是的 < 電子郵件主題> 要包含的電子郵件。

    此範例使用「ASAP - Review applicant for position:」,以及觸發程序的主旨輸出。

    1.在 [主旨] 方塊中,輸入範例文字並包含尾端空格。

    2. 在 [主旨] 方塊內選取,然後選取動態內容清單選項 (閃電圖示)。

    3. 在清單的 [新電子郵件送達時] 下,選取 [主旨]。
    本文 是的 < 電子郵件正文> 要包含的電子郵件本文。

    此範例使用「Please review new applicant:」、名為 [寄件者] 的觸發程序輸出、[為電子郵件本文建立 Blob] 的 [路徑] 輸出、以及 [呼叫 RemoveHTMLFunction] 動作的 [本文] 輸出。

    1.在 [本文] 方塊中,輸入範例文字:「Please review new applicant:」。

    2.在新行上,輸入範例文字「Applicant name」,然後新增觸發程序的 [寄件者] 輸出。

    3.在新行上,輸入範例文字「Application file location:」,然後新增 [為電子郵件本文建立 Blob] 動作的 [路徑] 輸出。

    4.在新行上,輸入範例文字「Application email content:」,然後新增 [呼叫 RemoveHTMLFunction] 動作的 [本文] 輸出。

    附註

    如果您選取包含陣列的輸出 (例如 [內容] 輸出,這是包含附件的陣列),設計工具會自動為參考該輸出的動作新增 [針對每個] 迴圈。 如此一來,工作流程可以在每個陣列項目上執行該動作。 要移除迴圈,請將引用輸出的動作移到迴圈外,並刪除迴圈。

    下列螢幕擷取畫面顯示已完成的 [傳送電子郵件] 動作:

    螢幕擷取畫面顯示要傳送的範例電子郵件。

  6. 儲存您的工作流程。

您已完成的工作流程現在應如下列範例所示:

螢幕擷取畫面顯示已完成的工作流程。

測試您的工作流程

  1. 將符合此準則的電子郵件傳送給自己:

    • 您的電子郵件主旨具有您在觸發程序的 [主旨篩選條件] 參數中指定的文字:Business Analyst 2 #423501

    • 您的電子郵件有一或多個附件。 您可以重複使用先前測試使用的空文字檔。 為了讓案例更為真實,請附加履歷表檔案。

    • 電子郵件內文包含以下文字,您可以複製並貼上:

      
      Name: Jamal Hartnett
      
      Street address: 12345 Anywhere Road
      
      City: Any Town
      
      State or Country: Any State
      
      Postal code: 00000
      
      Email address: jamhartnett@outlook.com
      
      Phone number: 000-000-0000
      
      Position: Business Analyst 2 #423501
      
      Technical skills: Dynamics CRM, MySQL, Microsoft SQL Server, JavaScript, Perl, Power BI, Tableau, Microsoft Office: Excel, Visio, Word, PowerPoint, SharePoint, and Outlook
      
      Professional skills: Data, process, workflow, statistics, risk analysis, modeling; technical writing, expert communicator and presenter, logical and analytical thinker, team builder, mediator, negotiator, self-starter, self-managing  
      
      Certifications: Six Sigma Green Belt, Lean Project Management
      
      Language skills: English, Mandarin, Spanish
      
      Education: Master of Business Administration
      
  2. 執行您的工作流程。 如果成功,您的工作流程會傳送類似下列範例的電子郵件給您:

    螢幕擷取畫面顯示邏輯應用程式工作流程所傳送範例電子郵件。

    若未收到任何電子郵件,請檢查電子郵件的垃圾郵件資料夾。 或者假使不確定工作流程是否正確執行,請參閱針對邏輯應用程式工作流程進行疑難排解。

恭喜,您現在已建立並執行可在不同的 Azure 服務間自動執行工作並呼叫自訂程式碼的工作流程!

清除資源

您的工作流程會繼續執行,直到您停用或刪除應用程式資源為止。 如果不再需要此範例,請刪除包含邏輯應用程式的資源群組和相關資源。

  1. 在 Azure 入口網站搜尋方塊中,輸入資源群組,然後選取 [資源群組]。

  2. 從 [資源群組] 清單中,選取本教學課程的資源群組。

  3. 在 [資源群組] 功能表上,選取 [概觀]。

  4. 在 [概觀] 頁面工具列上,選取 [刪除資源群組]。

  5. 當 [確認] 窗格出現時,輸入資源群組名稱,然後選取 [刪除]。

後續步驟

在此教學課程中,您藉由 Azure 服務 (例如 Azure 儲存體和 Azure Functions) 的整合,建立了可處理及儲存電子郵件附件的邏輯應用程式工作流程。 現在,請深入了解可用來建置邏輯應用程式工作流程的其他連接器。