【问题标题】:How to send message in a thread using microsoft graph API?如何使用 microsoft graph API 在线程中发送消息?
【发布时间】:2018-11-06 07:30:03
【问题描述】:

我正在构建一个工具,在该工具中,我需要使用 Microsoft Graph API 在同一个线程中发送超过 2 条消息(消息具有相同的主题和收件人),并且它们之间有一定的时间间隔。

问题是我无法使用 API 在同一个线程中发送消息,即使主题和收件人相同,Outlook 也会将它们显示为不同的线程(但在收件人方面(Gmail 方面) - 它们属于相同的线程)。

我尝试在第二条消息中使用conversationId(我在第一条消息中得到),但它们最终仍然显示在不同的线程中。

有什么方法可以在同一个线程中发送消息吗?

【问题讨论】:

  • 在使用 /microsoft.graph.sendmail 端点发送消息后如何检索 messageid/conversationid。由于它没有返回任何响应,我很好奇您是如何检索它们的
  • @zee 发布的这个 GitHub 问题描述了一种通过添加自定义标识符然后查询它来执行此操作的方法:github.com/microsoftgraph/microsoft-graph-docs/issues/3766

标签: microsoft-graph-api email-threading


【解决方案1】:

根据您的描述,我假设您想使用 https://graph.microsoft.com/v1.0/groups/{id}/threads 端点在同一个线程中发送超过 2 条消息。 参考this document

在群组中创建了一个新对话、对话线程和帖子。使用回复线程或回复帖子以进一步发布到该线程。

所以我们可以使用replay端点在同一个线程中发送消息。

【讨论】:

  • 在我的用例中,创建组是不可行的,它实际上使其中一项要求无效。
  • https://graph.microsoft.com/v1.0/me/microsoft.graph.sendmail 用于发送邮件。我想如果我在后续请求中添加会话 ID 或线程 ID,那么邮件将进入同一个线程。
  • 我们可以使用replay endpoint在同一个线程中发送消息
  • 其实,我确实查过这个API,但我也想发送一些附件,根据文档是不可能的。
【解决方案2】:

要在一个线程中发送电子邮件,您应该使用createReply 方法,您可以在其中提供之前发送的消息的 messageId。

棘手的部分是,在您使用sendsendMail API 方法发送消息后,您无法访问messageId。即使通过create方法创建消息,发送后messageId也会不同。

所以解决方案是发送消息并在“已发送邮件”文件夹中找到它以检索 messageId。我是根据时间、主题和接收者来做这件事的。还有有用的参数$top

使用正确的 messageId,您将能够创建回复并在同一个线程中发送。

【讨论】:

    猜你喜欢
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多