共用方式為


教學課程:使用 Azure Logic Apps、Azure Functions 和 Azure 儲存體建立處理電子郵件的工作流程

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

本教學課程示範如何使用 Azure Logic Apps 建置整合 Azure Functions 和 Azure 儲存體 的範例工作流程。 此範例特別建立取用邏輯應用程式工作流程,以處理內送電子郵件和任何附件、使用 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. 請遵循下列步驟來建立記憶體帳戶,除非您已經有記憶體帳戶

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

    屬性 必填 Description
    訂用帳戶 Yes <Azure-訂閱-名稱> 您的 Azure 訂用帳戶名稱。

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

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

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

    此範例使用 attachmentstorageacct
    區域 Yes <Azure-region> 記憶體帳戶的 Azure 資料區域。

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

    此範例使用 Standard
    備援 Yes - 本地備援記憶體
    - 異地備援儲存體 (GRS)
    此設定可讓您將資料的多個複本儲存為已規劃和未規劃事件的保護。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。

    這個範例使用 異地備援記憶體 (GRS)

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

  3. 當您準備好時,請選取 [ 檢閱 + 建立]。 在 Azure 驗證記憶體帳戶資源的相關信息之後,選取 [ 建立]。

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

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

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

    2. 複製記憶體帳戶名稱和 金鑰1。 將這些值儲存在安全的地方,以供稍後使用。

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

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

    1. 在 [記憶體帳戶] 功能表上的 [資料記憶體] 底下,選取 [容器]。

    2. 在 [容器] 頁面的工具列上,選取 [容器]

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

      屬性 數值 描述
      名稱 附件 容器名稱。
      匿名存取層級 容器(容器和 Blob 的匿名讀取存取權)
    4. 選取 建立

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

若要建立儲存體容器,您也可以使用 Azure PowerShellAzure 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. 在 [基本概念] 索引標籤中提供下列資訊:

      屬性 必填 Description
      訂用帳戶 Yes <Azure-訂閱-名稱> 您先前用於記憶體帳戶的相同 Azure 訂用帳戶。
      資源群組 Yes <Azure-資源-群組-名稱> 您先前用於記憶體帳戶的相同 Azure 資源群組。

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

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

      此範例使用 .NET

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

      - JavaScript
      - PowerShell
      - TypeScript
      - C# 文稿

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

      此範例會使用「美國西部」
      作業系統 Yes <your-operating-system> 系統會根據執行階段堆疊選取項目預先選取作業系統,但您可以選取支援您慣用函式程式設計語言的作業系統。 入口網站內編輯僅在 Windows 上提供支援。

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

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

      此範例使用 cleantextfunctionstorageacct

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

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

建立函式以移除 HTML

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

如需詳細資訊,請參閱在 Azure 入口網站中建立您的第一個函式。 若要建立擴充的函式,您也可以 在本機建立函式。

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

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

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

  4. 在 [建立函式] 窗格中,選取 [HTTP 觸發程式:C#>下一步]。

    注意

    如果您沒有看到 C# 版本,請務必

  5. 為您的函式提供下列資訊,然後選取 [ 建立]:

    參數
    函式名稱 RemoveHTMLFunction
    授權等級 Function
  6. 在 [ 程序代碼 + 測試 ] 索引標籤上,輸入下列範例程式代碼,這會移除 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});
    }
    
  7. 當您完成時,請在 [ 程序代碼 + 測試 ] 工具列上,選取 [ 儲存],然後選取 [ 測試/執行]。

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

    {"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 中執行的一個工作流程,並使用使用量 模型計費
    標準 建立支援多個工作流程的邏輯應用程式資源。 您有下列選項:

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

    - App Service 環境 V3:工作流程會在單一租使用者 Azure Logic Apps 中執行,並使用 App Service 環境 方案進行計費
  3. 在 [建立邏輯應用程式] 頁面上,選取 [取用][多租使用者]。

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

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

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

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

    注意

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

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

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

新增觸發程式以監視內送電子郵件

下列步驟會新增觸發程式,以等候有附件的內送電子郵件。

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

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

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

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

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

    參數 數值 Description
    重要性 任何 指定您所需的電子郵件重要性層級。
    僅具有附件 僅取得含附件的電子郵件。

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

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

    顯示取用工作流程和 Office 365 Outlook 觸發程式的螢幕快照。

  5. 儲存您的工作流程您 在設計師工具列上選取儲存

    您的工作流程現在已上線,但不會執行任何其他檢查電子郵件。 接下來新增條件,指定準則以繼續工作流程中的後續動作。

新增條件以檢查附件

下列步驟會新增條件,只選取具有附件的電子郵件。

  1. 在工作流程設計工具上,遵循這些一般步驟來新增名為 Condition控件動作。

  2. 在 [ 條件 ] 動作資訊窗格中,使用 If 電子郵件具有附件和主要主旨片語來重新命名動作。

  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. 將符合下列準則的電子郵件傳送給自己:

    • 您的電子郵件主旨具有您在觸發 程式主旨篩選商務分析師 2 #423501中指定的文字

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

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

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

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

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

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

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

注意

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

呼叫 RemoveHTMLFunction

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

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

  2. 請遵循下列一般步驟來新增名為 Choose an Azure 函式Azure Functions 動作。

  3. 選取您先前建立的函式應用程式,在此範例中為 CleanTextFunctionApp

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

  5. Azure Functions 動作資訊窗格中,使用 Call RemoveHTMLFunction 重新命名動作。

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

    1. 針對 [要求本文],輸入具有尾端空格的下列文字:

      { "emailBody":

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

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

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

      此螢幕快照顯示已選取動態內容清單和本文的 Azure 函式資訊方塊。

    當您完成時,Azure 函式看起來像下列範例:

    此螢幕快照顯示已完成的 Azure 函式,其中包含要傳遞至函式的要求本文內容。

  7. 儲存您的工作流程您

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

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

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

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

  2. 請遵循下列一般步驟來新增名為 Create blob 的 Azure Blob 儲存體 動作。

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

    參數 必要 Description
    連線名稱 Yes <connection-name> 連接的描述性名稱。

    此範例使用 AttachmentStorageConnection
    驗證類型 Yes <authentication-type> 要用於連線的驗證類型。

    此範例使用 存取金鑰
    Azure 儲存體 帳戶名稱或 Blob 端點 Yes <storage-account-name> 您先前建立的記憶體帳戶名稱。

    此範例使用 attachmentstorageacct
    Azure 儲存體帳戶存取金鑰 Yes <storage-account-access-key> 您先前建立之記憶體帳戶的存取金鑰。
  4. 當您完成時,請選取 [ 新建]。

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

  6. 提供下列動作資訊:

    提示

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

    參數 必要 Description
    記憶體帳戶名稱或 Blob 端點 Yes 使用連線設定(<storage-account-name-or-blob-endpoint>) 選取包含記憶體帳戶名稱的選項。

    這個範例會使用 https://attachmentstorageacct.blob.core.windows.net
    資料夾路徑 Yes <path-and-container-name> 您先前建立之容器的路徑和名稱。

    在此範例中,選取資料夾圖示,然後選取 附件
    Blob 名稱 Yes <sender-name> 在此範例中,使用髮件人名稱作為 Blob 名稱。

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

    2.從 [ 新電子郵件送達 時] 區段,選取 [ 來源]。
    Blob 內容 Yes <cleaned-email-body> 在此範例中,請使用無 HTML 電子郵件內文作為 Blob 內容。

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

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

    下列螢幕快照顯示要針對 [建立電子郵件本文的 Blob] 動作選取的輸出:

    此螢幕快照顯示 [建立 Blob] 動作中的記憶體容器、寄件人和無 HTML 電子郵件本文。

    當您完成時,動作看起來會像下列範例:

    此螢幕快照顯示已完成建立 Blob 動作的電子郵件內文範例資訊。

  7. 儲存您的工作流程您

測試附件處理

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

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

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

    • 電子郵件的主旨具有您在觸發 程式的 [主旨篩選 ] 參數中指定的文字: 商務分析師 2 #423501

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

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

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

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

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

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

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

      顯示只有已儲存電子郵件 儲存體總管 的螢幕快照。

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

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

接下來,新增 For each 循環來處理每個電子郵件附件。

新增迴圈以處理附件

下列步驟會新增循環來處理電子郵件中的每個附件。

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

  2. 請遵循下列一般步驟來新增名為 For each控件動作。

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

  4. 現在,選取要處理的循環內容。

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

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

      Attachments 輸出包含包含電子郵件中所有附件的數位。 For each 循環會在每個數位專案上重複動作。

      提示

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

      顯示動態內容清單的螢幕快照,其中已選取名為 Attachments 的輸出。

  5. 儲存您的工作流程您

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

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

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

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

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

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

  4. 提供下列動作資訊:

    提示

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

    參數 必要 Description
    記憶體帳戶名稱或 Blob 端點 Yes 使用連線設定(<storage-account-name-or-blob-endpoint>) 選取包含記憶體帳戶名稱的選項。

    這個範例會使用 https://attachmentstorageacct.blob.core.windows.net
    資料夾路徑 Yes <path-and-container-name> 您先前建立之容器的路徑和名稱。

    在此範例中,選取資料夾圖示,然後選取 附件
    Blob 名稱 Yes <attachment-name> 在此範例中,請使用附件名稱作為 Blob 名稱。

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

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

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

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

    注意

    如果您選取具有數位的輸出,例如 Content 輸出,也就是包含附件的數位,設計工具會自動在參考該輸出的動作周圍加入 For each 迴圈。 如此一來,工作流程可以在每個陣列項目上執行該動作。 若要移除迴圈,請將參考輸出的動作移至迴圈外部,然後刪除迴圈。

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

    此螢幕快照顯示建立 Blob 動作中的記憶體容器和附件資訊。

    當您完成時,動作看起來會像下列範例:

    此螢幕快照顯示已完成建立 Blob 動作的範例附件資訊。

  5. 儲存您的工作流程您

重新測試附件處理

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

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

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

    • 電子郵件的主旨具有您在觸發 程式的 [主旨篩選 ] 參數中指定的文字: 商務分析師 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. 提供下列動作資訊,並選取要包含在電子郵件中的輸出:

    提示

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

    參數 必要 Description
    目標 Yes <recipient-email-address> 為了進行測試,請使用您自己的電子郵件位址。
    主體 Yes <email-subject> 要包含的電子郵件。

    此範例使用 ASAP - 檢閱職位:的申請人,以及 觸發程式的 [主旨 ] 輸出。

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

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

    3. 在清單中,於 [新電子郵件送達時] 底下,選取 [主旨]。
    本文 Yes <email-body> 要包含的電子郵件本文。

    此範例使用[請檢閱新的申請人:]、名為From的觸發程序輸出、建立電子郵件本文動作的 Blob 路徑輸出,以及呼叫 RemoveHTMLFunction 動作的本文輸出。

    1.在 [ 本文 ] 方塊中,輸入範例文字, 請檢閱新的申請人:

    2.在新行上,輸入範例文字[申請人名稱:],然後從觸發程式新增 From輸出。

    3.在新行上,輸入範例文字、應用程式檔案位置:,然後從建立電子郵件本文動作的 Blob 新增路徑輸出。

    4.在新行上,輸入範例文字、應用程式電子郵件內容:,然後從 Call RemoveHTMLFunction 宏指令新增本文輸出。

    注意

    如果您選取具有數位的輸出,例如 Content 輸出,也就是包含附件的數位,設計工具會自動在參考該輸出的動作周圍加入 For each 迴圈。 如此一來,工作流程可以在每個陣列項目上執行該動作。 若要移除迴圈,請將參考輸出的動作移至迴圈外部,然後刪除迴圈。

    下列螢幕快照顯示已完成的 [傳送電子郵件 ] 動作:

    顯示要傳送之範例電子郵件的螢幕快照。

  6. 儲存您的工作流程您

您已完成的工作流程現在看起來像下列範例:

顯示已完成工作流程的螢幕快照。

測試工作流程

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

    • 電子郵件的主旨具有您在觸發 程式的 [主旨篩選 ] 參數中指定的文字: 商務分析師 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) 的整合,建立了可處理及儲存電子郵件附件的邏輯應用程式工作流程。 現在,請深入了解可用來建置邏輯應用程式工作流程的其他連接器。