展望附件到base64的附件c#

时间:2017-10-12 15:05:24

标签: c# outlook base64 attachment

我一直在尝试用c#创建一个outlook插件。 我想要做的是获取附件并将​​其转换为base64,以便将其发送到我的服务器。 我不知道如何做到这一点。唯一的解决方案似乎是,保存文件,读取它,将其转换为base64并删除它,这似乎非常浪费。

这就是我现在正在做的事情。

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

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

                SendToApi("Attachment", json);

            }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果您尝试访问附件内容而不将附件另存为文件,则Outlook对象模型将无法帮助您。您可以使用扩展MAPI(仅限C ++或Delphi)并以流(IAttach::OpenProperty(PR_ATTACH_DATA_BIN, IID_IStream, ...))打开附件数据或使用Redemption - 其附件对象公开AsTextAsArray等属性。

  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