从COM +自动化Outlook

时间:2013-08-21 11:01:18

标签: c# com outlook office-interop

我需要实现以下

1-将电子邮件另存为草稿,用户以后可以手动打开,修改和发送

2-撰写电子邮件并打开Outlook作为新电子邮件,并允许用户随后发送或放弃

Microsoft.Office.Interop.OutlookSmtpClient的示例代码。我相信SmtpClient无法自动化Outlook。而且,对于第二个选项,我不想添加Microsoft.Office.Interop.Outlook的引用,因为如果没有安装Office Outlook会怎么样!!!

所以请指导我进一步阅读。

修改

使用无引用肯定会使表单即使未安装outlook也可以打开,只需在<{p>}之后检查oType的空值即可检查

Type oType = Type.GetTypeFromProgID("Outlook.Application");

如果我添加引用并且客户端打开表单并且outlook不存在,或者引用的库是Office 2013并且已安装的库是Office 2010,该怎么办?表单是打开还是抛出异常,或者以下行仍然有效?

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.ApplicationClass();    
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");

1 个答案:

答案 0 :(得分:0)

你需要在这里澄清一下。您说您希望自动化Outlook,但不要依赖它。除非你抽象出电子邮件客户端的概念,这似乎并不奇怪,这似乎不是你的动机。

假设你依赖于互操作程序集,你可以在应用程序实际使用该引用之前检查已损坏/无效的引用。见here.