我一直在尝试用c#创建一个outlook插件。 我想要做的是获取附件并将其转换为base64,以便将其发送到我的服务器。 我不知道如何做到这一点。唯一的解决方案似乎是,保存文件,读取它,将其转换为base64并删除它,这似乎非常浪费。
这就是我现在正在做的事情。
for (int j = 1; j <= email.Attachments.Count; j++)
{
json = "{
" \"Mail_Attachment_BLOB\" :\" " + email.Attachments[j] "\" }";
SendToApi("Attachment", json);
}
有什么想法吗?
答案 0 :(得分:0)
如果您尝试访问附件内容而不将附件另存为文件,则Outlook对象模型将无法帮助您。您可以使用扩展MAPI(仅限C ++或Delphi)并以流(IAttach::OpenProperty(PR_ATTACH_DATA_BIN, IID_IStream, ...)
)打开附件数据或使用Redemption - 其附件对象公开AsText
,AsArray
等属性。
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