Outlook RDOMail.SaveAs有时不';不要在联合国军司令部工作

Outlook RDOMail.SaveAs有时不';不要在联合国军司令部工作,outlook,outlook-redemption,Outlook,Outlook Redemption,我有一个C#Outlook插件,正在使用Redemption库 除其他外,此加载项将所选邮件复制到网络上某个位置的共享 它通常工作得很好,但有时共享上的.msg文件似乎已损坏。试图处理它的服务无法读取它。双击它会显示此消息:“无法读取项目” 有时,我会看到一条错误消息: SaveEmail-System.Runtime.InteropServices.COMException(0x8007000): StgCreateDocFile中出错:0x8007000位于 赎回IRDOMail另存为(字符

我有一个C#Outlook插件,正在使用Redemption库

除其他外,此加载项将所选邮件复制到网络上某个位置的共享

它通常工作得很好,但有时共享上的.msg文件似乎已损坏。试图处理它的服务无法读取它。双击它会显示此消息:“无法读取项目”

有时,我会看到一条错误消息:

SaveEmail-System.Runtime.InteropServices.COMException(0x8007000): StgCreateDocFile中出错:0x8007000位于 赎回IRDOMail另存为(字符串路径,对象类型)位于 XYZNameSpace.Email.SaveEmail(…)

下面是将邮件保存到共享的代码:

// Save the mail in a temp local file first
mailItem.SaveAs(temppath, Outlook.OlSaveAsType.olMSG);
(... some processing ...)
// Reload the mail
RDOMail rm = rdoSession.GetMessageFromMsgFile(temppath);
// Save it again on a share
rm.SaveAs(filePathName, Outlook.OlSaveAsType.olMSG);
  • 注1:我不知道为什么邮件首先保存在本地
  • 注2:使用较旧版本的赎回(2015年)
  • 注3:消息的大小似乎并不重要。然而,它们是
通常在2到15 MB之间


非常感谢。

IStorage API并不真正喜欢远程驱动器-存储共享功能无法正常工作


第二次打开并保存消息确实没有多大意义-为什么不使用文件系统API简单地复制MSG文件?

我肯定会重写此部分,并用简单的文件副本替换远程驱动器上的保存。您能否解释一下“存储共享功能无法工作”的含义?非常感谢Dmitry.COM系统允许在不同进程之间共享IStorage文件。但它只适用于本地驱动器。