2013-08-21 96 views
1

我需要實現以下自動化Outlook +

1-保存電子郵件草稿,讓用戶可以稍後打開,修改和手動發送

2 - 撰寫電子郵件,打開Outlook作爲新的電子郵件,並允許用戶發送或丟棄當時和那裏

有示例代碼使用Microsoft.Office.Interop.OutlookSmtpClient。我相信SmtpClient無法自動化Outlook。而且,對於第二個選項,我不想添加Microsoft.Office.Interop.Outlook的引用,因爲如果Office Outlook未安裝,該怎麼辦!

所以請引導我進一步閱讀。

編輯

使用沒有參考必將使形式即使未安裝Outlook拿開,這可以通過後

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

只檢查空爲oType進行檢查,如果我有什麼添加引用和客戶端打開窗體和Outlook不存在OR引用的庫是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

您需要在此澄清一點。你說你想自動化Outlook,但不要依賴它。這很奇怪,除非你抽象出一個電子郵件客戶端的概念,這似乎不是你的動機。

假設你取決於互操作程序集,您可以在應用程序實際使用該引用之前檢查是否存在破損/無效的引用。請參閱here.

+0

假設我添加了引用並部署了應用程序,客戶端沒有辦公室,客戶端打開「電子郵件」按鈕將執行此工作的表單。客戶端沒有點擊電子郵件按鈕,只是打開表單。表單是否打開或拋出錯誤? – bjan