EWS RichText缺少ContentId

时间:2014-06-10 15:33:54

标签: c# email exchange-server exchangewebservices

我们遇到了富文本电子邮件的问题,这些电子邮件作为附件转发,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>

注意 - Exhange 2010 SP2 EWS API v2.2(也发生在2.0中)

我的问题是:

  1. 这是预期的行为吗? (如果是这样的话?)
  2. 这是可以在交换时配置的(不是正确的论坛 - 但仍然是)
  3. 如果可以在交换机上配置,那么所述配置的含义是什么。

  4. 我将很快在这里开启MSFT支持事件。

    重新创建的步骤:

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

1 个答案:

答案 0 :(得分:0)

在构建outlook插件时,我已经交换了很多东西。我说的是旧版本的交换和展望,但我在处理自定义电子邮件发送和重建时遇到了痛苦的回忆。特别是RTF。

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

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

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

  4. 您需要查看邮件的RTF内容。但请注意,在许多情况下,RTF主体内容通常使用base-64进行压缩,因此您可能需要先将其解压缩。

      -