是否有一种让Bot使用Azure BotFramework回复电子邮件线程的干净方法?

问题描述 投票:1回答:1

我正在开发一个使用电子邮件渠道进行通信并正在回复电子邮件主题的机器人。

我根本找不到任何有关自动回复格式或回复线程的文档。似乎大多数用例只是发送给用户的一发电子邮件。

当前实现的工作方式是将传入的消息强制转换为模型(具有所有相关信息,ToRecipients,正文[电子邮件的html],文本正文[电子邮件的纯文本]等)。这样,邮件头就会从正文中分离出来,并添加机器人手动创建的邮件头,然后将其余电子邮件附加到邮件末尾。然后,代码可以替换或从html响应中删除文本工件。然后直接调用SendActivityAsync发送消息。

这种方法存在多个问题。其中一些包括诸如回车符(\ r \ n)之类的文本工件,而其他诸如(> &nbsp)之类的文本工件则通过某种黑盒格式化功能自动添加到响应中,而不会被删除。 Outlook格式类似于将电子邮件地址包含在传入消息中的中,但不能正确格式化它们以进行发送。

是否有任何方法可以使对线程的回复更加轻松,或者对此有任何官方支持?如果没有,至少没有任何有关如何解析或解析电子邮件的文档,可以帮助您更轻松/更清晰地解析这些响应?

email botframework office365 httpresponse email-integration
1个回答
0
投票

Bot Framework具有一个电子邮件渠道,可以像其他渠道一样使用。电子邮件的JSON格式是这样的:

{
    "type": "message",
    "locale": "en-Us",
    "channelID": "email",
    "from": { "id": "[email protected]", "name": "My bot"},
    "recipient": { "id": "[email protected]", "name": "Joe Doe"},
    "conversation": { "id": "123123123123", "topic": "awesome chat" },
    "channelData":
    {
        "htmlBody": "<html><body style = /"font-family: Calibri; font-size: 11pt;/" >This is more than awesome.</body></html>",
        "subject": "Super awesome message subject",
        "importance": "high",
        "ccRecipients": "[email protected];[email protected]"
    }
}

在通道数据中已更改,可通过turnContext.Activity.ChannelData访问

[此文档的官方文档是here,如何使用channelData(虽然是Facebook频道,而不是电子邮件)的示例实现是here

© www.soinside.com 2019 - 2024. All rights reserved.