#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. Ваше здоровье! Да, я обнаружил, что это немного кошмарная надпись на портале. Спасибо за совет, приятель