【问题标题】:How to map Exchange Web Service External Mail Id to Exchange Internal Message Id如何将 Exchange Web 服务外部邮件 ID 映射到 Exchange 内部邮件 ID
【发布时间】:2014-06-06 14:12:09
【问题描述】:

有一个自行编写的应用程序 (c#) 通过 EWS(Web 服务)与 Exchange 进行通信。 从 EWS 检索到的每个邮件项目都有一个 base64 编码字符串作为邮件标识符。 该字符串是邮箱本身的 GUID、一些标志和其他未知内容的串联。 正如在应用程序日志中所观察到的,最后 48 位似乎代表了一个序列号,每个新邮件都会增加一个序列号,因为 base64 表示也是如此。

看起来像下面这样

AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1dWAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1dXAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1dZAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1dYAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1daAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1dbAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1ddAAA=
AAMkADY4NGZiNmNmL[....]DruR5FpCowxZfCWAAAqi1deAAA=  
                                      ^^^^^^^^

我的目的是解码 base64 表示并解释位部分,以便我获得交换的内部消息 ID。这对于简化邮件跟踪很有必要。

我面临的问题是,现在我尝试以哪种方式解释我从未得到接近内部消息 ID 的值的位。

目前交换的内部消息 ID 为 195XXXXXX,但解释为 long 的二进制值给出了一个大约 713XXXXXX 左右的值,这绝对没有意义。

更糟糕的是,我观察到了序列中的中断:

AAAqi1kKAAA=  
AAAqi1kLAAA=  
AAAqi1kMAAA=    (decimal 713775372)  
AAAqjUbTAAA=    (decimal 713901779)  
AAAqjUbUAAA=  
AAAqjUbVAAA=  

这意味着序列号突然增加了~126'400

我无法想象交换在 EWS 上下文中使用与内部不同的消息 ID,并且在某处维护映射信息。

有人知道如何获取正确的消息 ID 吗?

【问题讨论】:

    标签: exchange-server exchangewebservices exchange-server-2010


    【解决方案1】:

    我相信 EWS ConvertId operation 或 EWS 托管 API ConvertId method 是您想要用来进行转换的工具。这里有更多信息:Converting identifiers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2012-07-13
      • 1970-01-01
      • 2021-02-16
      • 2015-08-02
      相关资源
      最近更新 更多