有没有一种干净的方法可以让机器人使用Azure BotFramework回复电子邮件线程?

有没有一种干净的方法可以让机器人使用Azure BotFramework回复电子邮件线程?,botframework,office365,httpresponse,email,Botframework,Office365,Httpresponse,Email,我正在开发一个机器人,它使用电子邮件通道进行通信,并回复电子邮件线程 我找不到任何关于自动回复格式化或回复线程的文档。似乎大多数用例都只是发送给用户的一次性电子邮件 当前实现的工作方式是将传入消息强制转换为一个模型(该模型包含所有相关信息、收件人、正文[电子邮件的html]、正文[电子邮件的纯文本],等等)。 使用该方法,邮件头从邮件正文中分离出来,添加带有手动创建的邮件头的机器人回复,并将邮件的其余部分附加到邮件的末尾。然后,代码替换或删除html响应中的文本工件。然后调用SendActivi

我正在开发一个机器人,它使用电子邮件通道进行通信,并回复电子邮件线程

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

当前实现的工作方式是将传入消息强制转换为一个模型(该模型包含所有相关信息、收件人、正文[电子邮件的html]、正文[电子邮件的纯文本],等等)。 使用该方法,邮件头从邮件正文中分离出来,添加带有手动创建的邮件头的机器人回复,并将邮件的其余部分附加到邮件的末尾。然后,代码替换或删除html响应中的文本工件。然后调用SendActivityAsync发送消息

这种方法存在多个问题。其中一些包括文本工件(如回车符)(\r\n)和其他类似(>)的工件,这些工件通过一些黑盒格式化函数自动添加到响应中,而不是删除。Outlook格式设置,如将电子邮件地址封装在传入邮件中的<和>,但未正确设置它们的格式以供发送

有没有办法让回复线程更容易,或者有官方支持?
如果没有,是否至少有任何关于如何解析电子邮件的文档可以帮助解析这些响应变得更容易/更清晰

Bot框架有一个电子邮件通道,可以像其他任何通道一样使用。电子邮件的JSON格式如下:

{
    "type": "message",
    "locale": "en-Us",
    "channelID": "email",
    "from": { "id": "mybot@mydomain.com", "name": "My bot"},
    "recipient": { "id": "joe@otherdomain.com", "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": "Yasemin@adatum.com;Temel@adventure-works.com"
    }
}

{
“类型”:“消息”,
“区域设置”:“en Us”,
“channelID”:“电子邮件”,
“发件人:{“id”:”mybot@mydomain.com“,“名称”:“我的机器人”},
收件人:{“id”:joe@otherdomain.com,“姓名”:“乔·多伊”},
“对话”:{“id”:“123123”,“主题”:“精彩聊天”},
“渠道数据”:
{
“htmlBody”:“这太棒了。”,
“主题”:“超级棒的消息主题”,
“重要性”:“高”,
“收件人”:Yasemin@adatum.com;Temel@adventure-works.com“
}
}
这在channelData中更改,可通过
turnContext.Activity.channelData


这方面的官方文档是,关于如何使用channelData(尽管它是Facebook频道,而不是电子邮件)的示例实现是。

Bot框架有一个电子邮件频道,可以像任何其他频道一样使用。电子邮件的JSON格式如下:

{
    "type": "message",
    "locale": "en-Us",
    "channelID": "email",
    "from": { "id": "mybot@mydomain.com", "name": "My bot"},
    "recipient": { "id": "joe@otherdomain.com", "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": "Yasemin@adatum.com;Temel@adventure-works.com"
    }
}

{
“类型”:“消息”,
“区域设置”:“en Us”,
“channelID”:“电子邮件”,
“发件人:{“id”:”mybot@mydomain.com“,“名称”:“我的机器人”},
收件人:{“id”:joe@otherdomain.com,“姓名”:“乔·多伊”},
“对话”:{“id”:“123123”,“主题”:“精彩聊天”},
“渠道数据”:
{
“htmlBody”:“这太棒了。”,
“主题”:“超级棒的消息主题”,
“重要性”:“高”,
“收件人”:Yasemin@adatum.com;Temel@adventure-works.com“
}
}
这在channelData中更改,可通过
turnContext.Activity.channelData

这方面的官方文档是,关于如何使用channelData(尽管它是Facebook频道,而不是电子邮件)的示例实现是