Azure 逻辑应用程序 - Return 电子邮件内容为 JSON

Azure Logic App - Return email contents as JSON

我是 Azure 的初学者,希望能够有一个逻辑应用程序来读取电子邮件的内容并将其输出到 JSON 例如:

  {
    "from": "Azure@Microsoft.co.uk",
    "subject": "Azure Exception - A task was canceled.",
    "body": "An exception has occurred in an Azure function"
  }

逻辑应用程序非常基础,我有一个 'when an email is received trigger' 通向我的函数应用程序,我在其中传递电子邮件 Body 作为请求 body。我目前正在从逻辑应用程序中获取 http body 请求内容,例如:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta content="text/html; charset=us-ascii"><meta name="Generator" content="Microsoft Word 15 (filtered medium)"><style>
<!--
@font-face
    {font-family:"Cambria Math"}
@font-face
    {font-family:Calibri}

这不是我想要的,因为我想要的电子邮件的主要部分位于底部 html。

在我的函数应用程序中,我正在执行以下操作,获取请求和

public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            string emailBodyContent = await new StreamReader(req.Body).ReadToEndAsync();

            return new OkObjectResult(emailBodyContent);
        }

我不太确定这是如何工作的,但我正在返回 req.Body

我假设这可能与以下内容有关?我们可以从:电子邮件发件人,主题:header

非常感谢任何指南或答案。

我的理解是您想提取邮件正文(纯文本)而不是完整的 html 文本。

默认情况下,在逻辑应用中 - 收到的电子邮件正文是 HTML 内容。要提取文本内容,您可以使用 Content Conversion 连接器。

输出:

备选方案:

您可以使用 Body Preview - 如果正文较小 - 正文预览将包含正文的纯文本 - 这将直接满足您的要求。

更新

要创建 JSON 输出,您可以使用 Compose Action