Передача содержимого электронной почты в функциональное приложение Azure

#azure #.net-core #azure-functions

#лазурный #.net-core #azure-функции

Вопрос:

Я хочу передать содержимое электронного письма в мое функциональное приложение, чтобы удалить HTML.

Я следую этому руководству, но я озадачен тем, как передается входящее электронное письмо. Я знаю, что это http-запрос, но не уверен, какая строка имеет дело с этим письмом, над которым мы можем затем поработать.

У нас есть запрос, который является нашим http-запросом, поэтому я предполагаю, что как только мы создадим триггер в Azure, запрос передается прямо?

Это пример кода, который предоставляется:

 #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(@"amp;nbsp;", " ");

   // Return cleaned text
   return (ActionResult)new OkObjectResult(new { updatedBody });
}
 

Ответ №1:

req.Body является телом вашего HTTP-сообщения, когда вы отправляете POST запрос своей функции. Таким образом, текст вашего запроса должен содержать все содержимое вашего электронного письма, после чего вы должны быть готовы к работе.

На самом деле ваш комментарий // Parse query parameter неверен. Он не анализирует параметр запроса, а считывает текст HTTP-сообщения.

кстати: я бы посоветовал вам сделать себе одолжение и не писать скриптовые функции C # на портале Azure, а писать и тестировать их локально, например, в VS Code, затем компилировать их и правильно развертывать в Azure Functions.

Комментарии:

1. Ваше здоровье! Да, я обнаружил, что это немного кошмарная надпись на портале. Спасибо за совет, приятель