我需要创建一个 OutLook 加载项,用于捕获带有大附件的电子邮件,并将附件替换为可用于下载附件的 URL。
I found this https://msdn.microsoft.com/en-us/library/office/hh290849.aspx它显示了如何在发送附件之前修改附件,这看起来是一个很好的起点,但问题是调用:
常量字符串 PR_ATTACH_DATA_BIN =
”http://schemas.microsoft.com/mapi/proptag/0x37010102 http://schemas.microsoft.com/mapi/proptag/0x37010102";
var 附件数据 =
附件.PropertyAccessor.GetProperty(
PR_ATTACH_DATA_BIN);
失败并显示错误,指出该属性未知或无法找到。
我可以调用attachment.PropertyAccessor.GetProperty()来获取附件类型为1(ATTACH_BY_VALUE),所以我应该能够使用attachment.PropertyAccessor.GetProperty(PR_ATTACH_DATA_BIN)获取数据
我想知道这里是否存在权限问题。我在这里看到:dev.office.com/docs/add-ins/outlook/understanding-outlook-add-in-permissions 存在 Outlook 加载项权限,如果我没有 ReadWriteItem 访问权限,那么这可能会失败。我不知道这是如何或在哪里设置的。他们提到它已在清单中设置,但我不知道在哪里可以做到这一点。
我正在使用 Visual Studio Community 2015。
Outlook 对象模型无法使用以下命令检索大型二进制或字符串 MAPI 属性PropertyAccessor.GetProperty
。在低级别(仅限扩展 MAPI、C++ 或 Delphi),IMAPIProp::GetProps()
不适用于大型PT_STING8 / PT_UNICODE / PT_BINARY
特性。它们必须打开为IStream
(IMAPIProp::OpenProperty(PR_ATTACH_DATA_BIN, IIS_IStream, ...))
。如果使用赎回 http://www.dimastr.com/redemption(我是它的作者)是一个选项,它的附件对象公开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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)