【发布时间】:2016-03-11 22:41:30
【问题描述】:
我一直在与这个问题作斗争一段时间,但未能在网上找到有效的答案。我正在使用 Exchange EWS API 进行一些电子邮件处理。我需要处理的一件事是带有附件的 EmailMessage。其中一个附件恰好是另一个 EmailMessage。我将其称为附加的 EmailMessage。
我想将此 EmailMessage 转换为 byte[],但是每次尝试时,我都会收到异常。以下是我的代码:
if (((ItemAttachment)attachment).Item is EmailMessage)
{
EmailMessage msg = ((ItemAttachment)attachment).Item as EmailMessage;
msg.Load(new PropertySet(ItemSchema.MimeContent));
byte[] content = msg.MimeContent.Content;
}
问题是无论我尝试加载什么,都会抛出异常提示
Microsoft.Exchange.WebServices.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
附加信息:附件不支持此操作。
如果我不调用 msg.Load(),我会收到一个不同的错误,说我需要加载内容。
我不明白这一点。如果我对未附加任何内容的 EmailMessage 执行相同的操作,它就可以正常工作。为什么 EmailMessage 在某个时间点是附件很重要?如何让 EWS/.NET/Whatever 抛出异常以将附加的 EmailMessage 视为 EmailMessage 而不是 ItemAttachment?
【问题讨论】: