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

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

Azure Logic Apps 可協助您自動化工作流程,並整合 Azure 服務、Microsoft 服務、其他軟體即服務 (SaaS) 應用程式和內部部署系統的數據。 本教學課程示範如何建置 邏輯應用程式工作流程 ,以處理內送電子郵件和任何附件、使用 Azure Functions 分析電子郵件內容、將內容儲存至 Azure 記憶體,以及傳送電子郵件以檢閱內容。

在本教學課程中,您會了解如何:

  • 設定 Azure 記憶體和 儲存體總管,以檢查已儲存的電子郵件和附件。
  • 建立 從電子郵件中移除 HTML 的 Azure 函式 。 本教學課程包含可用於此函式的程序代碼。
  • 建立空白的取用邏輯應用程式工作流程。
  • 新增可監視附件電子郵件的觸發程式。
  • 新增條件,以檢查電子郵件是否有附件。
  • 新增動作,以在電子郵件有附件時呼叫 Azure 函式。
  • 新增動作,以建立電子郵件和附件的記憶體 Blob。
  • 新增傳送電子郵件通知的動作。

下列螢幕快照顯示高階工作流程:

此教學課程範例高階取用工作流程的螢幕快照。

必要條件

設定記憶體以儲存附件

您可以將內送電子郵件和附件儲存為 Azure 記憶體容器中的 Blob。

  1. 具有 Azure 帳戶認證的 Azure 入口網站 中,除非您已經有記憶體帳戶,否則請使用 [基本] 索引卷標的下列資訊來建立記憶體帳戶

    屬性 數值 Description
    訂用帳戶 <Azure-訂閱-名稱> 您的 Azure 訂閱名稱
    資源群組 <Azure-resource-group> 用來組織和管理相關資源的 Azure 資源群組名稱。 此範例使用 LA-Tutorial-RG

    注意:資源群組存在於特定區域內。 雖然本教學課程中的專案可能無法在所有區域中使用,但請儘可能嘗試使用相同的區域。
    儲存體帳戶名稱 <Azure-storage-account-name> 您的記憶體帳戶名稱,其必須有 3-24 個字元,且只能包含小寫字母和數位。 此範例使用 attachmentstorageacct
    區域 <Azure-region> 儲存記憶體帳戶相關信息的區域。 此範例會使用「美國西部」
    效能 標準 此設定會指定支持的數據類型,以及儲存數據的媒體。 請參閱 記憶體帳戶的類型。
    備援 異地備援儲存體 (GRS) 此設定可讓您將數據的多個復本儲存為不受計劃和非計劃性事件的保護。 如需詳細資訊,請參閱 Azure 儲存體備援 \(部分機器翻譯\)。

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

  2. 完成時,請選取 [ 檢閱>建立]。

  3. 在 Azure 部署記憶體帳戶之後,尋找您的記憶體帳戶,並取得記憶體帳戶的存取金鑰:

    1. 在您的記憶體帳戶功能表上,於 [安全性 + 網路功能] 底下,選取 [存取金鑰]。

    2. 複製您的記憶體帳戶名稱和 金鑰1,並將這些值儲存在安全的地方。

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

  4. 為您的電子郵件附件建立 Blob 記憶體容器。

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

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

    3. 在 [新增容器] 下,輸入附件作為容器名稱。 在 [公用存取層級] 底下,選取 [容器的匿名讀取存取權] 和 [Blob][>確定]。

    當您完成時,容器清單現在會顯示新的記憶體容器。

    若要建立記憶體容器,您也可以使用 Azure PowerShellAzure CLI

接下來,將 儲存體總管 連線到您的記憶體帳戶。

設定 儲存體總管

現在,將 儲存體總管 連線到您的記憶體帳戶,以便確認您的工作流程可以正確地將附件儲存為記憶體容器中的 Blob。

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

    注意

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

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

    此範例會繼續選取全域多租使用者 Azure

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

  4. 返回 儲存體總管 和 [帳戶管理] 視窗,並檢查是否已選取正確的 Microsoft Entra 租使用者和訂用帳戶。

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

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

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

  8. [連線 至 Azure 儲存體] 視窗中,提供下列資訊,然後選取 [下一步]。

    屬性 數值
    顯示名稱 聯機的易記名稱
    帳戶名稱 您的儲存體帳戶名稱
    帳戶金鑰 您先前儲存的存取金鑰
  9. 在 [摘要] 視窗中,確認您的連線資訊,然後選取 [連線]。

    儲存體總管 建立連線,並在 [總管] 視窗中顯示您的記憶體帳戶模擬器與附加> 儲存體 帳戶。

  10. 若要尋找您的 Blob 記憶體容器,請在 [儲存體 帳戶] 底下,展開您的記憶體帳戶,也就是此處的 attachmentstorageacct,然後展開 [Blob 容器],您可以在其中找到附件容器,例如:

    顯示 儲存體總管 - 尋找記憶體容器的螢幕快照。

接下來,建立 Azure 函式 ,從內送電子郵件中移除 HTML。

建立函式以移除 HTML

現在,使用這些步驟所提供的代碼段來建立 Azure 函式,以從每個傳入電子郵件中移除 HTML。 如此一來,電子郵件內容就更簡潔且更容易處理。 然後,您可以從工作流程呼叫此函式。

  1. 在您可以建立函式之前, 請遵循下列步驟來建立函式應用程式

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

      屬性 數值 Description
      訂用帳戶 <您的-Azure-訂閱-名稱> 您先前使用的相同 Azure 訂用帳戶
      資源群組 LA-Tutorial-RG 您先前使用的相同 Azure 資源群組
      函數應用程式名稱 <function-app-name> 函式應用程式的名稱,在 Azure 中必須具有全域唯一性。 此範例已使用 CleanTextFunctionApp,因此請提供不同的名稱,例如 MyCleanTextFunctionApp-your-name<>
      您要部署程式碼或容器映像嗎? 代碼 發佈程式代碼檔案。
      執行階段堆疊 <preferred-language> 選取支援您慣用函式程式設計語言的運行時間。 入口網站內編輯僅適用於 JavaScript、PowerShell、TypeScript 和 C# 腳本。 C# 類別庫、Java 和 Python 函式必須在 本機開發。 針對 C# 和 F# 函式,選取 [.NET]。
      版本 <version-number> 選取已安裝運行時間的版本。
      區域 <Azure-region> 您先前使用的相同區域。 此範例會使用「美國西部」
      作業系統 <your-operating-system> 系統會根據運行時間堆疊選取專案預先選取作業系統,但您可以選取支援您慣用函式程式設計語言的作業系統。 入口網站內編輯僅在 Windows 上提供支援。 此範例會 選取 Windows
      裝載選項和方案 使用量 (無伺服器) 選取主控方案,以定義如何將資源配置給函式應用程式。 在預設 [使用量] 方案中,會根據函式的要求來動態新增資源。 在此無伺服器裝載中,您只需要針對函式有執行的時間來付費。 在 App Service 方案中執行時,您必須管理函式應用程式的調整
    2. 選取 [下一步:儲存空間]。 在 [儲存體] 索引標籤上,提供下列資訊:

      屬性 數值 Description
      儲存體帳戶 cleantextfunctionstorageacct 建立您函式應用程式使用的儲存體帳戶。 儲存體 帳戶名稱長度必須介於 3 到 24 個字元之間,而且只能包含小寫字母和數位。

      注意: 此記憶體帳戶包含您的函式應用程式,與先前建立的電子郵件附件記憶體帳戶不同。 您也可以使用現有帳戶,條件是必須符合儲存體帳戶需求
    3. 當您完成時,選取 [檢閱 + 建立]。 確認您的資訊,然後選取 [ 建立]。

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

  2. 現在在本機建立函式,因為 Azure 入口網站 中的函式建立受到限制。 請務必使用 HTTP 觸發 程式範本、為您的函式提供下列資訊,並使用包含的範例程式代碼,這會移除 HTML 並將結果傳回給呼叫端:

    屬性
    函式名稱 RemoveHTMLFunction
    授權等級 Function
    #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 });
    }
    
  3. 若要測試函式,您可以使用下列範例輸入:

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

    函式的輸出看起來像下列結果:

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

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

建立邏輯應用程式工作流程

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

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

  3. 在 [建立邏輯應用程式] 頁面的 [方案] 底下,選取 [取用] 作為方案類型,然後只顯示取用邏輯應用程式工作流程的選項。 提供下列資訊,然後選取 [ 檢閱 + 建立]。

    屬性 數值 Description
    訂用帳戶 <您的-Azure-訂閱-名稱> 您先前使用的相同 Azure 訂用帳戶
    資源群組 LA-Tutorial-RG 您先前使用的相同 Azure 資源群組
    邏輯應用程式名稱 LA-ProcessAttachment 邏輯應用程式和工作流程的名稱。 取用邏輯應用程式和工作流程一律具有相同的名稱。
    區域 美國西部 您先前使用的相同區域
    啟用記錄分析 在本教學課程中,請保留 [ 關閉] 設定。
  4. 確認您提供的資訊,然後選取 [ 建立]。 在 Azure 部署您的應用程式之後,請選取 [移至資源]

  5. 在邏輯應用程式資源功能表上,選取 [邏輯應用程式設計工具 ] 以開啟工作流程設計工具。

新增觸發程式以檢查內送電子郵件

現在,新增 觸發程式 ,以檢查是否有內送電子郵件具有附件。 每個工作流程都必須以觸發程式開頭,其會在符合觸發條件時引發,例如,發生特定事件或新數據存在時。 如需詳細資訊,請參閱 快速入門:在多租使用者 Azure Logic Apps 中建立取用邏輯應用程式工作流程範例。

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

  1. 在工作流程設計工具上,選取 [新增觸發程式]。

  2. 在 [ 新增觸發程式 ] 窗格開啟之後,在搜尋方塊中輸入 office 365 outlook。 從觸發程式結果清單中,選取 [Office 365 Outlook] 底下的新電子郵件送達時(V3)。

  3. 如果系統要求您提供認證,請登入您的電子郵件帳戶,以建立工作流程與電子郵件帳戶之間的連線。

  4. 現在提供用來檢查新電子郵件和執行工作流程的觸發準則。

    屬性 數值 Description
    重要性 任何 指定您想要之電子郵件的重要性層級。
    僅具有附件 只取得具有附件的電子郵件。

    注意: 觸發程式不會從您的帳戶中移除任何電子郵件,只會檢查新的訊息,並只處理符合主旨篩選的電子郵件。
    包含附件 取得附件作為工作流程的輸入,而不只是檢查附件。
    資料夾 收件匣 要檢查的電子郵件資料夾
  5. 從 [ 進階參數] 列表中,選取 [ 主體篩選]。

  6. 在動作中出現 [ 主體篩選] 方塊之後,請指定主體,如下所示:

    屬性 數值 Description
    主旨篩選 商務分析師 2 #423501 電子郵件主旨中要尋找的文字
  7. 儲存您的工作流程您 在設計師工具列上選取儲存

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

檢查附件

現在新增條件,只選取具有附件的電子郵件。

  1. 在觸發程式底下,選取加號 (+),然後選取 [ 新增動作]。

  2. 在 [ 新增動作 ] 窗格的搜尋方塊中,輸入 條件

  3. 從動作結果清單中,選取名為 Condition 的動作。

  4. 使用較佳的描述重新命名條件。

    1. 在 [ 條件 資訊] 窗格中,以下列描述取代條件的預設名稱: 如果電子郵件具有附件和主要主旨片語
  5. 建立條件,檢查是否有附件的電子郵件。

    1. 在 And 作業清單底下的第一個資料列上,選取最左邊的方塊內。 從出現的動態內容清單中,選取 [具有附件] 屬性。

      顯示條件動作的螢幕快照,第二個數據列,其中游標位於最左邊方塊、開啟的動態內容清單,以及已選取 [包含附件] 屬性。

    2. 在中間方塊中,保留運算符 是否相等。

    3. 在最右邊的方塊中,輸入 true,這是要與 觸發程式輸出的 Has Attachment 屬性值比較的值。 如果兩個值都相等,則電子郵件至少有一個附件、條件通過,而且工作流程會繼續。

      顯示完整條件的螢幕快照。

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

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

測試您的條件

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

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

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

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

    • 您的電子郵件有一個附件。 現在,只要建立一個空的文本文件,然後將該檔案附加至您的電子郵件。

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

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

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

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

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

接下來,定義要針對 True 分支採取的動作。 若要將電子郵件連同任何附件一起儲存,請從電子郵件本文移除任何 HTML,然後在電子郵件和附件的記憶體容器中建立 Blob。

注意

您的工作流程可以將 False 分支保留空白,而且當電子郵件沒有附件時,不會採取任何動作。 作為完成本教學課程之後的獎勵練習,您可以新增您想要針對 False 分支採取的任何適當動作。

呼叫 RemoveHTMLFunction

此步驟會將您先前建立的 Azure 函式新增至您的工作流程,並將電子郵件觸發程式的電子郵件本文內容傳遞至您的函式。

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

  2. 在 [ 選擇作業 搜尋] 方塊底下,選取 [ 建]。 在搜尋方塊中,輸入 azure 函式,然後選取名為 [選擇 Azure 函式] 的動作。

    此螢幕快照顯示名為 [選擇 Azure 函式] 的選取動作。

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

  4. 現在選取您的函式,此範例中名為 RemoveHTMLFunction

  5. 使用下列描述重新命名函式圖形: 呼叫 RemoveHTMLFunction 以清除電子郵件本文

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

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

      { "emailBody":

      當您在下一個步驟中處理此輸入時,會出現無效 JSON 的錯誤,直到您的輸入正確格式化為 JSON 為止。 當您先前測試此函式時,為此函式指定的輸入會使用JavaScript物件表示法 (JSON)。 因此,要求主體也必須使用相同的格式。

      此外,當您的數據指標位於 [要求本文] 方塊內時,動態內容清單隨即出現,因此您可以選取先前動作可用的屬性值。

    2. 從動態內容清單中,於 [新電子郵件送達時] 底下,選取 [本文] 屬性。 在此屬性之後,請記得新增右大括弧 (})。

      指定傳遞至函式的要求本文

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

    要傳遞至函式的已完成要求本文

  7. 儲存您的工作流程您

接下來,新增動作,以在記憶體容器中建立 Blob,以便儲存電子郵件本文。

為電子郵件內文建立 Blob

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

  2. 在 [選擇作業] 搜尋方塊底下,選取 [全部]。 在搜尋方塊中,輸入建立 Blob,然後選取名為 [建立 Blob] 的動作。

    顯示已選取 [建立 Blob] Azure Blob 儲存體 動作的螢幕快照。

  3. 提供記憶體帳戶的連線資訊,然後選取 [建立],例如:

    屬性 數值 Description
    連線名稱 Attachment 儲存體連線 ion 連接的描述性名稱
    驗證類型 存取金鑰 要用於連線的驗證類型
    Azure 儲存體 帳戶名稱或端點 <storage-account-name> 您先前建立的記憶體帳戶名稱,這是此範例的 attachmentstorageacct
    Azure 儲存體 帳戶存取金鑰 <storage-account-access-key> 您先前建立記憶體帳戶的存取金鑰
  4. 使用下列描述重新命名建立 Blob 動作:建立電子郵件本文的 Blob

  5. 在 [ 建立 Blob ] 動作中,提供下列資訊:

    屬性 數值 Description
    儲存體 帳戶名稱或 Blob 端點 使用連線設定(<storage-account-name>) 選取您的記憶體帳戶,這是 此範例的 attachmentstorageacct
    資料夾路徑 <path-and-container-name> 您先前建立之容器的路徑和名稱。 在此範例中,選取資料夾圖示,然後選取 附件 容器。
    Blob 名稱 <sender-name> 在此範例中,請使用髮件者的名稱作為 Blob 的名稱。 選取此方塊內部,讓動態內容清單出現。 從 [ 新電子郵件送達 時] 區段,選取 [ 來源] 字段。
    Blob 內容 <content-for-blob> 在此範例中,請使用無 HTML 電子郵件內文作為 Blob 內容。 選取此方塊內部,讓動態內容清單出現。 從 [呼叫 RemoveHTMLFunction] 以清除電子郵件本文區段,選取 [內文]。

    下圖顯示要針對 [建立 Blob] 動作選取的欄位:

    顯示 [建立 Blob] 動作中無 HTML 電子郵件本文相關信息的螢幕快照。

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

    此螢幕快照顯示已完成建立 Blob 動作的範例無 HTML 電子郵件輸入。

  6. 儲存您的工作流程您

檢查附件處理

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

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

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

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

    • 您的電子郵件至少有一個附件。 現在,只要建立一個空的文本文件,然後將該檔案附加至您的電子郵件。

    • 您的電子郵件內文中有測試內容,例如: Testing my logic app workflow

    如果您的工作流程未觸發或執行成功觸發程式,請參閱 針對邏輯應用程式工作流程進行疑難解答。

  3. 檢查您的工作流程是否已將電子郵件儲存到正確的記憶體容器。

    1. 在 儲存體總管 中,展開 [模擬器與附加> 儲存體 帳戶>附件][儲存體] [密鑰]>[Blob 容器>] 附件。

    2. 檢查電子郵件的附件容器。

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

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

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

  4. 或者,若要測試目前不會執行任何動作的 False 分支,您可以傳送不符合準則的電子郵件。

接下來,新增 For each 循環以處理所有電子郵件附件。

處理附件

若要處理電子郵件中的每個附件,請將 For each 迴圈新增至您的工作流程。

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

  2. 在 [ 選擇作業 搜尋] 方塊底下,選取 [ 建]。 在搜尋方塊中,針對每個輸入 ,然後選取名為 For each 的動作。

    此螢幕快照顯示名為 [針對每個] 的選取動作。

  3. 使用下列描述重新命名您的迴圈: 針對每個電子郵件附件

  4. 現在,選取要處理的循環數據。 在 [針對每個電子郵件附件迴圈] 中,選取 [選取先前步驟的輸出] 方塊中的 [選取輸出],讓動態內容清單出現。 從 [ 新電子郵件送達 時] 區段,選取 [ 附件]。

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

    [ 附件] 欄位會傳入數位列,其中包含電子郵件隨附的所有附件。 For each 循環會針對使用 數位傳入的每個項目重複動作。

  5. 儲存您的工作流程您

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

為每個附件建立 Blob

  1. 在設計工具 的 [針對每個電子郵件附件 迴圈] 中,選取 [新增動作 ] 以指定要在每個找到的附件上執行的工作。

    顯示迴圈的螢幕快照,其中已選取 [新增動作]。

  2. 在 [選擇作業] 搜尋方塊底下,選取 [全部]。 在搜尋方塊中,輸入建立 Blob,然後選取名為 [建立 Blob] 的動作。

    此螢幕快照顯示名為 [建立 Blob] 的選取動作。

  3. 使用下列描述重新命名建立 Blob 2 動作: 為每個電子郵件附件建立 Blob

  4. [建立每個電子郵件附件 的 Blob] 動作中,提供下列資訊:

    屬性 數值 Description
    儲存體 帳戶名稱或 Blob 端點 使用連線設定(<storage-account-name>) 選取您的記憶體帳戶,這是 此範例的 attachmentstorageacct
    資料夾路徑 <path-and-container-name> 您先前建立之容器的路徑和名稱。 在此範例中,選取資料夾圖示,然後選取 附件 容器。
    Blob 名稱 <attachment-name> 在此範例中,請使用附件的名稱作為 Blob 的名稱。 選取此方塊內部,讓動態內容清單出現。 從 [ 新電子郵件送達 時] 區段,選取 [ 名稱] 字段。
    Blob 內容 <email-content> 在此範例中,請使用電子郵件內容作為 Blob 內容。 選取此方塊內部,讓動態內容清單出現。 從 [ 新電子郵件送達 時] 區段,選取 [ 內容]。

    顯示 [建立 Blob] 動作中附件相關信息的螢幕快照。

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

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

  5. 儲存您的工作流程您

檢查附件處理

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

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

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

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

    • 您的電子郵件至少有兩個附件。 現在,只要建立兩個空的文本文件,然後將這些檔案附加至您的電子郵件。

    如果您的工作流程未觸發或執行成功觸發程式,請參閱 針對邏輯應用程式工作流程進行疑難解答。

  3. 檢查您的工作流程是否已將電子郵件和附件儲存到正確的記憶體容器。

    1. 在 儲存體總管 中,展開 [模擬器與附加> 儲存體 帳戶>附件storageacct [密鑰]>[Blob 容器>] 附件。

    2. 檢查 電子郵件和附件的附件 容器。

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

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

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

傳送電子郵件通知

  1. 返回設計工具。 在 True 分支中,折疊 [針對每個電子郵件附件] 迴圈。

  2. 在迴圈下,選取 [ 新增動作]。

    顯示每個迴圈折疊的螢幕快照。在迴圈下,已選取 [新增動作] 選項。

  3. 在 [ 選擇作業 搜尋] 方塊底下,選取 [ 標準]。 在搜尋方塊中,輸入 傳送電子郵件

  4. 從動作清單中,選取電子郵件提供者的 [傳送電子郵件] 動作。 若要根據特定連接器篩選動作清單,您可以先選取連接器。

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

    顯示已選取 Office 365 Outlook 傳送電子郵件動作的螢幕快照。

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

  6. 使用下列描述重新命名傳送電子郵件動作:傳送電子郵件以供檢閱

  7. 提供下列動作資訊,並選取要包含在電子郵件中的欄位。

    • 若要在編輯方塊中新增空白的行,請按 Shift + Enter。
    • 如果您在動態內容清單中找不到預期的欄位,請選取 [新電子郵件送達時] 旁的 [查看更多]。
    屬性 數值 Description
    目標 <recipient-email-address> 為了測試用途,您可以使用自己的電子郵件地址。
    主體 ASAP - Review applicant for position:主體 您要包含的電子郵件主旨。 按兩下此方塊內部,輸入範例文字,然後從動態內容清單中選取 [新電子郵件送達時] 底下的 [主旨] 字段。
    本文 Please review new applicant:

    Applicant name:

    Application file location:路徑

    Application email content:本文

    電子郵件的內文內容。 按下此方塊內部,輸入範例文字,然後從動態內容清單中選取下列欄位:

    - 新增電子郵件送達
    時的 [來源] 欄位
    - [建立電子郵件
    本文 Blob] 下的 [路徑
    ] 字段 - [呼叫 RemoveHTMLFunction] 底下的 [本文] 欄位,以清除電子郵件本文

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

    注意

    如果您選取包含數位的欄位,例如 Content 字段,也就是包含附件的數位,設計工具會自動在參考該欄位的動作周圍加入 For each 迴圈。 如此一來,您的工作流程就可以在每個數位上執行該動作。 若要移除迴圈,請移除陣列的欄位、將參考動作移至迴圈外部、選取循環標題列上的省略號 (...),然後選取 [ 刪除]。

  8. 儲存您的工作流程您

現在,測試您的工作流程,現在看起來像下列範例:

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

執行您的工作流程

  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. 當 [確認] 窗格出現時,輸入資源群組名稱,然後選取 [刪除]

下一步

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