我需要实现以下
1-将电子邮件另存为草稿,用户以后可以手动打开,修改和发送
2-撰写电子邮件并打开Outlook作为新电子邮件,并允许用户随后发送或放弃
有Microsoft.Office.Interop.Outlook
和SmtpClient
的示例代码。我相信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");
答案 0 :(得分:0)
你需要在这里澄清一下。您说您希望自动化Outlook,但不要依赖它。除非你抽象出电子邮件客户端的概念,这似乎并不奇怪,这似乎不是你的动机。
假设你做依赖于互操作程序集,你可以在应用程序实际使用该引用之前检查已损坏/无效的引用。见here.