使用加载项在Outlook中打开EML文件?

时间:2016-02-08 11:57:24

标签: outlook vsto outlook-addin

使用Outlook加载项(VSTO)可以从磁盘打开EML文件,然后显示"它?

我试过这个......

Dim filename As String = "c:\test\_test.eml"
Dim mail As Outlook.MailItem = CType(Globals.ThisAddIn.Application.Session.OpenSharedItem(filename), Outlook.MailItem)
mail.Display()

但Outlook引发了一个异常,即路径无效,即使它是。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

OpenSharedItem不适用于EML文件。 Outlook对象模型不允许您访问EML文件。你可以

  1. 解析EML文件(或使用可用组件),在Outlook中创建新项目并一次设置一个属性

  2. 如果您使用的是C ++或Delphi,则可以使用IConverterSession MAPI界面导入数据

  3. 如果使用Redemption是一个选项,您可以使用以下内容(在我的头顶):

    dim Session as Redemption.RDOSession = CreateObject(“Redemption.RDOSession”)   Session.MAPIOBJECT = Me.Application.Session.MAPIOBJECT   dim Drafts as Redemption.RDOFolder = Session.GetDefaultFolder(olFolderDrafts)   昏暗邮件为Redemption.RDOMAil = Drafts.Items.Add   mail.Sent = true   mail.Import“c:\ temp \ test,eml”,1024'olRfc922   mail.Save   '现在在OOM重新开放   dim oMail as Outlook.MailItem = Me.Application.Session.GetItemFromID(mail.EntryId)   dim forwardedMail as Outlook.MailItem = oMail.Forward   forwardedMail.Display()

相关问题