【问题标题】:Creating a new Email that is apart of a conversation in EWS在 EWS 中创建不属于对话的新电子邮件
【发布时间】:2019-01-24 06:14:21
【问题描述】:

我正在尝试在同一个ConversationId 下发送多封电子邮件,以便它们看起来是同一对话的一部分,您似乎无法直接设置ConversationId

此处的文档 (https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-work-with-conversations-by-using-ews-in-exchange) 建议;

Exchange 根据消息 ID 值定义对话 线程中的第一封电子邮件。所有回复和相关消息 在他们的 References 中引用原始消息的 Message-ID 标头 和 In-Reply-To 标头。

我尝试这样做,所以发送我的第二封电子邮件,其中ReferencesIn-Reply-To 标头作为第一封电子邮件的 ID。第二封电子邮件的消息详细信息如下所示;

From: ********
To: **************
Subject: 2nd Email SendingAnEmailWithAMessageIdShouldBeOnTheSameConversation
Thread-Topic: 2nd Email
SendingAnEmailWithAMessageIdShouldBeOnTheSameConversation
Thread-Index: AQHUs6nYQZn4My04tkWAljb7cIRMpA==
Date: Thu, 24 Jan 2019 16:58:36 +1100
Message-ID:
<DB6P195MB023219A79DF4430C4CB8D5AC829A0@DB6P195MB0232.EURP195.PROD.OUTLOOK.COM>
References:
<DB6P195MB02326884F08F83C932FB3A31829A0@DB6P195MB0232.EURP195.PROD.OUTLOOK.COM>
In-Reply-To:
<DB6P195MB02326884F08F83C932FB3A31829A0@DB6P195MB0232.EURP195.PROD.OUTLOOK.COM>
Content-Language: en-US
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator:
X-MS-Exchange-Organization-RecordReviewCfmType: 0
Content-Type: multipart/alternative;
boundary="_000_DB6P195MB023219A79DF4430C4CB8D5AC829A0DB6P195MB0232EURP_"
MIME-Version: 1.0

--_000_DB6P195MB023219A79DF4430C4CB8D5AC829A0DB6P195MB0232EURP_
Content-Type: text/plain; charset="us-ascii"

BODY - SendingAnEmailWithAMessageIdShouldBeOnTheSameConversation

--_000_DB6P195MB023219A79DF4430C4CB8D5AC829A0DB6P195MB0232EURP_
Content-Type: text/html; charset="us-ascii"

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body>
BODY - SendingAnEmailWithAMessageIdShouldBeOnTheSameConversation
</body>
</html>

--_000_DB6P195MB023219A79DF4430C4CB8D5AC829A0DB6P195MB0232EURP_--

但他们最终得到不同的ConversationId's,并且在 UI 中查看它们时没有那种对话“感觉”。

有谁做到了这一点?

【问题讨论】:

    标签: outlook office365 exchangewebservices


    【解决方案1】:

    在您发布的示例中,主题主题对我来说看起来不正确,主题主题应该设置为与原始电子邮件相同的值,否则客户将无法正确发送电子邮件。

    尝试为对话主题设置扩展属性,例如

            ExtendedPropertyDefinition PR_CONVERSATION_TOPIC_W = new ExtendedPropertyDefinition(0x0070, MapiPropertyType.String);
            email.SetExtendedProperty(PR_CONVERSATION_TOPIC_W, "what topic");
    

    【讨论】:

    • 这是有道理的,因为文档中的 ConversationTopic 值说:Contains a normalized form of the subject value that was set on the original message. This is the same as the Thread-Topic message header. This value is read-only. 但这显然是由 Exchange 在发送时设置的,只是没有发现电子邮件是相关的。
    • 您始终可以为该查看编辑设置底层 Mapi 属性
    • 似乎并没有做太多/任何事情,但进一步阅读表明您可能还需要设置 Conversation_Index,docs.microsoft.com/en-us/office/client-developer/outlook/mapi/…,如果您遵循此根目录。
    【解决方案2】:

    不完全是完美的解决方案,但如果您将主题设置为与第一封电子邮件相同,或者您似乎可以在前面添加 "RE: ",那么它似乎会串接电子邮件,虽然不理想但确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-12
      • 2022-11-11
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多