从.msg文件获取Outlook MailItem的“最佳”方法

时间:2015-06-04 13:02:47

标签: c# outlook

要从.msg文件传递到其相关的Outlook MailItem,我发现并尝试了以下两种方式:

Outlook.Application oApp; // --> Outlook Application
Outlook.MailItem oItem; // --> Outlook MailItem
string file= @"C:\PWS\myMail.msg";
oApp= (Outlook.Application)new Outlook.Application();

// way #1
oItem= (Outlook.MailItem)oApp.CreateItemFromTemplate(file);
// or way #2
oItem= (Outlook.MailItem)oApp.Session.OpenSharedItem(file);

这两种方式有什么区别?我需要打开.msg然后使用生成的MailItem(获取一些属性作为'SenderEmailAddress'或电子邮件附件)...我应该使用什么?目前他们和我一样......

1 个答案:

答案 0 :(得分:0)

第三种方法是以编程方式使用run .msg文件。在这种情况下应该打开默认应用程序(outlook)。例如:

 string file= @"C:\PWS\myMail.msg";
 Process.Run(file);

请注意,您无法运行多个Outlook实例。因此,邮件将在现有Outlook实例(如果有)中打开。

两种方法(#1和#2)都允许在Outlook中打开已保存的邮件。但他们有微小的差异:

Application类CreateItemFromTemplate方法从Outlook模板(.oft)创建新的 Microsoft Outlook项目并返回新项目。我还想提请你注意这样一个事实,即新的项目将始终在撰写模式下打开,而不是读取模式,无论项目保存到磁盘的模式如何。

命名空间类OpenSharedItem方法从指定的路径或URL打开共享项。有关详细信息,请参阅How to: Import Saved Items using OpenSharedItem

根据上面列出的信息,您可以选择哪种方式...