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

tjvv9vkg  于 2023-02-09  发布在  C#
关注(0)|答案(1)|浏览(230)

我已经创建了一个使用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对象

a14dhokn

a14dhokn1#

如果您希望具有版本独立性,在添加了对所需office interop程序集的引用(例如Microsoft.Office.Interop.Outlook.dll)之后,右键单击dll引用并选择属性,然后在属性网格中将Embed Interop Types设置为true
如需了解更多信息:
Walkthrough: Embedding Type Information from Microsoft Office Assemblies in Visual Studio
如果在引用COM对象的应用程序中嵌入类型信息,则可以消除对主互操作程序集的需要(PIA)。此外,嵌入的类型信息使您能够实现应用程序的版本独立性。也就是说,您的程序可以编写为使用COM库的多个版本中的类型,而无需为每个版本指定特定的PIA。这是使用Microsoft Office库中对象的应用程序的常见情况。通过嵌入类型信息,同一内部版本的程序可以在不同计算机上的不同Microsoft Office版本中使用,而无需为每个Microsoft Office版本重新部署程序或PIA。

相关问题