C# PropertyAccessor.GetProperty(PR_ATTACH_DATA_BIN)无法用于outlook附件
我需要创建一个OutLook外接程序,用于捕获带有大型附件的电子邮件,并用可用于下载附件的URL替换附件 我发现它显示了如何在发送附件之前修改附件,这看起来是一个很好的起点,但问题是调用: 常量字符串PR_ATTACH_DATA_BIN= ""; var附件数据= 附件.PropertyAccessor.GetProperty( 请购单(附上数据) 失败,错误为属性未知或找不到 我可以调用attachment.PropertyAccessor.GetProperty()来获取附件类型,该类型为1(attache_BY_VALUE),因此我应该能够使用attachment.PropertyAccessor.GetProperty(PR_attache_data_BIN)获取数据 我想知道这里是否有特权问题。我在这里看到:dev.office.com/docs/add-ins/outlook/understanding-outlook-add-in-permissions存在outlook加载项权限,如果我没有读写项访问权限,那么这可能会失败。我不知道这是如何设置的,也不知道设置在哪里。他们提到在舱单上已经设定了,但我不知道我在哪里可以做到这一点C# PropertyAccessor.GetProperty(PR_ATTACH_DATA_BIN)无法用于outlook附件,c#,email,outlook-addin,C#,Email,Outlook Addin,我需要创建一个OutLook外接程序,用于捕获带有大型附件的电子邮件,并用可用于下载附件的URL替换附件 我发现它显示了如何在发送附件之前修改附件,这看起来是一个很好的起点,但问题是调用: 常量字符串PR_ATTACH_DATA_BIN= ""; var附件数据= 附件.PropertyAccessor.GetProperty( 请购单(附上数据) 失败,错误为属性未知或找不到 我可以调用attachment.PropertyAccessor.GetProperty()来获取附件类型,该类型为1
我正在使用Visual Studio Community 2015。Outlook对象模型无法使用
PropertyAccessor.GetProperty
检索大型二进制或字符串MAPI属性。在低级别(扩展MAPI、C++或Delphi)上,<代码> IMAPI::GETPROSH()/CUT>对于大型<代码> PTSSTIG8/PTXUnODID/PTXBIONEX/COD>属性不适用。它们必须作为IStream(IMAPIProp::OpenProperty(PR\u ATTACH\u DATA\u BIN,IIS\u IStream,…)打开)
。如果使用是一个选项,则其附件对象将公开AsText
、AsArray
、AsStream
等属性
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set item = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
for each attach in item.Attachments
MsgBox attach.AsText
next
Outlook对象模型无法使用
PropertyAccessor.GetProperty
检索大型二进制或字符串MAPI属性。在低级别(扩展MAPI、C++或Delphi)上,<代码> IMAPI::GETPROSH()/CUT>对于大型<代码> PTSSTIG8/PTXUnODID/PTXBIONEX/COD>属性不适用。它们必须作为IStream(IMAPIProp::OpenProperty(PR\u ATTACH\u DATA\u BIN,IIS\u IStream,…)打开)
。如果使用是一个选项,则其附件对象将公开AsText
、AsArray
、AsStream
等属性
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set item = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
for each attach in item.Attachments
MsgBox attach.AsText
next
谢谢你的回答,但在这一点上,我认为我的问题更基本。在我的测试中,附件是一个小的文本文件,因此我认为我应该能够获取它的PropertyAccessor.GetProperty(),尽管由于大小限制,最终我需要使用其他文件。如果我起诉attachment.SaveAsFile(),我还会收到一个异常,告诉我我没有执行此操作的适当权限。MSVS和C#不是我的原生开发环境,因此我怀疑我缺少一些非常基本的东西。Attachment.Type属性的值是多少?使用OutlookSpy()查看消息?选择邮件,单击IMessage按钮,转到GetAttachmentTable选项卡,双击附件条目。您看到PR_ATTACH_DATA_BIN属性了吗?PR_ATTACH_TYPE=7,并且有PR_ATTACH_DATA_BIN属性。PR_ATTACH_TYPE=7是新的ATTACH_BY_WEB_REF,用于新的OneDrive WEB附件。您确定PR_ATTACH_DATA_BIN存在并且可以看到其值吗?在Outlook 2016中保存附件时,它会创建一个*.url文件,指向PR_ATTACH_LONG_PATHNAME_W.PR_ATTACH_DATA_BIN中的一个位置,其中包含附件的内容。虽然没有PR_ATTACH_LONG_PATHNAME_W。谢谢你的回答,但在这一点上,我认为我的问题更基本。在我的测试中,附件是一个小的文本文件,因此我认为我应该能够获取它的PropertyAccessor.GetProperty(),尽管由于大小限制,最终我需要使用其他文件。如果我起诉attachment.SaveAsFile(),我还会收到一个异常,告诉我我没有执行此操作的适当权限。MSVS和C#不是我的原生开发环境,因此我怀疑我缺少一些非常基本的东西。Attachment.Type属性的值是多少?使用OutlookSpy()查看消息?选择邮件,单击IMessage按钮,转到GetAttachmentTable选项卡,双击附件条目。您看到PR_ATTACH_DATA_BIN属性了吗?PR_ATTACH_TYPE=7,并且有PR_ATTACH_DATA_BIN属性。PR_ATTACH_TYPE=7是新的ATTACH_BY_WEB_REF,用于新的OneDrive WEB附件。您确定PR_ATTACH_DATA_BIN存在并且可以看到其值吗?在Outlook 2016中保存附件时,它会创建一个*.url文件,指向PR_ATTACH_LONG_PATHNAME_W.PR_ATTACH_DATA_BIN中的一个位置,其中包含附件的内容。但是没有路径名。