【问题标题】:EWS RichText Missing ContentIdEWS RichText 缺少 ContentId
【发布时间】:2014-07-31 10:58:41
【问题描述】:

我们遇到了作为附件转发的富文本电子邮件的问题,其中 ContentIDs 被从附件中删除,这使我们无法正确重建电子邮件。

这是 EWS 对带有图片的富文本电子邮件的示例响应

<t:ItemAttachment>
    <t:AttachmentId Id="AAMkAGRlNWE5MTc1LTUyODktNDRjNi05NTcwLWZjZGM1ODNkMmUxYwBGAAAAAABtOoJbAYfVSZzEDvklEbbPBwBBckyCi9TiT4cjPa5DHYwwAAAAemCwAABBckyCi9TiT4cjPa5DHYwwAABknfz6AAABBgAEAAAAAAA="/>
    <t:Name>Message with Attachments</t:Name>
    <t:Size>97993</t:Size>
    <t:LastModifiedTime>2014-06-10T13:19:25</t:LastModifiedTime>
    <t:IsInline>false</t:IsInline>
    <t:ContentId>F4880FA606E4DC9BBC5143C97C52AC554A3AE55B@1</t:ContentId>
</t:ItemAttachment>

这是作为附件转发的同一电子邮件:

<t:FileAttachment>
    <t:AttachmentId Id="AAMkAGRlNWE5MTc1LTUyODktNDRjNi05NTcwLWZjZGM1ODNkMmUxYwBGAAAAAABtOoJbAYfVSZzEDvklEbbPBwBBckyCi9TiT4cjPa5DHYwwAAAAemCwAABBckyCi9TiT4cjPa5DHYwwAABknfz6AAACBgAEAAAAAAAGAAQAAQAAAA=="/>
    <t:Name>Picture (Device Independent Bitmap)</t:Name>
    <t:Size>5210</t:Size>
    <t:LastModifiedTime>2014-06-10T13:19:25</t:LastModifiedTime>
    <t:IsInline>true</t:IsInline>
</t:FileAttachment>

注意 - 交易所 2010 SP2 EWS API v2.2(也出现在 2.0 中)

我的问题是:

  1. 这是预期的行为吗? (如果是,为什么?)
  2. 这是否可以在交流中配置(不是正确的论坛 - 但仍然)
  3. 如果它是可配置的,那么该配置的含义是什么。

我很快就会在这里打开一个 MSFT 支持事件。

重建步骤:

  1. 新消息
  2. 将消息设置为富文本
  3. 附加图片
  4. 发送电子邮件
  5. 打开电子邮件
  6. 作为附件转发到另一封富文本电子邮件(这也可以通过将消息保存到磁盘然后手动附加来完成)

【问题讨论】:

  • 您查看过 PidTagRtfCompressed 扩展属性的内容是否包含在其中吗?
  • @MimiGentz 您是否有使用 EWS 2.2 API 的示例?我似乎无法在任何地方找到它。
  • 要检索 PidTagRtfCompressed 属性,请使用:ExtendedPropertyDefinition PidTagRtfCompressed = new ExtendedPropertyDefinition(0x1009, MapiPropertyType.Binary); PropertySet propSet = new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.Subject, PidTagRtfCompressed); EmailMessage message = EmailMessage.Bind(service, ItemId, propSet); 我不确定该属性是否还包含原始附件的 RTF。

标签: c# email exchange-server exchangewebservices


【解决方案1】:

在构建 Outlook 插件时,我经常使用交换。我说的是旧版本的 Exchange 和 Outlook,但我在处理自定义电子邮件发送和重建方面有着痛苦的回忆。尤其是使用 RTF。

  1. 这是预期的行为吗? - 我的猜测是肯定的,而且很可能是因为如果交换不剥离 ContentId,它可能会出现安全问题或导致客户端出现意外行为。交换开发人员很难支持跟踪附加到其他交换电子邮件的交换电子邮件。当它是附件时,它不再认为它是交换项,交换它只是另一个数据块。

  2. 这是可配置的吗? - 我不确定,因为我最近没有处理任何较新版本的交换,但根据我对第 1 点的回答,可能没有。

  3. 如果它是可配置的,那么所述配置的含义是什么? - 见答案#1,我的猜测是安全相关和/或开发困难。

您需要查看消息的 RTF 内容。但请注意,在许多情况下,RTF 正文内容通常使用 base-64 压缩,因此您可能需要先对其进行解压缩。

    -

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2017-01-08
    相关资源
    最近更新 更多