使用Outlook 2010和2013 C实现从winform发送邮件#

时间:2016-08-29 14:38:22

标签: c# winforms outlook office-interop

我使用Winform创建了一个表单来发送电子邮件。我的Outlook 2010窗口正在打开并且运行正常。但是,在我的朋友计算机上,由于他有Outlook 2013,因此无法正常工作。是否可以创建一个适用于Outlook 2010和2013的发送邮件。以下是我正在使用的代码:

 var outlookApp = new Outlook.Application();

 Outlook.MailItem mailItem = outlookApp.CreateItem(Outlook.OlItemType.olMailItem);

 mailItem.Subject = this.txtTitle.Text;
 mailItem.HTMLBody = this.HtmlText;
 mailItem.HTMLBody = mailItem.HTMLBody + ReadSignature();
 mailItem.Importance = Outlook.OlImportance.olImportanceLow;
 mailItem.Display(true);

此外,我使用的COM是 Microsoft Outlook 14.0对象,我知道对于Outlook 2013,它是 Microsoft Outlook 15.0对象

1 个答案:

答案 0 :(得分:1)

如果您希望版本独立,请在添加对所需办公室互操作组件的引用后,例如Microsoft.Office.Interop.Outlook.dll,右键单击dll引用并选择属性,并在属性网格中设置{{1} } Embed Interop Types

了解更多信息:

  

Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio

     

如果在引用COM的应用程序中嵌入类型信息   对象,您可以消除对主互操作程序集的需要   (PIA)。此外,嵌入式类型信息使您可以   实现应用程序的版本独立性。那就是你的   可以编写程序以使用来自COM的多个版本的类型   库不需要每个版本的特定PIA。这是一个   使用Microsoft对象的应用程序的常见方案   Office图书馆。 嵌入类型信息可以实现相同的构建   一个程序,用于处理不同版本的Microsoft Office   不需要重新部署程序或不同的计算机   每个版本的Microsoft Office的PIA。