使用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引发了一个异常,即路径无效,即使它是。
有什么想法吗?
答案 0 :(得分:1)
OpenSharedItem不适用于EML文件。 Outlook对象模型不允许您访问EML文件。你可以
解析EML文件(或使用可用组件),在Outlook中创建新项目并一次设置一个属性
如果您使用的是C ++或Delphi,则可以使用IConverterSession MAPI界面导入数据
如果使用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()