2017-10-12 79 views
0

我一直在试图在C#中创建一个Outlook插件。 我想要做的是获取附件,并将其转换为base64以将其发送到我的服务器。 我不能找出一种方法来做到这一点。唯一的解决方案似乎是,保存文件,读取它,将其转换为base64并删除它,这看起来非常浪费。前景附件base64在飞C#

这就是我现在要做的。

  for (int j = 1; j <= email.Attachments.Count; j++) 
      { 

       json = "{ 
         " \"Mail_Attachment_BLOB\" :\" " + email.Attachments[j] "\" }"; 

       SendToApi("Attachment", json); 

      } 

任何想法?

回答

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