我需要一个邮件解析器应用程序,它定期解析一些传入的邮件。
azure
是否提供此类工具? SendGrid似乎只是为了发送外发邮件和接收一些事件。答案 0 :(得分:7)
答案 1 :(得分:3)
我认为它不应该是Azure特定的功能。您可以执行以下操作: 步骤1:通过无头验证将您的应用程序与Azure Active Directory连接,请参阅https://github.com/Azure-Samples/active-directory-java-native-headless。
步骤2:通过REST API访问Office 365 Outlook电子邮件,请参阅https://msdn.microsoft.com/office/office365/api/mail-rest-operations
步骤3:您创建的作业可以托管在Azure Web作业https://azure.microsoft.com/en-in/documentation/articles/websites-dotnet-webjobs-sdk-get-started/
中答案 2 :(得分:3)
三年多以后,但我认为(并希望)这可以帮助面临这种情况的人们:
https://ml-software.ch/posts/receving-emails-using-sendgrid-inbound-parse
正如@Jan Hajek所说,您可以使用Sendgrid入站解析。这篇文章没有分享完整的代码,但是提供了一些代码片段以及如何在Azure函数上实现它的想法。
编辑: 这是引用帖子所有者用来接收电子邮件,解析电子邮件并向定义的端点创建POST请求的代码段:
try
{
// Use StrongGrid to parse the request body (handling multipart/form-data is not so simple)
var parser = new WebhookParser();
var inboundMail = parser.ParseInboundEmailWebhook(req.Body);
// Use an email parser to get only the visible text. The visible text will be the text that the user replied and not the whole text of the email with the original email.
var email = EmailParser.Parse(inboundMail.Text);
var data = new
{
To = inboundMail.To.FirstOrDefault()?.Email,
From = ExtractEmail(inboundMail.From.Email),
BookingNumber = GetBookingNumberFromEmail(inboundMail.To.FirstOrDefault()?.Email),
Text = email.GetVisibleText(),
Html = inboundMail.Html
};
log.LogInformation(JsonConvert.SerializeObject(data, Formatting.Indented));
messages.Add(new Message
{
Label = "NewEmailFromGuestEvent",
Body = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(data))
});
return new OkResult();
}
catch (Exception ex)
{
log.LogError(ex.Message);
return new BadRequestResult();
}
根据作者:
它使用StrongGrid(NuGet程序包)来解析传入的WebHook
首先,使用StrongGrid解析请求正文。这将返回一个 具有从SendGrid发送的所有数据的强类型对象。 然后,使用另一个库来解析电子邮件的文本。在这 应用程序,您只需要答复用户发送的内容,而无需 历史。为此,您可以使用EmailReplyParser(NuGet程序包)。 该项目不是很活跃,因此您可能以后需要更改它 继续,但目前它已完成了我们需要做的事情。然后是现在的最后一步 是创建一个匿名对象,打包所需的所有数据 进入它,然后在Azure队列上创建一个新条目。里面的 应用程序,您可以处理正在添加到队列中的消息 并提取所需的信息。
这可能会超出实际的解析器要求,但可能对那些徘徊此主题的人有所帮助。
希望有帮助!
答案 3 :(得分:1)
Logic Apps提供POP3连接器,允许您执行此操作。连接器充当触发器以启动Logic App工作流程。为了实现这一目标 - 您需要:
详细说明可在此处找到:https://azure.microsoft.com/en-in/documentation/articles/app-service-logic-connector-pop3/
答案 4 :(得分:0)
您可以创建Azure function that uses MailKit to retrieve emails并将其存储在Azure存储容器中。
从那里你可以解析电子邮件。